2011-11-02 174 views
1

我是新来的加密和Android,所以问这个问题。AES加密 - 在Android上存储密码

应用程序如密码管理器,密码安全等如何处理AES加密,他们都声称他们的应用程序是安全的。但我的问题是,如果密码存储在设备数据库中,并且所用的密钥在代码中,那么根本无法完全保证它的安全。因为如果设备遭到黑客攻击,应用程序可能会被反向设计,并且可以轻松获取密钥/代码。即使代码被混淆,密钥仍然可以从混淆代码中获得,对吧?混淆可能会更困难,但并非不可能。

或者这些应用程序是否有不同的方式来处理加密?

我正在做一个类似的应用程序,所以我真的很想知道一个好的加密密钥是什么以及存储它的最佳位置/方式。我不想从应用程序远程访问密钥。

在此先感谢。

+0

你是对的,如果钥匙在机器上,它可以找到。假装这一点的唯一方法是将密钥从机器上取下或通过用户在应用程序运行之前必须输入的密码进行加密。有点像加密磁盘的作品。你在USB棒上有你的钥匙,或者你知道密码。其他任何东西都不安全。也许在移动设备上存储器被加密一些(电话卡的引脚)。但那只是一个猜测。 – evildead

+0

我不确定这个网站是否适合您的问题,我会查看security.stackexchange.com姊妹网站。 – Incognito

回答

0

密码管理器应该使用一种“主密码”来保护其密钥。通常这是通过使用PBKDF2(基于密码的密钥推导函数)生成密码来完成的。因此,用户必须在应用程序能够解密数据之前输入密码。

如果您的应用程序以任何形式包含密钥,则它在设计上不安全。

+0

是的,我有一个主密码,所以这将工作。谢谢! – radkan