目标c - ios客户端<>PHP后端加密


objective c - ios client <> php backend encryption

这可能是对我的问题的模糊描述,我不确定这是否最好发布在Stackoverflow或Super User上。

我的问题是这样的,我在计划阶段建立一个测试ios应用程序。在某些情况下,它实际上会每月发放实物奖励,这意味着安全必须足够严格,以减少作弊的可能性。我将用PHP在debian服务器上使用Apache和经过认证的SSL (Rapid-SSL)构建后端。

我的猜测是,对于每个问题,它需要来回发送给服务器,以便服务器验证答案,并让用户知道答案是否正确。对于某些情况(非价格获胜测试),我甚至想返回正确答案。

我的问题是,在安全方面,做这件事的最好方法是什么?我应该对来回发送的数据进行编码吗?如果是的话……如何使用和使用什么(是否有一些我可以使用的常见编码类型,例如base64或类似的)?

编辑
我的意思是编码,而不是加密。我更新了问题

另外,对于身份验证,我正在考虑使用Facebook OAuth登录。

让我详细解释一下:

a)如果你害怕有人中途攻击或在发送到服务器(或从服务器接收数据)之前修改你的数据包,SSL将阻止他们。

b)如果你想阻止黑客/调试者/反向者,如果他们反转你的代码,你的代码提交例如SSL高分,他们也可以很容易地提交,像这样:

https://yoursite.com/submithilicore.php?score=(分数)即使你使用的是https,当黑客泄露了URL、评分提交方法和HTTP参数后,他们也可以使用一个简单的curl命令提交假结果。

因此,在这种情况下,您可以实现高级加密算法,例如使用已知的算法对数据进行加密,并对应用程序进行一些特定的更改,以防止应用程序反转(这有点困难)。它将阻止大多数黑客/逆转者。

如果您选择了一个好的密钥交换算法和加密模式,那么除了注入代码或修改代码外,黑客很难伪造它。这次你必须采取所有的防逆转措施。即使您在这里使用公钥加密而没有采取防逆转措施,黑客也可以在您的应用程序中注入代码,例如在每个提交点上添加X点,这只需要一条汇编指令。

不管怎么说,要有一个真正安全的系统是很难的,破解者和密码破解者都在试图找出你的加密算法并试图破解它。但你也可以尽你所能阻止大多数黑客。

如果您通过SSL发送,则数据肯定已经加密了。想想看,最大的担忧是认证。确定提交问题的用户就是那个用户。为此,我将使用简单的密码身份验证。因为一切都是通过SSL进行的,所以这就足够了。在这种情况下,最大的担忧是用户端的恶意软件。