昨天朋友圈被“回顾你和微信的故事”刷屏了。
即使用微信打开链接:
https://support.weixin.qq.com/cgi-bin/mmsupport-bin/getmyrelationwithwx?action=getme
可看到你是什么时候加入微信的,第一个好友是谁,2015年共添加了多少位好友等等。
但朋友圈同时也夹杂着一些“谣言”(诸如盗号、资金损失等)或者对其安全性的担忧。
作为一名网络安全从业者,自然不能人云亦云,
首先自然是检查域名和证书。
检查域名是support.weixin.qq.com ,顶级域名为qq.com,属于腾讯无疑;
检查证书:
根证书为系统内置受信任的根证书颁发机构,证书链没有问题,但是地址栏没有显示绿色小锁标志,检查详细信息,原来:
此证书仍旧使用的SHA1作为签名哈希算法。
在笔者之前的微信公众号文章《域名数字证书安全漫谈(2)-签名哈希算法与证书伪造》中提到:基于SHA1签名哈希算法的证书目前尚未发现基于可信根证书的伪造证书案例,但应尽快升级到SHA256 (详情可关注微信公众号:网络安全生命周期 ,查看历史消息)。
暂时服务器侧证书还是安全的。
接下来,笔者将采用自建CA为support.weixin.qq.com签发一张证书,并且劫持DNS,将support.weixin.qq.com指向本地测试机,来进行测试。
部署完毕后,使用PC上的浏览器Chrome进行测试:
以表明针对浏览器Chrome的DNS劫持成功,但浏览器Chrome认出这张证书有问题(根证书不受信任)。
接下来,使用PC版微信打开上述链接:
https://support.weixin.qq.com/cgi-bin/mmsupport-bin/getmyrelationwithwx?action=getme
结果,出现开头的那副正常的界面,这表明在常规DNS被劫持的情况下,流量仍被引导到正确的地址,劫持并未成功。
笔者此前曾经了解过腾讯在DNS方面防劫持的一些做法,其中比较重要的一条是不信任及放弃传统的DNS协议,转而使用自行定制的基于HTTPS的自定义DNS系统,这样针对常规DNS的劫持就失效了。
除非劫持了这套自定义的DNS系统,否则常规的DNS劫持拿它没有办法。
结论:
腾讯在网络安全方面做得还是相当不错的。使用微信打开上述链接当前是安全的(至少确认本次测试过的PC版微信当前没有问题),但仍建议腾讯尽快升级数字证书(将签名哈希算法升到到SHA256)以加强信任。