破解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也无法保证安全了呢?欢迎与我进行探讨。
破解Google Gmail的https新思路的更多相关文章
- 360浏览器有个 谷歌访问助手(插件管理里搜谷歌即可) 可以免费访问:谷歌搜索,Google+ gmail
360浏览器有个 谷歌访问助手(插件管理里搜谷歌即可) 可以免费访问:谷歌搜索,Google+ gmail
- charles4.2下载与破解方法以及配置https
Charles的使用方法 Charles下载地址 地址:https://www.charlesproxy.com/latest-release/download.do 2. Charles破解 破解地 ...
- Mac用户抓包软件Charles 4.0 破解 以及 抓取Https链接设置
相信大家曾经都是Window的用户,作为前端哪能没有一款抓包工具,抓包工具可以非常便捷的帮助我们分析接口返回报文数据,快速定位问题. 曾经横扫window用户的Fiddler便是我们的挚爱,然而,作为 ...
- Charles安装破解、抓取https请求及常见问题解决方法
现在基本大部分网站都使用了https,所以要想抓到https的请求,首要任务是先有工具:charles.fiddler,先介绍下charles针对https请求的抓取方法,此方法兼容windows和m ...
- linux下jira搭建&破解(转自:https://www.cnblogs.com/zpw-1/p/9553358.html)
写在前面 网络类似文章不少,但是同样的路,别人走可能一马平川,自己走可能磕磕绊绊.记录一下自己搭建过程的一路踩坑历程[目前还记得的]. 一.环境准备 1,jira7.3的运行是依赖java环境的,也就 ...
- 破解google翻译API全过程
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/6554340.html 前言 google的翻译不得不承认它 ...
- charles4.2下载与破解方法以及配置https.RP
Charles下载地址 地址:https://www.charlesproxy.com/latest-release/download.do 2. Charles破解 破解地址:https://www ...
- 配置Google Gmail分类和过滤器
简单的记两笔. 首先点击右上角的⚙️里面选择settings. 选择Filters and Blocked Addresses 在这个页面可以选择 create a new filter创建一个新的过 ...
- 电信级的RSA加密后的密码的破解方法
一直以来,电信通过HTTP劫持推送广告的方式已经存在了很多年了,这种手段至今并未停止.这种手段月光博客曾经有多次曝光,见<电信级的网络弹出广告>.<获取了电信恶意弹出广告的罪证> ...
随机推荐
- 解迷宫的C++的未完善编程代码........请大神们帮忙改善下.........
这...................................................................... 我也是醉了 看不太懂,大神们求解............ ...
- javascript回文和类名的检测方法
回文** //"123"变为"123321" //"abc321"变为"abcd321123cba" ...
- SQL 存储过程 分页查询
ALTER PROCEDURE [dbo].[gzProc_TablePage] @tablename varchar(MAX),--表名 @selcolumn varchar(MAX),--查询字段 ...
- Adding a Controller
MVC stands for Model, View, Controller. MVC is a pattern for developing applications such that each ...
- gulp 安装笔记
1.全局安装cnpm(淘宝的npm国内镜像),gulp,rimraf(卸载用插件)npm install -g cnpm --registry=https://registry.npm.taobao. ...
- Js零散知识点笔记
1.将类数组对象转换为数组 ES5: var arrLike = document.querySelectorAll('span'); var arr = Array.prototype.slice. ...
- JS事件模型小结
三种事件模型:原始事件模型(DOM0),DOM2事件模型,IE事件模型: 不同点: 事件程序的注册(给HTML元素所对应的JS对象绑定事件) 事件传播的过程 事件模型的注册: 一.原始事件模型(没有兼 ...
- Linux解读
Linux中权限(r.w.x)对于目录与文件的意义 一.权限对于目录的意义 1.首先要明白的是目录主要的内容是记录文件名列表和子目录列表,而不是实际存放数据的地方. 2.r权限:拥有此权限表示可以读取 ...
- php : Warning: strftime(): It is not safe to rely on the system's timezone settings.
使用 Smarty 的时候出现这种警告: Warning: strftime(): It is not safe to rely on the system's timezone settings. ...
- .Net环境下的缓存技术介绍
.Net环境下的缓存技术介绍 摘要: 介绍缓存的基本概念和常用的缓存技术,给出了各种技术的实现机制的简单介绍和适用范围说明,以及设计缓存方案应该考虑的问题(共17页) 1 概念 1.1 ...