由于我使用使用haxe的openFL开发了我的应用程序,并且我即将启动我的软件的激活部分,我想知道如何安全地存储我的加密密钥?我会把它硬编码到我的应用程序中吗?!
我将在发送到服务器之前使用此密钥加密数据,我将使用它来解密从服务器接收的数据。
在这种情况下,任何人都可以推荐最佳实践吗?
答案 0 :(得分:1)
这听起来像是非对称加密的工作。
服务器现在可以使用私钥解密AES密钥,并使用检索到的密钥解密数据。然后验证MAC,如果您将其包含在协议中。最后解密密文以检索明文。
此方案称为混合加密,因为它使用对称和非对称加密。如果不使用MAC,请注意填充oracle攻击(将所有纯文本泄露给攻击者)。在解密之前始终验证MAC。
您可以在应用程序中存储RSA公钥。使用此公钥,您可以加密AES密钥(使用PKCS#1 OAEP或v1.5填充)。