最佳实践:如何从移动应用程序保护Http-Requests(例如Login)

And*_*air 7 security mobile android

我们有一个Web应用程序,它提供了一个简单的"Generic Http-Handler"(ASP.NET),用于提供一种简单的方法来获取移动应用程序的会话.
Atm整个概念/应用程序处于演示/ alpha /测试状态 - 所以不要惊恐万分...... :)

我意识到有几个安全问题:

  • 如果移动设备连接到WLAN(因为所需的嗅探程序非常简单),您可以直接嗅探请求(获取用户名/密码的值)和/或响应(在其他地方重用会话)
  • 我们可以添加一些加密/解密,但是因为我们在android上,任何人都可以解压缩.apk-file并进行一些逆向工程来获取共享密钥(和盐)
  • 我们可以使用https:// ...但是......如果还有另一种方式,我感兴趣...不选择SSL的另一个原因是:我们没有托管单个Web应用程序,因此......应用程序越多,它会得到的成本越高......而且,对于公司来说,这是典型的,我们确实想省钱:)

一些侧节点:
由于我们计划通过移动应用程序为客户提供访问我们的Web应用程序(处理程序只是其中的一部分)的可能性,因此我并不真正关心在市场上发布它...但也许这会改变.因此,该计划不包括"公开赠送" .apk.

我已经对"如何调整响应,以便只有移动应用程序可以有效地使用它"这一问题进行了一些研究(例如,如何保护.NET Web服务以供iPhone应用程序使用?).

我相信这一定是一个更普遍的问题,如果你在android/co上,不仅要考虑一下......所以"最佳实践"可能不仅仅局限于android(你会在iphone上有相同的场景)或winforms) - 它更多关于:如何处理远程组件来执行重要功能(例如登录,数据库访问,...)

sma*_*mad 4

在应用程序中使用由所有客户共享的共享密钥绝对不是一个解决方案。

实际上,您始终可以实现自己的安全协议(使用非对称加密等)或使用其他协议(安全 RPC、IPsec 等),但实际上 SSL 是更轻量级的解决方案(无论是协议还是实现)这样的用途。此外,由于它非常常见,因此部署起来非常容易(=便宜),并且当前的实现是安全的并且针对性能进行了优化。