为什么公司仍在以纯文本形式存储密码?

为何不应以纯文本形式保存密码

最近一些公司承认,它们竟然直接使用纯文本格式来存储用户密码。 这种做法就好比将密码写在记事本上,然后保存为.txt文件一样,实在令人担忧。 为了确保安全,密码理应经过加盐和哈希处理。 那么,为什么在2019年仍然会有公司采取如此不安全的措施呢?

当公司以明文形式存储密码时,任何能够访问密码数据库(或者任何存储密码的文件)的人都可以直接读取这些密码。 一旦黑客成功入侵系统,他们便能轻易获取所有用户的密码,这无疑给用户带来了极大的安全隐患。

这种以明文存储密码的行为是非常不妥当的。公司应当采取加盐和哈希处理的方式来保护密码,这本质上意味着“在密码中添加额外的随机数据,然后以一种无法逆转的方式进行加密”。 这样,即使有人从数据库中窃取了密码,这些密码也无法直接使用。当用户登录时,公司可以验证用户输入的密码是否与存储的加密版本相符,但他们无法从数据库中“反向推导”出用户的原始密码。

那么,为什么仍然有公司选择明文存储密码呢? 可悲的是,有时候这些公司并没有给予安全足够的重视,或者他们为了追求便利性而牺牲了安全性。还有一些情况下,公司在初始阶段确实正确存储了密码,但后续又添加了过于热心的日志记录功能,这些功能却以纯文本形式记录了密码,这反而带来了新的安全风险。

多家公司曾不当存储密码

您可能已经成为这些不良做法的受害者。因为包括罗宾汉谷歌脸书、GitHub、推特等公司都曾以纯文本形式存储过用户的密码。

以谷歌为例,该公司为绝大多数用户都使用了充分的哈希和加盐处理密码,但是G Suite企业版帐户的密码却以明文形式存储。该公司解释说,这是因为他们为了给域管理员提供密码恢复工具而遗留下来的做法。如果谷歌能正确存储密码,这种恢复功能本不应该存在,因为正确存储的密码只能通过重置流程才能恢复。

当脸书也承认存储密码为纯文本时,他们并没有给出问题的具体原因。但是我们可以从后来的更新中推断出问题所在:

…我们发现Instagram密码的其他日志也以可读格式存储。

有时候,公司在最初存储密码时采取了正确的措施,但后续添加的新功能反而导致了问题。除了脸书之外,罗宾汉Github推特 也曾不小心记录了纯文本密码。

日志记录对于查找应用程序、硬件,甚至是系统代码中的问题非常有帮助。然而,如果公司没有彻底测试这种日志记录功能,它可能会带来比解决的问题更多的问题。

在脸书和罗宾汉的案例中,当用户提交用户名和密码进行登录时,日志功能可能会记录下输入的用户名和密码,并将这些日志存储在其他地方。任何能够访问这些日志的人,都将拥有接管用户帐户的权力。

在极少数情况下,诸如澳大利亚的T-Mobile之类的公司,可能会为了方便而忽视安全性。在一次已删除的推特交流中,一位T-Mobile的代表向用户解释说,该公司以纯文本形式存储密码。他们这样做是为了让客户服务代表能够查看密码的前四个字母,以便进行身份验证。然而,其他推特用户指出,如果有人…