论ssl协议及中间人攻击

您所在的位置:网站首页 ssl协议不开启后果 论ssl协议及中间人攻击

论ssl协议及中间人攻击

#论ssl协议及中间人攻击| 来源: 网络整理| 查看: 265

论ssl协议及中间人攻击 来源:用户上传      作者:

  摘 要:该文主要讨论近期出现SSL的中间人攻击协议,SSL中间人攻击 是通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情。本文是针对SSL的中间人攻击原理分析和实践。   关键词:中间人攻击;SSL握手协议;SSLstrip;CAIN   1SSL协议不再安全了?   2013年2月,在美国举行的黑客大会上,一位独立的黑客演示了一种可以利用SSLstrip + CAIN工作,实施中间人攻击实现https转换成http 以获取帐号密码。   SSL中间人攻击并不针对SSL本身的技术漏洞,而是利用Web客户端与服务器之间SSL通讯时缺乏有效验证的缺陷。如果攻击目标是网银用户,攻击成功时黑客可以取得网银用户的用户名和登录密码,给网银业务的安全带来安全威胁。   以下篇幅我们就分析一下SSL协议及中间人攻击的原理、防御方式。   2SSL 介绍   SSL 是Security Socket Layer 的缩写,称为安全套接字,该协议是由Netscape 公司设计开发。使用SSL 可以对通讯内容进行加密,以防止监听通讯内容,主要用于提高应用程序之间的数据的传输安全。SSL协议分为三个子协议:   (1)握手协议,用于协商客户端和服务器之间会话的安全参数,完成客户端和服务器的认证。   (2)记录协议,用于交换应用数据,所有的传输数据都被封装在记录中,主要完成分组和组合,压缩和解压缩,以及消息认证和加密等功能。   (3)警告协议:用来为对等实体传递SSL的相关警告。   SSL协议的实现有Netscape开发的商用SSL包,还有在业界产生巨大影响的Open SSL软件包。目前在国内的金融系统中,广泛使用OPENSSL软件包进行应用开发。   3SSL协议的安全性   在本节中,我们着重分析一下SSL的握手协议。SSL握手协议的设计充分考虑了在一个不安全的网络环境下,如何建立一个可信的通信环境。SSL握手协议对通信个体进行验证、建立会话密钥等。SSL的握手协议设计非常复杂,客户端和服务器端协商它们在安全信道中要使用的安全参数,这些参数包括要采用的协议版本、加密算法和密钥。   3.1握手协议的作用   SSL中的握手协议,充分利用了“对称算法加密速度快,公钥算法密钥管理方便”的特性,将公钥加密技术与对称密钥加密技术的应用有效、巧妙地结合在一起,组成了互联网上信息安全传输的通道。   SSL握手协议中利用公钥技术的“公钥算法密钥成对”的特性,提供了更好的身份认证技术。SSL握手协议使用私钥加密的信息,可以用公钥拷贝对其解密,接收者由此可知这条信息确实来自于拥有私钥的某人,所以公钥一般用来加密信息量小而关键的身份认证信息。SSL的握手协议可以非常有效地让客户与服务器之间完成身份认证。通过SSL客户端与服务器传送自己的数字证书,互验合法性,特别是验证服务器的合法性。   3.2SSL握手协议过程   1.握手协议工作过程   SSL握手协议的具体工作过程描述如下。   (1) 客户(client)端发送ClientHello信息给服务器(Server)端,Server回答ServerHello。这个过程建立的安全参数包括协议版本、“会话”标识、加密算法、压缩方法。另外,还交换两个随机数:C1ientHello.Random和 ServerHello.Random,用于计算机“会话主密钥”。   (2) Hello消息发送完后,Server端会发送它的证书和密钥交换信息。如果Server端被认证,它就会请求Client端的证书,在验证以后,Server就发送HelloDone消息,以示达成了握手协议,即双方握手接通。   (3) Server请求Client证书时,Client要返回证书或返回没有证书的指示,这种情况用于单向认证,即客户端不装有证书。然后,Client发送密钥交换消息。   (4) 服务器Server此时要回答“握手完成”消息(Finished),以示完整的握手消息交换已经全部完成。   (5) 握手协议完成后,Client端即可与Server端传输应用加密数据,应用数据加密一般是用第2步密钥协商时确定的对称加/解密密钥,如DES、3DE等。目前,常见的加密强度为128位,非对称密钥一般为RSA,商用强度为1024位,用于证书的验证。   双向SSL握手协议充分考虑了在复杂、危险、充满挑战的公网环境中,如何确保客户端、服务器端安全可信的相互认证对方,并安全建立起SSL通道,成功协商参数。   在上述双向认证 SSL 握手过程在步骤3中,请求客户端的证书信息可以验证,这种情况要求服务器和用户双方都有证书。单向认证 SSL 协议不需要客户拥有 CA 证书,具体的过程相对于上面的步骤,只需将服务器端验证客户证书的过程去掉,以及在协商对称密码方案,对称通话密钥时,服务器发送给客户的是没有加过密的密码方案。   4中间人攻击   4.1中间人攻击类比   有个人曾经宣称他可以同时跟两个世界象棋大师下棋,并能与他们旗鼓相当。你知道怎么可以做到吗?实际上他充当了一个中间人角色,他给大师A下棋,然后将大 师A的走法复制一般作为自己对大师B的走法。然后再把大师B的对策复制一遍,自己用来对付大师A。这样实际上是大师A和B的对弈。如果类比到网络安全领域,就是中间人攻击,或者是从网络安全领域类比过来。   怎样防止这种中间人攻击呢?中间人之所以能够得逞,关键就是,无论是网络通话还是国际象棋,双方总是一先一后地发送信息。不过,在网络通讯中,我 们有一种很特别的办法,他可以迫使中间人无法再扮演“即时翻译”的角色。首先,A把想说的话(最好是能够证明自己身份的话)进行加密,同时B也完成相同的 工作。然后,A把他的加密消息的前面一半传给B,B收到后也把他的密文的一半传给A;A再把剩下的部份传给B,之后B也把他的密文的另一半回传给A。此时,A和B分别用自己的私钥进行解密,查看对方发来的消息。这带给中间人C一个不可逾越的障碍:两段密文要合在一起才能解开,中间人拿着其中一半密文,那 是一点办法都没有。此时,中间人陷入了一个非常窘迫的境地,他只有两条路可选:要么硬着头皮把这半截密文发给B,当B得到全部密文后会发现用他自己的私钥 根本解不开,从而意识到中间有人捣乱;要么就忽略这半截密文,自己编几句A想跟B说的话,用B的公钥加密并发一半给B。如此一来,中间人需要编造所有A和 B之间的对话,这需要相当厚的脸皮,风险异常之大,要不了多久便会露出马脚。   4.2SSL中间人攻击   在第三节中提到,单向认证 SSL 协议不需要客户拥有 CA 证书。X509数字证书是SSL的重要环节,CA证书的任务就是确保客户和服务器之间的会话,并且保证使用的密钥是正确的。缺少了这个重要的环节,SSL中间人攻击也就难免了。 转载注明来源:https://www.xzbu.com/8/view-11298614.htm



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3