如何检查iOS设备的真伪

3
我有一个应用程序服务器进程,需要检查发出请求的设备是否是真正的iOS设备。我过去通过利用推送通知来实现这一点。用户首先授权推送。每次用户进行特定类型的请求时,我都会向该设备推送一个代码,应用程序使用该代码进行第二个“已验证”请求到应用程序服务器。通过APNS的这种额外通道,在某种意义上证明了请求者设备的真实性。这使得人们很难伪造请求,因为他们将无法接收到所需代码的推送通知。
最近,苹果开始执行规则,即应用程序不能要求用户接受推送通知才能使用应用程序,即使我们不使用推送通知进行警报。
是否有任何可比较的方法让我的应用程序服务器与苹果联系,以检查请求是否来自我的应用程序在实际的iOS设备上?或者这是一个不切实际的期望,无法确定这一点。

1
没有绝对的方法,但你可以使用HTTPS来增加(在大多数情况下防止)窃听的难度。你还可以让服务器为每个没有标识符/令牌的设备生成一个,并让该设备将其存储在本地或最好是其钥匙串中。然后,设备通过HTTPS通知令牌,你的服务器就能够识别该设备。我相信这应该可以解决你的问题。这有帮助吗? - jweyrich
1
你的真正目标是确保发送到你的服务器的请求确实来自你的应用程序吗? - rmaddy
1个回答

2

我现在找不到那篇文章了,但是有些人成功地将树莓派注册为iOS设备,并通过WiFi接收推送通知... 我相信这将是一个具体的证明,即连你的第一次“双向认证”也并不是真正安全的...

现在,直接回答,没有办法让你的应用服务器检查请求是否来自iOS设备,因为TCP/UDP包中的所有信息都可以被伪造...


1
这就是为什么我在问题下面发表了我的评论。最有可能的是,检查iOS设备是错误的方法。方法应该是验证请求来自特定的应用程序,并且有适当的解决方案。 - rmaddy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接