什么是确保服务器端和移动客户端通信安全的解决方案?

时间:2012-04-03 06:26:26

标签: android iphone security encryption encryption-asymmetric

我的要求如下:

  1. 仅限移动设备(iphone或android)的请求,也就是说,禁止来自程序或浏览器的请求。
  2. 基于会话的对话。
  3. 服务器端可以通过其他代理或其他方式修改后期数据。
  4. 应考虑移动设备可能被黑客攻击的情况。
  5. 我的一些想法符合我的要求:

    • 对应1:我想使用RSA,我生成密钥和密钥,客户端使用密钥加密数据,服务器使用其秘密进行解密,并检查密钥。但是当移动设备遭到入侵时,其他人知道密钥怎么样。
    • 对应3:我想使用hmac算法和密钥为每个请求生成签名。

    我的解决方案有任何安全问题吗?你的是什么?

    已更新:很抱歉,我忘了提及基于用户登录的所有要求。

3 个答案:

答案 0 :(得分:3)

  1. 你一般不能。您需要以某种方式让您的移动应用对服务器进行身份验证(私人帐户,Google帐户,SSL客户端证书等)
  2. 使用常规的基于cookie的会话。使用提供真正随机会话ID并使用SSL保护的解决方案,以防止会话劫持等。
  3. 使用SSL(HTTPS)
  4. 不确定这意味着什么。如果您正在进行特定于设备的身份验证,则需要一种撤消帐户的方法,以便无法使用被盗等手机。
  5. 最后但并非最不重要:不要尝试发明安全协议。使用HTTPS并且不认为您可以创建安全的解决方案,因为您阅读了书籍/博客/文章/教科书关于它。

    再次:请使用HTTPS

答案 1 :(得分:0)

1)我不确定使用RSA会解决这个问题,除非您的所有移动应用程序具有相同的公钥/私钥组合。浏览器可以轻松使用RSA并加密数据。

执行此操作的方法可能是检查移动运营商插入的标头的HTTP标头,以及这些标头是否可以伪造。

这是一个难题。我会继续思考它并让你知道是否有什么想法。

2)对于基于会话的加密,您可以使用Diffie-Hellman密钥交换算法协商会话密钥,然后使用该算法将请求锁定到会话。

3)听起来不错。

4)我认为手机被黑客攻击的唯一方法是要求用户登录,因为您需要对用户进行身份验证,而不仅仅是设备。另一件事是人们共用手机,所以甚至可能都没有被黑客入侵。它可能只是被放了出来。

答案 2 :(得分:0)

考虑使用ASIHTTPRequest api,并使用SSL获得更多保护。对于黑客移动,用户登录是实现它的便捷方式,每次用户发送POST请求时,您都可以要求通过。