在SSL握手期间,服务器向客户端发送其(服务器)公钥,然后客户端创建会话密钥并使用服务器的公钥对其进行加密并将其发送到服务器。然后,服务器使用其私钥解密消息并检索会话密钥。然后使用对称密钥保护服务器和客户端之间的进一步通信。
现在,如果服务器发送的初始公钥进入恶意设备,它将创建自己的会话密钥并使用公钥对其进行加密并将其发送到服务器。然后整个通信将发生在服务器和恶意设备之间。 我们如何解决它?
答案 0 :(得分:1)
我不确定你是否有这个权利。连接应该是:
client <--> server
由于SSL握手和服务器证书的验证,客户端知道它正在与服务器通信。你的问题是如果出现会发生什么:
client // MiTM <--> server
客户端不在通信循环中。在这种情况下,服务器的标准身份验证和授权会将MiTM视为未经授权的客户端,并且不向其提供敏感数据。
也许你会问,如果初始连接是这样的话会发生什么:
client <--> MiTM <--> server
MiTM是一些恶意网络设备。首先,服务器与客户端通话以使用户通过身份验证,然后(不知不觉)开始与MiTM通话。这不会发生,因为在建立SSL连接之前用户不会进行身份验证。由于SSL连接旨在成功处理恶意MiTM攻击,因此MiTM可以查看流量但无法理解。
这里的关键见解是,服务器在通过SSL获得身份验证之前不会信任客户端,并且客户端在获得安全SSL通道之前不会进行身份验证。一旦在客户端和服务器之间正确建立了SSL通道,除了阻止连接之外,MiTM无能为力。
简而言之,SSL有效。