有没有办法将发布请求限制到我的REST API只限于来自我自己的移动应用程序二进制文件的请求?此应用程序将在Google Play和Apple App Store上发布,因此应该暗示有人可以访问其二进制文件并尝试对其进行反向工程.
我正在考虑涉及应用程序签名的内容,因为每个已发布的应用程序都必须以某种方式签名,但我无法弄清楚如何以安全的方式执行此操作.也许结合获取应用程序签名,加上基于时间的哈希,加上应用程序生成的密钥对和良好的旧安全性,虽然默默无闻?
我正在寻找尽可能失败证明的东西.原因是因为我需要根据手机传感器收集的数据向应用程序提供数据,如果人们可以伪装成我自己的应用程序并将数据发送到我自己的算法未处理的api,它就会失败目的.
无论多么复杂,我都愿意接受任何有效的解决方案.非常感谢锡箔帽解决方案.
这可能是一个新手问题,但我会尝试创建一个有趣的辩论。
我知道有一些用于 API 基本身份验证、API 密钥、OAuth 2.0 的身份验证方法……所有这些方法都会在请求中添加标头或 formData 参数。
尽管您使用 SSL,但破解移动应用程序“通常很容易”(我现在正在考虑使用 Android:反编译应用程序、更改清单以允许自定义 SSL、再次编译并通过 SSL 代理嗅探所有请求)。
在这些请求中,我发现了很多身份验证密钥,我可以在控制台的其他调用中使用它们,毫无问题地模拟应用程序。
所以,现在我已经在移动应用程序中破解了一些 API,我的问题是:有没有办法保护移动应用程序中的 API?
我想知道一个安全层会限制每个“密钥”的请求数量。
我错了吗 ?我错过了什么吗?这是一个愚蠢的问题吗?
是否有一个Android等效的ios设备检查 https://developer.apple.com/documentation/devicecheck 或任何方式来验证这是你的unoctored apk进行api调用?