在运行时期间将SecretKey存储在应用程序内存中是否安全

时间:2014-09-07 14:26:48

标签: android security encryption

我使用AES加密从服务器和用户密码返回的缓存数据。在主流程中,我初始化KeyStore并将SecureKey存储在那里,在向服务器发送请求(解密密码)之前和加载缓存响应(如果需要)之前检索它。

但是,如果用户不愿意,我想给用户一个不初始化KeyStore的选项。在这种情况下,用户必须每次手动登录应用程序。每次都会生成一个新的SecureKey并存储在应用程序内存中,直到它运行或在后台运行。

我的问题:它是否足够安全,可以在应用程序的内存中存储一​​次SecureKey(注意:在构建时没有硬编码),因为应用程序可能运行了几天?

1 个答案:

答案 0 :(得分:1)

你是什么意思" safe"?

如果对手可以访问运行您的应用程序的设备,将其冻结,对其进行反汇编并检查内存,则可以找到密码。

如果您的应用程序在内核受损的设备上运行,则内存中的密码完全容易受到攻击。

如果您的应用程序包含来自第三方广告代理商的库,则内存中的密码为toast。

如果这些攻击都不是您的攻击,那么您可能没问题。