【发布时间】:2014-05-15 19:28:29
【问题描述】:
我最近开始玩弄一个 android 应用程序,我已经到了希望它与 Web 服务通信的地步,我完全理解如何以不安全的方式做到这一点,我有点被绊倒了关于安全性。
我希望它像我手机上的 facebook 应用一样工作,它始终处于登录状态,似乎永远不会过期。
我的第一个想法是使用 User / Pass 并使用 SSL 加密将它们本地保存在手机上。但这可能是一个安全问题,丢失的手机被植根,然后人们可以看到登录并通过(即使它们被散列/加密,这似乎是一个问题)
我的另一个选择是使用 Oauth 1a/2,但如果我没记错的话,这似乎有同样的问题,除了使用 auth 令牌,这意味着除了在 api 层之外会出现同样的问题。
我也研究了 androids accountManager,但我打算为 iOS 制作这个,所以我想对两者都使用通用做法。
你们觉得呢?
一般问题:
刷新 Oauth 令牌与再次登录是一样的,还是只是一个新的 Oauth 令牌?
有没有办法从手机中获取唯一 ID 以检测“新手机”是否正在使用?
有谁知道 facebook 或 google 如何在他们的设备上处理他们的身份验证/授权?他们只是简单地存储一个永不过期的身份验证令牌,还是在它到期时发布一个新令牌?
我猜我认为 Android 应用程序似乎很容易受到“如果有人发现一个漏洞可以在没有 root 访问权限的情况下提取身份验证令牌怎么办?”换位思考,我这样想错了吗?
我是否也错误地认为,如果有人获得了我的令牌,唯一会阻止他们通过 api 访问我的帐户的方法是,如果我访问并使用了 api,它会将我的 Oauth 更新为新值以使我的旧值一个过时的? (假设没有可靠的方法来判断哪个设备是哪个)
【问题讨论】:
标签: android ios authentication oauth