0

我正在实施 AES。加密将在服务器端进行,在客户端进行解密。存储密钥并将其传递给客户端的安全方法是什么?我需要存储在记事本或 XML 中才能传输吗?我可以使用 jks pr 证书来存储该密钥吗?

4

1 回答 1

0

可能最好的方法是让远程方生成一个非对称密钥对(例如 RSA 2048 位)并让他们向您发送公钥。这种传输必须是安全的,因为公钥应该被验证为来自另一方。然后,您可以使用(随机)AES 密钥加密数据,并使用公钥加密 AES 密钥。远程方使用私钥(保存在远程位置)解密 AES 密钥。然后可以解密数据。至少使用 AES-CBC 模式,它只会提供数据的机密性,而不是完整性或身份验证。另请注意,例如数据量可能已经让攻击者猜到里面有什么。

真正的问题是如何建立信任。这就是为什么您需要检查 RSA 公钥是否真的来自正确的人,例如通过电话验证 RSA 公钥指纹。请注意,与其自己编程,不如使用 PGP 协议等已建立的解决方案。

于 2013-05-18T21:49:33.747 回答