密码学协议知识科普
1. 认证协议的现状与挑战
认证协议是最常用的密码学协议,在现实世界应用中至关重要。尽管许多认证协议看似相对简单,但设计起来却十分微妙,且极易受到攻击。
例如,修订后的Needham - Schroeder公钥协议,通过明确表明Alice的身份并使用Bob的公钥加密消息3,试图增强Alice和Bob之间对称密钥材料的安全性。具体来说:
- 当Alice收到消息2时,她能确定是在和Bob通信,因为只有Bob能解密消息1获得NA,且这一定是在她发送随机数NA之后发生的。
- 当Bob收到消息3时,他能确定是在和Alice通信,因为只有Alice能解密消息2获得NB。同时,由于消息传输中明确有Alice的身份,且只有Bob能解密消息3,所以Bob能确定NA和NB是他与Alice之间专用的对称密钥材料。
然而,该修订后的协议实际上并不安全,仍会受到Lowe发现的攻击。新攻击涉及协议的两次同时运行:
- 第一次运行(步骤1、2、3)中,Alice与恶意方Malice建立了有效会话。
- 第二次运行(步骤1′、2′、3′)中,Malice冒充Alice试图与Bob建立虚假会话。最终,Bob误以为与Alice正确建立了会话并共享了NA和NB,但实际上Malice知晓这些信息。
这表明,密码学协议的构建看似简单,实则具有欺骗性。而且,认证协议不仅容易出错,其缺陷也很难被发现。例如,当前版本的互联网密钥交换(IKE)协议,即便经过经验丰富的计算机安全专家多年开发,也被证明并不像承诺的那样安全。Needham - Schroeder公钥认证协议在发布17年后,于1995年被Lowe发现存在缺陷。