如何确保我的移动应用程序后端不被其他应用程序调用?

时间:2012-10-10 12:50:45

标签: security google-app-engine rest

我开始关注移动开发和Android开发。

移动应用程序将主要是UI,并且所有业务都将发生在由Google App Engine托管的Web应用程序上(我认为通信将处于休息状态)。

如何确保我的其他api不被任何其他软件/应用程序调用?因为任何人都可以嗅闻网络,接听我的api电话,然后伪造他们的电话。如果我的api设计精良且完美无缺,那应该不会成为问题,但那肯定不会是这样。

  • 登录/密码不是解决方案,因为它可以被嗅探

  • SSL通信也是因为用户可以为自己的应用程序使用相同的证书

我认为没有完美的方法,但只有部分解决方案(比如用任何丑陋的技术隐藏证书,所以即使反编译也无济于事。)

编辑:

我发现了这个:How to make sure API requests come from our mobile (ios/android) app?

但是我想知道在Http或App Engine中是否存在任何已经存在的方法。我不喜欢自己编写安全代码。

雷米

1 个答案:

答案 0 :(得分:0)

在大多数情况下,似乎REST API对用户而不是应用程序来说已经足够了。这通常被视为一种好处,因为它允许多个应用程序轻松使用API​​。

您链接的问题仍然不完全安全,答案并没有真正告诉您如何确保参与注册过程的是您自己的应用。

创造防黑客的东西几乎是不可能的。通常只是让它更难以破解,所以不值得尝试。

您可能希望在客户端上实现自定义哈希函数,从服务器>客户端发送一些数据,使用自定义函数对其进行哈希处理,然后将其发送回服务器。下一步是混淆此代码并添加调试器检测以使其变得困难。

真正关心安全性的人(即Netflix DRM)利用在各种设备上运行硬件支持的“安全操作系统”。我不确定Apple是否支持这个;它可以在各种Android平台上使用,但最后我检查了它没有Android Java API(你必须通过本机代码访问它)。

http://www.globalplatform.org/mediaguidetee.asp

http://www.globalplatform.org/specificationsdevice.asp