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