为什么网站应该在哈希表上撒些盐来保护您的密码

[ware_item id=33][/ware_item]

为什么网站应该在哈希表上撒些盐来保护您的密码


尽管存在缺点,但密码仍然是Web身份验证的事实上的标准.

ExpressVPN已经介绍了使用Diceware创建安全密码,使用密码管理器以及通过两因素身份验证在帐户周围建立另一层安全性的好处。.

但是幕后发生了什么?网站运营商可以并且应该采取哪些措施来保护您的密码?

电脑黑客的诞生

第一个使用密码的计算机系统是麻省理工学院的Compatible Time-Sharing System,该系统建于1960年。通过分时共享,可以将计算机分区并用作多个工作站。.

仍然有比工作站更多的研究人员,并且在系统上为用户分配了有限的时间(有些人很快就筋疲力尽了)。为了确保研究人员不会超出他们的限制,每个人都分配了一个唯一的密码以使用.

但是,当然,第一个密码出现了第一个黑客。一位研究人员Allan Scherr使用了一种系统,该系统允许用户通过打孔卡打印文件(1960年代计算机没有屏幕)。 Scherr找到并打印了存储密码的文件,从而使他能够以其他用户身份登录并长时间使用计算机.

尽管在2016年对俄罗斯社交媒体网站VK.com的黑客攻击表明某些大型网站仍在使用,但如今人们普遍认为将密码以明文形式存储在系统上非常疏忽。 1亿用户的VK.com密码被盗,现在可以出售.

为什么哈希函数是一条单向街

哈希函数是一种单向加密,其行为很像指纹。每个文件,单词或文本字符串都称为哈希“指纹”,可唯一标识原始文件的确切内容.

哈希可以用于确定信息,但不能确定数据代表的信息。想象哈希如何工作的一种简单方法是使用数字总和(所有数字的总和).

9807347的数字总和是9 + 8 + 0 + 7 + 3 + 4 + 7 = 38

虽然很容易看到987347的数字总和是38,但无法通过数字38计算987347.

带哈希的安全密码各种文本字符串和图像文件的SHA-256哈希.

SHA-256提供多种排列方式

令人难以置信的是,256位足够长,可以唯一标识 可观察的宇宙中的每个原子 (2 ^ 256 = 1.157920892×10⁷⁷).

尽管从理论上讲,可能会有两个不同的值,它们都具有相同的SHA-256哈希。这种事件称为哈希冲突,任何哈希函数的安全性都取决于它们是否不可发现.

众所周知,SHA-2的前身(其中SHA-256是其变体)曾经流行的SHA-1算法很容易受到哈希冲突的影响。虽然值得注意,但没人能找到一个.

另一个曾经广为流行的哈希MD5具有很多漏洞,因此无法有效防止恶意篡改文件.

除了加密密码外,散列函数还可以用于确保文件不被篡改(类似于加密签名),因为更改后的文本字符串会更改散列密钥.

将密码存储为散列而不是明文,可以检查密码是否正确,而又不会使密码容易受到黑客的攻击.

盐和哈希保护您的密码

从理论上讲,如果有人能够破解仅包含哈希密码的数据库,那么他们将不会获得有用的信息。但是,实际上,人们在许多站点上重用了他们的密码,或者在其中使用了常用词,黑客可以做很多事情来破解哈希.

在所有系统上,ExpressVPN单词的每个SHA-256哈希值始终相同。因此,如果您的用户名是Lexie并且您使用ExpressVPN作为密码(不要),那么黑客可以在密码中搜索哈希“ c9f45…3d185”,以查看Lexie的密码是ExpressVPN.

尽管这本身听起来并不是特别有用,但还是列出了前几千个最常用的密码(我们从以前的黑客中知道).

使用这样的列表,黑客可以搜索常见密码的哈希并将它们与用户名匹配.

这种攻击称为彩虹表或字典攻击。宇宙中没有足够的时间让攻击者在蛮力攻击中尝试每种可能的哈希/密码组合。但是有足够的时间尝试使用最常用的密码,这可能会损害数据库的很大一部分.

盐析通过为其分配唯一编号来保护密码

为了防止字典攻击,数据库管理员可以使用一种称为“ salting”的方法,其中为每个密码分配一个唯一的随机数。然后计算,存储和检查盐和密码的组合的SHA-256哈希.

或者,可以对密码进行哈希处理,并结合盐编号,然后再次对结果进行哈希处理.

盐渍的哈希增加额外的保护“盐渍”哈希的示例,再次被哈希.

由于加盐技术,创建彩虹表不再具有吸引力。即使用户未选择唯一密码,随机数也将使每个哈希都是唯一的.

如果黑客想要使用密码“ Passw0rd!”来定位用户,则盐号将使数据库安全.

密码系统的未来

密码远非最佳的在线身份验证方式。好的记忆很难记住,很难撤销,一旦泄漏可能会造成相当大的损失.

密码管理器可以使密码更加人性化,并帮助您创建唯一的密码。他们还将鼓励您定期更改登录凭据,这对于良好的在线安全性是必不可少的.

也许在将来,我们将转向其他形式的身份验证,例如公钥/私钥对,并可能与硬件密钥结合使用。在这样的模型中,您只需在注册时将您的公钥上载一次到服务器,然后再也不需要.

虽然不一定比正确实施的密码解决方案更安全,但是公用密钥/专用密钥对不太可能被用户和服务正确使用.

您可以采取什么措施来保护密码

请注意,您今天使用的许多服务可能已经失去了对密码的控制。也许他们还不了解它,或者他们拒绝公开承认它–保护图像以牺牲用户安全为代价.

使用随机密码生成器,然后将密码更改为随机的长字母和字母字符串。您还可以在某些服务上激活两因素身份验证,以增加额外的安全性.

删除所有不再使用的帐户也是一个好主意,希望该服务将您的用户数据与之一起删除.

为什么网站应该在哈希表上撒些盐来保护您的密码
admin Author
Sorry! The Author has not filled his profile.