Authentication SSL证书和身份验证

Authentication SSL证书和身份验证,authentication,ssl,https,certificate,Authentication,Ssl,Https,Certificate,我一直在寻找有关SSL证书和加密协议的信息。我得到了很好的答案,尤其是在这个网站上 只有一件事我不明白。如果我做对了,身份验证(我指的是服务器身份验证,而不是证书身份验证)是使用非对称加密技术进行的 这意味着步骤将是(如果我错了,请阻止我): 客户端使用已验证的公钥加密随机质询字符串并将其发送到服务器 服务器使用其私钥对其进行解密,并将其发送回客户端 客户端检查来自服务器的响应是否与它刚刚发送的随机质询字符串匹配 是什么阻止假服务器这样做的,比如说www.example.com的真实证书,但

我一直在寻找有关SSL证书和加密协议的信息。我得到了很好的答案,尤其是在这个网站上

只有一件事我不明白。如果我做对了,身份验证(我指的是服务器身份验证,而不是证书身份验证)是使用非对称加密技术进行的

这意味着步骤将是(如果我错了,请阻止我):

  • 客户端使用已验证的公钥加密随机质询字符串并将其发送到服务器
  • 服务器使用其私钥对其进行解密,并将其发送回客户端
  • 客户端检查来自服务器的响应是否与它刚刚发送的随机质询字符串匹配
是什么阻止假服务器这样做的,比如说www.example.com的真实证书,但没有私钥

  • 客户端使用已验证的公钥加密随机质询字符串并将其发送到服务器
  • Fake server将加密的随机质询字符串发送到www.example.com,因为客户端希望检查其身份
  • www.example.com将解密后的随机质询字符串发回假服务器
  • 假服务器将其发送回客户端
  • 身份确认了吗

    • 这只是一个草人的论点。您列出的步骤完全是虚构的。实际步骤如下:

    • 服务器将其证书作为TLS握手的一部分发送
    • 服务器通过其证书和其他握手消息发送数字签名,并由其私钥签名
    • 客户端使用证书中的公钥来验证数字签名
    • 只有具有与证书中的公钥对应的私钥的服务器才能成功

      我建议你阅读一些文章,而不是在互联网上随意发布:试试规范性参考:

      客户端使用已验证的公钥加密随机质询字符串 并将其发送到服务器

      客户机使用服务器的公钥加密某些内容的密钥交换模式是RSA密钥交换模式。这本书有完整的描述


      本质上,客户机生成预主密钥,使用服务器的公钥(在服务器发送的服务器证书中找到)对其进行加密,然后将其发送到服务器(在客户机密钥交换消息中)。就这样。只有具有匹配私钥的服务器才能对其进行解密。服务器没有将任何解密版本发送回客户端,因此无法要求第三方执行您认为需要的任何操作。

      @BabuSrinivasan您错了#2没有错。您将证书中包含的签名(由颁发者签名)与TLS握手协议期间交换的签名混淆,该协议是在整个握手过程中计算的,包括证书。否则,客户端可能无法验证服务器是否实际拥有该证书。坦率地说,你似乎对此一无所知。我建议您也阅读RFC2246。你显然也没有听说过自签名证书。@downvoter为我的奖杯内阁又一个被否决的正确答案。这种对投票系统的滥用只会降低网站的实用性。你的“规范参考”链接和你的post@user1855153修复了它,但是RFC并不难找到。我真的希望任何计算机程序员都能找到它们。