C#AES密钥交换场景:这是安全的吗?

时间:2013-11-10 02:51:45

标签: c# cryptography diffie-hellman

我正在做一个关于密钥交换的小报告,并想询问这种情况是否安全。

首先,我将制作一个简单的服务器 - 基于客户端的即时聊天源。

它将向服务器发送一个类,该类由两个字段组成:发送者ID,消息,并且它将由AES加密。服务器会将消息通知给其他客户端。

每个客户端将与服务器共享一个密钥(使用Diffie-Hellman密钥交换。)。

与其他客户端相比,每个客户端都有不同的密钥,密钥值将

存储在每个客户端,服务器(服务器将为每个客户端保留所有密钥。)

我想问的第一件事是,这可能吗?

第二,它会安全吗?

第三,是否会有一种更聪明的方法来产生类似的效果?

1 个答案:

答案 0 :(得分:2)

不,它不安全,它不会保护自己免受中间人攻击。

根据您在问题中提供的信息,客户无法验证它是否与真实服务器通信,而不是假装成服务器的人。然后,假的服务器可以依次与伪装成客户端的真实服务器通话。然后它可以拦截两者之间的所有通信。

密钥交换只能防止窃听,您必须使用其他内容来验证您与 秘密交谈的人确实是您认为与之交谈的人