HTTPS/TLS专家指出:不应使用HTTP公钥固定HPKP
发布日期:2017-09-11HTTP公钥固定(或称为HPKP)是HTTPS最具争议的特性之一。它的设计初衷是为了抵御HTTPS所面临的最严重的威胁之一,但它也给了网站操作人员一个不可思议的强大工具,让他们可能受到意外的自我伤害。
近日关于HPKP的争论重新开始,一些领先的HTTPS/TLS专家公开表示,他们认为绝大多数的网站不应该使用HPKP。一些人甚至声称,这种机制弊大于利。那么,为什么这个行业会转而反对HPKP,它会造成什么危害呢?
固定机制带来的希望
在某一点上,固定机制带来了很大的希望。谷歌早在2011年就对其证书进行了固定,这还是在该机制变为IETF的标准之前。这使得他们能够检测到证书颁发机构DigiNotar的漏洞。
该证书颁发机构已经完全被攻破了——攻击者已经进入了他们的网络,并且能够为他们想要的任何网站颁发证书。这是对Web PKI系统安全性的最严重的威胁之一,而HPKP在检测这次攻击中所扮演的角色暗示了这种机制可以极大地造福于用户。
HPKP的工作原理是允许一个网站告诉浏览器,它应该只接受使用指定加密密钥的证书。这是通过让浏览器在一个配置好的时间段内记住(或叫做“钉住”)一个HTTP头来实现的。在此期间——通常是几个月——浏览器将执行这些指令,并拒绝连接使用任何其他密钥的证书,即使它是由受信任的证书颁发机构(在浏览器检查新的HPKP设置之后)颁发的。
如果所提供的证书包含一个未固定的密钥,那么浏览器将给出一个无法忽略的错误。这完全排除了用户建立一个可能受到中间人攻击或使用未授权证书的连接的能力。如果你不能正确地部署HPKP,也可能会发生DoS攻击。
使用HPKP并不像将一个设置从关闭状态转换到开启状态那么简单。有许多决策要做:你应该固定证书链的哪一部分(叶子、中间、根)?你应该把固定多少个备份证书?在一个证书颁发机构不可信或不兼容的情况下,你是否需要从多个证书颁发机构固定证书?
这些选择是HPKP可能带有危险的一个原因。有一系列的组合可以对安全性和灵活性进行平衡。例如,把证书固定在你自己的叶子密钥上,那么你就可以完全避免证书颁发错误的风险。但是现在,你承受着你的网站无法使用的风险,你需要一直守护着几个公钥,希望它们不要过期。
即使你遵循了最佳实践,仍然有一些因素是你无法控制的。你所固定的的证书颁发机构可能会意外地更改它们颁发证书的路径,使你很难或不可能在当前证书到期时获得替换证书。你所固定的密钥可能会变得很弱(比如当整个行业从1024位转换到2048位证书时,这一风险在技术上是可以解决的,但需要更多的专业知识)。
自身造成的HPKP痛苦不仅仅是一种概念上的威胁。当Smashing杂志更新它们的证书时,在使用了一个新的未固定的密钥的情况下,它们的网站四天内无法访问。幸运的是,他们的web主机保留了原来的私钥的副本,使得他们可以据此颁发一个新的证书并修复这个错误。如果这一密钥被删除或丢失,情况就会更糟了。
是福还是祸?
错误配置或其他搞乱HPKP的可能性一直都是众所周知的风险和问题。浏览器通过反对有风险的配置来解决这个问题。例如,如果你不能提供一个备份的pin,或者设置一个过长最大期限(用于遵守设置的时间周期),浏览器将不会强制执行HPKP设置以避免常见的错误。
但是现在许多行业内专家,包括RFC的一些作者,都指出使用这种机制的其他风险,并且还说HPKP是一个错误。
问题并不是HPKP不能提供安全值。在DigiNotar受到的攻击中,它阻止了攻击者对Gmail连接进行中间人攻击——如果这个攻击成功的话,它将是灾难性的。问题是,HPKP会把网站锁定并压缩Web PKI。
Ryan Sleevi是谷歌的一名工程师,也是HPKP RFC的作者之一,他强调了与HPKP的更大的问题。Sleevi说:“对pin的选择不仅仅影响一个网站,而是会影响整个生态系统。”他提到了一些不可信的证书颁发机构的挑战,这是一些网站固定了它们的证书并依赖于这些证书才能被浏览器所接受。
Sleevi还写道,HPKP“对生态系统的伤害大于帮助”,而且他“现在正在主动地阻止它。”HPKP RFC的另一位合作作者Chris Palmer也表示,将其作为互联网标准是一个错误。
在现实中,HPKP所针对的威胁——证书颁发机构被攻破和未授权的证书颁发——并不适用于互联网的大多数情况。从一个受攻击的证书颁发机构中广泛部署可信的证书会导致漏洞很快被发现,只有世界上最流行的那些站点才能确保实现一次有针对性的攻击。
这意味着,应该使用HPKP的网站数量在数百个,但使其成为IETF标准的网站数量已经达到了数百万。虽然没有人把枪放在网站管理员的头上,大喊“固定这些密钥,该死!”我们希望避免让用户有机会犯这样的错误。
Scott Helme是一位经常探讨TLS话题的研究人员,他在他的文章《我正在放弃HPKP》中,开始了对HPKP新一轮的谴责。
在这里,我完全赞同@Scott_Helme,HPKP几乎肯定不是你想要的东西:“我正在放弃HPKP”:https://t.co/T23HOgXLQC
——roy Hunt (@troyhunt) August 24, 2017
//platform.twitter.com/widgets.js
Ivan Ristic是SSL实验室的创建者,他是最先对HPKP表示担忧的行业领袖之一。2016年,Ristic写道:“我需要进行忏悔:我担心HTTP公钥固定(HPKP,RFC 7469)——一种旨在为大众提供公钥固定的标准——可能会灭亡。”他继续说道,同时也表达了同样的恐惧:“使用起来太困难,太危险了。”
文章来源:sslchina
相关资讯:
这时你就会发现相对而言HPKP既复杂又很难用。相关资讯:通过新的CAA标准,HTTPS证书颁发更加安全CA浏览器论坛投票发布证书颁发机构授权(CAA)标准,SSL / TLS证书在颁发...
CA浏览器论坛投票发布证书颁发机构授权(CAA)标准,SSL / TLS证书在颁发之前必须执行CAA强制性检查,作为防止HTTPS证书错误签发的安全措施。
证书颁发机构授权(CAA)是一种可选的安全措施,网站运营商可以使用这些措施来保护其域名免于错误发布。它允许域所有者指定哪些证书颁发机构(CA)被允许为其网站颁发证书。
CA/B论坛第193号投票将对所有公开信任的SSL证书的最大生命周期设置新限制,新的证书有效期为825天——即2年有效期,包括更新和更换部分填充内置——将从2018年3月1日起生效。