我阅读了整个 OAUTH 2.0 RFP 文档,我有点困惑。
假设我开发了本地 IOS 应用程序,并且我想使用我的用户凭据来授权它访问我的 Facebook 帐户。
防止凭据泄露的最佳做法是什么?
我的意思是,一个简单的键盘记录器记录输入到 facebook 身份验证页面的用户和密码有什么问题?
我错过了什么吗?
任何帮助将不胜感激!
一个简单的键盘记录器记录输入到 facebook 身份验证页面的用户和密码有什么问题?
理论上?没有什么。
我错过了什么吗?
是的...您缺少全局考虑/关注...用户名/密码安全性仅与使用它们进行身份验证的系统一样强大。您对客户端/系统的信任是这里的决定因素......
OAuth 的重点是授予第三方应用程序对资源的有限访问权限 - 这也可用于 SSO 身份验证。
要在 iPhone 应用程序中使用 Facebook 进行 SSO,您的应用程序会将用户转移/重定向到 Facebook 应用程序。Facebook 应用程序处理身份验证,然后使用身份验证令牌(身份验证令牌)将用户返回/重定向回您的应用程序。如果用户已经登录 Facebook 并且已经授权了您的应用程序,那么这基本上是在后台发生的。
关键是身份验证的责任转移到了 Facebook 应用程序。如果系统受到破坏,泄漏主要发生在您的应用程序之外和 Facebook 应用程序中......但这再次指出了一个更大的问题 - 系统的安全性和可信度 - 如果它受到破坏,它就会受到破坏。
防止凭据泄露的最佳做法是什么?
只需了解 auth_token 本质上与用户名/密码组合相同。使用 iPhone,您可能不需要存储它(而只需使用 Facebook 实例),但是,如果出于某种原因您确实需要存储信息 - 保护它。
从更全球化的角度来看?- 仅在您信任的系统上提供您的用户名和密码(无需考虑)。