交换对称密钥

时间:2011-06-21 16:55:04

标签: encryption encryption-asymmetric public-key-encryption encryption-symmetric

我有一个将加密数据发送到Web服务的WinForms客户端。 WinForms客户端创建一个Symmetric RijndaelManaged sessionKey,并且还有一个“硬编码的RSA非对称公钥”。

我使用的是EncryptedXml类,这样可以很容易地打包我的数据。

Web服务具有“硬编码”的私钥和公钥,可以成功解密SessionKey,然后使用它来解密我发送的实际数据。

这几乎是由EncryptedData类自动处理的。

我遇到的问题是,当我想回复时,在Web服务端,我似乎无法弄清楚如何获取发送过的SessionKey。

在我在Web服务端进行任何解密之前,我可以看到加密的会话密钥,但在解密XML之后,它已经消失了(因此我的回复中没有任何会话密钥)。

我有什么想法可以获得这个未加密的密钥?

1 个答案:

答案 0 :(得分:0)

您无法看到会话密钥的原因是它会被自动解密和使用。通常它被认为是XML的一部分。如果你想要它,只需使用

encryptedxml.decryptencryptedkey

你应该没事。请注意,对于所有不太重要的安全警告,此处表示的代码容易受到中间攻击中的人和较小的填充oracle攻击。它应该有助于防止大多数窃听尝试。

最后,重用会话密钥也被认为是非常糟糕的安全实践。如果您重复使用它,至少考虑使用IV,例如每个后续消息的计数器。

相关问题