为什么网站要储存密码的哈希而不是他们的密文?

为什么网站要储存密码的哈希而不是他们的密文?

TLS使用公钥和私钥加密会话。客户端只有包含公钥的证书,但是为了使用它,服务器包含私钥。在服务器之外,这种通信是安全的。在服务器内部,攻击者可以学习密钥并解密通信。

如果我们使用公钥/私钥加密来加密密码,然后攻击者进入服务器,他们就可以了解私钥,然后解密所有密码。

散列没有密钥(尽管它可能使用“salt”)。它通常被称为单向函数,因此与加密不同,它没有“反向”算法。如果您散列数据,您就不能轻松地取消散列。您仍然可以通过尝试所有您能想到的密码来强行攻击散列,如果哈希匹配,您已经猜到了。但是没有神奇的值可以恢复所有的密码。这就是为什么哈希比加密更安全地存储密码。

关于MD5、SHA-1等方面的缺陷,请记住加密散列函数有几种用途,并且每个漏洞暴露的漏洞因用例不同而不同。散列的一种用途是生成一个消息摘要,它是一个唯一的数字,它有助于验证一段文本是否不变(例如包含在证书上的数据)。如果可以使用相同的摘要值伪造第二个文档,则攻击者可以创建假证书并对服务器的所有用户执行中间人攻击。但是,如果在数据库中发现两个密码之间存在冲突,则只可能泄漏Ulkoma和JohnDeters都选择相同密码的信息。这只会给两个人带来风险,而不是给系统的每个用户带来风险,总的来说,这是一个不那么严重的问题。

提议为每个用户生成一个唯一的公钥(丢弃私钥),然后加密和存储密码,这将导致一个系统在功能上等同于使用盐析散列。攻击者不必破解公钥,他们只需尝试用公钥加密一堆密码,直到找到匹配的密码。

相关推荐

大厨教你鱿鱼花的切法,简单又容易学,你也可以自己在家做
有哪些好用的公益服手游平台 十大公益服手游平台排行榜
吉他如何调 a 调变调夹,声音更好听?
365官网登录网址

吉他如何调 a 调变调夹,声音更好听?

📅 08-17 👁️ 224