应用程序如何向服务器验证自己的身份?假设我发布了一个可以连接到我的 Web 服务器的 Android 应用程序。
有什么方法可以确保客户使用我制作的应用程序,而不是第三方应用程序?我认为可以通过逆向工程获取我的应用程序的源代码(proguard 似乎并不完全安全),因此第三方可以轻松制作一个应用程序来冒充我的应用程序。
TLS/SSL 是否解决了这个问题,如果是,如何解决?我可以要求客户端向我的服务器发送来自受信任机构的证书,从而将身份验证的责任放在受信任的机构身上。但这在实践中如何运作?可以说我生成了自签名证书,并将其添加到服务器信任库中。我如何安全地将这些分发给应用用户?
也许我在这里遗漏了一些基本的东西,但任何指向正确方向的东西都会有所帮助!
最佳答案
一般来说,你不能。应用程序代码是公开的——没有什么可以阻止坏人对其进行逆向工程并将协议(protocol)模拟到发球区。更多讨论 here .
代码混淆是您最好的选择。特别是在 Android 上,请查看 ProGuard。没有坚如磐石的保证,但也许坏人会失去耐心。 :)
关于android - 应用认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11052306/