如果HPKP被黑客利用对HTTPS的影响

公钥固定(Public Key Pinning)「RFC7469」 可以指明在多长时间内哪些CA可以为你颁发证书,以及你只信任哪张证书。

如果黑客渗透到你的服务器,为你偷偷开启HPKP,将是一件很难被发现,但是对你网站影响非常大的事情,也许你发现时已经束手无策。

这种情况也会发生在你错误的设置HPKP或忘记维护HPKP。

HPKP摘要

  • 可以有效防止中间人攻击(目前全球几十家可信CA,数千个可信中级证书这将是一个非常大的受攻击面)
  • 最近几次CA违规被发现都是HPKP的功劳
  • 维护HPKP需要细心,需要有相应的维护计划,以及认真的挑选可信CA
  • 兼容情况:Chrome 42、Firefox48、Opera40都已支持,参考Can i use

一个有意思的设想

如果一家CA雇佣黑客,入侵了大量服务器,偷偷为你的HTTPS网站启用HPKP(这是一件很难被发现的操作),并设置为只信任这家CA颁发中级/根证书和你目前使用的这张证书,有效期设为多年,那么当你网站证书到期后必须在这家CA购买证书,因为你客户的浏览器只认可这家CA颁发的证书。

或者

黑客们利用HPKP来堵住你的HTTPS网站,然后使用备份的证书来敲诈你。

相关安全事件回顾

  • 2016年 WoSign事件,牵扯出StartCom、奇虎360
  • 2015年3月 CNNIC事件
  • 2015年 Lenovo Superfish 和 Dell eDellRoot 丑闻
  • 2012年12月 土耳其证书机构TURKTRUST签发了一张被Chrome通过硬编码(直接把HPKP内置到Chrome代码中,目前只有几家访问量大的网站采用了此方式,其中包括Google)网站的未经授权的证书,导致Chrome、Opera不再识别TURKTRUST的EV证书。
  • 2012年5月 火焰病毒(当时最先进的病毒),其中利用了 Microsoft设计终端服务许可协议时的证书使用MD5签名,以及采用和Windows更新包所使用的代码签名同一个根证书证书
  • 2011年11月 马来西亚证书机构DigiCert Sdn. Bhd. (注意这和美国的Digicert没有关系)签发不安全证书
  • 2011年8月 DigiNotar(一家荷兰CA)被完全入侵,导致签发大量伪造证书并用于互联网,最终DigiNotar的根被完全吊销了,9月宣布破产。
  • 2011年夏天 StartCom被攻击,导致停止签发新证书1周
  • 2011年3月 Comodo代理商违规,RA被入侵,给login.live.com等网站未经授权签发证书
  • 2008年 StartCom网站漏洞导致域名所有权验证被绕过,颁发出未经授权的两张证书

清除浏览器HSTS缓存

在Chrome地址栏打开 chrome://net-internals/#hstsDelete domain 中删除要清空的域名即可。这里只是你本地缓存。

相关文章: