TLS/SSL 证书 - 密钥使用和加密
...它如何向网络服务器证明我的身份?
它不是。它仅向您证明服务器的身份,因此不可能有中间人攻击(有人声称是 google.com)。如果需要客户端标识(通常不需要),可以使用客户端证书。
“该证书旨在......证明您的身份”并不意味着该证书实际上用于此目的。它仅意味着证书可用于服务器身份验证(“远程计算机的身份”)和客户端身份验证(“您的身份”)。但在这种情况下,它仅用于服务器身份验证。
实际上,“您的身份”实际上是令人困惑的,因为它根本不意味着您的身份。这意味着如果您拥有此证书(您没有),那么您可以将其用作客户端证书来证明您的身份。其他证书查看器(Linux 上的 Chrome)以一种不那么令人困惑的方式显示此扩展密钥用法:
TLS WWW Server Authentication (OID.1.3.6.1.5.5.7.3.1)
TLS WWW Client Authentication (OID.1.3.6.1.5.5.7.3.2)
另外我想知道为什么这个证书没有“密钥加密”或“密钥协议”的目的?2048 位 RSA 密钥(在详细信息选项卡下可见)是否用于加密?
我使用 Chrome 为 google.com 获得的证书没有 RSA 密钥,而是具有 256 位密钥的 ECDSA 证书。但是通过对密码首选项进行一些更改,我也可以获得 2048 位 RSA 证书。
根据每种密钥交换方法需要哪些密钥用法?它需要 ECDSA 证书中的 digitalSignature 并且它有这个。根据这个问答,它还需要“密钥加密”来处理像 AES128-SHA(谷歌支持)这样的密码。但是 2048 位证书完全缺少密钥使用,因此在这种情况下,我们参考RFC 5280:4.2.1.12。扩展密钥用法:
除了或代替密钥使用扩展中指明的基本目的之外,此扩展表示可以使用经认证的公钥的一个或多个目的。
因此,如果没有给出密钥用法但扩展了密钥用法,我们可以从中暗示密钥用法。然后在 RFC 的同一部分中声明 serverAuth 意味着 digitalSignature、keyEncipherment 或 keyAgreement。因此,即使没有明确给出,我们也有所需的 keyEncipherment。
除此之外,RSA 和 ECDSA 密钥都不用于加密连接本身,仅用于身份验证和密钥交换内的密码。使用在密钥交换中创建的密钥通过对称加密完成流量的加密。请参阅SSL/TLS 如何工作?更多细节。
