gpt4 book ai didi

ssl - 如果是自签名证书,浏览器是否不验证数字签名

转载 作者:太空宇宙 更新时间:2023-11-03 14:30:18 24 4
gpt4 key购买 nike

在以下用例中,我对 SSL 证书流程的理解是否正确(CA/自签名)。一般我们在生成SSL证书的时候会有如下内容:

  • 所有者、域、有效性等详细信息
  • Web 服务器的公钥(用于非对称 key 对 SSL 握手)
  • 由 CA 私钥签名的数字签名或在自签名的情况下,它将是 Web 服务器自己的私钥(希望这种理解是正确的?(Q1))

第一个 Web 浏览器使用自己的公钥获取 SSL 证书。存在 CA 提供商证书时的证书验证:

  1. 浏览器将拥有 CA 的所有公钥,因此可以验证数字签名。
  2. 稍后由Web 服务器提供的公钥用于启动对称 key 加密。

但是博客也谈到浏览器已经有了受信任的根证书并进行了验证。这是否意味着很多时候浏览器只检查证书内容而没有数字签名验证(Q2)?

现在在自签名的情况下,Web 服务器将使用自己的私钥来签署证书(而不是 CA 私钥)。在第一次浏览器交互期间,它将发送其证书以及 Web 服务器公钥。因此,在这种情况下,我们在证书签名期间使用相同的公钥/私钥对,还共享用于数据加密的对称 key (Q3)??

现在,博客说我们可以在浏览器上手动导入证书。证书导入也会导入公钥以验证签名是否正确(Q4)?博客说,如果证书存在于受信任的根证书中,则认为它有效。这是否意味着浏览器不进行签名验证(Q5)?

有没有人帮助我理解 Q1 到 Q5。我错过了什么吗?

最佳答案

Digital Signature signed by either CAs Private Key or In case of Self sign, it will be Web Server own Private Key(Hope this understanding is correct?(Q1))

正确。服务器的证书将由 CA 证书(根 CA 或更常见的中间 CA)签名。在自签名证书的情况下,服务器的证书和 CA 是相同的证书。

  1. Later Public key provided by Web server is used to initiate the symmetric secret key encryption.

这仅适用于 RSA key 交换。使用 RSA Kx,预主 key 由客户端创建,使用服务器的公钥加密并发送到服务器。然后客户端和服务器都从这个预主 key 中导出所有对称 key 。

不过,RSA key 交换已弃用并随 TLS 1.3 一起删除。相反,应该使用 Diffie Hellman key 交换。使用 DH Kx,服务器证书和内部公钥仅用于对服务器进行身份验证,以防止中间人攻击,但不参与 key 交换。

But blogs also talk about browsers have already Trusted root certificates and it validates. Does it mean many a times browser only check certificate content without Digital signature validation(Q2)?

服务器发送服务器(叶)证书和可能的中间证书,然后浏览器创建从叶证书到本地根证书(信任 anchor )的信任链。如果不能创建这样的信任链,则证书不可信。哪些 CA 证书用作信任 anchor 取决于客户端:像 Firefox 这样的浏览器带有自己的信任库,其他浏览器使用系统信任库,其他客户端使用另一个信任库(即 Java 自带)。参见 SSL Certificate framework 101: How does the browser actually verify the validity of a given server certificate?了解更多详情。

Now in case of Self-signed, .... So in this scenario, we have the same Public/Private Key pair used both during certificate signing and also to share the symmetric key for data encryption(Q3)??

对于自签名证书,证书的颁发者和证书本身就是证书本身,即用于签署证书的私钥与证书中的公钥相匹配。在 RSA key 交换的情况下,此 key 也参与创建对称 key (见上文)。

Certificate import would have imported the Public key as well to validate signature correct(Q4)?

公钥是证书的一部分(但私钥不是)。因此,证书导入也将隐式导入公钥。

Blogs say if certificate exists in Trusted Root certificates, it is considered valid. Does it mean browser dont do Signature validation(Q5)?

根证书被认为是受信任的,因为它在本地信任库中,而不是因为它是由某些东西签名的。这就是为什么签名验证与根证书并不真正相关。为了作为信任 anchor 正确工作,SSL/TLS 库仍然经常要求根证书是正确(自)签名的证书。

关于ssl - 如果是自签名证书,浏览器是否不验证数字签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53321698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com