微软正在考虑引入public-key pinning机制,以抵御针对IE的中间人(MITM)攻击。Public-key pinning作为一项对HTTP的拓展,由Google安全工程师今年10月递交给了互联网工程任务组(Internet Engineering Task Force, IETF)。
这项机制能够保护用户防御伪造证书引起的MITM中间人攻击,大部分的中间人攻击也正是基于伪造证书。攻击者会用伪造的或者窃取到的证书获取用户浏览器的信任,从而使得用户误把攻击者的恶意网站当成正规的网站。
Public-key pinning机制之所以能够防御中间人攻击,是因为这项机制允许网站详细说明网站的有效证书是哪一家CA发行的,不再随便接受证书管理器内的数百家Root CA之一发行的证书,也就是把某个证书认证机构(CA)发行的一组公钥与某个域名绑定起来。采用这项机制后,如果用户访问的网站与绑定的公钥不符,浏览器就会拒绝加密连接。
浏览器支持
想要采用这个机制,首先浏览器得先要支持它。Google Chrome已经支持public-key pinning,而今年9月发行的Mozilla Firefox 32,也已经包含PKP功能。而现在微软也正在考虑要在IE浏览器中引入这项机制。
MITM中间人攻击的方式各种各样,但众多攻击中,最关键的一点是使用伪造的证书。为了让用户浏览器信任攻击者控制的网站,攻击者会使用伪造的或者窃取的证书。这种手法非常常见,而最近这种技术经常出现在一些比较知名的攻击中。
近年来知名的MITM中间人攻击事件
2011年,攻击者窃取了荷兰证书认证机构(CA)DigiNotar的证书并私自颁发了众多知名网站的证书,包括Google, Yahoo和Mozilla基金会的证书。
2011年3月,攻击者又窃取了Comodo的证书,颁发了Mozilla, Skype和Yahoo域名的证书。