有没有办法在不泄露我的密码的情况下检查破解密码列表?

信息安全 密码 密码破解 彩虹桌
2021-08-27 06:17:34

我想检查我的各种密码是否在破解密码列表中,但我不想在线输入密码。例如,我宁愿滚动浏览已从所有彩虹表和其他来源合并的有序密码列表,以查看我最喜欢的密​​码是否在其中。我不想使用搜索引擎,因为这样做需要我输入我的密码,从而将它们透露给网站运营商或中间商。我可以一张一张下载所有的彩虹表,然后在我的电脑上搜索它们,但这是很多工作。

我可以使用哪些方法来检查我的密码而不泄露它们?

4个回答

我们需要更多地了解您提出问题的原因。

如果您是系统管理员或审计员,并且您想在接受之前使用泄露的列表和字典来检查人们的密码强度,这是一个不错的主意。zxcvbn这样提供密码黑名单的项目,加上长度要求,至少提供了粗略的强度保证。

但是,如果听起来,您问这个问题是为了验证您自己的个人密码的强度,那么您应该重新考虑。如果您以合理的方式生成密码,那么您应该已经知道破解有多难

如果您选择一个强密码(例如,15 个或更多随机字符)或一个强密码(来自 10K 或更多的足够长的字典中的 5 个或更多随机单词),那么该密码的强度完全取决于如何计算许多组合是可能的,而且您知道它出现在任何列表中的可能性非常非常低。

但是,如果您的密码是“JellyfishVacation2014”,或者键盘模式,或者您的童年地址倒转,或者数百种不同的非随机人类密码选择心理中的任何一种……那么即使您的特定密码没有出现在巨大的字典,它仍然很弱,足以陷入离线暴力破解和混合密码猜测攻击。密码破解者知道所有这些人工选择过程。当每年有数亿个帐户被泄露时,你“最喜欢”的密码方法的可能性是独一无二的很低。

换句话说,Kerkhoffs 原则适用于密码选择方法。如果您可能不愿意确切地分享您是如何生成密码的,那么您应该改用其他方法。

我知道这个问题有点老了,但事情变化很快(大约一岁,哈哈)。

我能想到的有两种选择,一种是稍有不慎,是第一个,第二个是达到了目标,是第二个。提供方便,我不知道您的舒适程度。

无论如何,有这个站点,尊敬的,https://haveibeenpwned.com/,您可以在其中输入电子邮件地址以检查用户 ID 的状态,或者在同一字段中实际输入密码以查看它是否已显示在以前用过的hack。

不是你想要的,但这来自同一个站点,https://haveibeenpwned.com/API/v2,它也有一些代码示例,或者如果你喜欢的话,可以很容易地编写代码。现在也被 1Password.com 使用,因此您可以通过门户网站检查您的密码,例如(还有其他:https ://haveibeenpwned.com/API/Consumers )。

这不会泄露您的密码。您发送密码的哈希值,仅前 5 个字符,然后他们发送回一个包含 100 个左右的哈希值的列表,其中也缺少前 5 个字符,

然后,您根据他们的返回哈希查找您的完整信息。如果匹配,密码将出现在他们的数据库中。

有人“查看”来回传输的数据 1) 无法确定您的密码是否真的是 2) 无法确定您的密码哈希到底是什么,以及 3) 不知道您是谁或与之关联的用户名和。

这是宣布该服务的博客文章 https://www.troyhunt.com/ive-just-launched-pwned-passwords-version-2/

@Royce William 在这里有正确的答案,但是为了专门解决您关于如何检查您的特定密码是否安全地在字典中的问题?你不能。

唯一的选择是在本地下载最常用字典的副本,然后开始尝试查找常用密码。但这已经表明您的密码不够强大,如果您甚至认为这是您需要做的事情。更不用说很多攻击者都有在线不可用的列表。它们是定制的或在他们自己的一些攻击中被盗。

正确的做法是为您使用的每个站点使用具有真正唯一且随机生成的密码的密码管理器。这可以防止某人通过暴力破解、密码泄露、不良网站上的弱散列获取您的密码,最重要的是,防止某人生成针对您个人的唯一单词列表。

谨慎使用

但是您可以编写一个小程序来创建密码的不同哈希值,然后将它们与在线破解者/数据库进行检查

例如:您可以创建密码的 MD5 哈希,然后将哈希版本提交到http://md5online.org等网站,以查看它是否返回明文。

通过这种方式,您可以检查是否有任何数据库保存了您的哈希值,而不会泄露您的明文,以防万一。

注意:如果您使用在线哈希生成器,他们会自动将您的明文和哈希对存储在他们的数据库中(如果它还没有的话)。这就是为什么你之前散列,以防万一他们没有那对。