为什么允许证书颁发机构为任何域名颁发浏览器信任的证书?
这并不意味着一个被劫持的根证书颁发机构可以颁发任何浏览器都信任的可信假证书。从最终用户的角度来看,这不是很安全。
您指定允许和信任哪些根证书颁发机构为您的域名记录签署证书(例如通过 DNS SEC)不是更安全吗?类似的 DNS 示例还有邮件 SPF 记录,您可以在其中说明允许哪些邮件服务器从您的域发送邮件。
为什么它被设计成信任所有根 CA 来为任何域名颁发证书?
为什么允许证书颁发机构为任何域名颁发浏览器信任的证书?
这并不意味着一个被劫持的根证书颁发机构可以颁发任何浏览器都信任的可信假证书。从最终用户的角度来看,这不是很安全。
您指定允许和信任哪些根证书颁发机构为您的域名记录签署证书(例如通过 DNS SEC)不是更安全吗?类似的 DNS 示例还有邮件 SPF 记录,您可以在其中说明允许哪些邮件服务器从您的域发送邮件。
为什么它被设计成信任所有根 CA 来为任何域名颁发证书?
为什么它被设计成信任所有根 CA 来为任何域名颁发证书?
这有历史原因,也可能是为了促进竞争。一开始你只有几个根CA,价格非常高。现在价格下降了,因为所有 CA 都可以为任何人颁发证书。如果每个 CA 只能为互联网的特定部分签署证书,那么这场竞争就不可能了。
您在互联网协议的各个部分都有这种不安全的初始设计,通常通过添加可选安全性来解决,即固定证书、针对跨站点脚本的内容安全策略等。当然,所有这些只是添加了可选安全性因此很少使用。一般的想法是它可以在没有所以为什么关心的情况下工作。
您指定允许和信任哪些根证书颁发机构为您的域名记录签署证书(例如通过 DNS SEC)不是更安全吗?
有一些想法可以使用它,在邮件安全领域,DANE正在慢慢获得追随者,还有一些建议在 DNS 中存储 SSH 或其他密钥和证书(或指纹)。主要问题是首先需要在任何地方都可以使用 DNSSec,然后才能依靠 DNSSec 来提供所有这些证书。但目前只有一小部分互联网受到 DNSSec 的保护。此外,许多 DNS 解析器根本不处理或不正确处理 DNSSec,在应用程序级别,您通常也无法访问 DNS 响应的保护状态。
类似的 DNS 示例还有邮件 SPF 记录,您可以在其中说明允许哪些邮件服务器从您的域发送邮件。
SPF 或 DKIM 记录被认为与安全性无关,因此使用未受保护的纯 DNS 交付这些记录被认为是可以接受的。对于需要您可以完全信任的响应的证书,情况并非如此。
依赖 DNSSEC 实质上相当于将我们的信任从 CA 转移到注册商(例如 GoDaddy 等公司)、TLD(例如 VeriSign)和根(例如 ICANN)。我不确定我们是否可以信任这些实体,就像我们可以信任 CA 一样。有关此主题的精彩文章,请参阅 Moxie Marlinspike 的博客文章:http : //www.thoughtcrime.org/blog/ssl-and-the-future-of-authenticity
您遇到了证书的基本问题之一。它们是一种身份验证形式,但它们在授权方面很差。我知道你是谁,但你可以签什么?你和我是否同意这些定义?
随着时间的推移,各种位已被侵入 X.509。位代表您是否可以签署代码、通过 TLS 加密等。但没有“范围”的概念。这不像“我是 CA,但我只能为 example.com 域签署证书”。即使这样,也存在实现差异和解释差异。
最大的问题之一是 X.509 混淆了身份验证和授权。可以执行的一组操作(签署数据、加密数据、颁发证书、撤销证书等)定义不明确。可能的限制(总是、从不、有时、经批准等)是未定义的。操作范围(仅限于域、子域等)定义不明确。
这是一个有 20-30 年历史的系统,有点显示它的年龄。但没有简单的解决办法。