Android上是否有与iOS的钥匙串等效的用户凭证?


72

在Android上有与iOS的钥匙串等效的功能吗?

我对Preferences API的理解是未加密。对于我的应用程序来说,这些凭据是否可以在设备之间持久(例如,与Android中类似iPhone的Keychain不同的用例)无关紧要

我还查看了KeyStore API,但似乎将用户凭据的实际存储留给了应用程序开发人员。

Answers:


8

简短的回答,没有答案。但是您可以期望文件系统是安全的。

每个应用程序在不同的用户下运行,并且用于存储应用程序数据的文件系统受常规UNIX用户权限的保护。因此,默认情况下,每个应用程序的文件访问都处于沙盒状态。文件系统也可以被加密。

开发者网站上的此页面对此进行了更好的解释:http : //developer.android.com/guide/topics/security/security.html


18
当您使用密码或密码锁定iOS设备时,这些将用作私钥的一部分。6分钟的破解仅适用于未锁定的设备。
Heath Borders

4
用户更改iOS密码后会发生什么?它解密/重新加密钥匙串?
杰弗里·布拉特曼

6
每个iOS也都在自己的sanbox中运行。因此,UNIX用户分离不是借口。对于加密存储,权限分离是无可替代的!
miho 2014年

2
即使用户卸载并重新安装应用程序,您如何在Android上保留密钥?
超级工程师

有一个,请参阅下面有关SmartLock的答案(这是正确的答案)。
Guillaume Laurent

6

实际上有:

通过将Smart Lock for Passwords集成到您的Android应用中,您可以使用用户保存的凭据自动登录您的应用。用户可以同时保存用户名密码凭据和联合身份提供者凭据。

通过使用凭据API检索登录时保存的凭据,将Smart Lock for Passwords集成到您的应用程序中。使用成功检索到的凭据登录用户,或使用凭据API通过部分完成应用程序的登录或注册表单来快速吸引新用户。登录或注册后提示用户存储其凭据,以供将来进行自动身份验证。

https://developers.google.com/identity/smartlock-passwords/android/


1
该API并不能真正方便地存储任意OAuth令牌等。它似乎为用户提供了一种登录您的应用程序的方式。对于提供对其他服务的安全访问的应用程序,它没有用。并未真正回答原始问题
yano

您可以从不同的角度来看它。如果只能存储用户名和密码,为什么不只保留用户名和密码,而只将令牌维护在内存中。每当应用程序重新启动时,它都会重新进行身份验证。虽然并不出色,但目前看来是最安全的方法。
neteinstein

4

扩展@DJPlayer的答案:

一些相关文章。第三个包含一个github应用程序,该应用程序演示了如何使用密钥库提供程序来生成密钥,然后对字符串进行加密。

另请参阅Android存储选项以了解存储加密密码的方法-我的建议是共享首选项。

请注意,根据第二篇具有root用户访问权限并且对应用程序如何使用密钥库有一定了解的知识(可以通过反编译apk来获得),可以劫持私钥并将其用于解密加密材料(例如:永久密码)


1
对于第三篇文章,一旦生成了密钥,然后将其用于加密明文,那么加密后的字符串将存储在哪里?
Android Noob 2015年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.