摘要: 当年12306居然要本身安装证书...编程
Fundebug经受权转载,版权归原做者全部。小程序
中间人攻击(man-in-the-middle attack, abbreviated to MITM),简单的讲,就是黑客悄悄的躲在通讯双方之间,窃听甚至篡改通讯信息。而通讯双方并不知道消息已经被截获甚至篡改了。微信小程序
举个例子,小明用微信发一条消息给小红,这条消息会从小明的手机发送到微信的服务器,再由微信服务器转发给小红,理论上讲,微信服务器是能够查看或者修改小明发送的信息的。这个时候,微信服务器就能够是实施攻击的中间人。浏览器
也有一些人,会经过代理服务器浏览某些外网,这里的代理服务器其实就充当了中间人的角色。安全
对于我的而言,MITM到底有什么用?这就得先从MITM的攻防提及了。服务器
首先看看如何防止攻击。最有效的防攻击手段就是一次性密码(One Time Password),由信息论发明人香农提出,理论上讲是绝对安全的。可是一次性密码也有个前提,那就是安全的把密码传达给对方。这里好像就已经陷入死胡同了。微信
对于访问互联网而言,不管是经过浏览器仍是APP客户端,通常都会使用HTTPS的方式通讯,这其实就是一种比较有效的加密方式。在这种通讯过程当中,客户端或者操做系统内置了权威CA(certification authority)的根证书,而服务器在通讯之初,会先返回在CA那里获取的签名证书,而后客户端用根证书验证证书有效性,最后使用验证经过的证书提供的公钥加密数据。加密
这里有个前提假设,那就是权威的证书机构不会把签名信息泄露出去。What an F-word,是否是有种无力感,咱们的互联网安全其实仍是创建在人性和道德的基础上。这里其实也有个死循环,系统经过服务器的CA证书证实有效性,而CA自己又须要其余CA来认证本身的有效性。解决这个问题实际上是经过系统或者浏览器自己集成知名根证书。spa
早年12306非得使用本身签名的证书,而主流浏览器又不承认,致使用户须要在首次下载证书并安装。这实际上是个很危险的操做,不法分子彻底能够利用这个机制把非法证书安装到用户设备上。好在如今12306已经采用DigiCert颁布的证书了。操作系统
除了CA数字证书,还有一些专用的密钥交换协议,好比ZRTP、HPKP、DNSSEC等,他们都能在必定程度上保障通讯安全。
除了直接认证以外,还能够经过篡改检测、取证分析等手段防范MITM。
简单提一下,目前最有效的加密方式多是量子加密(Quantum cryptography)。量子加密同时拥有数学和量子力学两大学科加持,只要数学和量子理论没有问题,那么量子加密理论上就是绝对安全的。关于量子加密,之后会专门讲一下。
以HTTPS加密破解为例。为防止不法分子技术滥用,本文仅分享一下原理。
咱们不防在客户端和服务器之间加入一个“中间人”,好比在电脑端安装Fiddler(抓包神器)。关于Fiddler抓包的方法网上教程不少,这里就不赘述了。直接上图:
至此,服务器和客户端的数据对于中间人Fiddler而言已是彻底透明的了。
其实,掌握了MITM技术,了解各大APP的实现逻辑就很简单了,一众收费的APP基本能够实力碾压。
失而复得的手机也许应该格式化,没准有人在钓鱼。
想起之前本身说的一句话,知道原理,真的能够随心所欲。
Fundebug专一于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了20亿+错误事件,付费客户有阳光保险、核桃编程、荔枝FM、掌门1对一、微脉、青团社等众多品牌企业。欢迎你们免费试用!