`
zuzong
  • 浏览: 112054 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

SSL中间人攻击及防范

阅读更多
最近,Google针对Gmail被攻击事件, 全面默认启用了始终以https访问Gmail的方式了。但是,对于可以动用整个国家力量的黑客来说,从网络通讯数据中(在此不讨论对用户电脑种木马破解 https的情况,只讨论在网络通讯数据中破解https的方法)破解https除了暴力破解(暴力破解https即使按照现在的集群计算能力仍旧需要几 百至几万年不等)之外真的别无他法了吗?事实并非如此。

  我们知道,https的安全性主要是由SSL证书中的公钥和私钥来保证的。浏览器与服务器经过https建立通讯的时候(不考虑SSL代理方式需要用户提交证书的情况,因为我们现在讨论的是浏览器访问网站,和SSL代理无关)会按照以下步骤保证通讯的安全性:

  1、浏览器连接服务器,服务器把SSL证书的公钥发送给浏览器

  2、浏览器验证此证书中的域是否和访问的域一致(比如用户访问https://mail.google.com/时,浏览器验证服务器发送过来的SSL证书的公钥中的域是否为mail.google.com或*.google.com)并没有过期

  3、如果浏览器验证失败,浏览器通知用户证书有问题,让用户选择是否继续

  4、如果浏览器验证成功,那么浏览器随机生成一个对称密钥并使用接收到的SSL证书的公钥进行加密并发送给服务器

  5、服务器通过SSL证书的私钥对收到的信息进行解密并得到浏览器随机生成的对称密钥

  6、最后服务器和浏览器都通过这个对称密钥进行通讯了(为什么不直接使用公钥和私钥进行通讯?因为非对称加密比对称加密效率低)

  这个方案看似完美,却无法抵御中间人攻击,攻击者可以按以下步骤实施攻击截取https通讯中的所有数据:

  1、攻击者伪造一个Gmail的SSL证书,使其中的域为mail.google.com或*.google.com,并设置合适的证书过期时间

  2、攻击者等待访问者的浏览器访问Gmail时,通过DNS劫持或IP伪造(对于有路由器控制权限的黑客来说简直轻而易举)的方法使其访问到攻击者的服务器上

  3、攻击者把伪造的SSL证书公钥发送给浏览器

  4、浏览器验证SSL证书的域和过期时间都没错,认为访问到的就是Gmail本身,从而把对称密钥发送给黑客服务器

  5、黑客服务器把伪造的Gmail网页通过收到的对称密钥加密后发送给浏览器

  6、访问者通过浏览器输入Gmail帐户,发送给黑客服务器,黑客服务器通过收到的对称密钥解密后成功获得访问者的Gmail密码

   为了抵御这种中间人攻击,SSL证书需要由可信的SSL证书颁发机构颁发,形成一个证书链(比如Gmail的证书链为:最底层为网域 mail.google.com,上一层为Thawte SGC CA证书颁发机构,最顶层为很有名的VeriSign证书颁发机构)。那么,浏览器除了需要验证域和有效期外,还要检查证书链中的上级证书公钥是否有效, 上级的上级证书公钥是否有效,直至根证书公钥为止。这样就可以有效避免中间人攻击了,因为根证书公钥都是预装在操作系统中的,黑客如果不是暴力破解,无法 得到根证书的私钥,如果黑客自己生成一个私钥,浏览器验证根证书公钥的时候发现无法通过操作系统中预装的公钥加密数据后使用这个私钥进行解密,从而判定这 个公钥是无效的。这个方案也是现在https通讯通常的方案。

  那么,这个现在所有的浏览器正在使用的https通讯方案就无懈可击了 吗?答案仍是否定的。我们可以看到,在后一个方案中,https的安全性需要在证书颁发机构公信力的强有力保障前提下才能发挥作用。如果证书颁发机构在没 有验证黑客为mail.google.com的持游者的情况下,给黑客颁发了网域为mail.google.com的证书,那么黑客的中间人攻击又可以顺 利实施:

  1、攻击者从一家不验证mail.google.com持有者的SSL证书颁发机构WoSign那里得到了网域为 mail.google.com的证书,此证书的证书链为:最底层为网域mail.google.com,上一层证书颁发机构为WoSign,顶层证书颁 发机构为VeriSign

  2/3、第二、第三个步骤同上一个方案的中间人攻击的第二、第三个步骤

  4、浏览器验证SSL证书的域和过期时间都没错,继续验证证书链:

    4.1、最底层的网域mail.google.com证书公钥不在操作系统中,无法验证其访问到的就是Gmail本身,继续验证上一层证书颁发机构

    4.2、上一层证书颁发机构WoSign的公钥也不在操作系统中,仍旧无法验证其有效性,继续验证上一层证书颁发机构

    4.3、浏览器看到顶层证书颁发机构VeriSign的公钥在操作系统中,认为证书链有效,从而把对称密钥发送给黑客服务器

  5/6、第五、第六个步骤同上一个方案的中间人攻击的第五、第六个步骤。黑客成功获得访问者的Gmail密码

   然而,不验证域名持有者就颁发证书的情况在国外几乎不会发生,但是在国内就不一定了。针对破解目标,国内证书颁发机构WoSign(在此只是举例国内比 较有名的证书颁发机构WoSign,并不代表WoSign今后一定会这么做)很有可能为了上级要求颁发了证书给非域名持有者的黑客,从而使得破解目标的 Gmail密码被黑客截取。

本文转载自:http://www.williamlong.info/archives/2058.html
分享到:
评论
1 楼 AK53pro 2011-12-24  
SSL证书怎么伪造啊...有数字签名的啊...

相关推荐

    SSL中间人攻击原理与防范

    SSL中间人攻击原理与防范,感兴趣的自己看

    基于ssl中间人攻击例子

    实现一个ssl的客户端和服务端,作为中间人攻击,截取ssl通讯中的密文数据,并进行解密,使用时用把所有的报文都转向给程序所在的机器。

    论文研究-基于SSL协议中间人攻击的实现与防范措施 .pdf

    基于SSL协议中间人攻击的实现与防范措施 ,周珅珅,温巧燕,本文介绍了目前互联网上广泛应用的安全协议SSL的体系架构并分析了其存在的安全漏洞;重点根据协议中基于证书实现身份认证的安全缺

    SSL-CCS注入漏洞分析与中间人攻击实现

    SSL-CCS注入漏洞分析与中间人攻击实现。有不对的地方欢迎指正

    中间人攻击原理

    中间人Stunnel:它是针对本身无法进行TLS或SSL通信的客户端及服务器而设计的一种小型开源软件,Stunnel可提供安全的加密连接。它的作用是接受Apache代理解密后的数据并将这些数据再次加密,冒充原客户端去与目标...

    arp中间人攻击无ssl解密报文

    使用ettercap抓到的未解密的ssl报文,详情见博客https://blog.csdn.net/redwand/article/details/105339933

    ssl攻击实例

    ssl攻击实例

    基于流谱理论的SSLTLS协议攻击检测方法.docx

    基于流谱理论的SSLTLS协议攻击检测方法.docx

    Android安全之Https中间人攻击漏洞

    中间人攻击,Man-in-the-middle attack,缩写:MITM,是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者...

    ssl原理及应用ssl原理及应用

    ssl原理及应用 ssl原理及应用 ssl原理及应用 ssl原理及应用

    SSLstrip0.9

    著名的SSL中间人攻击工具SSLstrip最新版0.9版

    SSL 和windows及浏览器等兼容性报告

    本报告就如何配置SSL/TLS以提供最先进的身份验证和加密技术提出了一般性建议。ssl引擎提供的选项是从 自从Netscape开发SSL2.0以来的早期。TLS的引入使问题变得更具有挑战性,因为服务器和客户端根据各个ssl引擎提供...

    SSL协议的分析及实现

    SSL是一种在客户端和服务器端之间建立安全通道的协议。SSL一经提出,就在Internet上得到广泛的应用。SSL最常用来保护Web的安全。为了保护存有敏感信息Web的服务器的安全,消除用户在Internet上数据传输的安全顾虑。 ...

    SSL原理及应用

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

    禁用ssl2.0、ssl3.0

    Windows Server 2008 /2012 中使用IIS 7 /8默认允许SSL 2.0和SSL 3.0,如果需要禁用的话可采取文档中方法

    SSL协议的分析及实现.doc、SSL协议的分析及实现.doc、

    SSL协议的分析及实现.doc、SSL协议的分析及实现.doc、SSL协议的分析及实现.doc

    SSL双向认证SSL双向认证

    SSL双向认证SSL双向认证

    ssl证书生成工具(sha256算法)

    弱哈希算法签名的SSL证书(CVE-2004-2761)。 远程服务使用SSL证书链,该证书链已使用加密弱哈希算法(例如MD2、MD4、MD5或SHA1)签名。这些签名算法很容易受到碰撞攻击。攻击者可以利用这一点生成另一个具有相同数字...

    SSH和SSL网络服务程序教程

    所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。

    SSL简单介绍及实际案例

    SSL简单介绍及实际案例,ssl排错非常实用。。。 SSL简单介绍及实际案例,ssl排错非常实用。。。

Global site tag (gtag.js) - Google Analytics