-1

在 SSL 握手期间,服务器向客户端发送其(服务器的)公钥,然后客户端创建会话密钥并使用服务器的公钥对其进行加密并将其发送到服务器。然后,服务器使用其私钥解密消息并检索会话密钥。然后使用对称密钥保护服务器和客户端之间的进一步通信。

现在在这里,如果服务器发送的初始公钥发送给恶意设备,那么它将创建自己的会话密钥并使用公钥对其进行加密并将其发送到服务器。然后整个通信将发生在服务器和恶意设备之间。我们该如何解决?

4

1 回答 1

1

我不确定你是否完全有这个权利。连接应该是:

client <--> server

由于 SSL 握手和服务器证书的验证,客户端知道它正在与服务器通信。您的问题是如果发生以下情况会发生什么:

client  //   MiTM <--> server

客户端不在通信循环中。在这种情况下,服务器的标准身份验证和授权会将 MiTM 视为未经授权的客户端,并且不会向其提供任何敏感数据。

也许你在问如果初始连接是这样的会发生什么:

client <--> MiTM <--> server

其中 MiTM 是一些恶意网络设备。起初,服务器与客户端对话以获取用户身份验证,但随后(不知不觉地)开始与 MiTM 对话。这不会发生,因为在建立 SSL 连接之前用户不会进行身份验证。由于 SSL 连接旨在成功应对恶意中间人攻击,中间人可以看到流量但无法理解。

这里的关键见解是,服务器在通过 SSL 获得身份验证之前不会信任客户端,而客户端在获得安全 SSL 通道之前不会进行身份验证。一旦客户端和服务器之间正确建立了 SSL 通道,中间人除了阻止连接外,无能为力。

简而言之,SSL 有效。

于 2015-06-01T18:11:14.580 回答