Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encryption 存储对称密钥AES的安全方法是什么?_Encryption_Cryptography_Aes - Fatal编程技术网

Encryption 存储对称密钥AES的安全方法是什么?

Encryption 存储对称密钥AES的安全方法是什么?,encryption,cryptography,aes,Encryption,Cryptography,Aes,我正在实现AES。加密将在服务器端进行,解密将在客户端进行。存储密钥并将其传递给客户端的安全方式是什么?我是否需要存储在记事本或XML中才能传输?我可以使用jks pr证书来存储该密钥吗?最好的方法可能是让远程方生成一个非对称密钥对(例如RSA 2048位),并让他们向您发送公钥。这种传输必须是安全的,因为公钥应该被验证为来自另一方。然后可以使用(随机)AES密钥加密数据,并使用公钥加密AES密钥。远程方使用私钥(保存在远程位置)解密AES密钥。然后数据可以被解密。至少使用AES-CBC模式,该

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

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


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

使用公钥加密传输密钥。如果不描述您的威胁模型,我们将无法帮助您。如果您的问题不涉及DRM,那么您可能应该使用SSL而不是手动编码AES.client将位于远程站点,而没有Internet连接连接。将在PunRiVE中传输加密数据。@ USER88280,您认为合法用户是攻击者(DRM)还是要保护其数据?在第二种情况下,正确的解决方案是在说明应用程序/打开文件时提示用户输入密码,并从中派生AES密钥。我们可以将该密钥存储到证书中吗?我完全理解您的观点,我想也这样做。但我的问题是,密码将如何传递给客户端(它位于没有互联网连接的地方)加密的数据将使用pendrive或sd卡传输。我会在pendrive中传输密钥吗?如果是,那么如何传输?使用公钥加密。如果不先建立某种信任关系,就无法建立安全通道。在这种情况下,来自另一方的公钥的信任将建立信任。基本上,您不能拥有如果您不知道谁将接收数据,则为N身份。如果数据随您一起移动,则可以使用基于密码的密钥派生机制PBKDF2并记住密码。