密码强度

科技工作者之家 2020-11-17

密码强度,指一个密码对抗猜测或是暴力破解的有效程度。一般来说,指一个未授权的访问者得到正确密码的平均尝试次数。密码的强度和其长度、复杂度及不可预测度有关。强密码可以降低安全漏洞的整体风险,但并不能降低采取其他安全措施的需要。

攻击者可以提交猜测到的密码的速率是衡量一个系统安全性的重要因素。有的系统在多次尝试失败后会暂停登入一段时间,在没有其他安全缺陷时,这种系统可以用相对简单的密码保护。但是系统必须以某种形式存储用户密码,而当这些数据被盗时,就有极大的危险。

创建密码密码可以被自动(使用随机方式)或人为创建出来,后一种更为常见。暴力破解随机密码的强度可以精确计算,而计算人类产生的密码强度是比较难的。一般而言,人在创建一个新账户时都被要求输入密码。因为人一般都会模式化地创建密码,粗略地估计这种密码的强度是可能的,而这些模式就可以方便攻击者。1

另外,密码破解器经常从常用密码表中选取密码,这些密码表包含各种人类语言的在线词典、许多被黑的数据库中的商业或社交账户的明文或散列密码,与其他常见的密码。因此,所有在表上的或与其相似的密码都被认为是弱密码。数十年来,对多用户计算机系统的密码调查表明,40%或更多只使用计算机程序就可以破解出来,并且当某个账户已被侵入时更加容易。

密码验证使用密码进行身份认证的系统都一定有一套验证输入密码的机制,如果这些密码只是简单地明文存储在系统上,一个拥有足够权限的攻击者就可以获取到在系统上存储的所有用户名和密码,使得整个系统向攻击者敞开,甚至会危及其他使用同样或相似的密码的系统。一个减少危险的办法就是用密码散列函数加密密码。诸如SHA的函数是很难由散列值算出原文的,一定程度上防范了攻击。然而攻击者可以用碰撞的方法猜测明文,如今的密码破解程序也可以通过暴力破解的方式从散列值找出明文密码。

日益进步的计算机科学也加快了测试密码的速度。2007年8月,Elcomsoft公司发明了使用普通的绘图卡反向计算密码的技术并开始使用,随后在美国申请了专利。2010年,乔治亚技术研究所使用GPGPU使得破解密码的速度提升。在2011年,商业产品也宣称他们可以在一台普通的台式电脑上使用高端的GPU来每秒测试高达2,800,000,000个密码,这样的设备可以一天之内破解一个由10个字母组成的密码。而且,这些都可以并行在多台计算机上进行处理来提高速度。

改变常见散列的算法可以相对地增加一些计算的时间,但并未广泛采用。

弱密码弱密码是易于猜测的密码,主要有以下几种:

顺序或重复的字符:“12345678”、“111111”、“abcdefg”、“asdf”、“qwer”键盘上的相邻字母;

使用数字或符号的仅外观类似替换,例如使用数字“1”、“0”替换英文字母“i”、“O”,字符“@”替换字母“a”等;

登录名的一部分:密码为登录名的一部分或完全和登录名相同;

常用的单词:如自己和熟人的名字及其缩写,常用的单词及其缩写,宠物的名字等;

常用数字:比如自己或熟人的生日、证件编号等,以及这些数字与名字、称号等字母的简单组合。

下面是一些常见的弱密码:

admin——太容易猜出

123——同上

abcde——同上

abc123——同上

123456——由于文化因素极其常用

1234——同上

888888——同上

1234567890——同上

susan——常见人名

BarackObama——高知名度人物

monkey——常见动物名且正好六位

password——经常被使用,极易猜出

p@$$\/\/0rd——简单的字母替换,易被黑客软件破译

rover——宠物的常用名称,也是一个单词

12/3/75——日期

nbusr123——可能是用户名,如果是这样的话很容易被猜出

asdf——常用键盘的键排列

qwerty——常用键盘的键排列

aaaaa——重复的字母,极易被破解

Taiwan——地名

administrator--太容易猜出

上面的列表只是列举了很少一部分弱密码。

此外,一家美国公司SplashData曾经总结出2011年最弱的25个密码,其中有的已经列在上面。而像let me in这样的密码由于属于常见词组且正好六位,很容易被破译。据统计,3.8% 的密码是字典里的单词,12% 的密码是单词加一个数字,其中 2/3 的机会密码是数字 1。

