导致协议不安全的根本原因在于协议所运行环境的复杂性,可能存在攻击者(不按照协议要求执行协议的主体)。
在实际应用中,由于存在攻击者,设计一个安全的协议是非常困难的。所谓协议的安全性,一般为在假定攻击者模型下,证明协议是安全的。
协议存在缺陷的原因:
1.协议设计过程不规范;
2.是在协议执行时产生的。
常见协议缺陷:
1.基本协议缺陷:协议中没有或者很少考虑对攻击者的防范而引发的协议缺陷。
2.陈旧消息缺陷:在协议设计过程中,未考虑消息的时效性,从而使得攻击者可以利益协议过程中产生的过时消息来对协议进行重放攻击。(不要轻易相信没有时间的签名)。
3.并行会话缺陷:协议设计仅考虑单个协议执行的情况,对多个协议并行会话缺乏考虑,使得攻击者可以相互交换适当的协议消息来获得更为重要的消息。
4.内部协议缺陷:协议中缺少足够的信息让协议参与者能够区分消息的真实性而导致缺陷。
5.密码系统缺陷:使用的密码算法的安全强度问题导致协议不能完全满足所要求的机密性、完整性、认证等需要而产生的缺陷。