在Android设备上保存用户凭据

时间:2014-07-02 04:25:00

标签: android security passwords

在Android应用的设备上保存用户凭据的最佳和最安全的方法是什么。 我在考虑加密数据并将其保存在首选项中。

有没有类似于iOS钥匙串的方法来保存密码?

1 个答案:

答案 0 :(得分:1)

最好的想法是不要拯救他们。在这种情况下,加密提供的安全性非常低,因为应用程序本身必须具有解密密钥,因此密钥和数据位于同一设备上。它只会阻止最不确定的攻击者。操作系统级设备并不是更好,因为任何有物理访问权限的人都可以轻松绕过它。

最好的办法是使用访问令牌。获取登录数据一次,将其发送到服务器进行登录,并让他们以id响应。在将来的请求中使用该ID来标识自己。服务器应该记住谁与每个id相关联。优选地,服务器将包括超时机制,其中在X时间量之后id将被无效并且用户将需要再次登录。更安全的实现也会将其与设备的某些物理ID相匹配,例如Android设备ID,要求攻击者拥有设备或伪造两条信息。

使用访问令牌而不是保存凭据可以通过几种方式保护用户。首先,攻击者不会知道用户密码,以防其重用于其他服务(如他们的电子邮件)。其次,改变密码是不够的(因为安全服务会再次要求密码更改密码),因此当帐户中的信息可能受到损害时,用户可以通过使用密码更改帐户来收回帐户密码。如果保存并丢失了实际密码,攻击者可以更改登录信息并永久锁定用户的帐户。