很多用户不更换预设密码,而大部分计算机系统的预设密码可以在网上找到,极易被破解。如果用户使用个人信息(例如学号、朋友的名字、熟人的生日、电话号码或驾驶执照号码等)作为密码,那么这个密码便会很容易被破解,因为如今很多个人的信息都可以在网络上找到。

太短的密码,虽然容易输入,但是也很容易被黑客攻破。

强密码一个强密码通常长度足够长,排列随机,这样就需要花很多时间才能够破解。下面是强密码的一些例子(由于以下实例已经公开,所以已经不具备安全性,只作为说明例子):

t3MEIfreryeT45410A——不是字典的单词,既有数字也有字母

w2M1gD1cxJhs5UH4pQh1EgjOU9yWYRkk——同上

Convert_100£ to Euros!——足够长,并且有扩展符号增加强度

*ot$fet÷×’Fr54⅛9&%u——含键盘上没有的字符

9fad37a6aab5912dfa273521d11e0175fa0e8c95——随机字串

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbccdeertttteferwrwerewrwererewreew——很长的字串几乎不可能破解

hellomicrosoftwikiwikipediaandadminadmintestactioneditsection——同上

RBDeT9hqRfS9gw9bEXmRhBrkkgCs2NMfpzWfQXfN3MPZW25wSsHWEsbexVpYtsWs——同上

ru0 ej03m06vm03rm3vu04u3d9 g3fu/32u03h3w.6qul4——同上,对于两者之间使用不同输入法的人极难以破解

上面列出的强密码的例子的共同特点是相对较长,使用大小写字母、数字和符号的组合。密码越长,使用的符号种类越多,就越难破解。值得注意的是,有些系统不支持“#”、“@”和“!”作为密码中的字符,因为这些字符可能在有些键盘很难找到。在这种情况下,增加其它的数字或字母可以达到同样的安全效果。

一个10位长的随机密码,比如“BpR#e!ai@$”,虽然强度远弱于上面列出的密码,是不可能在短时间内通过全部列举来破译的。

强密码应该包括14个字符或更长(至少8个字符或更长),由包括大小写字母、数字和符号在内的组合。

国家标准技术研究所改正建议

2017年6月,国家标准技术研究所发布新的《800-63》指引第三版,改正已沿用超过十年、受各大政府机构、银行、业界采用的旧建议,不再强调使用人脑难以记忆的特别符号、数字的无意义组合,而且亦不再建议密码需每九十日汰换,因为经研究证明此项指引并没有对系统安全带来有益的效果。NIST 文件的旧版原作者伯尔(Bill Burr)并在《华尔街日报》访问中公开道歉,称当时他并无得到可靠的数据作严谨研究,只依靠来自八十年代、不合时宜的旧文件在参考,而他的建议亦没有考虑到一般常人生活习惯及思考模式。负责撰写新版指引的 NIST 顾问格拉西(Paul Grassi)指,旧的要求不利使用,对抵挡骇客攻击的作用不大;如果用户能够在脑海中构想出一幅其他人无法想像的图画,以此作为密码便是最好的,一句够长的完整句子,会优于较短的字母、数字及符号混合密码。华尔街日报引用广泛流传的xkcd漫画,指出只要密码够长,拼合几个看似无意义、但便于该用户记忆的字词作为密码,更能有效抵挡骇客攻击,暴力破解会需时更久。

保护用户密码通常,计算机用户被建议“不要在任何地方因任何原因写下密码”或“不要在不同的帐号使用同一个密码”。实际上,一个计算机用户通常有十几个密码保护的帐号,并使用同一个密码。而那些试图使用不同密码的用户往往由于密码太多,而记不清哪个帐户和哪个密码相对应。2005年的一次安全会议上,来自微软的一个专家提出:“我认为密码策略应改为你可以写下你的密码。我有68个不同的密码,如果我不允许将他们写下来,我将怎么办?我不得不使用同样的密码”。比较好且实际的建议是在一个低安全性的帐号(如bbs)使用简单的密码,在高安全性的程序(如在线银行)使用强密码。2

一旦密码被写下来,用户不能将它放在一些明显的地方,如通信录,抽屉等。最糟糕可能也是最常见的情况是密码被写在一张便条纸上,放在计算机附近。比较安全的做法是放在保险箱里。

本词条内容贡献者为:

王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。