在Android应用程序开发中,在设备端存储AES密钥的位置

时间:2017-06-04 05:44:26

标签: android security aes

当我开发任何具有AES实现的Android应用程序时,密钥应该是常用的,在服务器端和移动端(客户端)中使用。所以请建议/指导我在哪里将钥匙存放在设备中,以便完全安全。 我应该将该密钥存储在SQLite数据库中吗? 或者我应该在代码中将该密钥作为字符串?

1 个答案:

答案 0 :(得分:0)

完全安全吗?不通。

你试图保护自己的威胁载体是什么?如果您只担心外部攻击者,从服务器下载密钥并仅在RAM中使用它或将其存储在钥匙串中就足够了。

如果您担心用户/设备所有者 - 那么,没有什么能阻止他只使用自定义ROM来记录所有对钥匙串功能的调用。或者记录从设备发送的所有数据。为了安全起见,您需要使用自己的libssl副本,自己的http库(自己进行加密),不要在任何地方写入(每次都要从服务器请求)。即便如此,对于任何愿意进行逆向工程并找出密钥保存在内存中的人来说,它都是不安全的。

如果您真的想保证数据安全,请不要将其发送给客户。