2

我正在研究如何在 Android 设备上安全地存储敏感数据。当然,没有 100% 安全的方法,我希望尽可能安全。

我已经阅读了官方的建议

举个例子,我有一个存储文本的应用程序(例如私人日记)。文本存储在 xml 文件中,该文件使用存储在 Android KeyStore 中的密钥进行加密 (aes256)。

这应该意味着数据安全地存储在加密的 xml 文件中。root 用户仍然可以从 KeyStore 访问密钥并对其进行解密,或者在应用程序解密后获取数据。

但是,这也意味着每个应用程序都使用相同的密钥。所以我可以在我的手机上安装该应用程序并使用我的密钥来解密来自其他手机的 xml 日记文件。

问题是,如何创建每个应用程序安装唯一的密钥或至少是盐?

4

1 回答 1

1

密钥推导函数KFS 就是为了这个

来自维基百科;

在密码学中,密钥派生函数 (KDF) 使用伪随机函数从一个秘密值(例如主密钥、密码或密码短语)派生一个或多个秘密密钥。

您可以使用Argon2Password Hashing Competition的获胜者。

选择 IMEI 号码作为参数之一,用户密码和手机中的随机数。

于 2018-11-07T11:48:42.217 回答