ssl证书如何防止黑客克隆

How does a ssl certificate prevent a hacker from cloning

客户端如何保证服务器发送的ssl证书是证书的真正拥有者?它如何防止黑客克隆,例如 google ssl 证书,并在握手期间欺骗我他是 google 站点?黑客是否可以克隆证书并修改网络数据包中的域或ip信息来欺骗人们?

SSL 证书,例如www.google.com 由名为证书颁发机构 (CA) 的第 3 方签名。在 google 的情况下,第 3 方目前是 "GeoTrust Global CA"。要查看它是谁,你需要检查证书(浏览器通常会让你很容易地做到这一点,但每个浏览器都有自己的方式) 这会将证书与名称 "www.google.com" 链接起来。

您的客户拥有代表您信任的 CA 列表。该列表要么由 OS 的供应商维护,要么由 client/browser 的创建者维护 and/or。

那么客户端如何知道它正在与正确的服务器对话? 证书由它信任的 CA 签名,证书用于客户端想要连接的名称,服务器提供证明它知道证书中 public 密钥的相应密钥。

  • 从 www.google.com 复制有效证书并将其放在自己机器上的黑客将只有 public 密钥而没有私钥。
  • 试图让信誉良好的 CA 签署证书请求的黑客会被拒绝,因为他们无法证明拥有 google.com 域。因此名称不匹配。
  • 黑客会签署自己的证书请求,但会失败,因为他们自建的 CA 不在受信任的列表中。
  • 侵入 google 的服务器并以某种方式复制密钥的黑客可能会通过一段时间,但一旦 Google 的人检测到它,他们会联系他们的 CA 并吊销证书。

    现在这个过程是大多数实现中的弱点,因为这些被吊销的证书由 CA 作为证书吊销列表 (CRL) 或作为 OCSP(在线证书状态协议)服务发布,但客户端通常会采取快捷方式,不验证证书是否未被吊销。