我的大学向我发送了一封电子邮件,通知我,在“定期检查”期间,我的密码“很容易被发现并且有受到威胁的危险”。据我了解,除非我的密码以明文形式存储,否则他们应该没有办法定期检查我的密码。我的问题:


我的理解是否有误,或者我的大学是否一直以明文形式存储我的密码?

更新:学校IT部门将我链接到页面解释他们检查密码的各种方式。页面的一部分允许我在大学帐户上运行测试,并在确实从他们的测试中发现密码的情况下显示密码。它显示的密码是我的一个较旧(较弱)的密码,它只是用空格分隔的英文单词,这说明了他们如何找到它。谢谢所有回答的人。

评论

请与IT部门联系以确保。特别是如果您通过电子邮件获得。可能是网络钓鱼尝试。

也许他们正在破解哈希?也许他们正在使用hadibeenpwned或类似的东西。您的密码是否很弱?

字典攻击的方式可能很容易,具体取决于它的构造方式...但是对于您学校的IT部门来说,这样做似乎有点雄心勃勃:)

我已经更改了密码,所以我不妨告诉一下格式。随后是XKCD格式,英语单词之间用特殊字符分隔。

听说您有XKCD格式的密码,并且他们在检查站点上向您显示了该密码,这使我更加怀疑他们使用纯文本格式的密码。

#1 楼

您的理解是错误的。如果密码存储为高强度的哈希值,则管理员将找不到好的用户密码,而是可以通过将哈希值和盐值应用于列表中的每个密码并寻找匹配项来找到常用密码列表中的密码。但是,如果不对存储的密码进行加密,则容易得多,因为在这种情况下,您只需要对每个用户运行一次即可,而不必对每个用户运行一次,因此这可能表明存储的密码没有被加密,这与最佳做法相反。

评论


@forest模式可能是密码出现在特定列表中。但这首先会破坏使用彩虹表的目的。彩虹表的目的是减少预计算哈希值所需的存储空间。如果您需要存储Rainbow表涵盖的密码列表,那么您将一无所获。

–卡巴斯德
19年3月6日在8:15

@kasperd是的,从理论上讲,归约函数可以是一个查找表,但这将是非常愚蠢的。

–森林
19 Mar 6 '19在8:23



@forest就是我的意思。

–卡巴斯德
19 Mar 6 '19 at 8:25

#2 楼


据我了解,除非我的密码以明文形式存储,否则应该没有办法让他们定期检查我的密码。


实际上,存在:破解。

有一种已知的做法,系统管理员可以根据散列密码运行破解工具(John Ripper,Hashcat等)。拥有简单密码的人可能会花费很少的时间。因此,按照他们的定义,如果他们破解了您的密码,就很容易发现它并且有风险。

引用有关开膛手约翰的这篇文章:


您决定如何使用John由您决定。您可以选择定期在系统上的所有密码哈希上运行它,以了解
用户密码中有多少比例不安全。然后,您可以
考虑如何更改密码策略以减小该比例(也许通过增加最小长度)。您可能更希望
与密码弱的用户联系并要求他们更改密码他们。或者
您可能会认为该问题需要某种形式的用户培训
程序,以帮助他们选择更安全的密码,他们可以记住这些密码而不必写下来。

/>

评论


但是,如果该机构运行像bcrypt或PBKDF2这样的体面的密码哈希算法,即使这样做也不可行-这将占用过多的处理能力。那不正确吗?假设他们要检查100,000个简单密码中的每个密码,那么在恒定的CPU负载下,他们每天要做的事情不只是几个密码。

–胸腺
19-3-7在23:55



@thomasrutter如果您想做的只是从顶部清除“简单”密码,那么DES和PBKDF2之间的周期差异就不如完全暴力破解那样严重。同样,这是一个自定义的问题。在那段时间里,管理员猜测有足够的CPU可以扔的任何东西都是“易碎的”,这并没有告诉任何人有关潜伏于此之上的任何有意义的信息。这是一种有争议的方法,因为它使管理员感觉良好,有时功能强大;它并不能总是导致用户习惯的明显改善。

– gowenfawr
19 Mar 8 '19在2:22



@thomasrutter您的情况下,验证单个密码的预期时间是多少?您是否在谈论复杂性设置,需要整个机器持续几秒钟?您认为可以用于实践吗? (更不用说有一个与kerberos和/或AD兼容的实际用户目录了吗?)

–eckes
19 Mar 8 '19 at 14:18

这些算法具有可伸缩性,因此您基本上可以选择每次要花费的处理周期,我脑子里通常会花不到一秒钟的时间来计算平均单个CPU,但是这些仅仅是个小问题。并且有合理的论据可以使其速度提高10倍或100倍。

–胸腺
19年3月18日在23:31



#3 楼

您的大学可能尚未以明文形式存储您的密码。他们有一种非常简单的方法来获取密码的明文,我怀疑他们每天至少可以访问两次。

您每次将密码以明文的形式提供给他们登录。

如果您登录到他们托管的应用程序,例如管理在线课程或检查成绩的站点,并且它们具有该在线应用程序的源代码,则它们可以轻松访问您的纯文本密码,而无需将其存储或传输给另一个系统,并且可以在那时检查密码的安全性。

他们还可以在登录时检查密码强度如果他们正在使用单点登录服务。

但是,它仍然非常混乱。请与您大学的IT部门联系,并确认他们正在安全地存储您的密码。问有关他们如何检查密码的针对性问题。

