【发布时间】:2014-02-24 20:01:44
【问题描述】:
所以我正在寻找一种在两个应用程序之间传递数据的安全方式(尝试为 IOS 应用程序实现安全的 OAuth 提供程序)。这是我对安全的定义和一些额外的假设/要求:
- 我希望应用 A 调用应用 B 并向其传递令牌 TokenA,然后应用 B 基于此令牌获取一些结果,并将结果返回给应用 A。假设有一个名为应用 C 的恶意应用,我想要确保应用 C 无法拦截应用 A 和 B 之间的任何消息。
- 假设TokenA是app C可以获取的一些公开信息。我想确保应用 B 不会响应带有 TokenA 的请求,除非它来自应用 A。
- 假设应用 B 实际上是一个“服务提供者”,当应用 A 注册使用该服务时,应用 A 可以向应用 B 提供一些信息(例如 IOS 捆绑 ID)。
- 安全消息传递方法不得要求越狱手机。
- 假设可以在应用 A 和 B 之前或之后安装应用 C。
本来我想用一些基于scheme的方法,但这并不安全,因为如果app C可以register for the same scheme作为A和B,然后拦截消息(违反要求1)。
检查重复意图也是不够的,因为如果用户没有安装应用 A,攻击者可以注册应用 A 的方案并绕过此检查(违反要求 2)。
我查看了 Facebook 的 IOS OAuth,他们似乎要求应用在注册 Facebook 时输入其“捆绑 ID”。我非常肯定 Facebook 会在某种检查中使用此捆绑包 ID,但不确定是什么。
感谢任何帮助。
【问题讨论】:
标签: ios iphone facebook security oauth