【发布时间】: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