《2022年网络安全协议课程设计报告SSL协议 .pdf》由会员分享,可在线阅读,更多相关《2022年网络安全协议课程设计报告SSL协议 .pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SSL 协议的安全性研究1 引言随着计算机网络技术的飞速发展,信息时代的人们对Internet的依赖性越来越大。当今时代,电子商务和电子政务的应用越来越广泛,然而网络安全问题严重束缚了计算机网络的进一步应用。安全套接层SSL(Secure Sockets Layer) 协议是由 Netscape 公司设计开发的安全协议,主要用于加强应用程序之间的数据的安全性。SSL协议是基于Web应用的安全协议,它采用了RSA算法、 RC4 128、RC一 128、三重 DES算法和 MD5等加密技术实现两个应用层之间的机密性、可靠性和数据完整性,并采用X509 数字证书实现鉴别,其加密的目的是建立一个安全的
2、通讯通道,而且该通道可在服务器和客户机两端同时实现支持。2 SSL 协议简述及相关概念SSL协议用来建立一个在客户和服务器之间安全的TCP连接,尤其可被用来认证服务器,可选地认证客户,执行密钥交换,提供消息认证,而且还可以完成在TCP协议之上的任意应用协议数据的完整性和隐蔽性服务。SSL为在 Internet上安全地传送数据提供了一介加密通道,建立一个安全连接,主要实现以下工作:加密网络上客户端和服务器相互发送的信息;验证信息在传送过程是否安全完整:运用非对称密钥算法验证服务器;验证客户身份;交换应用层数据。2.1 SSL-安全套接层协议。是由 Netscape 设计的一种开放性协议,它提供了
3、一种介于应用层和传输层之间的数据安全套接层协议机制。SSL 位于 TCP/IP 协议与各种应用层协议之间,为 TCP/IP 连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。其目的是为客户端(浏览器)到服务端之间的信息传输构建一个加密通道,此协议是与操作系统和Web 服务器无关的。2.2 SSL 协议可分两层:2.2.1 SSL 记录协议:它建立在可靠的传输协议(如TCP)之上,位于SSL 协议的底层,为高层协议提供数据封装、压缩、加密等基本功能的支持。在SSL 中,所有数据被封装在记录中,SSL 握手协议中的报文,要求必须放在一个SSL 记录协议层的记录里,但应用层协议的报文,允
4、许占用多个SSL记录来传送(1) SSL 记录头格式SSL 记录头可以是2 个或 3 个字节长的编码。SSL 记录头包含的信息有记录头的长度、记录数据的长度,以及记录数据中是否有填充数据,其中填充数据是在使用块加密名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - - 1 - (blocken-cryption )算法时,填充实际数据,使其长度恰好是块的整数倍。最高位为1 时,不含有填充数据,记录头的长度为2 个字节,记录数据的最
5、大长度为32767 个字节;最高位为0时,含有填充数据,记录头的长度为3 个字节,记录数据的最大长度为16383 个字节。SSL 记录层结构如图1 所示。图 1 SSL 记录层结构当数据头长度是3 个字节时,次高位有特殊的含义。次高位为1 时,表示所传输的记录是普通的数据记录;次高位为0 时,表示所传输的记录是安全空白记录(被保留用于将来协议的扩展)。记录头中数据长度编码不包括数据头所占用的字节长度。记录头长度为2 个字节时,记录长度的计算公式为:记录长度=( ( Byte0&0 x7f )8)|Byte1 。其中 Byte0 、Byte1 分别表示传输的第一个、第二个字节。记录头长度为3 个
6、字节时,记录长度的计算公式是:记录长度=( (Byte0&0 x3fS :change cipher spec (2)C-S :finishedak (3)S-C :change cipher spec (4)S-C :finishedak (5)C-S :mk 但存在一种特殊的情况,在这种情况下,中间人M(man in the middle attack)采取change cipher spec消息丢失攻击,这种攻击的前提是当前的Cipher Suite不作 MAC 保护;未决的 Cipher Suite不作加密,作MAC 保护,那么攻击的消息流如下:(1)C-M :Change Ciphe
7、r Spec (2)C-M :finishedak (3)M-S :finisheda (4)S M :change cipher spec (5)S M :finisheda (6)M-C :finisheda (7)C-M :mk (8)M-S :m 其中 *k表示记录层协议对数据进行加密保护;m表示明文的应用数据;n 表示 finished消息中的认证码,是对所有握手消息进行MAC 计算结果 ( 但不包括Change Cipher Spec消息的认证 ) 。从以上过程可以看出,在接收到Change Cipher Spec消息之前,当前的Cipher Suite不加密,不作Mac保护,直到
8、收到Change Cipher spec 消息之后,记录层才开始对通信数据进行加密和完整性保护。假如只对密码族进行认证而从不加密,这样中间人攻击者将窃取并删除Change Cipher Spec消息,致使通信双方将不再更新当前的密码族(Cipher Suite),即不再对传递的数据作MAC认证和加密。由于商定的密码族不起作用,这样协议失去了对数据的认证能力,从而中间人攻击者在通信双方不知道的情况下,可以任意修改会话数据。5.3.2 解决策略名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
9、第 7 页,共 10 页 - - - - - - - - - - 7 - 将 Change Cipher Spec假如到 Finished消息的消息认证计算中,这样才符合认证协议的上下文原则。 当然,也可以不修改协议的基本框架,在发送 Finished消息之前要求收到Change Cipher Spec的消息,否则引起协议的致命错误并会中断连接,这实际上是协议实现者对SSL协议缺陷的弥补工作。5.4 证书攻击和窃取5.4.1 攻击原理公共 CA机构并不总是很可靠的,因为对于用户的证书,公共CA机构可能不像对网站数字证书那样重视和关心其准确性。由于微软公司的S服务器提供了“客户端证书映像”功能,
10、用于将客户端提交证书的名字映射到NT系统的用户帐号,在这种情况下, 攻击者就有可能获得该主机的系统管理员的权限;当然,如果攻击者不能利用上面的非法的证书突破服务器的话,他们还可以尝试运用暴力攻击获取访问的权限,运用暴力攻击客户端认证的方法是:攻击者编辑一个可能的用户名字列表,然后为每一个名字向CA机构申请证书。 每一个证书都用于尝试获取访问权限。用户名的选择越好,其中一个证书被认可的可能性就越高。暴力攻击证书的方便之处在于它仅需要猜测个有效的用户名,而不是猜测用户名和口令。攻击者还可能窃取有效的证书及相应的私有密钥,其最简单的方法是特洛依木马病毒,这种攻击几乎可使客户端证书形同虚设,它攻击的是
11、证书的一个根本性弱点:私有密钥整个安全系统的核心经常保存在不安全的地方,对付这种攻击的唯一有效方法是将证书保存到智能卡或令牌之类的设备中。图 3 客户端 SSL通信安全代理工作原理示意图5.4.2 解决策略证书的安全可以采用IDs(Intrusion Detection System),它是一种用于监测攻击服务器企图的技术和方法。典型的IDS 监视到网络信息与保存在数据库中的已知攻击“特征”或方法进行比较,如果发现攻击,IDS 可以提醒系统管理员切断连接或甚至实施反攻击等。但是,如果网络通信是加密的,IDS 将无法监视攻击者,而且反而可能会使攻击者更为轻松的实施攻击。解决的方法是通过Proxy
12、 代理服务器的SSL,可以在一个SSL proxy 代理服务器程序上使用这项资料审查技术。SSL proxy 是一个连接在80 端口上接受纯文字的HTTP通信请求的软件,它名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 10 页 - - - - - - - - - - 8 - 会将这些请求通过经由SSL加密过的连接,转寄到目标网站。在连接端口80 开一个听取S0cket( 侦听 ) ,通过 0pen SSL096 指令,将所有进入这个Proxy 的数据传送出去。通过这个
13、SSL Pro)(y机制,只要将安全扫描软件指向Proxy 的 IP 地址,就可以用来审查SSL服务器,从而满足信息传输安全的需求,其使用proxy 代理服务器的工作原理如图3。5.5 SSL 不能提供交易的不可否认性 SSL 协议是基于Web应用的安全协议,它只能提供安全认证,SSL链路上的数据完整性和保密性。 对于电子商务的交易应用层的信息不进行数据签名,因此,不能提供交易的不可否认性,这是 SSL在电子商务中使用的最大缺欠5.6 密钥管理问题客户机和服务器在连接初期互相发送自己能支持的加密算法时,以明文返回选定的加密算法和主密钥,主密钥前40 位不加密, 其余位加密, 此时可能会被攻击者
14、修改为强度最弱的加密算法,导致以后传输的加密数据包被攻击者破解。另外,所有的会话密钥中都将生成主密钥master-key ,实际的密钥并不是主密钥,而是由它生成的两个密钥client-write-key (server -read-key)和 client - read-key( server-write-key),并且当客户机和服务器再次握手时,不再协商加密算法和主密钥,因此握手协议的安全完全依赖于对主密钥的保护,如果主密钥管理不妥被泄露,则通讯传输中的加密数据包极可能被破译。5.7 加密算法的强度限制通过互联网传输敏感数据的一个问题是传输过程会经过许多中间环节,这一路由过程是所有互联网传输
15、的基础, 而在路由线路上的任何一台计算机都可能完全获得传输的信息,这样就使得别人有可能截获并破译你的秘密信息。美国政府规定,加密技术属于军用品受军火国际贸易法规的制约, 其产品出口必须取得出口许可证。因此密钥长度超过512bit的 RSA算法不能用于SSL的密钥交换算法,密钥长度超过40bit的对称加密算法如RC4 ,DES等不能用于SSL的数据加密,故美国出口的SSL协议产品的加密算法的安全性不足,不能用于安全性要求高的网络服务。5.8 版本回滚攻击SSL 3.0 不包含任何重大缺陷, 通过 SSL 2.0 协议得到了一些改进, 这就是为什么我们不希望一个攻击者尝试版本回滚的攻击。对于攻击者
16、使版本3.0 的各部分回到2.0 版本,是非常有用的基于SSL3.0 的改进。 这种攻击只会发生在两个3.0 版本兼容使用的是2.0 版情况下。 这允许中间人让客户选择一个较弱的cipher suite来进行攻击。例如选择DES对称加密算法。如果发生这种情况, 一个攻击者可能暴力途径获得这两个部分之间交换的数据。这个攻击者也获得如密码和身份cookie 等信息。不幸的是,如今,SSL2.0 在服务器端依然是默认的。有一个主要预防的手段在SSL3.0 上 ,但它留下了一些情况下成功进行版本回滚的攻击。这种预防是向RSA填充位添加版本号。在任何敏感数据被发送之前,两个使用2.0 版本的被骗部分将检
17、测到错误。显然,这仅适用于一个RSA已经被选择的情况下。如果攻击者把字段替代为2.0 版 hello消息和 Diffie-Hellman,攻击也奏效。 也可能在session回复期间获得数据。因为名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 10 页 - - - - - - - - - - 9 - 某种原因服务器允许一个客户端来恢复一个3.0 版本 session到 2.0 版本 hello报文 , 因为它在恢复期 ,主密钥没有重新共享。因此没有RSA填充检测到错误的版
18、本号。幸运的是, 这些漏洞可以通过执行禁用 3.0版本到 2.0 版本的恢复进行控制, 并通过只允许RSA运行在 2.0 版本的兼容性模式。最好的行动当然是禁用2.0 版本兼容性模式。参考文献 : 1 刘春荣 . 基于 SSL协议的电子商务安全性分析J. 信息与电脑 . P10-12, 2010.3. 2 王伟 . SSL 、 SET协议及其安全技术J. 郑州航空工业管理学院学报( 社会科学版 ). 23(1), P122-123, 2004.2. 3 苏金国 . SSL 安全协议 J. 上海微型计算机. 2001.1. 4 戴英侠 , 左英男 , 许剑卓 . SSL 协议的安全缺陷与改进J.
19、 中国科学院研究生院学报. 17(1),P86 92, 2004.2. 5 任静,李涛 . 客户端 SSL安全代理的设计与实现J. 计算机应用研究. P80-81, 2003.6. 6 胡国华,袁树杰. SSL 协议安全缺陷分析J.计算机系统应用. P25-50, 2006.8. 7 郭正荣,周城. SSL 协议工作过程及其应用J. 网络安全技术与应用. P7-21, 2004.10. 8 Veronika Heimsbakk, Andre Boganskij Amundsen. SSL Security ThreatsJ. P8-9, 2012,5. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 10 页 - - - - - - - - -