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

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

创建密码 编辑

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

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

密码验证 编辑

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

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

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

弱密码 编辑

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

  1. 顺序或重复的字符:“12345678”、“111111”、“abcdefg”、“asdf”、“qwer”键盘上的相邻字母。
  2. 使用数字或符号的仅外观类似替换,例如使用数字“1”、“0”替换英文字母“i”、“O”,字符“@”替换字母“a”等。
  3. 登录名的一部分:密码为登录名的一部分或完全和登录名相同。
  4. 常用的单词:如自己和熟人的名字及其缩写,常用的单词及其缩写、宠物的名字等。
  5. 常用数字:比如自己或熟人的生日、证件编号等,以及这些数字与名字、称号等字母的简单组合。

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

  • admin —— 太容易猜出
  • 123 —— 同上
  • abcde —— 同上
  • abc123 —— 同上
  • 123456 —— 由于文化因素极其常用
  • 1234 —— 同上
  • 888888 —— 同上
  • 1234567890 —— 同上
  • susan —— 常见人名
  • DonaldJTrump —— 高知名度人物
  • monkey —— 常见动物名且正好六位
  • password —— 经常被使用,极易猜出
  • p@$$\/\/0rd —— 简单的字母替换,易被软件破译
  • rover —— 宠物的常用名称,也是一个单词
  • 12/3/75 —— 日期
  • nbusr123 —— 可能是用户名,如果是这样的话很容易被猜出
  • asdf —— 常用键盘的键排列
  • qwerty —— 常用键盘的键排列
  • aaaaa —— 重复的字母,极易被破解
  • administrator ——太容易猜出

以上仅枚举了极少部分弱密码。

一家美国公司SplashData曾经总结出2011年最弱的25个密码,部分已列于上方。而像let me in这样的密码由于属于常见词组,很容易被破译[5]。据统计,3.8%的密码是字典里的单词,12%的密码是单词加一个数字,其中2/3的机会密码是数字1[6]

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

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

强密码 编辑

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

  • t3MEIfreryeT45410A ——不是字典的单词,既有数字也有字母
  • w2M1gD1cxJhs5UH4pQh1EgjOU9yWYRkk ——同上
  • Convert_100£ to Euros! ——足够长,并且有扩展符号增加强度
  • *ot$fet÷×’Fr54⅛9&%u ——含键盘上没有的字符
  • 9fad37a6aab5912dfa273521d11e0175fa0e8c95 ——随机字符串
  • aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbccdeertttteferwrwerewrwererewreew ——很长的字符串几乎不可能在短时间之内被破解
  • hellomicrosoftwikiwikipediaandadminadmintestactioneditsection ——同上
  • RBDeT9hqRfS9gw9bEXmRhBrkkgCs2NMfpzWfQXfN3MPZW25wSsHWEsbexVpYtsWs ——同上
  • ru0 ej03m06vm03rm3vu04u3d9 g3fu/32u03h3w.6qul4 ——同上,对于两者之间使用不同输入法的人极难以破解
  • correcthorsebatterystaple——够长且无意义的句子或单词组合

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

一个10位长的随机密码,比如“BpR#e!ai@$”,虽然强度远弱于上面列出的密码,但由于常用键一共为95个,因此有 种组合,是不可能在短时间内通过全部列举来破译的。

目前的密码建议为:即使没有使用大小写字母或加入其他符号,只要密码够长,使用一些无意义但便于记忆的句子或单词组合也足够安全[9]。例如上例的“correcthorsebatterystaple”就是由四个英文单词组成。

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

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

保护用户密码 编辑

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

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

亦可使用密码管理器管理密码。

