1

我想将非敏感数据从移动应用程序提交到服务器。但我不希望外部来源能够提交数据。

我想对用哈希公式标记请求是否足够有一些意见。

例如:

MD5(MD5(message)+secretString)

消息将是唯一的,并且来自单一来源的提交之间至少有 10 分钟的间隔(如果在此时间之前从同一来源获得请求,它将被拒绝)。这就是为什么我认为完全加密请求是不值得的,但由于我在这方面没有经验,我决定与社区核实。

提前致谢。

4

2 回答 2

1

该方法看起来不错,但很少考虑:

  • 可以secretString很容易地为应用程序提取。这里唯一的因素是攻击者的动机。
  • 考虑用 SHA-1 替换 MD5。虽然 MD5 中没有致命的漏洞,但更改是微不足道的,更安全。
  • 不要将 IP 地址用于“单一来源”保护。移动设备通过运营商网络并共享一个相对较小的 IP 块。
  • 考虑在请求中添加唯一的、递增的数字以避免重放攻击。
于 2013-06-16T11:12:34.230 回答
0

您说您想向服务器提交数据,但如果您进行哈希处理,则服务器无法再恢复数据。不仅攻击者,甚至服务器也不知道数据是什么。如果您想实现机密性,则进行加密是解决此问题的最佳方法。正如另一位用户所说,在应用程序中有一个固定的秘密字符串对你没有任何好处,因为它可以很容易地恢复。您不能依赖不知道反转应用程序的“公式”的人比人们想象的要容易。因此,通过默默无闻的安全绝对不是要走的路。如果您想使用盐,请使用安全的随机数生成器,但是您还有一项额外的任务是在服务器上使用相同的盐进行验证(并且服务器需要事先获得消息)。

于 2013-06-17T17:11:44.017 回答