密码强度

密码强度,指一个密码对抗猜测或是暴力破解的有效程度。一般来说,指一个未授权的访问者得到正确密码的平均尝试次数。密码的强度和其长度、复杂度及不可预测度有关[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) (英语). 

外部链接