我的其余建议遵循标准的Internet身份验证建议:不要单击该电子邮件中的任何链接;请单击“确定”。如果您确实要更改密码,请通过常规方式而不是通过电子邮件发送给您的链接来进行。使用密码管理器来存储和生成长随机密码。 (理想情况下,您只应该知道两个密码:一个用于登录计算机,一个用于登录密码管理器。)切勿出于任何目的重复使用密码。

正在与大学的IT部门交谈,向他们询问有关2因子身份验证的问题。

评论


您每次登录时都以纯文本形式为他们提供密码-除非他们从主机的内存中提取密码(我说这不太可能),或者这是一个配置很差的Web应用程序,但我很难想象这样一种情况:这就是他们进行密码审核的方式。

– DKNUCKLES
19 Mar 6 '19 at 0:15



@DKNUCKLES您从未见过在发送密码之前先在本地检查密码强度的Web应用程序?它在注册表单中很常见,我遇到的系统是事后才应用它,并且会拒绝“弱”密码,从而迫使使用丢失的密码系统。 (我更喜欢密码短语而不是$ pec1al character $,而且已经不止一次。)

–Loren Pechtel
19年3月6日,1:13

@LorenPechtel这是不同于OP所指的情况。在设置密码之前,客户端对密码强度的验证并不困难,并且可以在不暴露明文密码的情况下完成。 OP描述了经过追溯审核的现有密码。

– DKNUCKLES
19-3-6在1:17



@DKNUCKLES但是谁说它具有追溯力?将审核代码放入客户端,它告诉服务器密码很弱。

–Loren Pechtel
19 Mar 6 '19 at 1:27

如果只有一个登录服务,那么在用户登录时可以在服务器端同时检查密码强度,这真是令人难以置信。

–克里姆林宫
19 Mar 6 '19 at 14:34

#4 楼

这里需要做一些假设,但是我想您所指的大学密码就是Active Directory帐户的密码。 Active Directory密码使用NTLM哈希格式处理的密码,该密码不会加盐。考虑到这一点,在不同环境中相同的密码将具有相同的哈希值。

Troy Hunt提供了一项名为“ Pwned Passwords”的服务,该服务使管理员可以下载5.17亿个密码哈希。您的学校的IT部门可能会将Active Directory中的密码哈希与上述数据中多次出现的哈希进行比较。

不时以明文形式存储密码确实会发生(大多数情况下在专有的Web应用程序中),上述情况将是我对它们如何确定您的密码很弱的假设。

#5 楼


它显示的密码是我的一个较旧(较弱)的密码,它只是用空格分隔的英文单词,这说明了他们如何找到它。


FYI-否它不是。这取决于单词及其数量。实际上,将几个随机词典单词粘合在一起是一个很好的密码。

我当然应该链接到相关的xkcd。

评论


重点是随机性,并假设有足够大的单词池。如果它是语法上有效的SVO句子,则熵会急剧降低。

– Voo
19年3月7日在16:12

@Voo:是的,当然,这就是选择一个好的密码的全部问题,而不是“ password”或“ correchorsebatterystaple”。现在,有效的句子本身就不是问题,除非您知道密码生成方案(=攻击者知道您将构建正确的名词-动词-副词句子)。如果indmystackoverflowanswersbrilliant是一个很好的密码。

– WoJ
19 Mar 7 '19 at 16:18

攻击者不必知道它,他们可以尝试常见的模式,使您一次又一次地看到。而且,如果您查看常见的密码泄漏,您会发现大多数使用句子的人都会以非常特定的格式使用语法正确的句子。参见例如本文展示了如何利用它。因此,尽管“ Ifindmystackoverflowanswersbrilliant”可能还不够好,但xkcd漫画中显示的数学不适用于它-熵要弱得多。

– Voo
19-3-7在16:25



@Voo可以通过对词组应用凯撒密码来获得一堆熵,并且仍然相对容易记住和键入。

–珀金斯
19年3月7日在18:28

@WoJ,除非您已将其发布到Internet上,现在不再是。

–临时狼
19 Mar 8 '19在23:34

#6 楼

密码不是以纯文本形式存储的,实际上,应该以任何技术上的方式对其进行加密和存储。但是,由于符合安全频带要求,因此可以使用各种技术算法对密码进行解密,并通过各种模式查找弱密码。您的大学一定已经做到了,并通知了您。

评论


我相信您要查找的短语是散列的,而不是加密的。如果您确实表示加密,那么那是不正确的,因为它是可逆的。我认为您的意思是散列的,因为您提到的将过程逆转的方式称为“各种技术算法”,而不是简单的“解密”。

–曼上尉
19年3月6日在18:23



1:定义“符合安全带”; 2:“各种技术算法”没有意义; 3:提示;您可以删除问题。

– zaph
19-3-7在1:49



“密码未以纯文本形式存储”这是不正确的。我参加的第一所大学确实存储了纯文本密码。实际上,在致电他们的服务台时,支持人员可以(其中一些人确实)口头告诉您您忘记的密码是什么,因为服务台员工(以及许多其他人员)可以直接访问纯文本密码。我知道直到至少几年前,这种方式仍然存在。

–亚伦
19年3月7日17:00

@Aaron最重要的是,在2019年,仍有大量的公共站点和服务将密码存储为纯文本格式。比这个答案所暗示的要普遍得多。

–user91988
19 Mar 7 '19 at 17:14

从上下文来看,我认为Atul的意思是“密码不应以纯文本形式存储”

– schroeder♦
19 Mar 8 '19在7:58