如何檢測您密碼的安全性(二)

使用密碼分析工具驗證密碼的安全性

除了上述密碼安全設定的基本原則,用戶還可以使用下面介紹的一款非常實用的密碼安全分析工具——John the Ripper來驗證其密碼設定是否安全可靠。

John the Ripper是一個工具軟件,用于在已知密文的情況下嘗試破解出明文的破解密碼軟件。主要支持對DES、MD5兩種加密方式的密文進行破解工作。它可以工作于多種不同的機型以及多種不同的操作系統(tǒng)之下,目前已經(jīng)測試過能夠正常運行的操作系統(tǒng)有:Linux x86、freeBSD、x86、Solaris、SPARC、OSF/1 Alpha、DOS、WinNT/WinXP/Win 7系列等。

John the Ripper 1.7是目前比較好的破解密碼工具,在解密過程中會自動定時存盤,用戶可以強迫中斷解密過程(使用Ctrl+C組合鍵),下次還可以從中斷的地方繼續(xù)進行下去(john-restore命令)。任何時候敲擊鍵盤,用戶都可以看到整個解密的進行情況,所有已經(jīng)被破解的密碼會被保存在當前目錄下的JOHN.POT文件中,SHADOW中所有密文相同的用戶會被歸成一類,這樣JOHN就不會進行無謂的重復勞動了。在程序的設計中,關(guān)鍵的密碼生成的條件被放在JOHN.INI文件中,用戶可以自行修改設置,不僅支持單詞類型的變化,而且支持自己編寫C的小程序限制密碼的取值方式。

通常情況下,許多用戶的密碼命名方式非常簡單,比如12345、hello、world等,或者很多都是與用戶名相同的密碼口令,那么我們一般可以先采用簡單解密方式來對系統(tǒng)中的密碼進行簡單的初步試探,如果發(fā)現(xiàn)能夠成功破解,那么就需要對這些密碼口令的強度進行加強,如下所示:

//使用簡單解密方式對系統(tǒng)賬戶進行測試

#./john –single /etc/shadow

Loaded 3 password hashes with 3 different salts (FreeBSD MD5[32/32])

jason (jason)

guesses: 1 time: 0:00:00:00 100% c/s: 6975 trying:999991900

在上述命令中,我們發(fā)現(xiàn)系統(tǒng)存在一個jason用戶,其用戶名和密碼均為jason,因而通過最簡單的方式便能將其發(fā)現(xiàn)和利用,如果為黑客破解則將造成不可設想的后果,因而我們的用戶應該立即根據(jù)此種情況進行口令加強。

其次,用戶可以使用字典文件來對系統(tǒng)用戶的惡密碼強度進行試探和測試。人們常用hello、superman、cooler、asdfgh、123456等作為自己的密碼。而-rules參數(shù)則在此基礎上再加上些變化,如字典中有單詞cool,則JOHN還會嘗試使用cooler、CoOl、Cool等單詞變化進行解密。一般視SHADOW中的用戶多少及自己的字典大小、自己的機器速度,解密時間從幾小時到幾天不等。下面給出使用該方式進行解密的例子,假設我們已經(jīng)生成了一個password.lst文件,其中包含了常用的以字典單詞為依據(jù)的密碼,那么我們對系統(tǒng)中的用戶密碼使用該方式進行試探破解,由于字典中保留了duango這樣一個單詞,因而用戶jason的密碼所以也被試探出來,網(wǎng)絡管理員同樣需要對該密碼進行加固,比如添加適當?shù)暮缶Y、字母和數(shù)字等:

//使用字典解密方式對系統(tǒng)賬戶進行測試

# ./john --wordlist=password.lst /etc/shadow

Loaded 3 password hashes with 3 different salts (FreeBSD MD5 [32/32])

duango (jason)

guesses: 1 time: 0:00:00:01 100% c/s: 7065 trying: duango

當然,上述兩種只是非常直觀和簡單的方法,但是如果字典足夠完整和實用的話,那么就能夠查出絕大多數(shù)的脆弱口令,在實踐中,我們還可以綜合使用如下的一些選項,來對系統(tǒng)密碼強度進行更為充分的檢查和驗證:

rules:在解密過程中使用單詞規(guī)則變化功能。如將嘗試cool單詞的其他可能,如COOLER、Cool等,詳細規(guī)則可以在JOHN.INI文件中的[List.Rules:Wordlist]部分查到。

incremental[:<模式名稱>]:使用遍歷模式,就是組合密碼的所有可能情況,同樣可以在JOHN.INI文件中的[Incremental:*****]部分查到,我們在下面詳細解釋。

external:<模式名稱>:使用自定義的擴展解密模式,用戶可以在john.ini中定義自己需要的密碼組合方式。JOHN也在INI文件中給出了幾個示例,在INI文件的[List.External:******]中所定義的自動破解功能。

restore[:<文件名>]:繼續(xù)上次的破解工作,JOHN被中斷后,當前的解密進度情況被存放在RESTORE文件中,自己可以復制這個文件到一個新的文件中。如果參數(shù)后不帶文件名,JOHN默認使用RESTORE文件。

通過上述軟件測試,就可以確定用戶的密碼設定強度,如果容易為該軟件破解,則需要盡快更換相應密碼,從而提高密碼的安全性。