安全地更新证书颁发机构证书

3
证书颁发机构的证书通常与使用它们的应用程序捆绑在一起,但如何才能安全地自动更新它们呢?
在 PHP 中,建议使用 cURL 和 https://curl.haxx.se/ca/cacert.pem,如果您已经预先捆绑了它,它是安全的。但是该 URL 不支持 HTTPS,因此中间人攻击很可能欺骗不同的证书。

这是准确的。然而,问题仍然存在,因为在下载证书之前,您无法验证请求,因为您没有CA证书列表。还有CA可能会发生变化的可能性。在某个地方,您必须进行一个不安全的请求,它不能完全自动化。 - CZauX
1个回答

1

这与安全代码交付问题有关,因此我怀疑解决该问题的方法也可以解决这个问题。

今天的实用解决方案

骚扰Mozilla的人对certdata.txt进行GPG签名,在你的端上验证签名,然后使用Curl团队使用的相同Perl脚本构建自己的.pem文件。跳过中间人。

明天的假设性解决方案

注意: 如果curl.haxx.se的人无法设置HTTPS,我不知道社区能否说服他们设置这个真实性流程。

  1. 传输层安全协议应该是强制的。
  2. 应使用数字签名(GnuPGminisign等)。
  3. 这些签名及其时间戳应在区块链(例如比特币)或类似谷歌证书透明度的系统中进行广告宣传。

这将防止有人干扰您与curl.haxx.se的通信,同时还可以防止黑客攻击curl.haxx.se向最终用户提供毒化证书列表。通过在分散式账本中广告宣传证书和时间戳,并提供一些机制进行客户端验证,有针对性的攻击变得不可行。

这不能阻止curl.haxx.se上的人变得邪恶。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接