最近有不少破解密碼的新聞,首先是有人發現用顯示卡GPU暴力破解密碼的速度比CPU還快,用ATI Radeon HD 5770只要1秒鐘就解出5位數密碼;也有iOS程式開發者提出數據,公佈iPhone最熱門10大密碼,不少人的密碼都名列其中。我們該如何有效建立更安全的密碼呢?

iOS用戶最愛用密碼前10名

iOS程式開發者Daniel Amatay,日前針對20萬名iOS用戶進行匿名調查解鎖密碼,發現15%的用戶是使用最常見的10組密碼,不用幾次便能輕易破解。(現在想想覺得好恐怖)

▲iOS裝置最熱門10組解鎖密碼。

▲iOS裝置最熱門10大解鎖密碼群組。

最常見解鎖密碼不外乎是以連續數字、或是將鍵盤數字鍵串聯起來(如2580)為大宗,光是用1234和0000作為解所密碼的使用者就高達10%。另外也觀察到10大常用群組,以199*、198*(*為0~9)最常見,通常是以出生或畢業年份作為密碼。

如要增加密碼難度,可進入「設定」→「一般」→「密碼鎖定」中變更密碼設定,預設為簡易密碼,只提供4個數字的基本密碼,如果把簡易密碼關閉,即可設定英文加數字的密碼,字元長度亦不限,可大幅降低被破解的風險。

 

顯示卡GPU取代CPU成為暴力運算新選擇

這其實不是新聞了,Ivan Golubev這位老兄擅長透過顯示卡GPU龐大的平行運算效能來猜密碼、也就是所謂的暴力破解(Brute Force)方式,將RAR PASSWORD RECOVERY測試結果、IGHASHGPUSHA1/MD5/MD4 hash cracker)、MS Office and OpenOffice password recovery測試結果分享在golubev.com網站和部落格中,將近100張顯示卡的測試數據建立成龐大的GPU運算效能資料庫

▲用ATI Radeon DH 6990破解7位數的MD5密碼,只花上5秒鐘,不過運算速度還是比ATI Radeon HD 5970慢了10%。(圖片來源:golubev.com

▲2010年10月統計的顯示卡RAR 3.x performance效能,ATI Radeon HD 5970有3200個SP/ALU,因此奪下超高分。(圖片來源:golubev.com

(後面還有:建立超難破解密碼教學)

如何建立安全有效的密碼

破解密碼有兩個方式,一個是暴力破解,一個是字典破解。雖然對暴力破解法而言幾乎是沒有破解不了的密碼,但是當破解字元很長且複雜的密碼時,就必須花上大量的時間,由於時間成本太高,破解後也不見得有什麼好處,所以正常的駭客並不會多費功夫破解你的密碼。

如何有效提高密碼被破解的難度,原則是讓密碼長度越長、越複雜越好,以及避免使用有意義的單字。微軟網站也提供以下要點供網友參考。

盡量避免使用的密碼:

  • 避免使用順序或重複的字元
  • 避免使用與數字或符號外觀類似的替代符號
  • 避免使用登入名稱
  • 避免使用任何語言字典中的字
  • 在各處使用多個密碼
  • 避免使用線上儲存區

一些用來建立密碼的常用方法很容易被駭客猜到,例如「12345678」、「222222」、「abcdefg」等鍵盤上的相鄰字母,或是用外觀類似的常用符號替代;像abc123這類大家常用的密碼都已經被編成破解字典的單字。。

其次是密碼中使用與自己身份相關的姓名、生日、身分證字號或配偶的類似資訊。使用有意義的單字也容易被破解,駭客的破解工具中可透過拼字法則,如字典收錄句詞、常見拼寫錯誤法則,加快破解時間。

建立強式密碼

該如何建立不易被破解的密碼呢?最好的方式是建立強式密碼(Strong Password)。微軟網站有介紹什麼是強式密碼,以及提供強式密碼的建立方式。

強式密碼原則:

  • 使用較長的密碼:不得少於8個字元,最好14個字元以上
  • 結合英文字母、數字、符號:字元變化越大,越難猜出密碼。
  • 使用難以猜測的字或詞:記住密碼和密碼短語最簡單的方法是將密碼寫下來。

有些系統支援在密碼中使用空格鍵,可建立由許多字組成的短語,也就是密碼短語,比起沒規則的密碼更容易記住。此外密碼的字元變化越大,越難猜出密碼,簡單的方式是增長密碼長度,15個英文字母及數字組成密碼的安全程度,是8個字元的33,000倍;如果允許英文字母、數字、符號組成密碼,也會讓字元變化越大,達到與較長密碼相同的效果。

大家最不願意使用強式密碼的原因之一,就是自己會記不住密碼。人的腦袋記憶力有限,最好的方式其實是把密碼寫在紙本上,並妥善保存好,相較密碼管理程式、網站等,寫在紙上的密碼反而不會藉由網際網路外洩。如果真的害怕紙本上的密碼被人竊取,也能在紙本上的密碼動手腳,例如字元位移、數字加減固定數字,例如把dk3x8字元向後位移2格、數字減2,成為1x6dk

建立強式密碼並輕鬆記住的6個步驟:

  1. 想一個能記住的句子:做為密碼的基礎,例如An apple a day keeps the doctor away
  2. 檢查電腦或線上系統是否直接支援密碼短語:如果有支援的話,即可在各字元間加上空格
  3. 如果電腦或線上系統不支援使用密碼短語,請將其轉換成密碼:例如取每個字首,成為aaadktda
  4. 將大小寫字母及數字混合使用,以增加密碼複雜程度: 例如AaAdKtDa1984
  5. 最後,取代某些特殊字元:可以使用類似字母的符號、組合字,例如@aAdktDa1984
  6. 使用密碼檢查程式測試新密碼:密碼檢查程式可以協助判定密碼的安全程度。

除了用上述的方法命名強式密碼外,我們也可以借用中文輸入幫忙,例如在英文輸入法中,以新住音輸入法的方式打出「我不想工作」的按鍵順序「ji31j6vu;3ej/ yji4」,一樣可達成強式密碼的效果。

另外,筆者有個同事使用嘸蝦米輸入法,他先想出一個3個字的名詞,例如「蛋包飯」,然後把輸入「蛋包飯」的按鍵「yzcnlxlu」做為密碼,也是個很不錯的方式。

看完了建立強式密碼的方法,你有什麼好點子嗎?請留言跟大家分享喔!