【问题标题】:How to keep KEYS secure in fully offline app?如何在完全离线的应用程序中保持 KEYS 的安全?
【发布时间】:2018-02-17 18:36:34
【问题描述】:

我有完全离线的应用程序,它保留了实现功能所需的少量 KEYS。我正在使用 proguard 来保护我的应用免受逆向工程的影响,但是我不可能 100% 地让应用远离逆向工程。

此外,KEYS 被定义为不可变的字符串。因此,我认为虽然我使用了 proguard,但最终不会混淆 KEYS。

我的问题是,

如何在我的应用程序中保持 KEYS 的安全,我的应用程序要求也是固定的 & 只想在应用内保留 KEYS?

【问题讨论】:

  • “保护密钥”的定义过于宽泛。你到底想达到什么目的?应用离线时是否需要密钥?你有用户认证机制吗?
  • 您使用 KEYS 的目的是什么?正确的解决方案取决于您的实际用例。
  • 您可以将 KEYS 视为应用程序工作/功能所需的某种数据集
  • 我也在寻找相同的解决方案,但我还没有找到正确的方法

标签: android android-keystore android-security android-securityexception


【解决方案1】:

我认为唯一可能的方法是依赖某种用户输入(密码?),然后从该输入中派生一个密钥并使用该密钥加密/解密您的密钥。

这意味着您的应用程序将在用户第一次启动之前无法运行(以便她可以输入密钥/密码),如果应用程序应该在后台运行,这可能会出现问题。

另一种方法是使用 Android KeyStore 来加密/解密您的密钥——这样您就可以将信任从用户转移到使用过的设备。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    相关资源
    最近更新 更多