【发布时间】:2015-08-20 14:52:42
【问题描述】:
-
在安全套接字通信中,服务器(例如 google.com)如何检查传入连接是否安全?
详细信息:考虑一个下载 HTTPS 页面的 Web 浏览器 - 在这种情况下,它会检查服务器的证书并将其放入信任存储区。在服务器端,如何检查连接是否安全?
为什么将证书链而不是单个证书传递给客户端?
【问题讨论】:
标签: ssl
在安全套接字通信中,服务器(例如 google.com)如何检查传入连接是否安全?
详细信息:考虑一个下载 HTTPS 页面的 Web 浏览器 - 在这种情况下,它会检查服务器的证书并将其放入信任存储区。在服务器端,如何检查连接是否安全?
为什么将证书链而不是单个证书传递给客户端?
【问题讨论】:
标签: ssl
连接并不是神奇的安全。它需要谈判和建立。 SSL/TLS 协议详细说明了双方为了协商安全连接而需要遵循的一系列步骤。因此,服务器可以确定连接是“安全的”,因为它刚刚与客户端一起经历了一系列步骤以安全地建立所述连接。如果客户端没有正确跟随,则无法建立连接。
您还需要区分加密和认证。 SSL/TLS 协议详细说明了如何加密连接,服务器可以放心。服务器不检查客户端的任何证书。服务器无法验证客户端。证书检查是单方面的,客户端只检查服务器的证书。服务器可以确保发送给它正在与之交谈的人的消息不会被截获或操纵,但它绝对不知道它正在与之交谈的人到底是谁。
(服务器可以要求客户端也有证书,但实际上很少使用,因为客户端通常没有任何证书。)
为什么将证书链而不是单个证书传递给客户端?
因为证书的安全性取决于先前建立的信任。客户端需要已经信任一些已签署服务器证书的根证书。如今,根证书和服务器证书之间通常有更多步骤。根将签署一个中间证书,该证书可能已经签署了另一个中间证书,然后该中间证书已经签署了服务器的证书。由于通常不能期望客户端已经在其信任存储中拥有所有这些中间证书,因此它们与服务器证书一起发送。客户端可以将链验证回它确实信任的根。
【讨论】:
- 在安全套接字通信中,服务器(例如 google.com)如何检查传入连接是否安全?
在双方协商 SSL 握手(包括证书和密码套件)之前,传入的连接不安全。
详细信息:考虑一个下载 HTTPS 页面的 Web 浏览器 - 在这种情况下,它会检查服务器的证书并将其放入信任库中。
仅当用户告诉它时。我没有看到相关性。
服务器端如何检查连接是否安全?
见上文。
- 为什么将证书链而不是单个证书传递给客户端?
因为签名证书本身是没有意义的。它需要伴随一个签名者链,并且客户端需要信任该链中的某个人。
【讨论】: