Total Pageviews

Thursday 30 April 2020

采用【证书白名单策略】,防范MITM攻击

今天(注:3月26日),有很多中国网民反馈,从中国的 IP 访问知名代码托管平台微软 Github.com、Github.io、Github Pages 等网站会加载一个无效的证书,使用国外的 IP 访问则加载正常的证书,疑似该域名遭到了中间人攻击。
......

目前经测试 DNS 系统解析是完全正常的,例如,pages.github.com 的 IP 地址解析并未出现问题,从中国地区解析的 IP 为185.199.111.153,是属于 Github 的 IP 地址。受影响的主要是部分地区用户但涉及所有运营商。
由于攻击者使用的自签名证书不被所有操作系统以及浏览器信任,因此用户访问这些网站时可能会出现安全警告。
  “中间人攻击”洋文称作“MITM”,维基百科的介绍在“这里”。
  根据某些网友当天的网络分析,这次事故很大可能是 GFW 搞的。类似的情况已经不是第一次出现了(前几年也有,也是短暂出现了一下)
  不排除 GFW 在进行某种 MITM 的技术尝试,或者在尝试的过程中出现了某种失误,导致上述现象。
  这次事件给大伙儿敲了警钟——
很多使用 Github 的网民发现异常是因为——浏览器显示“证书警告”。
浏览器显示“证书警告”是因为——这次攻击使用的是一个随便生成的 CA 证书(浏览器当然不认可这种证书)
  试想一下:
如果 GFW 真心要搞 MITM 攻击,它会使用一个很逼真的(看起来合法的)CA 证书;如此一来,浏览器就【不】显示警告信息。基本上很难察觉。
对于普通网民而言,应该尽量把操作系统中(以及浏览器中)那些【不靠谱的 CA】颁发的证书清理干净。所谓“不靠谱的 CA”,除了俺之前专门写博文点名批评的两个老流氓(CNNIC & 沃通/WoSign),至少还包括:【所有】位于朝廷具有司法管辖权的地区的 CA 机构。也就是说:处于“大陆、香港、澳门”的 CA 机构都【不能】信任。
  “清理流氓 CA”的招数有个缺点——容易漏网。因为每隔几年,可能又会有某个天朝的 CA 机构的根证书被加入到“Windows 或 Android 或 iOS 或 Mozilla”的信任列表中。如果你对安全性的要求【非常高】,应该采用【证书白名单策略】。考虑到某些读者比较健忘,俺把当时的招数再重新贴出来:
  你在某个【专用】的浏览器实例中操作特别重要的帐号(也就是说,这个实例只操作这个帐号,不访问其它网站)然后在该实例中采用【证书白名单策略】——只留下这个帐号对应网站所需的 CA 证书,其它证书全部禁掉。当然啦,你还需要保留一个【通用】的实例,用来进行日常的上网浏览。如此一来,假设你有 N 个重要帐号,需配置 N + 1 个实例。
  浏览器的选择:
  Chrome 和 Firefox 都可以创建“多实例”,但 Chrome 有个【缺点】——它用的是操作系统的证书。因此,Chrome【无法】使用刚才介绍的招数。
  相比之下,Firefox 使用的是【自带证书】。因此,你可以创建多个 Firefox 实例,并通过配置让每个实例的证书都采用各自的【白名单策略】。

No comments:

Post a Comment