我们如何保护 root 设备上的 api 密钥?
如您所知,我们不能信任客户,我们能做的就是让黑客为难。以下是我知道的保护密钥的一些要点
- 使用 NDK(将密钥存储在您的 C 类中并在运行时在 kotlin 类中获取它) - 即使设备是 root 或反编译的黑客也无法访问它。
- 使用Android Key Chain(将密钥存储在硬件设备中,没有设备完整性,证书,没有人可以访问它。它存储在与您的应用程序不同的地方。不确定如果我们反编译应用程序会发生什么)。
- 安全共享偏好。(即使我们加密了文件,它仍然可以在root设备上访问,可以通过检查代码来确定解密算法)
- 安全共享偏好和 Proguard/Dexguard?(当设备被植根时,将加密密钥公开存储在应用程序包下仍然不是一个好主意。)
- 如果我们只是加密文件?(同样它会在应用程序包文件夹下,可以访问。)
还有什么其他选择?