论文摘要
网络认证协议的主要作用是验证通信主体的身份并协商安全的会话密钥,但在开放、分布式的网络复杂环境中认证协议可能会出现一些隐藏的缺陷,而这些隐藏的安全和设计缺陷难以通过测试手段发现。形式化方法由于其可验证性、准确性以及无二义性的特点,可以有效地对网络认证协议的安全性质进行分析检测。定理证明、模型检测和模态逻辑是当前常用的形式化分析方法。模型检测是一种有效的形式化分析方法,有着自动化和提供反例等诸多优点。近年在软硬件验证中得到了广泛应用。模型检测方法可以有效减少协议设计错误,已经有很多模型检测工具成功应用于认证协议分析验证。但是现有的网络认证协议建模方法建立的模型可读性差,自动化程度低,建模方法缺乏通用性,而且模型的验证效率较低。所以,本文将基于著名的模型检测工具SPIN,从建模和验证两方面进行研究,致力于提供一个网络认证协议的高效分析验证框架。本文针对模型检测中的状态爆炸问题,分析了模型检测工具SPIN的偏序归约算法和状态压缩技术,并通过实验结果的比较来说明他们对验证效率的影响。针对Promela语言描述模型时减少变量定义和引入语句原子性等模型优化方法进行了研究,实验证明此类优化方法可以减少模型的状态数。为了有效地提高网络认证协议建模的效率,本文基于实际网络环境中认证协议的运行特征,提出一个网络认证协议模型一般化描述方法,将协议描述成一个基于事件序列的主体集合,并通过攻击者的消息分析和消息合成建立攻击者模型。此方法利用Promela语言可方便地实现协议模型描述。针对模型的状态爆炸问题,本文提出一些针对认证协议模型的简化策略,可有效减小模型的状态空间。本文模型检测方法与现有的文献相比,建模的自动化程度更高,模型验证的效率更好。最后基于本文模型检测方法,对PKM、BAN-Yahalom、TMN等协议进行了分析验证,成功的找到了协议的攻击漏洞。并对实验效率进行了比较分析。实验表明本文模型检测方法的有效性,可以对多种不同的协议进行分析。