密码强度

维基百科,自由的百科全书
跳转至: 导航搜索

密码强度,指一个密码对抗猜测或是暴力破解的有效程度。一般来说,指一个未授权的访问者得到正确密码的平均尝试次数。密码的强度和其长度、复杂度及不可预测度有关。[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 ——常見人名
  • BarackObama ——高知名度人物
  • monkey ——常见动物名且正好六位
  • password ——經常被使用,極易猜出
  • p@$$\/\/0rd ——簡單的字母替換,易被黑客軟件破譯
  • rover ——寵物的常用名稱,也是一個單詞
  • 12/3/75 ——日期
  • nbusr123 ——可能是用戶名,如果是這樣的話很容易被猜出
  • asdf ——常用鍵盤的鍵排列
  • qwerty ——常用鍵盤的鍵排列
  • aaaaa ——重複的字母,極易被破解
  • Taiwan ——地名

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

此外,一家美国公司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 ——同上,對於兩者之間使用不同輸入法的人極難以破解

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

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

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

保护用户密码[编辑]

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

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

参考[编辑]

外部链接[编辑]