我的论文研究方向主要是Password-Hardened Encryption(简称PHE),所以我就准备精读一下这篇首次提出PHE的2018年的论文——Simple Password-Hardened Encryption Services,并做一些记录。

原文链接:https://www.usenix.org/system/files/conference/usenixsecurity18/sec18-lai.pdf

Password-Hardened

PHE是沿袭另外两篇15年和17年的论文,题目分别是_The Pythia PRF service_和_Phoenix: Rebirth of a cryptographic password-hardening service_,该论文提出Password-Hardened(简称PH),之后可能会精读这两篇论文。

PH的全流程只需要用户终端、服务器(后文称为server)和加密服务器(此处为了方便,PHE作者将其命名为rate-limiter)。在PH中,server和rate-limiter是一体的,当用户注册时,rate-limiter会创造一个用户密码的加密记录;当用户登陆时,提供密码,server和rate-limiter协作验证密码是否符合加密记录的密码。

PH的安全保障来源有四个:

  1. 独立的server和rate-limiter都不能检测密码的正确性
  2. rate-limiter可以记录一些信息,例如:每个用户的失败次数、速率限制密码尝试和在线攻击
  3. rate-limiter没有学习任意密码信息
  4. server和rate-limiter可以无缝旋转密钥(这个概念后面要了解一下)

这些保障提供了前向安全(这个概念了解不深刻,挖坑学习一下)

PH的一个局限性是:它只保证密码的安全。如果攻击者控制了服务器,可以简单的解密出来其他的数据。

私货感悟:

现在挺多企业,以及CMS都用上了PH。它的方法是,利用MD5等杂散函数,将用户密码哈希之后,全部或者部分存储在服务器里,再用户下次登陆时,再进行比对。的确存在该论文所谓的只能保证密码安全,毕竟密码只需要单向验证,但是数据就需要显示使用,如果哈希之后,就还原不了了,就没用了,所以不能加密数据。

Password-Hardened Encryption

PHE本质上是拓宽了PH的加强版。

PHE的区别

  1. 拓宽了加密范围。PH只能加密用户密码,PHE可以除了密码还可以加密用户数据。
  2. PHE引入了单独的加密服务器(后文仍称作rate-limiter)

PHE的全流程为:当用户注册时,server和rate-limiter会创造一条记录,包含加密后的密码和一个私密信息,该私密信息可以理解为非对称加密(例如AES)中的私钥;此后,server会利用该密钥加密该用户的数据,然后删除掉密钥,只在rate-limiter保留;当用户登陆时,server和rate-limiter共同验证密码正确性,如果密码正确,server会恢复密钥并解密用户数据。

PHE安全保障来源:

  1. 继承了PH的安全保障来源
  2. 拓展加密范围到能够加密数据

该论文的贡献:

  1. 介绍并规范了PHE
  2. 提出了一个简单的PHE框架
  3. 优化了性能,PHE比PH性能提升
  4. 验证了PHE的安全性

采用的技术概要:

  1. 一个简单高效的框架
  2. 利用有效证明的稳健性
  3. 强化了PH

PHE的技术细节:

  1. 设置和生成密钥
  2. 加密/解密
  3. 密钥旋转(Key Rotation)和更新记录

PHE的安全细节:

  1. 消息隐藏(数据加密)
  2. 部分遗忘(server遗忘密钥,rate-limiter遗忘数据)
  3. 稳健性
  4. 前向安全*(基于密钥更新)

To be continue!