作者:易心玄 链接:http://www.zhihu.com/question/24484809/answer/70126366 来源:知乎 著作权归作者所有,转载请联系作者获得授权。
首先fiddler截获客户端浏览器发送给服务器的https请求, 此时还未建立握手。
第一步, fiddler向服务器发送请求进行握手, 获取到服务器的CA证书, 用根证书公钥进行解密, 验证服务器数据签名, 获取到服务器CA证书公钥。
第二步, fiddler伪造自己的CA证书, 冒充服务器证书传递给客户端浏览器, 客户端浏览器做跟fiddler一样的事。
第三步, 客户端浏览器生成https通信用的对称密钥, 用fiddler伪造的证书公钥加密后传递给服务器, 被fiddler截获。
第四步, fiddler将截获的密文用自己伪造证书的私钥解开, 获得https通信用的对称密钥。
第五步, fiddler将对称密钥用服务器证书公钥加密传递给服务器, 服务器用私钥解开后建立信任, 握手完成, 用对称密钥加密消息, 开始通信。
第六步, fiddler接收到服务器发送的密文, 用对称密钥解开, 获得服务器发送的明文。再次加密, 发送给客户端浏览器。
第七步, 客户端向服务器发送消息, 用对称密钥加密, 被fidller截获后, 解密获得明文。
由于fiddler一直拥有通信用对称密钥, 所以在整个https通信过程中信息对其透明。
下面的文章有详细说明
HTTPS 能否避免流量劫持?
近日,看了一篇关于流量劫持的文章《安全科普:流量劫持能有多大危害?》,作者EtherDream以图文并茂的形式详细讲解了流量劫持及相关知识。“在如今这个讲究跨平台、体验好,并有云端支持的年代,WebApp 越来越火热。各种应用纷纷移植成网页版,一些甚至替代了客户端。同时,也造就了流量劫持前所未有的势头。”小编总结,这里提到的流量劫持危害,大多跟Http明文传输协议的薄弱有关系。
我们来看看流量劫持会带来什么危害?
不同的劫持方式,获得的流量也有所差异。DNS 劫持,只能截获通过域名发起的流量,直接使用 IP 地址的通信则不受影响;CDN 入侵,只有浏览网页或下载时才有风险,其他场合则毫无问题;而网关被劫持,用户所有流量都难逃魔掌。
1、http易致在线应用被劫持
网页技术在近些年里有了很大的发展,但其底层协议始终没有太大的改进 —— HTTP,一种使用了 20 多年古老协议。在 HTTP 里,一切都是明文传输的,流量在途中可随心所欲的被控制。而在线使用的 WebApp,流量里既有通信数据,又有程序的界面和代码,劫持简直轻而易举。因此,劫持网页流量成了各路黑客们的钟爱,一种可在任意网页发起 XSS 的入侵方式。
2、公共场合使用http,不登陆也会被劫持
在自己的设备上,大家都会记住各种账号的登录状态,反正只有自己用,也没什么大不了的。然而,在被劫持的网络里,即使浏览再平常不过的网页,或许一个悄无声息的间谍脚本已暗藏其中,正偷偷访问你那登录着的网页,操控起你的账号了。
3、http状态下,Cookie 记录或浏览器自动填表单,都会导致账号密码被截获
http状态下,cookie记录的都是明文的账号密码,被劫持泄露后,即使数量不多,也能通过社工获取到用户的更多信息,最终导致更严重的泄露。
4、HTTP 缓存投毒
HTTP这种简单的纯文本协议,几乎没有一种签名机制,来验证内容的真实性。即使页面被篡改了,浏览器也完全无法得知,甚至连同注入的脚本也一块缓存起来。但凡具备可执行的资源,都可以通过预加载带毒的版本,将其提前缓存起来。
5、Https能避免劫持吗?
能!但前提是必须用受信任的SSL证书。
不同于简单的Http代理,HTTPS 服务需要权威CA机构颁发的SSL证书才算有效。自签证书浏览器不认,而且会给予严重的警告提示。而遇到“此网站安全证书存在问题”的警告时,大多用户不明白是什么情况,就点了继续,导致允许了黑客的伪证书,HTTPS 流量因此遭到劫持。
如果重要的账户网站遇到这种情况,无论如何都不该点击继续,否则大门钥匙或许就落入黑客之手。
这里所说的权威CA机构是指已经通过WebTrust国际认证,根证书由微软预置,受微软等各类操作系统、主流移动设备和浏览器信任的CA机构;在中国还要附加一项,就是要拿到工信部许可的CA牌照;这样的CA机构,才有权利签发各类数字证书,比如wosign(沃通)。
自签证书是指不受信任的任意机构或个人,自己随意签发的证书,容易被黑客伪造替换。
6、全站Https的重要性
情况一:从http页面跳转访问https页面
事实上,在 PC 端上网很少有直接进入 HTTPS 网站的。例如支付宝网站,大多是从淘宝跳转过来,而淘宝使用的仍是不安全的 HTTP 协议。如果在淘宝网的页面里注入 XSS,屏蔽跳转到 HTTPS 的页面访问,用 HTTP 取而代之,那么用户也就永远无法进入安全站点了。
尽管地址栏里没有出现 HTTPS 的字样,但域名看起来也是正确的,大多用户都会认为不是钓鱼网站,因此也就忽视了。
因此,只要入口页是不安全的,那么之后的页面再安全也无济于事。
情况二:http页面重定向到https页面
有一些用户通过输网址访问的,他们输入了 http://www.alipaly.com 就敲回车进入了。然而,浏览器并不知道这是一个 HTTPS 的站点,于是使用默认的 HTTP 去访问。不过这个 HTTP 版的支付宝的确也存在,其唯一功能就是重定向到自己 HTTPS 站点上。
劫持流量的中间人一旦发现有重定向到 HTTPS 站点的,于是拦下重定向的命令,自己去获取重定向后的站点内容,然后再回复给用户。于是,用户始终都是在 HTTP 站点上访问,自然就可以无限劫持了。
国外各大知名网站(PayPal,Twitter,Facebook,Gmail,Hotmail等)都通过Always on SSL(全站https)技术措施来保证用户机密信息和交易安全,防止会话攻击和中间人攻击。
7、搜索引擎劫持
事实上,HTTPS 站点还有个很大的来源 —— 搜索引擎。遗憾的是,国产搜索引擎几乎都不提供 HTTPS 服务。
谷歌已开始提供https加密搜索方式。Google在官方博客介绍说,普通的HTTP浏览是不安全的,用户和服务器之间的通讯会被第三方监听和干扰,对于Google来说,你在Google搜索的词语会被第三方截获,如果第三方不希望你在Google搜索这个词语,还可以通过技术手段阻止用户的搜索行为。使用HTTPS的Google搜索中,用户搜索的信息将无法被第三方获取,也不会出现数据泄漏的问题,搜索结果页面也不会被干扰或篡改。
结语
从上面的各类劫持案例中,我们可以看出,Https是很有效的流量劫持防范措施,无论是网络服务提供商还是广大网民,为咱自己的帐户安全和权益,都要形成使用https访问网站的习惯和意识,重要的网站必定使用 HTTPS 协议,登陆时需格外留意!
来源:oschina
链接:https://my.oschina.net/u/2829137/blog/714990