jay*_*net 8 facebook oauth ios
是否有可能在iOS上使oauth安全?
我正在研究OAuth 2.0作为实现iOS应用程序"套件"的单点登录+授权的方法.为了解释我的担忧,我将简化并使用Facebook +第三方应用程序,使用Facebook进行身份验证(假设单词/"Words with Friends").
出于举例的目的,我假设Facebook注册支持方案/协议"facebook://"并且Words注册以支持"words://"
我还假设无法在iOS应用程序中保护"客户端密钥"或协议,因为您可以反编译应用程序.我想出什么办法来确保这一结果通过隐藏的安全.
另一个假设是没有办法阻止两个应用程序注册以处理相同的协议.当两个应用程序都注册相同协议时的行为是不确定的.(虽然看起来在设备上启动的第一个应用程序在第二个应用程序注册被忽略时被注册)
如果我了解iOS设备上的Facebook(用户代理)和Words(客户端)之间的工作流程:
假设以上是正确的,如果我想要恶意并访问随机人的朋友列表,我可以创建一个应用程序,它也注册处理协议"words://"并在应用商店中获取它.如果有人安装了我的应用程序和单词并且我的应用程序是成功注册的应用程序(即在单词之前在设备上启动),则:
我希望我的推理是有缺陷的,或者我必须(特别)得出结论,第三方应用的Facebook iOS身份验证是不安全的.
更一般地说,是否可以在iOS应用程序上安全地实施OAuth 2.0(授权/隐式授权工作流)?
Google 针对这个问题提出了一个实验性解决方案,他们称之为OAuth 2.0 for Installed Applications。
Google OAuth 2.0 端点支持安装在设备上的应用程序...假设这些应用程序无法保密。
本质上,共享秘密被视为非秘密。
在撰写本文时,大多数 OAuth 2.0 服务器似乎不支持此实验设计。
这种设计引入了这样的风险:攻击者可能会创建一个新客户端,将自己表示为授权服务器的应用程序(攻击者需要按照您在问题中描述的方式获取客户端标识符,或者按照此处建议的技术之一获取客户端标识符) 。
然而,资源所有者(用户)不太可能授权恶意应用程序对受保护的资源采取任何操作,这一事实似乎减轻了这种风险,因为他/她知道该应用程序实际上不是,你的申请。
| 归档时间: |
|
| 查看次数: |
1122 次 |
| 最近记录: |