PAKE: Password-authenticated key agreement
Posted mutourend
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAKE: Password-authenticated key agreement相关的知识,希望对你有一定的参考价值。
1. 引言
PAKE,即Password-authenticated key agreement,密码认证秘钥协商。
在密码学中,PAKE是指:
- 两方或多方进行交互
- 基于一方或多方知悉某一共享密码建立的密码学秘钥
PAKE的一个重要属性是:
- 窃听者或者中间人无法在不与其他方互动的情况下暴力破解密码
这也就意味着可基于弱密码获得强安全性。
PAKE相关算法主要有:
- 平衡密码认证秘钥交换
- 增强密码认证秘钥交换
- 密码认证秘钥检索
- 多server PAKE
- 多方PAKE
在最严格的只使用密码的安全模型中,以上算法的用户不需要记住密码以外的任何秘密或公共数据。
相关代码实现参见:
2. 平衡密码认证秘钥交换
平衡PAKE假设双方为client-client或client-server关系,使用相同的密码来协商认证一个共享秘钥。
平衡PAKE的例子主要有:
- Encrypted Key Exchange (EKE):第一个成功的PAKE算法,由Bellovin和Merritt于1992发明,有缺陷。2000年Bellare等人和Boyko等人发明了第一个provably-secure PAKE协议,在random oracle model下被证明是安全的。第一个在standard assumption下的协议由Goldreich等人与2001年发明,但是效率不够高。第一个实用且安全的算法由M. Yung于2001年提出。
- PAK and PPK
- SPEK (Simple password exponential key exchange)
- 基于椭圆曲线的Secure Remote Password protocol (EC-SRP or SRP5)。https://github.com/mobilesec/secure-channel-ec-srp-applet 为Java card实现。
- Dragonfly-IEEE std 802.11-2012,RFC 5931, RFC 6617
- SPAKE1 and SPAKE2
- SESPAKE-RFC 8133
- J-PAKE (Password Authenticated Key Exchange by Juggling) - ISO/IEC 11770-4(2017), RFC 8236
- ITU-T Recommendation X.1035
3. 增强密码认证秘钥交换
增强PAKE用于client-server场景,其中server端不存储与密码等效的数据。这就意味着窃取服务器数据的攻击者仍然不能伪装成客户机,除非他们首先密码执行暴力搜索。
一些增强PAKE系统使用 不经意伪随机数函数 将用户的密码和服务端的密码salt值 混合,使得用户永远不知道服务端 的秘密salt值,而服务端也永远不知道用户的密码或最终秘钥。
增强PAKE例子有:
- AMP
- 增强EKE
- B-SPEKE
- PAK-X
- SRP
- AugPAKE
- OPAQUE
- SPAKE2+
4. 密码认证秘钥检索
密码认证秘钥检索 是指:
- 客户端 通过与服务端基于密码协商获得一个静态秘钥
- 服务端知道该密码的相关数据,如the Ford and Kaliski算法。在最严格的设置中,一方将密码与N(2个或多个)服务器结合使用来检索静态秘钥。即使N台服务器中的N-1台被破解了,仍能保护密码(和秘钥)的安全。
第一个密码认证秘钥检索算法由Ford和Kaliski于2000年提出。
参考资料
[1] Wikipedia Password-authenticated key agreement
以上是关于PAKE: Password-authenticated key agreement的主要内容,如果未能解决你的问题,请参考以下文章