我正在做一个关于密钥交换的小报告,并想询问这种情况是否安全。
首先,我将制作一个简单的服务器 - 基于客户端的即时聊天源。
它将向服务器发送一个类,该类由两个字段组成:发送者ID,消息,并且它将由AES加密。服务器会将消息通知给其他客户端。
每个客户端将与服务器共享一个密钥(使用Diffie-Hellman密钥交换。)。
与其他客户端相比,每个客户端都有不同的密钥,密钥值将
存储在每个客户端,服务器(服务器将为每个客户端保留所有密钥。)
我想问的第一件事是,这可能吗?
第二,它会安全吗?
第三,是否会有一种更聪明的方法来产生类似的效果?
答案 0 :(得分:2)
不,它不安全,它不会保护自己免受中间人攻击。
根据您在问题中提供的信息,客户无法验证它是否与真实服务器通信,而不是假装成服务器的人。然后,假的服务器可以依次与伪装成客户端的真实服务器通话。然后它可以拦截两者之间的所有通信。
密钥交换只能防止窃听,您必须使用其他内容来验证您与 秘密交谈的人确实是您认为与之交谈的人 。