2011-11-22 48 views
8

如果使用SSL的一种方式(服务器证书认证),则从客户端发送的数据将使用服务器证书的公钥进行加密。因此,隐私保护可用于从客户端发送的数据。我的问题是单向SSL是单向加密吗?

  1. 这是否意味着,在从服务器发送给客户的一种方式SSL数据没有加密,以纯文本发送?

  2. 对于服务器到客户端和客户端到服务器的通信,数据/消息都没有签名,因此不保证篡改保护或数据完整性。在使用基于SSL的传输安全性时,还有其他方式可以实现数据完整性,而不是消息安全选项吗?

回答

16

单向SSL只是表示服务器不验证客户端的身份。它对SSL的任何其他安全属性都没有影响。

虽然SSL协议有点复杂,但发生的基本要点是:客户端生成一个随机密钥,对其进行加密,以便只有服务器可以解密并将其发送到服务器。服务器和客户端现在具有可用于加密和验证双向通信的共享密钥。

服务器不知道客户端的身份,但除此之外,加密和消息验证是两种方式。

更新:

1)是,加密两种方式是对称的,并且使用会话建立期间生成的共享密钥。

2)有了共享的秘密,消息完整性是微不足道的保证。你只需确保消息具有特定的形式。例如,我可以在每次发送的消息前添加一个序列号,并在加密之前在其上附加校验和。您使用共享密钥对其进行解密并验证序列号和校验和。攻击者如何在不知道共享密钥的情况下替换或修改消息,并保持序列号和校验和不变?

+0

提取这是否意味着在两端加密使用对称算法和共享随机密钥? – ideafountain

+0

您是否也请解释当客户端没有持有证书时如何确保消息完整性? – ideafountain

+1

查看更新回答。 –

0

在SSL中,发生两件事情:

首先,一个会话密钥使用类似的 Diffie-Hellman method协商。这会生成一个共享会话密钥,但从不在 之间传输密钥。

其次,该会话密钥用于在连接持续时间的正常对称加密中用于 。

SSL确实使用公共/私有方式,因为X509证书是 ,用于标识连接的至少一端。这些证书是使用非对称密钥对进行签名的 。

How can SSL secure a two-way communication with only one key-pair?