網(wǎng)絡安全教程-密碼與Crack工具研究(1)

字號:

由于Unix是Internet最流行的服務器操作系統(tǒng),因此它的安全性倍受關注。這種安全主要靠口令實現(xiàn)。Unix的口令僅僅存儲在一個加密后的文本文件中,文件一般儲存在/etc目錄下,名稱為passwd。歷,Unix口令加密算法曾經(jīng)歷過幾次修正,現(xiàn)在普遍采用DES算法。用DES算法對口令文件進行25次加密。而對每次DES加密產(chǎn)生的結(jié)果,都要用2的56次方次查找與匹配才能進行一次遍歷,所以理論上要*這樣的口令,其工作量是很大的。
    本文先介紹Unix 口令文件的格式以及口令加密的原理;接著講述如何構(gòu)造一個口令Crack程序;最后以John the Ripper做口令攻擊的測試,分析實驗結(jié)果,并給出口令安全的建議。
    1.1 Unix 口令文件的格式及安全機制
    /etc/passwd文件是Unix安全的關鍵文件之一,在不同的Unix系統(tǒng)中,它的存儲路徑略有不同,參見表5.1。該文件用于用戶登錄時校驗用戶的口令,僅對root權限可寫。
    表1.1 不同Unix系統(tǒng)中口令文件的存儲路徑
    Unix系統(tǒng) 路徑
    UNICOS /etc/udb
    Ultrix4 /etc/auth
    SystemV Release 4.2 /etc/security
    SystemV Release 4.0 /etc/shadow
    SunOS 5.0 /etc/shadow
    SCOUnix /tcb/auth/files/
    OSF/1 /etc/passwd
    Linux1.1 /etc/shadow
    HP-UX /.secure/etc/passwd
    BSD4.3 /etc/master.passwd
    AIX3 /etc/security/passwd
    IRIX5 /etc/shadow
    口令文件中每行代表一個用戶條目,格式為:
    LOGNAME : PASSWORD : UID : GID : USERINFO : HOME : SHELL
    每行的頭兩項是登錄名和加密后的口令,后面的兩個數(shù)是UID和GID,接著的一項是系統(tǒng)管理員想寫入的有關該用戶的任何信息,最后兩項是兩個路徑名:一個是分配給用戶的Home目錄,第二個是用戶登錄后將執(zhí)行的shell(若為空格則缺省為/bin/sh)。例如,在口令文件中,它的Root用戶的條目為:
    root : xyDfccTrt180x,M.y8 : 0 : 0 : admin : / : /bin/sh
    則,它的含義如表1.2所示。
    表1.2 /etc/passwd文件中各個域的含義
    域 含義
    Root 用戶名
    XyDfccTrt180x,M.y8 加密的口令
    0 用戶ID(UID)
    0 用戶的組ID(GID)
    Admin 用戶的全名
    / 用戶的主目錄
    /bin/sh 用戶的Shell