1

我目前正在设计一个分布式 iOs 游戏。它必须包含某种身份验证(我认为是用户名、密码对,但如果有,请给我其他想法)。我计划通过一个用 Perl 编码的简单 RESTful API 来实现。

我知道这是一个经典的问题。我在网上看到很多帖子都在谈论如何安全地做到这一点。然而,太多的信息会扼杀它的信息化目标。所以,我有点失落。尽管如此,我还是试图指出基本概念,即:

  • 使用 SSL(所以使用 https url),它让你不用考虑加密
  • 使用在服务器和客户端之间共享的嵌入式私钥,但如何嵌入它们是个问题!它允许使用 HMAC 并进行某种身份验证。
  • 忘记绝对的安全性(因为你用默默无闻的方式使用安全性):如果有人可以通过反编译你的应用程序来破坏你的安全性,你就会遇到问题!

以下是问题:

  • 如何共享私钥?
  • 向服务器发送什么?用户名/密码加密?一些api密钥?
  • 我有正确的方法(保护个人宁静的 api)吗?

谢谢 !

4

1 回答 1

1

首先,这是一个相当广泛的问题。所以它可能会因此而关闭。

尝试将您的问题分解为子问题/子注释

1)首先也是最重要的,正如您所指出的。没有绝对的安全。您应该定义什么是有价值的(您要保护什么)以及您要保护的对象是:

  • 未经授权的用户
  • 对您的应用有内部知识的未经授权的用户(逆向工程)
  • 对您的应用有内部知识的授权用户(逆向工程)

1)https是“必须的”。如您所见,您不必担心隐私和完整性。

2) 在大多数情况下,应用程序应该发送用户名和密码。该密码应由服务器进行哈希处理(不要忘记添加一些盐)并与数据库中存储的哈希值进行比较。

3)我认为您不需要在客户端和服务器之间共享任何私钥,原因如下:

  • SSL 确保隐私(因此没有人可以窃听)
  • 使用硬编码的共享密钥加密任何参数并没有太大帮助(它可以被逆向工程并从您的应用程序中提取)
于 2013-08-18T12:22:47.043 回答