【问题标题】:How to check authenticity of iOS device如何检查iOS设备的真实性
【发布时间】:2015-12-18 02:20:13
【问题描述】:

我有一个应用服务器进程,需要检查发出请求的设备是否是实际的 iOS 设备。我曾经通过利用推送通知来做到这一点。用户首先授权推送。每次用户发出特定类型的请求时,我都会将代码推送到应用程序用来向应用程序服务器发出第二个“经过身份验证”的请求的设备。从某种意义上说,通过 APNS 的附加通道将证明请求者设备的真实性。这使得人们很难欺骗请求,因为他们将无法接收带有所需代码的推送通知。

尽管 Apple 最近开始执行规则,即应用程序不能要求用户接受推送通知才能使用该应用程序,即使我们不使用推送通知来发出警报。

我的应用服务器是否有任何类似的方法可以向 Apple 检查请求是否来自我在实际 iOS 设备上的应用?或者这是能够确定这一点的不切实际的期望。

【问题讨论】:

  • 没有,但是您可以使用 HTTPS 来进行困难的(在大多数情况下阻止)嗅探。您还可以让服务器为每个没有标识符/令牌的设备生成标识符/令牌,并让该设备将其存储在本地,或者最好存储在其钥匙串上。然后设备通过 HTTPS 通知令牌,您的服务器能够识别设备。我相信这应该可以解决您的担忧。有帮助吗?
  • 您的真正目标是确保到达服务器的请求确实来自您的应用程序吗?

标签: ios


【解决方案1】:

我现在找不到这篇文章,但是有些人设法将 raspberry pi 注册为 iOS 设备并通过 wifi 接收推送通知……我相信这将具体证明即使您的第一个“双向身份验证”也不是真的很安全……

现在,直接回答“不”,您的应用服务器无法检查请求是否来自 iOS 设备,因为 TCP/UDP 包中的所有信息都是 100%“可欺骗”的...

【讨论】:

  • 这就是我在问题下方发表评论的原因。最有可能的是,检查 iOS 设备是错误的方法。方法应该是验证请求是否来自特定应用,并且有适当的解决方案。
猜你喜欢
  • 2014-10-07
  • 2016-02-04
  • 2017-10-30
  • 2018-09-28
  • 2021-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-11
相关资源
最近更新 更多