如何安全設定和檢測你的密碼安全性?
自去年CSDN網站、天涯、開心網、人人網等網站被曝大量使用者的密碼被洩漏以來,密碼的安全問題已引起使用者和業界的極大關注和重視。你的密碼安全嗎?上網際網路站還會不會洩漏密碼?……這些問題都引起了廣大使用者的恐慌。站在一個資訊保安工作者的角度來講,這個問題雖然嚴重,但還沒有到草木皆兵的地步。因此,本文將客觀地分析密碼安全問題的原因,提供給使用者安全設定密碼的基本原則,並介紹如何使用密碼分析工具來驗證密碼安全性的方法,以幫助使用者安全設定自己的密碼。
一、密碼安全問題的原因分析
從密碼洩露或者被竊取的原因來分析,主要有如下幾方面的原因:
l 密碼明文儲存:在2000年左右,隨著網際網路的飛速發展,網際網路站也在如雨後春筍般地湧現出來,當時網站對安全問題沒有重視,因此出現了部分網站對使用者的註冊資訊(其中也包括密碼)均採用明文儲存的方式。在這樣的前提下,一旦網站的資料庫被黑客攻擊,或者是內部人員的資料庫拷貝,都會造成大量使用者資訊的洩露;
l 弱密碼設定:使用者的弱密碼設定應該是當前密碼洩露或者被竊取的主要原因。很多使用者都採用非常簡單的,與自己身份或者生日等強相關的資訊來設定非常簡單的密碼(如僅用數字、字母或者數字等),這就給不法使用者或者黑客留下了可趁之機。更為重要的是,即算現在網站都採用密文加密並儲存的方式來保證使用者密碼安全,一旦資料庫被黑客攻擊,黑客仍然可以基於若密碼,採用“彩虹表”來對使用者密碼進行猜測,而且這樣成功地機率非常高;
並且,從當前的情況來看,弱密碼設定在密碼出現安全問題的情況下所佔的比重超過80%,因此,網際網路使用者尤其需要重視該問題。那麼,該如何來避免使用弱密碼呢?下面給出一些基本原則。
二、密碼安全設定的基本原則
目前密碼破解程式大多采用字典攻擊以及暴力攻擊手段,而其中使用者密碼設定不當,則極易受到字典攻擊的威脅。很多使用者喜歡用自己的英文名、生日或者賬戶等資訊來設定密碼,這樣,黑客可能通過字典攻擊或者是社會工程的手段來破解密碼。所以建議使用者在設定密碼的過程中,應儘量使用非字典中出現的組合字元,並且採用數字與字元相結合、大小寫相結合的密碼設定方式,增加密碼被黑客破解的難度。而且,也可以使用定期修改密碼、使密碼定期作廢的方式,來保護自己的登入密碼。
具體列出幾條設定安全密碼的參考原則如下(5個需要遵循):
1) 口令長度至少為八個字元:口令越長越好。若使用MD5口令,它應該至少有15個字元。若使用DES口令,使用最長長度(8個字元)。
2) 混和大小寫字母:混和大小寫會增加口令的強健程度。
3) 混和字母和數字:在口令中新增數字,特別是在中間新增(不只在開頭和結尾處)能夠加強口令的強健性。
4) 包括字母和數字以外的字元:&、$、和 > 之類的特殊字元可以極大地增強口令的強健性(若使用 DES 口令則不能使用此類字元)。
5) 挑選一個自己可以記住的口令:如果自己記不住自己的口令,那麼它再好也沒有用;使用簡寫或其它記憶方法來幫助自己記憶口令。
另外,還有一些原則需要牢記(8個需要避免):
1) 不要只使用單詞或數字,決不要在口令中只使用單詞或數字。
2) 不要使用現成詞彙:像名稱、詞典中的詞彙、甚至電視劇或小說中的用語,即使在兩端使用數字,都應該避免使用。
3) 不要使用外語中的詞彙:口令破譯程式經常使用多種語言的詞典來檢查其詞彙列表。依賴外語來達到保護口令的目的通常不起作用。
4) 不要使用黑客術語。
5) 不要使用個人資訊:千萬不要使用個人資訊。如果攻擊者知道自己的身份,推匯出自己所用口令的任務就會變得非常容易。以下是自己在建立口令時應該避免使用的資訊型別。
6) 不要倒轉現存詞彙:優秀的口令破譯者總是倒轉常用詞彙,因此倒轉薄弱口令並不會使它更安全。
7) 不要筆錄自己的口令:決不要把口令寫在紙上。把它牢記在心才更為安全。
8) 不要在所有機器上都使用同樣的口令:在每個機器上使用不同的口令是及其重要的。這樣,如果一個系統洩密了,所有其它系統都不會立即受到威脅。並且,不法使用者也很難以一個系統為突破口,來威脅到你其他系統的安全。
三、使用密碼分析工具驗證密碼的安全性
除了上述密碼安全設定的基本原則,使用者還可以使用下面介紹的一款非常實用的密碼安全分析工具——John the Ripper來驗證其密碼設定是否安全可靠。
John the Ripper是一個工具軟體,用於在已知密文的情況下嘗試破解出明文的破解密碼軟體。主要支援對DES、MD5兩種加密方式的密文進行破解工作。它可以工作於多中不同的機型以及多種不同的作業系統之下,目前已經測試過能夠正常執行的作業系統有:Linux x86、freeBSD、x86、Solaris、SPARC、OSF/1 Alpha、DOS、WinNT/WinXP/Win 7系列等。
John the Ripper 1.7是目前比較好的破解密碼工具,在解密過程中會自動定時存檔,使用者可以強迫中斷解密過程(使用Ctrl+C組合鍵),下次還可以從中斷的地方繼續進行下去(john-restore命令)。任何時候敲擊鍵盤,使用者都可以看到整個解密的進行情況,所有已經被破解的密碼會被儲存在當前目錄下的JOHN.POT檔案中,SHADOW中所有密文相同的使用者會被歸成一類,這樣JOHN就不會進行無謂的重複勞動了。在程式的設計中,關鍵的密碼生成的條件被放在JOHN.INI檔案中,使用者可以自行修改設定,不僅支援單詞型別的變化,而且支援自己編寫C的小程式限制密碼的取值方式。
在使用該軟體前,我們可以從網上http://www.openwall.com/john/下載其最新版本john-1.7.9 ,在Windows下的安裝非常簡單,以下主要介紹其在Linux下的安裝方法。
首先下載john-1.7.9for Linux版本,它包含DOC、SRC和RUN三個目錄,在SRC目錄下,在x86機器上執行如下命令即可:
#make
#make clean linux-x86-any
安裝好後,可以切換到RUN目錄下,進行測試,如下所示:
#cd ../run
#./john –jason
安裝好後,我們可以靈活使用如下幾種方式來對自己的賬戶密碼進行測試(在Windows和Linux系統上如下方法都適用,只不過命令操作方式略有不同而已):
通常情況下,許多使用者的密碼命名方式非常簡單,比如12345、hello、world等,或者很多都是與使用者名稱相同的密碼口令,那麼我們一般可以先採用簡單解密方式來對系統中的密碼進行簡單的初步試探,如果發現能夠成功破解,那麼就需要對這些密碼口令的強度進行加強,如下所示:
//使用簡單解密方式對系統賬戶進行測試
#./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
在上述命令中,我們發現系統存在一個jason使用者,其使用者名稱和密碼均為jason,因而通過最簡單的方式便能將其發現和利用,如果為黑客破解則將造成不可設想的後果,因而我們的使用者應該立即根據此種情況進行口令加強。
其次,使用者可以使用字典檔案來對系統使用者的惡密碼強度進行試探和測試。人們常用hello、superman、cooler、asdfgh、123456等作為自己的密碼。而-rules引數則在此基礎上再加上些變化,如字典中有單詞cool,則JOHN還會嘗試使用cooler、CoOl、Cool等單詞變化進行解密。一般視SHADOW中的使用者多少及自己的字典大小、自己的機器速度,解密時間從幾小時到幾天不等。下面給出使用該方式進行解密的例子,假設我們已經生成了一個password.lst檔案,其中包含了常用的以字典單詞為依據的密碼,那麼我們對系統中的使用者密碼使用該方式進行試探破解,由於字典中保留了duango這樣一個單詞,因而使用者jason的密碼所以也被試探出來,網路管理員同樣需要對該密碼進行加固,比如新增適當的字尾、字母和數字等:
//使用字典解密方式對系統賬戶進行測試
# ./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
當然,上述兩種只是非常直觀和簡單的方法,但是如果字典足夠完整和實用的話,那麼就能夠查出絕大多數的脆弱口令,在實踐中,我們還可以綜合使用如下的一些選項,來對系統密碼強度進行更為充分的檢查和驗證:
l rules:在解密過程中使用單詞規則變化功能。如將嘗試cool單詞的其他可能,如COOLER、Cool等,詳細規則可以在JOHN.INI檔案中的[List.Rules:Wordlist]部分查到。
l incremental[:<模式名稱>]:使用遍歷模式,就是組合密碼的所有可能情況,同樣可以在JOHN.INI檔案中的[Incremental:*****]部分查到,我們在下面詳細解釋。
l external:<模式名稱>:使用自定義的擴充套件解密模式,使用者可以在john.ini中定義自己需要的密碼組合方式。JOHN也在INI檔案中給出了幾個示例,在INI檔案的[List.External:******]中所定義的自動破解功能。
l restore[:<檔名>]:繼續上次的破解工作,JOHN被中斷後,當前的解密進度情況被存放在RESTORE檔案中,自己可以複製這個檔案到一個新的檔案中。如果引數後不帶檔名,JOHN預設使用RESTORE檔案。
通過上述軟體測試,就可以確定使用者的密碼設定強度,如果容易為該軟體破解,則需要儘快更換相應密碼,從而提高密碼的安全性。
本文轉自samsunglinuxl51CTO部落格,原文連結: http://blog.51cto.com/patterson/846731,如需轉載請自行聯絡原作者
相關文章
- Redis 密碼設定和檢視Redis密碼
- 設定listener的安全性
- 密碼系統的安全性(一)密碼
- 密碼系統的安全性(二)密碼
- 安全性偏好設定
- 漢語拼音密碼安全性密碼
- mysql如何設定密碼MySql密碼
- 資訊時代,提高自己的密碼安全性密碼
- 密碼學之前後向安全性密碼學
- 初步學習密碼系統的安全性密碼
- 增加SSH無密碼信任連線的安全性密碼
- PackageDNA檢測目標軟體包的安全性Package
- 你的密碼真的安全嗎?密碼
- 教你一招,如何設定一個容易記住又安全的密碼密碼
- redis密碼設定、訪問許可權控制等安全設定Redis密碼訪問許可權
- 防止系統升級,如何給你的Mac設定韌體密碼呢?Mac密碼
- 如何給PDF檔案設定密碼?密碼
- 如何設定 Linux 系統的密碼策略Linux密碼
- 如何安全的儲存密碼密碼
- win10資料夾如何設定密碼 win10資料夾設定密碼的方法Win10密碼
- Linux中如何設定SSH金鑰提升登陸安全性Linux
- 如何檢測前端頁面的安全性?怎樣避免web頁面攻擊?前端Web
- win10設定硬碟密碼怎麼取消 win10硬碟設定密碼如何取消Win10硬碟密碼
- redis設定密碼Redis密碼
- php檢測郵箱密碼PHP密碼
- Linux 如何設定密碼複雜度?Linux密碼複雜度
- 如何在Mac上設定韌體密碼Mac密碼
- 如何設定一個別人猜不到的密碼密碼
- Win10如何設定開機密碼 win10系統設定開機密碼的步驟Win10密碼
- win10怎麼設密碼_如何設定開機密碼win10Win10密碼
- EditText設定密碼隱藏和顯示密碼
- Linux 使用者和密碼設定Linux密碼
- 織夢dedecms後臺安全性設定大全
- win10區域網設定密碼如何設定 win10區域網怎麼設定訪問密碼Win10密碼
- Web安全性測試Web
- 如何使用Vault安全的儲存密碼和API金鑰密碼API
- IT安全性如何提高
- 如何給備忘錄設計密碼?Mac上備忘錄設定密碼教程密碼Mac