论文部分内容阅读
安全协议作为网络空间安全的重要组成部分,是保障网络空间安全的关键和灵魂。从安全协议的设计及其抽象规范安全性的分析验证、到安全协议实施(安全协议代码),人们主要集中在对安全协议抽象规范的安全性分析和验证方面,实用性较差,较少涉及到具有很强实用性的安全协议实施的安全性。因为经过理论分析证明安全的安全协议抽象规范,很可能在其软件实施部署中引入新的安全问题。要防止这类安全问题的出现,必须在代码级研究安全协议的安全性,也就是对安全协议实施的安全性进行研究,以得到具有很强实用性的安全协议实施。安全协议实施目前主要依靠人为的理解和提取。通过程序分析理解实施代码,需要准确理解其语义特征和含义,由于先验模式的局限性,就导致了安全协议实施理解的误差。此外,有些私有协议在保证自身规范的同时使用了自定义的加密/解密函等函数,这些函数的先验模式的建立便存在模式不完整等缺陷,这对安全协议实施的语义特征及规范化理解也造成了较大难度,进而对分析安全协议实施的安全性也产生了很大的挑战。故本文基于能获取安全协议客户端实施,对安全协议实施安全性进行研究,提出了基于消息构造的安全协议实施安全性分析方法,主要工作如下:(1)提出基于API trace的安全协议消息构造方法MCSPI:首先,拦截安全协议的通信消息并解析该消息,进而得到消息token;其次,从提取的安全协议客端实施中抽取安全相关函数,并应用API跟踪技术得到安全函数间的依赖关系及API trace,同时应用提出的API trace解析算法ATPA解析该API trace并建立相应的栈结构保存解析结果;接着,分别从构成协议消息token的安全函数输出不依赖于别的安全函数和构成协议消息token的函数输出依赖与别的安全函数存在依赖关系两种情形对需要替换的消息token进行定位、标记;然后,基于建立的栈结构及安全函数依赖关系重构被跟踪的安全函数输出序列值;最后,应用重构的序列值替换被标记的消息token,进而得到构造的安全协议请求消息。(2)提出基于MCSPI的安全协议实施安全性分析方法,生成安全协议服务器端抽象模型。首先,拦截安全协议服务器端返回的对构造的请求消息的响应消息,并对其进行解析;然后,从解析结果中抽取服务器端对请求消息的处理结果;最后,基于抽取的处理结果生成安全协议服务器端抽象模型。(3)基于提出的方法,设计并实现了SPIA工具,辅助完成安全协议实施安全性分析,其主要包含net-trace解析模块、token定位模块及安全函数输出重构模块等模块。(4)应用SPIA工具对RSAAUth等安全系统及2017版腾讯QQ邮件服务系统进行分析,发现被测试系统的服务器端存在对请求消息中密码原语相应的处理,但RSAAuth等系统对于口令的暴力破解攻击存在脆弱性。而2017版腾讯QQ邮件系统对用户登录会话的生命周期进行了严格限制,若会话时长超过了该生命周期,则本次会话失效,这能降低口令被暴力破解的成功率,在一定程度上减缓了口令暴力破解攻击。