【问题标题】:Protecting AES key in mobile App保护移动应用程序中的 AES 密钥
【发布时间】:2013-04-27 10:52:11
【问题描述】:

我已经阅读了许多关于 AES、CommonCryptor、salt 和 MAC 的帖子和资源,以寻找解决我在发布移动软件库时遇到的问题的方法。我想使用自定义 URL 方案在 WebView 中通过 HTML 和 JavaScript 将加密字符串传递给我的 iPhone 和 Android 应用程序,并将字符串作为参数。 HTML 文件将在我的网站上创建,然后分发给用户以存储在他们的网络服务器上。

根据我的阅读,我会使用密钥对 HTML 文件中的字符串进行加密,然后再将其分发给用户。然后相同的密钥将存储在库中并用于解密字符串。但是,如果有人反编译我的应用程序,他们将拥有密钥并能够解密存储在分布式 HTML 文件中的字符串。我知道这个库可以很容易地被反编译,但是提供字符串和代码真的是放弃了它。真正的危险是,人们可以使用 HTML 文件在我的库的被黑版本中触发恶意操作。

我真的不想打电话给我的网站来获取密钥或盐,我不确定这是否会提供任何保护。与密钥一起存储在库中的随机盐会起作用吗?

我愿意花时间研究、编码和测试它,但首先我想知道使用 AES、CommonCryptor、salt 或 MAC 是否可行。如果我们在这里解决它,它将作为这个问题的解决方案提供给所有人。

谢谢

【问题讨论】:

    标签: android iphone aes


    【解决方案1】:

    编译您自己的 openssl 和 crypro 静态库,并将这两个静态模块包含到您自己的本机 .so 模块中。不要使用内部 Android SSL。

    以某种受保护的方式使密钥深入内部(简单的解决方案是使用带有一些非平凡散列的浮点数组)。解密本机代码中的加密消息。在本机代码中确定消息是否正常时。不要使用纯布尔值返回 Java。

    每当黑客想要破解您的代码时,他都必须反编译大约 800K 的本机代码。

    【讨论】:

    • 这只是通过默默无闻的安全。
    • 感谢您的回复。
    猜你喜欢
    • 2019-07-14
    • 1970-01-01
    • 2013-12-26
    • 2019-08-04
    • 2011-06-23
    • 2013-03-26
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多