黑客劫持三个国家级域名 伪造谷歌等TLS证书

谷歌10月6日披露,攻击者上周对加纳(.gh)、塞拉利昂(.sl)和美属萨摩亚(.as)三个国家及地区顶级域名发动了一系列劫持,随后篡改其中部分域名的权威DNS记录,利用对DNS的控制通过了证书签发前的自动域名验证,为「多个谷歌域名」以及「多家全球领先品牌和广泛使用的在线服务」拿到了未经授权的TLS证书。拥有伪造证书,攻击者就可以在密码学层面冒充这些网站和服务。
TLS证书是网站、邮件服务器等互联网基础设施身份认证和加密保护的基石,它用数字签名把域名和公钥绑定在一起。攻击链条并不复杂:控制了三个顶级域名注册局之后,攻击者得以修改一批选定网站的IP地址,接收这些域名的流量,并改动权威DNS记录和域名服务器委派,让原本要求「证明你拥有该域名」的行业校验形同虚设。谷歌强调,此次事件没有涉及任何域名所有者自身基础设施的失陷,签发证书的证书颁发机构也都按规则行事——坏就坏在DNS本身换了主人。
谷歌的应对已经落地:Chrome浏览器通过CRLSets机制拦截了所有已确认的未授权证书,使用Chrome的用户无需采取任何行动;谷歌还与涉事证书颁发机构合作,吊销了涉及谷歌域名的证书。随后,证书透明度(CT)日志数据又暴露出更多遭同一波攻击波及的组织,谷歌已主动在Chrome中拦截了这些证书,并在可能的情况下通知了受影响机构。
但谷歌自己也承认防线并不完整:由于DNS劫持的复杂性,无法保证分析找出了每一个受影响的域名,Chrome的拦截也保护不了非Chrome用户。谷歌建议域名所有者不要依赖浏览器端的补救,而应持续监控证书透明度日志(覆盖包括停用域名在内的全部域名资产),并发布带ACME账户绑定的严格CAA记录,防止攻击者在DNS控制权恢复后利用缓存的验证记录继续签发新证书。
伪造证书针对谷歌并非首例。2011年荷兰证书颁发机构DigiNotar被黑,攻击者为google.com等200多个高流量域名签发了伪造证书,并被用于监控至少30万与伊朗有关联的用户。十五年过去,浏览器的小锁图标依然建立在一条多层信任链上——这一次失守的不是证书颁发机构,而是它脚下更不起眼的DNS地基。
编译自 Ars Technica,原标题:"Hackers obtain counterfeit TLS certificates for Google and other large services"