证书机构签发之前要确认申请人控制着这个域名,这个确认动作本身可以被路由劫持骗过去。反制的办法是把确认动作放到两个互不相干的网络位置各做一遍,让劫持者无法同时骗过两处。
第 129 期讲过域名控制权验证:证书机构签发证书前,要用一定方式确认申请人确实控制着申请的那个域名,常见做法是让申请人往域名下放一条记录或一个文件,再回来取。而第 66 期讲过路由劫持:一个网络错误或恶意地宣告不属于自己的地址段,把流量引到自己这里。
两件事放在一起就有了问题。验证请求要经过互联网送到域名所在的服务器,如果这段路被劫持,请求就会落到攻击者手里,他可以伪造出"验证通过"的结果。同一条路还能被用来误导另一种检查——证书机构在签发前要查域名的授权记录,判断谁被允许为这个域名申请证书,这份记录同样可能被劫持后的假应答覆盖。
重复检查不解决问题。劫持者可以让来自不同地方的验证请求都经过他控制的网络,检查次数再多也落在同一只手里。
2025 年 3 月起生效的新规要求换一种做法:在原有的验证位置之外,还要从至少两个独立的远端网络位置各验证一遍,这些位置之间不能位于同一条路由路径上,任意两个验证用的解析器之间的直线距离须在 500 公里以上,让同一次劫持难以兼顾两处。规则同时写明,在一个网络位置取得的结果不得复用到另一个位置的验证上。这套要求被称为多点签发验证。
此后要求逐年收紧:2025 年 9 月起,两个远端位置的验证结果必须齐备,否则不得签发;再往后,远端位置的数量分档提高,并要求覆盖多个区域互联网注册管理机构所辖的区域。规则由证书机构的行业组织通过,原先用于授权记录的检查也一并纳入同一套多点要求。