根和我的密码是相同的


8

如果cat /etc/shadow可以的话,我可以获得root和用户的加密密码。

每个帐户的这些密码都是相同的(我知道,安全性很差),但是/etc/shadow它们显示为不同的加密字符串。

为什么?每种算法是否使用不同的算法?


我建议阅读此书作为一个好的起点。简短的答案是哈希值是加盐的,没有盐的哈希值根本不是哈希值。
蜘蛛鲍里斯(Boris the Spider)

Answers:


10

单独的用户意味着单独的用户ID,因此算法将涉及单独的哈希。

即使是具有相同名称,相同密码并同时创建的用户(几乎可以肯定地)也将以不同的哈希值结束。还有其他因素可以帮助创建加密。

如果您想在这里看一个简单的例子,可能会更好地解释它。


17
只是在这里提一个词:这叫做盐化哈希。
Ulrich Schwarz 2014年

1
单独的用户不一定意味着单独的用户ID。用户标识与此无关。在主键/etc/passwd/etc/shadow是用户名,而不是(未连在提到的用户ID /etc/shadow)。
斯特凡Chazelas

解释并不能完全回答问题。用户ID与此有什么关系?同样,URL并没有真正阐明问题的答案。

@StéphaneChazelas不,单独的用户表示单独的用户ID。用户数据库中可以有多个条目,每个条目具有相同的用户ID的不同用户名,但是它们都是同一用户,共享所有安全性上下文(文件所有权,信号等),并且仅登录方法不同(例如不同的密码和不同的外壳,但通向同一个帐户)。
吉尔斯(Gillles)“所以-别再邪恶了”

@吉尔斯,我不同意。您可以使具有相同uid但具有不同gid和补充gid的不同用户(请参阅如何通过名称而不是uid来引用/ etc / group中的成员),不同的登录参数……这种情况越来越少,尤其是考虑到这些因素像sudo一样不能很好地工作。
斯特凡Chazelas

2

算法是相同的。现代的影子套件使用可插拔身份验证模块(PAM),PAM允许您配置一种哈希算法。这都是关于“盐腌”的,意思是随机分配密码以达到您所要求的效果。

盐化是对字典攻击的一种对策,在字典攻击中,拥有已知密码/哈希对字典的攻击者试图找出未知密码的给定哈希值是否与已知密码之一的哈希值匹配。

盐分防止由于不同的盐值导致不同的哈希值,因此密码相等并不重要。(尽管这是一种不好的做法,但是由于其他原因。)为了使字典攻击成功,攻击者现在必须为每个可能的盐值设置字典。足够大小的真正随机的盐将使这种攻击的成功概率可以忽略不计。

建议阅读:密码如何在Linux中存储(了解Shadow utils的哈希)


0

在影子文件中,您将看到$$之间的数字(例如$ 1 $或类似的数字)。它指示您的计算机使用哪种哈希算法。识别算法并查看其工作原理。例如,$ 6 $是SHA 512,它的设计方式是,即使2个人使用相同的密码,其密码的哈希摘要也将不同。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.