阻止安卓设备通过设备 ID 从应用程序服务器检索数据



我正在开发一个从外部服务器检索数据的Android应用程序。此应用程序安装在 20 台平板电脑上。但是,当设备被盗时,应阻止对此外部服务器的所有访问,因此无法从此外部服务器检索任何数据。

我想通过唯一设备 ID 阻止设备,因此服务器拒绝设备发送到服务器的标识符。我最终得到了所谓的Android ID。但是,有时已知它是空的,它被记录为"恢复出厂设置后可以更改"。它也可以很容易地在有根手机上更改。

我知道一些银行应用程序会阻止植根于过去的设备,因此它们会使用某种方式来阻止设备。我想知道他们是怎么做到的。

是否有推荐的方法来实现此设备阻止?

假设:

  • 该应用程序不在谷歌播放中
  • 直接安装在平板电脑上
  • 您可以控制在哪些设备中安装它。

最好的方法可能是:

  • 在后端中包含安装该应用程序的所有平板电脑的哈希设备 ID 白名单。
  • 在向后端发出的每个请求中,应用程序都会发送经过哈希处理的设备 ID,并根据白名单执行检查,并且仅在正匹配时提供请求。

因此,如果您控制安装该应用程序的设备,则可以确保仅将其安装在不返回nullANDROID_ID的设备中。

针对您的问题的更好解决方案是使用一个外部服务,该服务可以在运行时验证应用程序的完整性,后端可以检测每个请求是否不是来自篡改的应用程序或 root 设备。您可以在 Approov 中看到此类服务的示例。

在此博客系列中,您可以看到 Approov 解决方案的工作原理演示,同时了解其他技术来保护没有 Approov 解决方案的应用程序,该解决方案使用集成在应用程序和云服务中的 SDK 来验证应用程序和设备的完整性,并发出使用只有云服务和后端知道的机密签名的 JWT 令牌, 从而无法在安装应用程序的设备中或由中间人攻击进行逆向工程。

免责声明:我为Approov工作

相关内容

  • 没有找到相关文章

最新更新