脸书、Mozilla、Cloudflare上周五宣布将合推新的加密协议TLS代理凭证(TLS Delegated Credential),并提交IETF(Internet Engineering Task Force)制订标准,以兼顾大型网络如CDN的安全及运行性能。
TLS代理凭证协议是TLS协议的延伸,兼容于最新的TLS 1.3,旨在解决大型网络,如脸书或CDN企业Cloudflare管理大量服务器TLS凭证的复杂问题。
现代大型网络环境下,一个凭证可能要部署数千台服务器,然后再分散到全世界。脸书解释,为了确保凭证不被黑客取得以进行中间人(man-in-the-middle, MITM)攻击,脸书有一些措施,像是把签发凭证的作业分散给其他服务,而不用存在其负载均衡机器Proxygen的内存中,或是将私钥分散给不同服务器存储,而且缩短凭证的有有效期限。
如果被窃的凭证仍在有效期内,剩下唯一方法就是取消凭证。但现代浏览器并未普遍支持取消凭证;例如线上凭证状态协议(Online Certification Status Protocol,OCSP)需要浏览器和凭证机构(CA)沟通,造成连接延迟,因此浏览器如Chrome并不支持OCSP,只支持CRLsets等方法。为了避免取消凭证的麻烦,脸书希望能将凭证有效期由现行数个月,缩短为几天甚至几小时。
但缩短凭证效益又会促使服务器必须更频繁从CA取得凭证,对大型网站来说,服务器和CA的通信量大增,可能造成不是CA、就是它的服务器连接性能下降或断线,终端用户感受都是一样:网站连接不稳、很慢或连不上。这个问题也会发生在CDN企业如Cloudflare身上。
代理凭证(delegated certificate)就是为了在安全及服务器稳定性之间取得平衡。网站或TLS服务器产生代理凭证架构,后者签发(短到一周或几小时)有有效期限的公钥,由TLS服务器以其从CA取得的叶凭证(leaf certificate)来签发代理凭证。配合TLS 1.3,短效的代理凭证可在支持浏览器(如Mozilla Firefox)和脸书服务器或CDN边缘服务器执行身份验证。到期后不需再直接联系CA取得新凭证。这样一来也不会增加CA工作负载使之停机,造成连接变慢或中断。
脸书已经将这项协议加入其TLS 1.3实例Fizz,几周后会扩大部署。Mozilla也表示,将于11月中在Firefox Nightly测试版本中代理凭证插件,名为TLS代理凭证实验(TLS Delegated Credentials Experiment),插件会对Cloudflare托管的主机进行调用。测试将进行为期2周。
领取专属 10元无门槛券
私享最新 技术干货