如何检查系统中是否存在弱密码

如何检查系统中是否存在弱密码

我知道一种方法是对密码实施规则,至少使用一个大写字母、小写字母、数字、特殊字符,并确保密码长度至少为 8 个字符等......

生成弱密码后,还有其他方法可以发现弱密码吗?我听说过“John the ripper”。有人成功应用过吗?

答案1

对于 RedHat,请参阅保护并强化 Red Hat Linux 生产系统尤其是执行更强的密码

有关更一般的文章,请参阅远程访问强化和强密码执行,“实施强密码策略”部分。

这使用pam_cracklib,其部署描述于使用 pam_cracklib 实现 Linux 密码安全以及许多其他来源。

答案2

如果实施得当,密码将以哈希码的形式存储在您的系统中。此外,它们应该加盐以隐藏弱密码(以防有人掌握数据库)。您可以在此处阅读有关盐和密码存储的信息:http://en.wikipedia.org/wiki/Salt_%28cryptography%29

如果您阅读了这篇文章,您就会明白,如果操作正确,密码本身将永远不会被存储。存储的是密码 + 盐的哈希码和盐本身。您可以尝试使用系统来获取弱密码,这与黑客所做的一样:使用暴力破解。在您的特殊情况下,您可以(如果所有密码都使用一种盐)使用包含密码 + 盐和生成的哈希码的表。这将迅速减少计算时间,因为您只需比较哈希码(这仅在您多次使用数据库时才成立)。但同样,这只有在实施不是最佳解决方案时才有可能。

如果您没有禁止弱密码,而又希望用户使用强密码,那么最简单(唯一)的实现方法是强制用户生成密码,或者在登录时检查密码(只要密码仍清晰地存储在内存中)。因此,您只能轻松检查“使用”计算机的用户的强密码。如果您想检查所有用户的密码,您的选择是暴力破解。

如果您以前没有这样做过,解决方案是使用随机生成的强密码重置所有密码,并将其交给您的用户。下次登录时,您可以强制您的用户使用强密码。

John the Ripper 是一种暴力攻击。它拥有庞大的字典和存储的哈希码,然后针对您的密码运行此攻击。您可以随时运行此攻击,但这会浪费 CPU 时间,因为您应该强制使用强密码。

答案3

网上有很多可以生成安全密码的服务,还有一键检查当前密码强度的服务(甚至无需点击 :))。我个人喜欢获取安全密码因为它结合了这两种特点。

答案4

开膛手约翰是另一个可用于此目的的工具。它实际上会尝试根据多种不同的方法破解您的密码。JTR 的关键在于运行时间 - 运行时间越长,密码就越安全。

详细使用方法这里(我避免链接到该项目的文档 - 它非常稀疏)

cp /etc/shadow shadow 
john -user:luser shadow

是启动并运行它的最快方法。

相关内容