验证移动本机应用程序

时间:2013-02-13 16:39:09

标签: security api mobile

假设我有一个需要进行API调用的Android应用程序。我想对已部署的应用程序进行身份验证,以确保未经授权的客户端无法使用我的API。

我可以在应用程序中放置任何内容 - 签署请求的HTTP标头,以及nonces。但是,如果有人反编译应用程序,他将能够复制身份验证方法,例如生成签名和共享密钥的算法。使用Java和Android,这不是不可行的。

有可能避免吗?可能不是,但我想确保密码学对我没有解决方案。

1 个答案:

答案 0 :(得分:3)

此问题无法解决。您的服务器无法知道它正在与“您的”客户端通信。您可以合理地验证的唯一事情是用户,而不是应用程序。也可以合理地验证某些安全的硬件设备,但这非常昂贵,但仍然无法确保您的客户端正在使用;它仅表明用户可以访问您的某个安全硬件设备。

SO已多次讨论过这个问题。这些帖子讨论了这个问题并与更多这些讨论联系起来:

虽然上面的帖子是以iOS为框架的,但问题仍然存在。