我是独立游戏开发团队的一员,我们正在联合开发一个项目(C#)。我在后端(PHP/MySQL)上使用了Drupal,我想从数据库检索数据到我们的软件。
因此,例如,如果我希望用户通过Drupal的身份验证(发送密码的服务器侧散列)登录,用户首先需要通过unity或c# HttpRequest (client)提交用户名和密码。
如果我做了正确的研究,有三种可能安全地发送数据(如果我错了,请纠正我):
可以嗅探HTTP连接或反编译软件,对吗?那么,可能性( 1)和( 2)有什么意义吗?这两种方法之一是否足够安全?
SSL是我们唯一的出路吗?
发布于 2015-01-13 12:04:05
这取决于您想要的东西有多安全,以及您认为攻击者能够拦截密码有多远。例如,如果您通过JavaScript使用客户端密码哈希,理论上可以在JavaScript库传输到用户时拦截它,并对其进行修改,以便发送密码的明文副本。然后,当它被发送到您的服务器时,就可以被截获。但是,由于你正在开发一款电脑游戏,这种情况可能不会发生。
拥有真正证书的SSL将在某种程度上防止这种情况,因为理论上,MITM (中间人)攻击不可能嗅探(更不用说修改)数据,因为它是沿着线路传播的。要做到这一点,他们将需要您的私人服务器密钥的副本,或者从您的服务器窃取它,或者从证书颁发机构窃取/获取它。虽然这不是不可能的,但它是不可能发生的。
安全性最低的SSL证书现在非常便宜,通常会为您节省大量关于如何实现安全性的工作。我还是接受这个选择吧。
发布于 2015-01-15 11:16:11
这些方法的问题是客户端哈希版本实际上变成了密码。因此,如果一个MITM获取哈希版本,他们可以简单地重放它来登录。
一定。除了加密之外,HTTPS还保证客户端正在与您的服务器对话,而且它还没有被MITM访问,而且它还可以防止重放攻击(攻击者通过自己的连接重新创建登录请求,然后对响应执行操作)。
https://stackoverflow.com/questions/27921466
复制相似问题