如何让我的API私有但可以被移动应用程序使用?

Tre*_*ent 9 security api rest private http

这是我的要求:

  • 可用于我正在开发的任何移动应用程序

我正在开发移动应用程序,因此我可以实施任何安全策略.

  • 使用经典HTTP缓存策略进行缓存

我使用的是Varnish,配置非常基本,效果很好

  • 不公开

我不希望人们能够使用我的API

我想到的解决方案:

  • 使用HTTPS,但它不包括最后的要求,因为来自应用程序的代理请求将显示使用的API KEY.

有没有可能这样做?例如使用私钥/公钥这样的东西?

这非常适合HTTP,Apache和Varnish.

Rob*_*ier 14

无法确保网络链接的另一端是您的应用程序.这不是一个可解决的问题.你可以使用证书,密钥,秘密等来混淆事物.但是所有这些都可以由最终用户进行反向工程,因为他们可以访问应用程序.可以使用像证书之类的小混淆,但它不能保证安全.您的服务器必须假设连接到它的任何人都是敌对的,并且表现相应.

可以对用户进行身份验证,因为他们可以拥有帐户.因此,您当然可以确保只有有效用户才能使用您的服务.但是你不能确保他们只使用你的应用程序.如果您当前的架构需要,您必须重新设计.它无法解决,而且在普通移动平台上肯定无法解决.

如果您可以集成一块安全硬件,例如智能卡,那么就可以提高安全性,因为您可以更加确定另一端的人员实际上是客户,但即使这样也不能保证您的应用程序是连接到服务器的那个,只是智能卡可用于连接的应用程序.

有关此主题的更多信息,请参阅针对iPhone应用程序的网页安全https加密.