如何验证 IDFV (idenitifierForVendor) 的供应商?
How to verify the Vendor of an IDFV (idenitifierForVendor)?
我正在考虑使用 IDFV 创建后台用户帐户,以便在我的 iOS 应用程序中通过 Oauth2 访问我的 REST API。虽然我不太关心用户通过我的应用程序访问该服务,但我想阻止(劝阻)人们自己访问 API,但我不想强迫该应用程序的用户 "sign up",因此有了使用 IDFV 的想法。
但问题是,如果服务器开始接收来自新 IDFV 的请求,有没有办法用我的供应商名称对其进行哈希检查,至少知道有人不只是向我发送随机生成的请求一个?
不,IDFV 是一个不透明的值。 UUID 中没有关于用于生成它的原始源数据的指示。
IDFV 的目的是在某些设备上识别您的应用程序的唯一实例,而不是识别您的应用程序。
在我看来,要在您的应用之外使用您的 API 的人可能会从流量捕获开始,最终只是简单地重放捕获的 IDFV 值。
另一种方法是让您的应用程序从服务器请求时间敏感的随机数。然后,应用程序必须对该值进行哈希处理并 return 它以获得会话密钥。然后,该应用程序会在每个请求中包含该会话密钥。一段时间后,它必须请求一个新的会话密钥。
这种方法并非万无一失,因为攻击者可以反编译您的应用程序并确定您的哈希技术,但它确实提高了标准。
我正在考虑使用 IDFV 创建后台用户帐户,以便在我的 iOS 应用程序中通过 Oauth2 访问我的 REST API。虽然我不太关心用户通过我的应用程序访问该服务,但我想阻止(劝阻)人们自己访问 API,但我不想强迫该应用程序的用户 "sign up",因此有了使用 IDFV 的想法。
但问题是,如果服务器开始接收来自新 IDFV 的请求,有没有办法用我的供应商名称对其进行哈希检查,至少知道有人不只是向我发送随机生成的请求一个?
不,IDFV 是一个不透明的值。 UUID 中没有关于用于生成它的原始源数据的指示。
IDFV 的目的是在某些设备上识别您的应用程序的唯一实例,而不是识别您的应用程序。
在我看来,要在您的应用之外使用您的 API 的人可能会从流量捕获开始,最终只是简单地重放捕获的 IDFV 值。
另一种方法是让您的应用程序从服务器请求时间敏感的随机数。然后,应用程序必须对该值进行哈希处理并 return 它以获得会话密钥。然后,该应用程序会在每个请求中包含该会话密钥。一段时间后,它必须请求一个新的会话密钥。
这种方法并非万无一失,因为攻击者可以反编译您的应用程序并确定您的哈希技术,但它确实提高了标准。