如果使用单向 SSL(服务器证书验证),则客户端发送的数据将使用服务器证书的公钥进行加密,因此客户端发送的数据具有隐私保护。我的问题如下:
这是否意味着在单向SSL中,从服务器到客户端发送的数据未经加密以明文形式发送?
对于服务器到客户端和客户端到服务器通信,数据/消息未签名,因此无法保证防篡改或数据完整性。在使用基于SSL的传输安全而不是消息安全选项时,是否有其他手段实现数据完整性?
如果使用单向 SSL(服务器证书验证),则客户端发送的数据将使用服务器证书的公钥进行加密,因此客户端发送的数据具有隐私保护。我的问题如下:
这是否意味着在单向SSL中,从服务器到客户端发送的数据未经加密以明文形式发送?
对于服务器到客户端和客户端到服务器通信,数据/消息未签名,因此无法保证防篡改或数据完整性。在使用基于SSL的传输安全而不是消息安全选项时,是否有其他手段实现数据完整性?
单向SSL指的是服务器不验证客户端的身份,对于SSL的其他安全属性没有影响。
虽然SSL协议有些复杂,但基本的流程如下:客户端生成一个随机密钥,将其加密以便只有服务器可以解密,并将其发送给服务器。现在服务器和客户端有了一个共享的秘密,可以用于加密和验证双向通信。
服务器不知道客户端的身份,但除此之外,加密和消息验证都是双向的。
更新:
1)是的,双向加密是对称的,并使用会话设置期间生成的共享密钥。
2)使用共享密钥,消息完整性很容易得到保证。你只需要确保消息具有特定的形式。例如,我可以在发送的每个消息前缀中添加序列号并在加密之前附加校验和。你使用共享密钥解密它并验证序列号和校验和。攻击者如何在不知道共享密钥的情况下替换或修改消息并仍然保持序列号和校验和不变呢?