博客为对该书的学习笔记,并非原创知识
21.11 密码认证密钥交换(PAKE)
诞生原因是解决21.6节中的单边身份验证密钥交换协议
21.11.1网络钓鱼攻击
在网络钓鱼攻击中,攻击者通过简单地欺骗客户端在属于攻击者的假登录页面(而不是安全登录页面)上输入其用户ID和密码来绕过使用单侧身份验证的安全通道。
网络钓鱼攻击有两个阶段:
- 欺骗客户访问假页面:常见方法是发送电子邮件,更复杂的策略是利用互联网路由机制中的安全弱点实现客户端在浏览器的地址栏中输入一个网址,但最终到达一个由敌手控制的网站。
- 客户输入用户id和密码:假网页常见线索
- 网页的地址可能不是服务器的地址:例如,用 http://www.yourbank.com.somesite.com代替http://www.yourbank.com;
- 没有通常用于表示“安全网页”的信号
- 证书可能是由CA颁发给敌手而不是服务器
试图阻止网络钓鱼攻击的质询-响应识别协议:
P | 客户端 | r | 一次性随机数 |
Q | 服务器端 | H() | 哈希函数 |
pw | 密码 | ? | 表示验证 |
该协议是18.6.1节中讨论的基于密码的质询-响应协议的变体,MAC和密钥派生都滚入哈希函数中。
但是这种协议也有问题,客户向服务器表明身份,服务器没有向客户表明身份。尽管攻击者没法获得密码,因为客户端认为他已安全登录到服务器,因此可能会被诱骗泄露其他敏感信息。
更糟糕的是,敌手可能发动中间人攻击。
中间人攻击(Man-in-the-Middle Attack,简称MITM攻击)是一种网络安全攻击,攻击者在通信的两个实体之间插入自己,以监视、篡改或劫持通信。这种攻击通常发生在客户端和服务器之间的通信过程中,攻击者将自己伪装成通信的一方,使得双方都认为他们正在直接通信,而实际上所有的通信都经过了攻击者的窃听和干预。
尝试使用相互质询-响应识别协议
这个协议也有中间人攻击的问题,但使用密钥交换协议提供的通道绑定(21.8节)特性,就可以避免这种中间人攻击。具体是修改上述相互身份验证协议,使哈希值计算为H(pw,chb,0,r,s)和H(pw,chb,1,r,s),其中chb为通道绑定。这不仅可以防止网络钓鱼攻击,而且还可以在密钥交换中使用的服务器的长期密钥秘密被泄露(如PFS或HSM攻击模型)时提供一定的安全性。
这个协议仍会受到离线字典攻击(18.3.1节)
- 假设客户端的密码是弱的,并且属于一个相对较小的常用密码字典D。还假设攻击者通过网络钓鱼与客户端建立了一个通道。
- 攻击者扮演服务器的角色,向客户端发送一个随机数r
- 客户端以s,v响应,v=H(pw,chb,0,r,s),攻击者获得v
- 攻击者现在对客户端的密码执行暴力搜索:计算D中所有密码的哈希值,并测试它是否等于v
上述互识别协议中不能颠倒客户端和服务器的角色,因为如果Q的第一步是发送s,v,攻击者不需要任何钓鱼,就可以进行离线字典攻击。
没有网络钓鱼,攻击者也总是可以执行在线字典攻击,只需尝试多次登录服务器,使用从常用密码字典中选择的密码。服务器通常可以采取限制失败的登录尝试次数,来控制这一问题(18.3.1节)
21.11.2 PAKE:介绍
PAKE协议的基本思想:我们假设希望建立共享会话密钥的每对用户都有一个共享密码。
在实践中,PAKE协议很可能与弱密码一起使用,因此我们必须相应地放松对安全性的期望。既可以接受在线字典攻击,不能接受离线字典攻击。
21.11.3 PAKE0协议
P和Q是共享密码pw的用户,H是一个哈希函数,我们将其建模为随机oracle。随机预言机(Random Oracle)是一种理想化的密码学构造,用于描述密码哈希函数的理想性质。P和Q交换随机随机数r和s,然后计算会话密钥为k。在描述这个和其他的PAKE协议时,我们省略了P和Q如何相互通信它们的身份idP和id Q,以及它们如何检索相应的密码的细节。
如果pw是弱密码,那么窃听对手可以轻松地执行离线字典攻击:
- 假设pw属于一个相对较小的常用密码字典D
- 用户P使用对称密码ε=(E,D)加密明文m
- 攻击者窃听到了r和s
- P计算k,并发出密钥k加密m的密文c,攻击者截获c
21.11.4 PAKE1协议
不受上述漏铜影响
利用由g∈G生成的素数阶q的循环群G和一个哈希函数H,我们将其建模为随机oracle。
证明弱密码也不易受到字典攻击
直观上,回顾CDH假设
字典攻击变成解决CDH问题。
21.11.5 PAKE2协议
协议PAKE1在防范被动型对手(仅仅窃听通信的对手)进行离线字典攻击方面是安全的,但对于主动型对手(直接参与协议的对手)进行的离线字典攻击是脆弱的。这是因为主动型对手可以利用已知的明文和加密的密文来尝试破解密码,而弱密码使得密码更容易被猜测或者通过穷举攻击进行破解。
P通过乘以一个a^pw来遮蔽g^α的值,Q通过乘以一个b^pw来遮蔽g^β的值
证明PAKE2在主动型敌手面前是安全的:
- 考虑敌手获得了一段对话(u,v),P和Q计算出的会话密钥
- 相关点
- 以下问题是困难的:在给定群G中的元素a、b、u、v时,找到一个整数γ和群G中的元素w,使得通过对a和b的指数幂进行计算,可以得到u/a^γ和v/b^γ
- 如果有γ(pw),
,既
就可以得到所有参数
21.11.6 PAKE2+协议
该协议中两个用户的角色是对称的。如果服务器被攻破,攻击者冒充客户端所能做的最好的事情就是进行离线字典攻击。
21.11.7 显示密钥确认
确认密钥协商过程中双方所衍生的共享密钥是否一致
如果正在进行在线字典攻击,协议将立即收到警报,并可以采取防御措施(参见18.3.1节)。
21.11.8 还是网络钓鱼
网络钓鱼攻击者仍然可以尝试完全绕过PAKE协议。例如,攻击者可能会将客户端引诱到其web浏览器上的虚假登录页面,客户端将其密码输入到web浏览器中,从而将密码直接传输给攻击者,而不是通过PAKE协议进行处理。
21.11.9 案例研究:WiFi WPA3协议中使用的PAKE
还没写