4

Android 最近发布了 EncryptedSharedPreferences,它自动加密 SharedPreferences 键/值数据。虽然这很好,但我发现我可以简单地挂接到 API 调用并检索解密的值。除了在调用 EncryptedSharedPreferences 之前手动加密数据(哪种方式违背了它的目的)并实施更强大的运行时篡改确实检测到挂钩,有没有办法抵抗这种攻击?

此外,我还能够通过挂钩 javax.crypto.Cipher 并检查 SecretKeySpec 和 IvParameterSpec 来提取用于加密 EncryptedSharedPreferences 中的键/值对的加密密钥。这看起来很奇怪,因为加密密钥不是应该驻留在 Android 密钥库中并且永远不会离开吗?

4

1 回答 1

1

EncryptedSharedPreferences 的目的是保护其加密的数据,使黑客无法理解数据,它无法防止窃取数据。但是,如果您获得加密数据并且无法解密,您该怎么办?如果你不能,那么 EncryptedSharedPreferences 已经达到了它的目的。

于 2020-02-25T10:01:27.500 回答