我正试图在高层次上理解SSL。
我理解它的方式是整个请求都是加密的。当服务器收到请求时,它如何知道请求的来源?
我假设它使用某种唯一标识符,例如会话密钥,但如果请求是加密的,那么如果它不知道它来自何处,它将如何知道解密请求?
答案 0 :(得分:2)
SSL在大多数情况下只提供远程主机(Web服务器)的身份验证和协商加密。有时客户端可能会提供客户端证书,然后通过SSL握手验证是否正确。
如果没有客户端证书,SSL不会对客户端进行身份验证,它只能确保原始发件人仍然是给定会话中的发件人,因为它拥有最初商定的加密密钥。该加密密钥是继续通信所必需的,因此如果客户端可以进行通信,则它具有密钥,因此仍然是原始客户端或某些攻击者,这些攻击者会破坏流(不太可能使用安全算法)。
使用客户端证书,SSL可以对客户端进行身份验证,并向Web服务器提供身份信息,Web服务器可以使用这些信息,并在内部用于任何目的。