【问题标题】:Amazon AppStore Submission Failed: "Sensitive information like password is echoed in clear text without encryption"Amazon AppStore 提交失败:“密码等敏感信息以明文形式回显,未加密”
【发布时间】:2011-10-18 16:42:43
【问题描述】:

我已向亚马逊应用商店提交了申请,但被拒绝并提供以下详细信息:

密码等敏感信息以明文形式回显,无需 加密

显然,这不是一件好事……但是我已经查看了应用程序代码。用户的密码作为 MD5 哈希值存储在私有首选项中(它直接从文本框到 md5 哈希值再到首选项,并且不会以明文形式记录或写入任何地方。

当我们向我们的 Web API 发布请求时(通过 http),我们会发布一个带有用户名的标头,以及以下串联字符串的哈希值(nonce + timestamp + passwordHash)(以及其他一些位)。

我认为它与标头中的数据有关,但由于它是我们发布的散列的散列(服务器将其与他自己知道的密码摘要进行比较),我不是真的确定他们为什么会有问题。

任何关于如何解决此特定故障的想法或想法将不胜感激:-)

谢谢!

【问题讨论】:

  • md5 散列不是安全散列,仅供参考。 iirc,那里有一些完整的 n-gram md4 彩虹表,其中 n
  • 听上去好像已经涵盖了,但是没有看到代码,我真的无能为力。
  • @Paul,但是使用 md5 是应用程序失败的原因吗?
  • @Joel:如果我不想花时间了解您的身份验证细节以验证它没有提供可逆数据(这反过来需要有能力的分析师),我会将其标记为“使用 md5,不安全”,然后将其踢回给您。尝试使用 sha256。哦,有一个安全 SE,你可以在那里发布你的计划,那里有一些称职的分析师可能会给你一个很好的优缺点分析。
  • 我认为使用 MD5 是应用程序失败的一个原因。也许这是一个糟糕的错误消息,应该说“密码以不安全的方式存储”。如果这是我的决定,我会因为这个原因让应用程序失败。另一个想法:当用户输入密码时,是在密码框中还是在纯文本框中?

标签: android security amazon appstore-approval


【解决方案1】:

只是为了结束这个循环。我最终给亚马逊发了电子邮件,他们给了我更多细节……原来我在注册页面上以明文形式提交了密码。其他一切都很好。

我们最终获得了 ssl 证书并使用 https 来注册用户并获得批准。希望对其他人有帮助:-)

【讨论】:

    【解决方案2】:

    您的哈希方案已损坏。通过对密码进行哈希处理,然后像您一样使用该哈希,您只需重新定义明文密码是什么。

    这样做的一个结果是,任何可以访问您的数据库的人都可以登录任何帐户,因为您存储了派生密码的明文。

    我要么:

    1) 将哈希值(使用 bcrypt 或类似方法)存储在服务器上。然后将纯文本密码发送到服务器,并依靠 SSL 来保证传输安全。

    2) 使用SRP。但不要自己实现。它因难以正确实施而臭名昭著。很容易出错并导致登录不安全。

    它们都比您当前的系统更安全。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 2017-08-24
      • 1970-01-01
      相关资源
      最近更新 更多