论文部分内容阅读
随着电子金融的兴起以及安全事件频繁发生,网络安全成为社会关注的热点话题。SSL协议为数据安全提供保障,广泛用于加密传输中。尽管SSL加密传输的数据被破解的难度大,但是SSL设计以及实现上安全漏洞频繁发生,影响巨大。因此,对SSL安全漏洞研究,成为信息安全问题的热点。本文首先从SSL协议入手,介绍了SSL协议体系结构,SSL协议主要包括记录协议、握手协议、更改密钥规格协议、告警协议、应用数据协议以及心跳扩展协议。由于许多安全威胁和握手过程有关,本文详细分析SSL的握手消息类型以及SSL握手过程;其次说明握手过程中的三种密钥,描述了预主密钥,主密钥以及会话密钥产生的时间以及作用;最后介绍SSL协议的会话恢复机制和会话再协商过程。对SSL安全漏洞进行结构化分类和详细的介绍。SSL安全漏洞可以分为三大类:SSL/TLS协议标准的逻辑问题,加密算法安全漏洞以及协议实现问题。其中SSL/TLS协议标准的逻辑问题中重点分析TLS Renegotiation Denial of Service漏洞,该漏洞通过反复使用SSL协议再协商机制来降低服务器性能;加密算法安全漏洞描述了CBC加密模式中填充规则、加密流程、SSLv3协议MAC算法仅仅验证填充块最后一个字节导致Padding Oracle漏洞,以及SSLv3协议中使用已知的初始化向量而导致的BEAST漏洞;协议实现问题中具体描述由于没有注意边界判断而导致的心脏滴血漏洞。根据漏洞原理,搭建仿真环境,设计并实现攻击程序和SSL安全检测系统,其中攻击程序包括Padding Oracle攻击程序、BEAST攻击程序、TLS Renegotiation DOS攻击程序、及Heartbleed攻击程序。针对每一个攻击类型,介绍攻击流程。由于Padding Oracle攻击以及BEAST攻击是属于中间人攻击,因此脚本中整合攻击者,客户端以及服务器三种角色,通过运行脚本可以了解攻击过程中每个角色的职责以及攻击者的具体做法。TLS Renegotiation DOS攻击以及Heartbleed攻击只需运行攻击程序就可以从存在漏洞的HTTPS服务器获得相关信息。在漏洞分析基础上,基于插件技术设计了SSL安全自动化检测系统,提出SSL协议安全检测项目,包括用于检测CBC分组模式等弱加密算法的加密组件测试、再协商机制检测、Heartbleed检测以及证书有效性检测,设计每一个项目检测流程。最后在本地搭建仿真场景中运行攻击程序和测试系统,描述攻击结果。