我需要选择存储通过SSH隧道进行通信的应用程序的身份验证密钥或密码。在不要求用户输入密钥的情况下,最安全的存储方式是什么。
我可以从用户Google帐户中获取一些独特且秘密的内容,以用作存储偏好设置的加密密钥吗?这样,恶意方需要访问用户的Google帐户和加密的偏好设置才能造成任何伤害。
答案 0 :(得分:0)
SharedPreferences基本上就像cookie一样,它们被广泛用于身份验证。仅使用密码进行首次身份验证,稍后使用生成的令牌。
如果您担心有人会丢失手机,您可以添加远程销毁数据的选项或使用密码加密,但可以使用反向哈希。
答案 1 :(得分:0)
听起来Google OAuth对于您的情况来说是完美的,与在共享偏好中存储用户令牌并使用SSL相结合。
如果用户设备被获得root的恶意方攻击,那么您应该假设他们已经检索到设备上的任何令牌。也就是说,令牌通常具有有限的有效期,如果您怀疑它们已被泄露,则可以撤销令牌。
在SO上已经提出了类似的问题there's a pretty good answer。