几家公司最近承认以纯文本格式存储密码。这就像在记事本中存储密码并将其保存为.txt文件。为了安全起见,应该对密码进行加密和散列,那么为什么2019年不会发生这种情况呢?
designer491/Shutterstock
当一家公司以明文形式存储密码时,任何拥有密码数据库或密码存储在任何其他文件中的人都可以读取密码。如果黑客获得文件访问权限,他们可以看到所有的密码。
用纯文本存储密码是一种可怕的做法。公司应该对密码进行加密和散列,这是另一种说法,即“在密码中添加额外的数据,然后以无法逆转的方式进行加密”。通常这意味着,即使有人从数据库中窃取了密码,它们也无法使用。当您登录时,公司可以检查您的密码是否与存储的加扰版本匹配,但他们不能从数据库中“反向工作”并确定您的密码。
那么,为什么公司要用明文存储密码呢?不幸的是,有时这些公司并不重视安全问题。或者他们选择以方便的名义危害安全。在其他情况下,公司在存储密码时会做所有正确的事情。但他们可能会添加过于热心的日志记录功能,即用纯文本记录密码。
因为Robinhood、Google、Facebook、GitHub、Twitter和其他公司都以纯文本形式存储密码,所以您可能已经受到了糟糕做法的影响。
以谷歌为例,该公司对大多数用户的密码进行了充分的哈希和盐渍处理。但G套件企业帐户密码是以纯文本形式存储的。该公司表示,这是给域名管理员提供恢复密码工具时遗留下来的做法。如果谷歌正确地存储了密码,那是不可能的。只有密码重置过程才能在正确存储密码后进行恢复。
当Facebook也承认用明文存储密码时,它没有给出问题的确切原因。但您可以从稍后的更新中推断出问题:
…we discovered additional logs of Instagram passwords being stored in a readable format.
有时公司在最初存储密码时会把一切都做好。然后添加导致问题的新功能。除了Facebook,Robinhood、Github和Twitter意外地记录了纯文本密码。
日志记录对于查找应用程序、硬件甚至系统代码中的问题非常有用。但是,如果一家公司不彻底测试这种日志记录功能,它可能会导致更多的问题,而不是解决问题。
以Facebook和Robinhood为例,当用户提供用户名和密码进行登录时,登录功能可以在输入用户名和密码时看到并记录它们。然后将这些日志存储在其他地方。任何有权访问这些日志的人都拥有接管帐户所需的一切。
像T-Mobile Australia这样的公司很少会忽视安全的重要性,有时会以方便的名义。在Twitter被删除后的一次交易中,一位T-Mobile的代表向一位用户解释说,该公司以明文形式存储密码。通过这种方式存储密码,****代表可以看到密码的前四个字母以进行确认。当其他Twitter用户恰当地指出如果有人入侵公司服务器会有多糟糕时,这位代表回答说:
What if this doesn’t happen because our security is amazingly good?
该公司确实删除了这些推文,后来宣布所有密码都将很快被加密和散列。但没过多久,该公司就有人违反了它的系统。T-Mobile说,被盗的密码是加密的,但这还不如散列密码好。
公司不应该存储纯文本密码。相反,应该先对密码加盐,然后再对其进行散列。重要的是要知道什么是salting,以及加密和散列的区别。
盐渍密码是一个直截了当的概念。这个过程本质上是向您提供的密码添加额外的文本。
把它想象成在常规密码的末尾添加数字和字母。您可以键入“Password123”(请不要使用这些密码中的任何一个),而不是使用“Password”作为密码。Salting是一个类似的概念:在系统散列您的密码之前,它会向其中添加额外的文本。
因此,即使黑客闯入数据库窃取用户数据,也很难确定真正的密码是什么。黑客不知道哪部分是盐,哪部分是密码。
公司不应该在不同的密码之间重复使用盐渍数据。否则,它可能会被偷走或损坏,从而变得毫无用处。适当地改变盐渍数据也可以防止碰撞(稍后将详细介绍)。
正确存储密码的下一步是散列它。哈希不应与加密混淆。
当你加密数据时,你会根据一个密钥对它进行轻微的转换。如果有人知道钥匙,他们可以把数据改回来。如果你玩过一个解码器环,它告诉你“a=C”,那么你就加密了数据。知道了“A=C”,你就会发现这个信息只是一个奥瓦尔丁广告。
如果黑客闯入一个加密数据的系统,并设法窃取加密密钥,那么你的密码也可能是纯文本。
密码散列从根本上把你的密码转换成一串无法理解的文本。任何人看一个杂烩都会觉得乱七八糟。如果您使用“Password123”,哈希可能会将数据更改为“873kldk#49lkdfld#1”。公司应该在将您的密码存储到任何地方之前对其进行哈希处理,这样它就不会记录您的实际密码。
散列的这种性质使它成为存储密码的一种比加密更好的方法。虽然你可以解密加密的数据,但你不能“解密”数据。因此,如果黑客真的闯入数据库,他们就找不到解锁散列数据的密钥。
相反,当你提交密码时,他们必须像公司那样做。Salt密码猜测(如果黑客知道使用什么Salt),对其进行哈希运算,然后将其与文件上的哈希值进行比较以获得匹配。当你向谷歌或你的银行提交密码时,他们会遵循同样的步骤。有些公司,比如Facebook,甚至可能会额外“猜测”一个拼写错误。
散列的主要缺点是,如果两个人拥有相同的密码,那么他们最终会得到散列。这种结果被称为碰撞。这是添加不同密码的盐的另一个原因。一个经过充分加密和哈希处理的密码不会有任何匹配项。
黑客可能最终会突破散列数据,但这主要是一个测试每一个可能的密码,并希望有一个匹配的游戏。这个过程仍然需要时间,这给了你时间来保护自己。
你不能阻止公司不正确地处理你的密码。不幸的是,这比应该的更普遍。即使公司确实正确存储了您的密码,黑客也可能会破坏公司的系统并窃取散列数据。
考虑到这个现实,你永远不应该重复使用密码。相反,您应该为您使用的每个服务提供不同的复杂密码。这样,即使攻击者在一个网站上找到你的密码,他们也无法使用它登录到你在其他网站上的帐户。复杂的密码是非常重要的,因为你的密码越容易猜测,黑客就可以越快突破散列过程。通过使密码更复杂,您可以争取时间将损害降到最低。
使用唯一的密码也可以最大限度地减少这种损害。最多,黑客将获得一个帐户的访问权限,你可以更容易地更改一个密码比几十个。复杂的密码很难记住,因此我们建议使用密码管理器。密码管理器为您生成并记住密码,您可以根据几乎任何站点的密码规则进行调整。
有些,比如LastPass和1Password,甚至提供检查当前密码是否被泄露的服务。
另一个好的选择是启用两步身份验证。这样,即使黑客真的泄露了你的密码,你仍然可以阻止未经授权的访问你的帐户。
虽然你不能阻止一家公司错误地处理你的密码,但你可以通过正确地保护你的密码和帐户来将影响降到最低。
相关:为什么你应该使用密码管理器,以及如何开始
...户的密码。虽然这些密码只有Facebook员工才能看到,但这仍然是社交网络内部安全不严的另一个例子。 ...
...的私人信息呢?当网站以明文形式存储帐户详细信息时,为什么会出现问题?你能做些什么? ...
...以其轻量级的简单性而独树一帜:Windows记事本。这就是为什么它仍然是做笔记的好选择。 记事本的好处 简陋的Windows记事本已经伴随我们35年了,自从windows1.0以来,它被塞进了Windows的每一个版本。它有一个简单的工作:轻松地...
...代码。GitHub从来没有真正离开过它的编码根,但是有些人仍然使用它来存储写作和其他非编码项目。例如,一个人用Git和GitHub写一本教学书,而另一个人写一本小说。浏览一下谷歌,你会发现GitHub的各种疯狂用途。 什么是git和gi...
...式的邮件打开更快、更安全。下面介绍如何在Outlook中使用纯文本作为默认值。 在我们讨论如何做到这一点之前,值得注意的是,纯文本对发送方和接收方都有好处和缺点。纯文本的主要缺点是它没有格式,也没有像图像或链接...
...易于猜测的密码,从而使他们的帐户易受攻击。 相关:为什么你应该使用密码管理器,以及如何开始 我们始终建议您使用密码管理器-它不仅允许您使用不需要手动键入的强大、复杂的密码,而且还可以简单地为在线帐户使用唯...
...有关使用SafeGmail的更多信息,请参阅我们的文章。 rmail公司 RMail允许您轻松发送具有端到端安全性和法规遵从性的电子邮件。从您当前的电子邮件地址发送加密电子邮件(每月允许10封免费邮件),并自动收到已注册的回执™ ...
...真正锁定用户名和密码。根据Computerworld的一份报告,该公司高管今天承认,这款移动应用程序以明文形式存储密码,没有任何形式的加密。报告称,通过将你的**连接到电脑,有人可以很容易地从崩溃日志中检索到你的密码。...
...。在iOS或macOS设备上生成恢复密钥非常简单。以下是苹果公司的说明:进入设置>[您的姓名]>密码和安全。您可能需要输入Apple ID密码。轻触恢复键。滑动以打开恢复键。轻触Use Recovery Key并输入设备密码。写下您的恢复密钥并...