月光博客 » 互联网络 » 破解Google Gmail的https新思路

破解Google Gmail的https新思路

  最近,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密码被黑客截取。

  那么,国内的破解目标是不是使用https的Gmail也无法保证安全了呢?欢迎与我进行探讨。

  来源:读者lehui99投稿,投稿人Email为:lehui99@Gmail.com,Google Wave为:lehui99@googlewave.com。

破解Google Gmail的https新思路

顶一下 ▲()   踩一下 ▼()

相关文章

  1. 1
    blublublu   说道:
    我邮箱里的敏感信息都是用7zip32位密码压缩的,而且是多密码多次压缩,而且压缩后放在truecrypt里用20位以上密码和数量不确定的密钥保密的。然后再通过7zip用另一个密码压缩。

    最大的危险在于,有一天我忘了其中一个密码,就完蛋了。但是不会忘的,因为密码是我最喜欢的一本书的一章的每段话第一个字和倒数第二个标点经处理后构成的。至于我喜欢那本书,你猜猜,也许是某个电器产品的说明书。
    木有用的 于 2012-12-19 12:13:45 回复
    可以根据人体工程学,把密码计算锁定到一定程度。
    mafan 于 2013-6-28 15:09:31 回复
    你不觉得那样很麻烦吗?

    支持(26反对(10回复
  1. 2
    用心阁   说道:
    Google的证书是Thawte Consulting (Pty) Ltd.办法并数字签名的,因此可以在连接https://www.google.com/后查看证书的信息。

    最根本的办法就是把所有国内的Root CA都从信任的公钥库中去除,需要用的时候一个个地确认。
    啊哦 于 2010-1-17 23:32:34 回复
    请问 Root CA 在什么目录?
    lehui99 于 2010-1-17 23:33:59 回复
    关键国内的都是中级颁发机构,不在系统中。但是上层机构是国外的而且在系统中,无法删除(删除的话,每个网站的https都要手工验证了)。
    支持(16反对(9回复
  1. 3
    triger   说道:
    嗯,需要对证书颁发机构进行核实
    支持(13反对(7回复
  1. 4
    dcpro   说道:
    什么叫“对于可以动用整个国家力量的黑客来说”?!看月光博客这么久了,第一次动怒了!请月光博客秉承公正客观的观点,对未经证实的言论不评论不引用。
    lehui99 于 2010-1-18 10:34:50 回复
    没看懂吗?此处只是假设罢了,不要不打自招,攻击Gmail为什么只是针对那些特定用户?想想看就知道了。国内的现状不得不让人怀疑国内所控制的一切
    死的蚊 于 2010-1-18 17:43:14 回复
    你说还有谁能动用整个国家力量?月光只是假设这个对象还可能是个黑客而已!
    蜗居宅男 于 2010-1-18 20:14:12 回复
    可以调动一个国家的黑客 我想说有点 比如朝鲜 伊朗等等 您也不用多想
    支持(20反对(15回复
  1. 5
    marsteel   说道:
    像Google这样的公司终将有自己的Root CA,会预装在新的操作系统,可能是Windows8之类。如果Gmail的SSL被伪造劫持,微软或Google会发布紧急更新,将Gmail的SSL证书安装在操作系统里。
    支持(9反对(4回复
  1. 6
    Hello   说道:
    不验证域名持有者就颁发证书的情况在国外几乎不会发生

    几乎!国外?
    lehui99 于 2010-2-6 20:53:17 回复
    显然如此,虽然不排除验证程序不规范。
    支持(11反对(6回复
  1. 7
    john   说道:
    這麼久 回頭來看 退出還是不遠交出那些人士的賬戶密碼 其他的就是沒有骨氣的了 難怪會有明文密碼
    支持(12反对(7回复
  1. 8
    else   说道:
    我好奇了,证书颁发机构又是怎么样鉴定另一个证书签发机构的呢?
    比如说D如果要自己开一个LuanSign,可行性如何?
    lehui99 于 2010-1-17 23:20:20 回复
    通过证书链,并且顶层证书存在于操作系统中。
    lehui99 于 2010-1-17 23:25:28 回复
    哦,你是说开证书颁发机构的资质吧?这个我也不是很清楚。
    lehui99 于 2010-1-18 0:51:00 回复
    中级机构的资质是顶级机构给的,顶级机构的资质是操作系统给的(因为顶级机构的证书集成在操作系统中)。
    路人 于 2010-1-19 1:53:02 回复
    那干脆通过立法或者其他手段、直接要求微软或OEM商在操作系统中内置ZF自己可控的根证书体系。
    支持(11反对(7回复
  1. 9
    GEZ鸽子   说道:
    方法真的可用??
    支持(10反对(6回复
  1. 10
    zhuanwan   说道:
    楼上的看清楚,此文不是Williamlong写的,另人投稿。

    作者的大意是通过一个中/共可以控制的证书颁发机构来伪造Gmail证书+已有的TCP劫持,从而架构一个钓鱼站点来套取Gmail账户信息,还真说的通。
    zvhdd 于 2010-1-18 15:30:01 回复
    考虑到国内的现实情况,还真的做得出来……
    支持(12反对(9回复

发表留言


点击更换验证码