Simple Password-Hardened Encryption Services——精读论文
我的论文研究方向主要是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的安全保障来源有四个:
- 独立的server和rate-limiter都不能检测密码的正确性
- rate-limiter可以记录一些信息,例如:每个用户的失败次数、速率限制密码尝试和在线攻击
- rate-limiter没有学习任意密码信息
- server和rate-limiter可以无缝旋转密钥(这个概念后面要了解一下)
这些保障提供了前向安全(这个概念了解不深刻,挖坑学习一下)
PH的一个局限性是:它只保证密码的安全。如果攻击者控制了服务器,可以简单的解密出来其他的数据。
私货感悟:
现在挺多企业,以及CMS都用上了PH。它的方法是,利用MD5等杂散函数,将用户密码哈希之后,全部或者部分存储在服务器里,再用户下次登陆时,再进行比对。的确存在该论文所谓的只能保证密码安全,毕竟密码只需要单向验证,但是数据就需要显示使用,如果哈希之后,就还原不了了,就没用了,所以不能加密数据。
Password-Hardened Encryption
PHE本质上是拓宽了PH的加强版。
PHE的区别:
- 拓宽了加密范围。PH只能加密用户密码,PHE可以除了密码还可以加密用户数据。
- PHE引入了单独的加密服务器(后文仍称作rate-limiter)
PHE的全流程为:当用户注册时,server和rate-limiter会创造一条记录,包含加密后的密码和一个私密信息,该私密信息可以理解为非对称加密(例如AES)中的私钥;此后,server会利用该密钥加密该用户的数据,然后删除掉密钥,只在rate-limiter保留;当用户登陆时,server和rate-limiter共同验证密码正确性,如果密码正确,server会恢复密钥并解密用户数据。
PHE安全保障来源:
- 继承了PH的安全保障来源
- 拓展加密范围到能够加密数据
该论文的贡献:
- 介绍并规范了PHE
- 提出了一个简单的PHE框架
- 优化了性能,PHE比PH性能提升
- 验证了PHE的安全性
采用的技术概要:
- 一个简单高效的框架
- 利用有效证明的稳健性
- 强化了PH
PHE的技术细节:
- 设置和生成密钥
- 加密/解密
- 密钥旋转(Key Rotation)和更新记录
PHE的安全细节:
- 消息隐藏(数据加密)
- 部分遗忘(server遗忘密钥,rate-limiter遗忘数据)
- 稳健性
- 前向安全*(基于密钥更新)