2013-02-13 103 views
3

假设我有一个需要进行某些API调用的Android应用程序。我想对已部署的应用程序进行身份验证,以确保我的API不能被未经授权的客户端使用。移动原生应用程序的身份验证

我可以在应用程序内部放置任何东西 - 签名请求的HTTP头文件,包含随机数。但是,如果某人反编译应用程序,他将能够复制身份验证方法,如生成签名和共享密钥的算法。使用Java和Android这不是不可行的。

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

回答

3

这个问题没有解决办法。您的服务器不可能知道它正在与“您的”客户交谈。唯一可以合理验证的是用户,而不是应用程序。对某些安全硬件设备进行合理验证也是可能的,但这非常昂贵,并且不能确保您的客户端正在使用;它仅表明用户可以访问您的某个安全硬件设备。

这已经在SO上多次讨论过了。这些帖子讨论这个问题,并链接到更多的这些讨论:

虽然上面是iOS中的框架方面的职位,这个问题是普遍的。

相关问题