我们如何知道SSL签名属于特定证书?

时间:2014-04-30 22:52:38

标签: ssl https ssl-certificate x509

我正在阅读以下关于HTTPS的文章:

http://www.moserware.com/2009/06/first-few-milliseconds-of-https.html

我确实理解我们如何验证签名是否真的由VeriSign创建。

但我们怎么知道VeriSign为我们所连接的特定域创建了此签名(或实际上是否为此证书)?

因为我可以看到证书,包括签名,是什么阻止我创建自己的证书,用我在Amazon.com证书上看到的签名替换签名,并假装有VeriSign签署的证书?

3 个答案:

答案 0 :(得分:1)

  

因为我可以看到证书,包括签名,是什么阻止我创建自己的证书,用我在Amazon.com证书上看到的签名替换签名,并假装有VeriSign签署的证书?

证书具有主题,公钥,发行者和签名(以及其他字段)。例如,主题可能是example.com(DNS名称)或joe@example.com(和电子邮件地址),发行者可能是Startcom。发行人的签名将主题的公钥与主题绑定在一起。这就是证书的全部内容:它通过权威机构的签名将公钥绑定到实体。权威通常被称为“可信任”或“受信任的第三方”。

因此,验证您要伪造的证书的人将提取发行者,获取发行者的公钥(在不同的证书中),然后使用颁发者的公钥来验证您的证书数据。由于您伪造了签名(即使用了与发行者不同的公钥),签名验证将失败。

答案 1 :(得分:0)

因为您可以使用其验证签名的公钥是证书的一部分,也是签名的一部分。所以你不能在不破坏签名的情况下改变任何这些东西。

答案 2 :(得分:0)

  

@gilden但我不会尝试创建新签名。当我尝试https-联系其网站时,我使用(几乎)完全相同的亚马逊发送给我的证书(因此与亚马逊的证书相同的签名和相同的公钥)。我在该证书上唯一更改的是名称字段(即由签名者授权使用此证书进行身份验证的网站/计算机的名称)。所以我要把这个字段从“amazon.com”改为“rapt.com”。现在,我可以使用此证书来说服人们rapt.com是一个值得信赖的网站。 SSL算法中的哪些内容会让我在我的方案中失败?

然后,浏览器/客户端将使用amazon.com公钥与您的服务器进行通信,而您的服务器上没有相应的私钥。因此,您将无法从客户端证书消息解密pre_master_secret,并且ssl / tls握手将失败。