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