CA的意义何在?

信息安全 验证 公钥基础设施 证书颁发机构
2021-08-15 03:30:53

因此,证书颁发机构证明网站对应于给定的组织。为什么这是必要的?

当我与企业或组织互动时,我会采用以下几种方式之一:

  • 我在现实生活中与他们进行身体互动,或者通过邮件,或者你有什么。当我与他们见面时,我可以得到他们的公钥。
  • 我仅以数字方式与他们互动。我一开始没有理由信任他们,但随着时间的推移获得信任。我只需要确保没有人冒充他们,所以我每次都检查它是否是同一个密钥。
  • 一位朋友向我介绍了一个网站。我可以从他们那里得到钥匙。

那么为什么我们需要CA呢?拥有 CA 证书的网站如何让我比没有证书的网站更信任它?

4个回答

您所描述的内容听起来很像我与朋友共享 PGP 密钥的方式。当我们都是书呆子并手动添加密钥并在我们这样做时在电话上聊天时,它工作正常,但这种方法不能很好地扩展。

CA 在您第一次需要以自动化方式信任连接的情况下解决了您的第二个问题——事实证明,这比您想象的更经常是绝对必要的。这通常被称为引导问题- 或“......但我们第一次如何做到这一点?”

场景1:我在朋友家,想查看我的gmail。我的朋友使用 hotmail,因此她的计算机事先没有信任 gmail.com。我怎么知道它是真正的 gmail.com,而不是看起来像 gmail.com 的网络钓鱼网站?我如何“建立信任”足以给它我的用户名和密码?CA 解决了这个问题,因为 CA 的证书被固定在浏览器中,并且站点提供了由 CA 签名的证书,现在浏览器相信这是真正的 gmail.com。

场景 2:考虑企业 VPN 环境中的 CA。该公司聘请了一名新人,他将从不同的国家远程工作。您要确保他们第一次连接到公司网络时,他们可以对服务器进行身份验证,而不仅仅是将您的公司网络的凭据提供给某些黑客。CA 解决了这个问题,因为您可以将 CA 的证书嵌入(或“固定”)到 VPN 客户端可执行文件中,并让 VPN 服务器提供由该 CA 签名的证书。

场景 3:电子邮件。我的服务器出了点问题。我打电话给一些我被提及的承包商,他们说“将您的防火墙的日志文件发送给我们,我们会找出问题所在”。我从未见过这些人,我如何获得他们的公钥?我想他们可以通过电话向我读取 SHA2 哈希以进行确认,但这是一个巨大的麻烦。CA 解决了这个问题,因为(假设我的 IT 部门以一些复杂的方式设置了 Outlook)Outlook 将验证他们的证书返回到受信任的根。

场景4:银行转账。我要求我的银行将钱电汇给我的朋友,他使用一些不知名的小型银行——也许是在海外。您可以打赌,银行不会只是将钱汇到它不信任的服务器上。你也可以打赌,由于地球上银行的数量庞大,银行不会在每次需要建立新服务器时将 U 盘邮寄给其他所有银行(这可能是响应流量高峰)。CA 解决了这个问题。实际上,银行网络SWIFT使用复杂的 CA 层次结构来保护全球银行间交易。

除了上述技术场景之外,还有可用性问题:在当前模型中,TLS 正在保护您的数据和连接,无论您是否知道它在那里,这对我祖母来说是个好消息。能够将所有证书验证回受信任的根 CA 是您的浏览器在幕后轻松完成的事情。因此,即使一个更手动的导入/信任密钥系统有效,即使我也会觉得它非常不方便,而且我是 1% 以此为生的人的一部分。我的祖母会……嗯,有麻烦了。

这不是关于证书本身的信任,而是关于验证的过程

第一:可行性。如果证书被更新/泄露,您是否希望例如银行发起全球广告活动“我们刚刚更改了证书,请更新您的智能手机、浏览器等”?大规模实现是不可能的。

还是公司应该关闭业务并开始获得对新证书的信任?

第二:过程的安全性。无论您使用什么渠道,它都可能受到损害。您必须确保与组织或中介的通信。这在客户层面上也是不可行的。

你真的会信任任何中介吗?一个低薪的银行职员,他给了你一张证书和说明如何访问你以后会使用多年的网站(域名只有一个字符)?

该认证并未说明运营该网站的组织的可信度。它只是说证书是发给正确的人的。

这是为了防止中间人攻击,以及可能因 DNS 中毒或以其他方式更改对特定主机名的请求路由到的位置的攻击。

您所说的带外认证机制不太方便,并且 ssh 样式的“装订”容易受到攻击,在您第一次连接时就可以抓住您。这也使得更改和撤销密钥变得非常困难:您需要一种机制来通知每个人新密钥是什么以及旧密钥无效。

这是信任委托。

可以手动与您想要的每个主机交换和验证加密密钥。但这对你和(更)另一方来说都是昂贵的。他们不想在每次有人访问他们的网站时手动验证他们是谁。

因此,您的浏览器和操作系统信任“根”CA。在许多情况下,这些 CA 信任其他 CA。中间 CA 通常与购买证书的人打交道。验证请求证书的人是否控制域是他们的工作。

因此,通过信任浏览器的受信任根证书,您可以获得一条通往您所连接的组织的信任链。加密的东西只是证明他们拥有私钥(其他人都不应该这样做),这意味着您可以验证您正在连接到正确的计算机并且数据没有受到干扰。

当然,您如何知道 CA 正在完成其工作并实际验证某人拥有/控制它为其颁发证书的域名?那么这是一个问题。上游喜欢某些东西(开放式会计、公共证书日志等),这偶尔会成为争论的焦点。

在赛门铁克生成了一些非法证书后,谷歌威胁要从 Chrome 中删除他们的证书这将使他们单独签署的任何证书无效。DigiNotar以发行非法证书而闻名​​,并被大规模删除,导致迅速崩溃。

彻底验证他们签署的内容符合 CA 的各个级别的利益。

是防弹的吗?当然不是。政府可以以国家安全的名义做很多事情,我相信这包括强迫 CA 颁发假证书(如果他们没有自己的 CA 可以做同样的工作)......所以如果你'是一个国际恐怖分子,也许可以建立自己的信任链,但对于其他人来说,根证书让事情变得更容易。