【问题标题】:how does facebook authentication on mobile devices work?移动设备上的 facebook 身份验证如何工作?
【发布时间】:2016-12-23 10:29:54
【问题描述】:

我正在尝试了解 fb 的身份验证是如何在移动设备(ios/android)上发生的?

仅当我第一次安装 fb 应用程序时,我输入了用户名/密码。而已。从下一次开始,它将自动进行身份验证。

1) fb 移动应用程序是否将设备上的用户名/密码存储在任何文件中? 2)它会使用oauth或类似的令牌机制吗?如果是这样,令牌存储在设备上的什么位置。

我想,我的问题是,它存储在哪个内存/路径/文件名中,以便它受到保护,其他应用程序/root 用户无法访问。

非常感谢

【问题讨论】:

    标签: android ios facebook oauth whatsapp


    【解决方案1】:

    这是个好问题。

    将用户的密码存储在设备上的标准本地目录中是很危险的,原因很明显,如果手机遭到入侵,黑客可能会访问可能在帐户之间共享的密码(你有为您使用的每项服务设置不同的密码?)。

    但是,将用户名存储到设备的默认存储中并不成问题,这通常是首选方法。对于 iOS,这将是 NSUserDefaults

    现在,对于密码和令牌(肯定是必需的,FB 不会在基于令牌的身份验证方面偷工减料),它们都是应该受到保护的安全内容,它们是通常存储在某种加密的钥匙串中。在 iOS 的情况下,借助 Keychain Services 进行 256 位加密。

    因此,当您使用自动登录构建应用程序时,您会在加载时从钥匙串中检索密码和令牌。但是,如果设备丢失并最终落入坏人之手,所有这些数据都将被加密且无法访问。

    当然,我们不要假装这个方法是万无一失的:http://arstechnica.com/security/2015/06/serious-os-x-and-ios-flaws-let-hackers-steal-keychain-1password-contents/

    编辑:虽然我的背景是 iOS,但我知道 Android 使用 Keystore 作为替代方案。

    https://developer.android.com/training/articles/keystore.html

    【讨论】:

    • 我认为,ios 上的钥匙串服务是安全的,但是在看到您的链接后,我重新考虑了它。在 android 应用程序上怎么样,密码/令牌详细信息可以存储在哪里以确保安全(相当于钥匙串)。
    • @SrinivasKK 我同意,这令人担忧。请参阅我的 Android 编辑。
    • 我刚刚在我妻子的安卓设备上做了一个测试。我去了设置-> 应用程序管理器-> facebook-> 清除数据。现在我打开了 fb 应用程序,我得到了预先填充了用户 ID 的登录屏幕。我认为,密码存储在某个已清除的文件或密钥库中。我不知道如何清除我的 iphone 上的数据。有什么想法/意见吗?感谢您的回答以及在 android 上的编辑
    • 这是一个很好的问题,我会解释原因。事实证明,在 iOS 上没有办法从用户设备上清除钥匙串。然而,在构建软件的时候,它当然是非常重要的。因此,我的方法是在我的应用程序中添加一行脚本,清除关联的钥匙串,在设备上运行它,然后注释掉脚本并像往常一样再次运行应用程序。
    • 这解释了如何由开发人员删除钥匙串。没关系。如果可以的话,您是否也可以将您的专业知识用于此主题:stackoverflow.com/a/38776438/6669772 感谢您的知识和帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多