最近看到国外有一篇有趣的文章,是关于“中间人攻击(man-in-the-middle attack)”的,本想原文翻译,但里面有大量的政治敏感度内容,不宜在本网站公布,这里仅摘译出技术相关的部分内容,供大家探讨。
大概是1月26号早上8点左右,在新浪微博和Twitter上相继有中国用户报告说在访问GitHub.com网站时出现无效SSL证书警告提示。后续不断的证据显示,这是由于受到“中间人攻击(man-in-the-middle attack)”造成的。
中间人攻击(man-in-the-middle attack)指的是什么?
先看看来自维基百科的定义:
在密码学和计算机安全领域中,中间人攻击 ( Man-in-the-middle attack,通常缩写为MITM )是指攻击者与通讯的两端分别建立独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。
这是比较理论的解释,下面是一个比较通俗的演绎:
假设爱丽丝(Alice)希望与鲍伯(Bob)通信。同时, 马洛里(Mallory)企图拦截窃会话以进行窃听并可能在某些时候传送给鲍伯一个虚假的消息。
1. 爱丽丝发送给鲍伯一条消息,被马洛里截获:
爱丽丝 “嗨,鲍勃,我是爱丽丝。给我你的公钥“ --> 马洛里 鲍勃
2. 马洛里将这条截获的消息转送给鲍伯;此时鲍伯不能分辨这条消息是否真的是从爱丽丝那里发来的:
爱丽丝 马洛里 “嗨,鲍勃,我是爱丽丝。给我你的公钥“ --> 鲍伯
3. 鲍伯回应爱丽丝的消息,并附上了他的公钥:
爱丽丝 马洛里 <-- [鲍伯的公钥]-- 鲍伯
4. 马洛里用自己的密钥替换了消息中鲍伯的密钥,并将消息转发给爱丽丝,声称这是鲍伯的公钥:
爱丽丝 <-- [马洛里的公钥]-- 马洛里 鲍勃
5. 爱丽丝用她以为是鲍伯的公钥加密了她的消息,以为只有鲍伯才能读到它:
爱丽丝 “我们在公共汽车站见面!”--[使用马洛里的公钥加密] --> 马洛里 鲍勃
6. 然而,由于这个消息实际上是用马洛里的密钥加密的,所以马洛里可以解密它,阅读它,并在愿意的时候修改它,然后使用鲍伯的密钥重新加密,并将重新加密后的消息转发给鲍伯:
爱丽丝 马洛里 “在家等我!”--[使用鲍伯的公钥加密] --> 鲍伯
7. 鲍勃认为,这条消息是经由安全的传输通道从爱丽丝那里传来的。
可以看出,当受到中间人攻击时,你发送到任何信息都会被中间人截获——即使传输协议是加密的。比如说你在一个网吧或咖啡馆使用里面的无线网络上网,如果这个网络被动过手脚,有中间人劫持了网络,你的登录邮箱/微博的密码,网上支付的密码,你发送到电子邮件的内容,你的QQ聊天记录……都有可能被中间人截获。上面提到的那篇文章里称这次针对github.com的中间人攻击大概持续了1个小时,在这一个小时里从国内登录github.com的人的密码都有可能被人记录。
中间人攻击是可以探测到的
大部分的浏览器都能发现用https协议访问互联网时的SSL证书出现的异常情况,它们会提醒你该网站的安全证书不受信任,如上图,十分的醒目。如果你是使用火狐、谷歌、Safari等现代浏览器时,每次有证书异常情况发生,它们都会出现这个警告界面,但如果你使用的是IE浏览器,它只会在第一次提醒你。
这篇文章里特别提到了中国国内市场占有率排名第一、达到27%的“360安全浏览器(360 Safe Browser)”,使用它访问具有伪造的SSL证书的网站时,第一次访问也会出现警告信息,但第二次访问时竟然弹出来绿色醒目的“通过绿色网站认证”标志![汗]
在这篇外文面前,我这个本来毫不相干的中国人都觉得脸红。取什么名字不好,偏偏叫什么“安全”浏览器,自己打自己嘴巴。幸好我从来不使用那些360、搜狗、百度等等的“国产”浏览器。
如果你想多了解一些关于中间人攻击的知识,这篇文章里提供了一个简单的让你实时对真证书和假证书进行比度的功能,有兴趣的朋友可以试一试。这篇文章的地址是这里。
从不使用360的产品
360浏览器 什么时候 市场占有率 那么高了?
呃······蛮正常的吧···用360的多····360没事又喜欢推荐软件···很多电脑小白点了下就装上了····中国国内市场占有率排名第一、达到27%也就可以理解了····
我该说某12306证书无法验证这事情吗,毫无安全感可言
我也想说这件事……每次都让我觉得钱都流进了某铁道部高管的皮包公司!
奇葩的国度 奇葩的浏览器
这也能和国度扯上关系,你是真疼啊。
能看到这篇文章的八成不会使用360吧…
我用了。。。不过用的是极速版,没用 chrome 主要有两个原因:1)不支持鼠标手势,插件实现的不流畅,而且不是所有页面都能用;2)网购太麻烦,每次看好东西还要切换过去付款,无法忍受。有更好解决方案吗?
我有个疑问,什么是鼠标手势,能干什么?学习一下。支付宝只支持ie吗?
鼠标手势是通过按住右键,通过画一个图,达到某种操作。比如画个L表示关闭,等。这个功能,我推荐使用StrokeIt软件,装这个软件后,电脑上几乎的程序都可支持手势了。我用了很长时间了,很不错。
Opera .
你是傻逼,所以你用这个功能
1)你去下载一个Gestures for Chrome(TM) 1.12.1插件,绝对是鼠标手势的鼻祖之一。秒杀你的360或者傲游神马的。
2)换个银行吧,浦发中信神马的都可以。破网银不支持chrome的都换掉。另外在支付宝勾连银行就行了,不必每次登录网银。
StrokeIt,Gestures for Chrome(TM) 1.12.1,马上试试,谢谢推荐:-)
chrome下支付宝、财付通都能用啊,没觉得购物不方便
另外用macbook的触摸板手势比鼠标手势爽多了
https://chrome.google.com/webstore/detail/gestures-for-chrometm-plu/jlgkpaicikihijadgifklkbpdajbkhjo
说好的鼠标手势
360出了款浏览器叫做安全浏览器,黑色幽默
shit 一样的文章,举例用国外的人名,后头来个 360浏览器!
Alice和Bob作为名字的例子在computer security领域很常见,算是惯例吧
在這領域 Alice, Bob都是常客呀…
虽然数字不地道,但这篇文章明显是黑吧?哈哈!
严重同意360就是流氓!
不错的博客 经常来的
“通过绿色网站认证”应该是说github这个网站通过了绿色网站认证,360的安全浏览器本来就基于IE8来搞的,一切可以想见!
写得很好的文章,而且我大概猜到省略的部分是些什么内容了
PS:转了o(∩_∩)o