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