参考文献 编辑

  1. ^ Cyber Security Tip ST04-002. [2016-02-17]. (原始内容存档于2009-07-07). 
  2. ^ Wayback Machine (PDF). web.archive.org. 2004-07-12 [2019-10-31]. (原始内容 (PDF)存档于2004-07-12). 
  3. ^ Andrey V. Belenko, "Use of graphics processors as parallel math co-processors for password recovery", issued 2011-04-19, assigned to Elcomsoft Co. Ltd.. [2011-04-19]. 
  4. ^ Teraflop Troubles: The Power of Graphics Processing Units May Threaten the World's Password Security System. [2010-11-07]. (原始内容存档于2010-12-30). 
  5. ^ SplashData:2011年最差的25个密码. security.zhiding.cn. [2019-10-31]. (原始内容存档于2019-10-31) (中文(中国大陆)). 
  6. ^ ZDNet Report: Net users picking safer passwords. [2007-08-14]. (原始内容存档于2007-08-24). 
  7. ^ 預設密碼表(Default Password List). www.phenoelit.org. [2019-10-31]. (原始内容存档于2019-10-26) (英语). 
  8. ^ 刘惠琴. 密碼長度與強度怎樣設最不易被駭客破解?一張圖秒懂. 自由时报. 2022-03-21. (原始内容存档于2022-04-08). 
  9. ^ 9.0 9.1 美國提倡密碼新主義 用易記長句子取代含符號、大階字的密碼. Unwire.hk 移动科技生活. 2017-08-17 [2017-08-18]. (原始内容存档于2017-08-17) (中文(香港)). “如果你在头里面想起一个画面,而没有人可以想像到的,这就是最好的密码”。在全新指引中,用户可将一个画面转化成一句句子或词语,密码只要够长,就能避过黑客撞破密码。而密码所用的句子,可原原本本设置为密码,不用加上大阶字母、数字或标点符号。专家认为相比起随意制成的密码,一句长句子更加有效保障不被黑客撞破。 
  10. ^ SP 800-63-3 – Digital Identity Guidelines. NIST. 2017-06 [2017-08-09]. (原始内容存档于2016-09-13) (英语). Removal of pre-registered knowledge tokens (authenticators), with the recognition that they are special cases of (often very weak) passwords. 
  11. ^ Samantha Raphelson. Forget Tough Passwords: New Guidelines Make It Simple. 全国公共广播电台. 2017-08-14 [2017-08-18]. (原始内容存档于2017-08-17) (英语). "The traditional guidance is actually producing passwords that are easy for bad guys and hard for legitimate users," says Paul Grassi, [...] previous tips for passwords affected users negatively and did not do much to boost security. When users change their passwords every 90 days, they often aren't dramatically changing the password 
  12. ^ Matt Weir; Susdhir Aggarwal; Michael Collins; Henry Stern. Testing Metrics for Password Creation Policies by Attacking Large Sets of Revealed Passwords. 2010-10-07 [2017-08-09]. (原始内容存档于2017-08-09). Our findings were that the NIST model of password entropy does not match up with real world password usage or password cracking attacks. 
  13. ^ Robert McMillan. The Man Who Wrote Those Password Rules Has a New Tip: N3v$r M1^d!. 华尔街日报. 2017-08-07 [2017-08-09]. (原始内容存档于2017-08-09) (英语). “Much of what I did I now regret,” said Mr. Burr, 72 years old, who is now retired. [...] Mr. Burr, who once programmed Army mainframe computers during the Vietnam War, had wanted to base his advice on real-world password data. But back in 2003, there just wasn’t much to find, and he said he was under pressure to publish guidance quickly. [...] With no empirical data on computer-password security to be found, Mr. Burr leaned heavily on a white paper written in the mid-1980s—long before consumers bought DVDs and cat food online. 
  14. ^ 大小楷 數字 符號組合純屬擾民 密碼教父認「火星文」無助保安. 苹果日报 (香港). 2017-08-09 [2017-08-09]. (原始内容存档于2017-08-09) (中文(香港)). 领导新指引撰写工作的NIST顾问格拉西(Paul Grassi)表示,旧要求对加强网络保安作用不大,“其实对可用性反有负面影响”。 
  15. ^ Password Strength. xkcd. [2017-08-09]. (原始内容存档于2012-01-11) (英语). Through 20 years of effort, we've successfully trained everyone to use passwords that are hard for humans to remember, but easy for computers to guess. 
  16. ^ Robert McMillan. The Man Who Wrote Those Password Rules Has a New Tip: N3v$r M1^d!. 华尔街日报. 2017-08-07 [2017-08-09]. (原始内容存档于2017-08-09) (英语). In a widely circulated piece, cartoonist Randall Munroe calculated it would take 550 years to crack the password “correct horse battery staple,” all written as one word. The password Tr0ub4dor&3— a typical example of password using Mr. Burr’s old rules—could be cracked in three days, according to Mr. Munroe’s calculations, which have been verified by computer-security specialists. 
  17. ^ Robert McMillan. 什麼樣的密碼最安全?誤導全世界十余年後,密碼教父懺悔了 . 华尔街日报. 2017-09-06 [2019-12-01]. (原始内容存档于2012-07-13) (中文(繁体)). 漫画家兰德尔﹒门罗(Randall Munroe)有一则广为流传的作品,里面提到,黑客想破解“correct horse battery staple”(正确的 马 电池 订书钉)这个密码,得花550年;而破解典型的伯尔法则式密码Tr0ub4dor&3,只需3天。电脑安全专家也证实了这种说法。 
  18. ^ Microsoft security guru: Jot down your passwords. CNET. 2005-05-23 [2019-10-31]. (原始内容存档于2012-07-13) (英语). 

外部链接 编辑