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的主要内容,如果未能解决你的问题,请参考以下文章

openssh漏洞怎么修复 windows

有意思的pyinstaller打包

CentOS 6.6升级OpenSSH到最新版本7.5.p1

centos6.6升级openssh到最新版本7.5.p1

redhat6.5 OpenSSH5.3p1升级到OpenSSH7.5p1