隐藏秘密密钥Air app的价值

时间:2011-06-28 11:51:44

标签: actionscript-3 air obfuscation protection

我正在创建Air(AS3)项目。它将拥有自己的保护系统。从服务器到应用程序并返回的所有数据都是加密的。我使用在服务器端脚本和应用程序中注册的密钥。如果黑客反编译应用程序,它可以找出密钥。密钥是字符串(常量)。我不想对我的应用程序进行模糊处理。

如何隐藏此密钥?我可以只对它进行模糊处理吗?我可以使用秘密数据对单独的AS3类进行模糊处理,然后在需要时从主代码访问它吗?

2 个答案:

答案 0 :(得分:3)

如果您不希望有人反编译应用程序并找到密钥,那么最好的办法是永远不要将密钥放入应用程序中。相反,强制他们对您的服务器进行身份验证(通过TLS / SSL)以获取在运行时基于每个客户端协商的密钥。

协商对称密钥后,您可以使用它来加密/解密您的数据以进行传输。当然,这就提出了为什么不首先使用SSL?这为您提供了客户端和服务器之间的端到端加密。

当然,当应用程序在其系统上运行时,攻击者仍然可以从RAM中提取解密密钥。因此,他们可以解密他们正在运行的应用程序和服务器之间的数据,但无法解密其他应用程序用户传输的数据(因为他们每个人都有不同的密钥)。

您无法以任何攻击者永远无法找到的方式将密钥放入应用程序。您的应用需要查找和使用它;你的应用程序这样做的过程将导致攻击者。所以不要把它放在那里。

答案 1 :(得分:1)

如果黑客完全反编译您的应用程序,无论存储如何被混淆,您的秘密都可以轻松追踪。
如果要将混淆保持最小,则需要对使用密钥的每个区域进行模糊处理。如果它离开“不可编译”区域,它就会消失。