最近在微博上一个名为奥卡姆剃刀的博主和信息安全界众多人争吵了两天,当然包括我。
起因是央视节目说wifi的不安全性,银行密码也可被窃取,可能博主有对国内媒体的天生不信任感,所以他站出来了,说银行密码是密文传输的,没法窃取的,是不负责任的。
他没想到,随后一群安全研究员,包括tombkeeper、yuange等大牛不但不跟他一起指责媒体夸大宣传,还指出各种利用无线wifi窃取密码的手段,当然这种人是不可能被说服的。
更详细和精彩的过程还是自己去翻他的微博吧,可惜是昨天晚上他自己删除了几条微博。
然后话说回来使用https到底是不是安全的?
-
https基于可信证书和证书链,但现在问题是你能保证所有的证书颁发都是通过合法的证书链?谷歌和微软已经不是第一次发现一些流氓证书颁发机构发不合法证书了而紧急吊销证书链颁发机构了,而且你能保证所有证书颁发机构密钥都没泄露过?而且在天朝,你们懂得。各种滥发的数字证书和第三方被利用的数字证书。
上面说的证书还至少是真的,但是有时候如果黑客真的去劫持你的流量的话,可能就会使用自己的证书,这样的话,你的浏览器就会提示这是不可信的,但是多少人又选择了继续呢,尤其是在12306出现以后。最近听说了大规模的针对微软账户的攻击,颁发者是
CN = hotmai.com O = hotmail.com C = cn
-
那么有什么技术能让你在没有察觉的情况下,窃取https传输的信息么?
直接去攻击https协议,找到漏洞?貌似有点不大可能(虽然出了heart bleed和goto fail漏洞),但是我们能不能绕过https,让你去使用http呢?这就是MITM中间人攻击。用户HTTP=>hacker的代理=>HTTPS网站
当服务器要求重定向到HTTPS网站,那么这个应答就不返回给用户了,而是模拟用户去访问HTTPS资源,然后把数据放回给用户,这样,在用户看来,他访问的就是个HTTPS的站点,但数据返回都是明文传输的,以此来达到截获明文信息的目的。简单的说就是让你的https变成了http。这时候给你植入一个js或者替换一下密码框,so easy。
昨晚亲测,十分有效,当然分辨的办法就是以前使用https的网站变成了http,你就应该提高警惕。360安全研究员redrain给出的demo视频可能就是使用的这个技术。技术细节参考http://www.freebuf.com/articles/web/5929.html
-
然后大量外包的银行的app就是安全的么?上面提到浏览器在访问https网站的时候会去判断鉴定对方使用的证书,但是app访问https呢,这个鉴定是谁来做的呢,很多app的开发商绕过了安卓的安全机制,自己实现了一套,结果漏洞百出。这个可以看腾讯安全应急相应中心的文章http://security.tencent.com/index.php/blog/msg/41
覆盖默认的证书检查机制后,检查证书是否合法的责任,就落到了我们自己的代码上。但绝大多数app在选择覆盖了默认安全机制后,却没有对证书进行应有的安全性检查,直接接受了所有异常的https证书,不提醒用户存在安全风险,也不终止这次危险的连接。
我们选取了13款使用https通讯的Android app进行分析,这些app全部来自业内大公司。分析结果显示全部的13款app都存在上文描述的敏感信息泄漏漏洞。而泄漏的信息中,密码明文,聊天内容,信用卡号,CVV号随处可见。我们甚至还发现某些app的自动升级过程中使用的https通讯存在同样的问题,劫持流量后替换升级包的url后,该app会下载恶意的升级包并自动升级,直接造成了远程代码执行。
在一篇银行app的安全审计报告中也明确的提出了存在这个安全漏洞。在http://pan.baidu.com/s/1dDd6Bap这个ppt的12页开始。作者是绿盟科技安全技术部总监。
还有你的手机真的是安全的么?安卓的webview挂马漏洞,ios的safair远程代码执行,各种root和越狱,混乱的app市场和山寨软件,一般人怎么知道手机上安装的是真的还是假的银行客户端。即使你手机安全了,电脑呢,电脑上的网银大盗已经够多了吧。
最后想说的是和这种人去争论真的是浪费时间,
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。