自签名 SSL 证书的“信任网络”?

信息安全 tls 证书颁发机构 信任网络
2021-09-06 18:21:13

一般来说,SSL 证书使用“信任链”模型——受信任的证书颁发机构 (CA) 获得证明亚马逊等公司拥有 amazon.com 并颁发 SSL 证书的证据。

但是,证书可能很昂贵 - 例如在个人网站上花费这种钱是没有意义的。但是越来越多的人一直在争论网络流量应该始终加密,因为计算机可以处理它并且它可以通过公共 wifi 网络(例如星巴克)保护您。因此,您可以将 SSL 与“自签名”证书一起使用,但用户会收到一条令人讨厌的消息,指出该证书不受信任,因为它是“自签名”而不是由“受信任”机构颁发的。问题是已经有很多“受信任的”权威机构犯错误并将 SSL 证书提供给“坏人”的案例。但实际上,自签名证书的安全性并没有明显低于 CA 签名的证书——从某种意义上说,您的流量被加密并发送到 Web 服务器并在那里解密。这只是意味着没有人“受信任”检查有问题的网络服务器的身份。

有没有办法使用类似于 PGP 密钥的 SSL 证书创建“信任网络”模型?即,如果我认识某人并且知道他们是网站 www.example.com 的管理员,并且他们拥有自签名证书,我可以“签署”证书以表示我信任他们。然后,当用户访问自签名网站时,它会说可以根据他们在“信任网络”中的位置来信任该人。

3个回答

...但实际上,自签名证书的安全性并不比 CA 签名的证书低很多——从某种意义上说,您的流量被加密并发送到 Web 服务器并在那里解密。这只是意味着没有人“受信任”检查有问题的网络服务器的身份。

只是一个非常重要的部分。如果您不验证,您与之交谈的对等方是预期的对等方,而不是其他人。例如,如果 Alice 想要与 Bob 交谈并且没有检查它是否真的在与 Bob 交谈,那么它可能会与自称是 Bob 的 Mallory 交谈。然后,马洛里可能会将消息转发给鲍勃,连接看起来仍然是加密的,但从爱丽丝到马洛里,从马洛里到鲍勃,它会被加密。Mallory 可以访问消息的纯文本,也可以对其进行修改。

从理论上讲,您可以使用自签名证书来建立自己的信任网络。但是,我认为 https 的许多当前用户不会理解这个概念及其含义,例如如何将信任应用于另一方,如何不信任某个陌生人,信任如何削弱信任链越长以及如何他们在访问一个站点时需要很大的信任(这可能因站点而异)。

这意味着,最后你可能会得到一个对大多数人来说太复杂而无法理解的信任网络,因此他们不信任它。或者,您可能会获得一个信任网络,其中包含一些知名且因此受信任的玩家,这些玩家提供验证您的身份,然后将您添加到网络中以获得一些钱——这或多或少是您今天所拥有的。

虽然没有人真正喜欢中央权威,但拥有这样的东西大大简化了在现实生活中应用信任。即大多数人不会把钱存入小银行,除非他们知道有大银行或保险等支持。

DANE 可能是更好的选择。它仍然需要一个中央信任网络,但它并不仅仅为 SSL 创建一个新的,而是重用为 DNSSec 创建的现有网络。这可能更便宜、更容易理解——因此更值得信赖。

偶尔尝试过 X.509 格式的“信任网络”。例如,Thawte 尝试过但放弃了。

要使信任网络“工作”,您需要两件事:

  • “依赖方”(在 HTTPS 情况下,这意味着 Web 浏览器)必须实施检查 WoT 关系的验证协议。
  • 必须有足够多的参与者加入该系统。WoT 提供的验证只有通过路径的积累才有价值。WoT 图仅仅简单连接是不够的;WoT 的强度依赖于任何验证者在自身和要验证的证书之间找到许多路径的能力。

Thawte 通过将自己作为中介解决了第一点(因此,从浏览器的角度来看,它只是一个普通的证书链),但无法克服第二点。

这是一个关键问题,它也适用于 PGP:系统很难引导。在部署阶段,WoT 不提供任何体面的保证,因此人们几乎没有真正加入它的动力。任一客户端都配置为“默认信任”设置,在该设置中它们信任基于单个路径的证书;在这种情况下,可以预期一些成功的攻击,并将严重损害系统声誉,从而阻止人们使用它。或者客户端有更严格的配置,直到大量服务器所有者参与后,WoT 才能使用;他们没有理由这样做,特别是如果这意味着他们的自签名证书同时会引发可怕的警告。


请注意,虽然 HTTPS-with-a-self-signed-certificate 对被动攻击者(数据真正被加密)提供了强大的保护,但它对主动攻击者(他们试图运行假服务器,例如对于Man-in-the - 中间攻击)。碰巧大多数可以被动的攻击者也可以主动:对于一个廉价的、孤独的攻击者来说,窃听的现实攻击场景意味着设置一个流氓开放 WiFi 接入点(例如在餐厅中)或一些DNS 中毒这两种上下文本身也允许主动攻击,攻击者无需额外工作。

因此,带有自签名证书的 HTTPS 实际上并不比普通 HTTP 好多少。过去,当攻击者/目标环境是某个大学的工作站房间时,情况要好得多,学生们试图互相监视:在那个时候(在 1990 年代),“攻击者”是主要是被动的,并且加密击败了它们(该上下文解释了诸如“HTTP摘要”之类的身份验证协议,从安全角度来看,仅针对被动攻击者才有意义)。

这让我想起了曾经流行的网络戒指。如果您可以创建基于信誉的系统,则可以启动自己的 CA。

问题是,即使是今天的 CA 也不检查太多。您可能拥有一个带有 CA 签名证书的恶意网站。所以,这似乎并不令人难以置信。您可以根据网站信誉创建 CA 系统。例如,拥有基于网站信任/信誉的两层证书授权系统将是一个好方法。您可以要求在第 1 阶段(即启动阶段)报告站点的提示或选项。在网站建立了足够高的声誉并根据大多数权威组织/人员的信任进行检查后,您可以在他们的证书上签名第二层,表明该网站已被证明是可信赖的。如果您仍然需要页面上的报告图标/窗口,以可见的方式,您实际上可以创建一个更安全、去中心化、基于信誉/信任的 CA。这是个好主意。我会参加。