可能重复: 在数据库中加密/散列纯文本密码
最近,我发现主要的网络托管公司用明文存储用户的密码,甚至在试图验证用户身份时询问用户密码的最后4位数字。这似乎是极其错误的,而且充满了安全问题。我相信他们这么做的原因只是为了帮助识别用户。
发布于 2010-06-25 17:59:57
1a)不要存储用户的密码,只存储其中的(盐渍)散列。当用户登录时,散列他们提供的密码,并将其与您的存档哈希进行比较。如果您不知道用户的真实密码,您就不能破坏其安全性。
在电话中很难安全地识别用户,你的努力程度将取决于未经授权访问帐户的“危险”程度。我的银行账户要求我从家里、工作地点或手机号码打电话(我已经把这些号码列出来了)。您可以要求呼叫者随机验证您在文件中所拥有的部分帐户信息(如帐号、计费邮政编码、中间初始地址、出生日期、信用卡号码中的第七位数字等)。一些基于电话的系统有一个与普通密码/ PIN不同的每个用户的PIN号码。您可以通过短信向来电者发送一次密码到他们的移动电话,并要求他们在一定的时间内将其输入系统。我见过的一个更安全的系统使用维瑞信的VIP移动电话应用程序生成一次性密码。(当然,如果有人偷了你的手机,这不会有多大帮助)
2)我怀疑是否有公开的资料。如果有一个公司的名单,不安全地存储用户帐户信息,它将加倍作为一个“请黑我”的名单,这些公司将受到攻击企图。
发布于 2010-06-25 17:50:06
关于#1 -正确的方法是完全不存储密码。相反,存储密码的咸散列。
至于安全地识别用户而不询问他们的密码,这是一个棘手的问题。在本质上,您可能用来识别它们的任何内容都会成为另一个密码(与第一个密码具有相同的存储问题)。实际上,大多数服务都会使用其他一些个人信息-- soc的最后4位数字。秒号码,母亲的姓,或“安全问题”。不过,几乎可以肯定,所有这些都不如一个好密码那么安全。
发布于 2010-06-25 17:47:59
通常您根本不想存储密码--存储盐渍密码的散列。当他们想要登录到您的盐分和散列,他们提供的密码,并比较结果和存储的哈希。
https://stackoverflow.com/questions/3120145
复制相似问题