Google Auth Util让Android开发人员验证其服务器收到的请求来自Android设备。
设备会根据与设备关联的Google帐户从Google获取令牌,然后设备的请求会随该令牌一起发送到服务器,然后服务器会询问Google是否有效。任何密钥都不在应用程序源之外,因此恶意用户无法破解应用程序并访问私钥和软件请求到服务器。
我已经找了一段时间,似乎Apple没有提供这样的东西,但我希望有一些功能相似的功能,我可以用于iOS。
答案 0 :(得分:1)
虽然问题中隐含的假设似乎是合理的,但事实并非如此。进一步阅读Google消息来源表明,Auth Util(以及后来的Firebase)的目的是验证用户身份并保护服务器。鉴于服务器只能看到网络流量,因此可以复制来自其他客户端的流量。
此外,Android的定义相当模糊,因为OEM会修改基本操作系统以满足他们的需求。
<击> 一种选择是使用Apple Push Notification。您可以注册设备和push notifications specifically to it。当您的应用加载时,它会向服务器发送一个请求device token,并通过APN接收基本上是会话cookie的内容。
有一点需要注意it is not encrypted。您可以通过在请求中发送随机生成的对称密钥来轻松解决此问题。您获得的cookie将在服务器上加密,并使用iOS设备中的相同密钥进行解密。
这解决了在源中存储密钥的问题,并证明请求来自iOS设备。
当然,这可以通过生成证书,将其存储在密钥链中并在注册期间将私钥发送到服务器进行存储来简化。在使用APN进行初始注册和验证之后,可以使用设备ID +证书公钥对后续消息进行签名。
最后一个问题是APN也可用于注册OSX设备。我还没有弄清楚如何排除那些(还)。
免责声明:这是编写规范的漫长的一天。我对使用APN初始注册iOS设备的机制感到相当满意。我可能已经将加密部分弄错了。如果是这样,请轻轻评论。
击>