0

我确信这包含在 SSL 证书/HTTPS 规范的详细信息中,但我并不完全理解这个主题。

如果现代浏览器连接到 HTTPS 站点,则 HTTP 请求的正文会被加密。SSL 证书本质上是用于在客户端和服务器之间来回通信的“公钥”吗?

难道黑客不能从公共站点获取公钥,比如“https://www.google.com”并监控客户端/服务器流量并解密数据吗?

此外,客户端是否需要验证证书的“颁发者”。例如,自签名证书客户端不需要验证,但对于受信任的颁发者提供的证书,在证书验证过程中会发生什么?

4

1 回答 1

1

服务器的证书包含一个公钥,实际上每个人都可以看到。该密钥又在服务器和客户端之间的握手期间使用,以创建一个唯一的会话密钥,该密钥将用于加密任何进一步的消息:

http://en.wikipedia.org/wiki/Secure_Sockets_Layer#TLS_handshake_in_detail

难道黑客不能从公共站点获取公钥,比如“https://www.google.com”并监控客户端/服务器流量并解密数据吗?

黑客不会知道会话密钥。他会听(毫无意义的)加密的东西。

此外,客户端是否需要验证证书的“颁发者”。例如,自签名证书客户端不需要验证,但对于受信任的颁发者提供的证书,在证书验证过程中会发生什么?

就像您说的那样,证书的颁发者会根据预定义的受信任机构列表进行验证。链中的任何证书也将被验证,包括受信任的颁发者、到期日期。此外,每个证书都包含指向证书吊销列表(CRL 分发点)的 URL,客户端将尝试从此类 URL 下载列表并确保手头的证书没有被吊销。

于 2012-12-17T14:42:05.473 回答