計(jì)算環(huán)境安全之操作系統(tǒng)安全機(jī)制中標(biāo)識(shí)與鑒別二
◇Linux的身份標(biāo)識(shí)與鑒別
Linux使用用戶標(biāo)識(shí)號(hào)(User ID,UID)來(lái)標(biāo)識(shí)和區(qū)別不同的用戶。UID是0-65535之間的一個(gè)整數(shù)值,在系統(tǒng)內(nèi)部管理進(jìn)程和文件保護(hù)時(shí)使用UID字段,在某些特定目的下,系統(tǒng)中可以存在多個(gè)擁有不同注冊(cè)名、但UID相同的用戶,事實(shí)上,這些使用不同注冊(cè)名的用戶實(shí)際上是同一個(gè)用戶。
Linux的用戶信息存儲(chǔ)在/etc/passwd中(早期的passwcl中包含了用戶的密碼散列),該文件用于用戶登錄時(shí)校驗(yàn)用戶的登錄名、加密的口令數(shù)據(jù)項(xiàng)、用戶ID(UID)、默認(rèn)的用戶分組ID(GID)、用戶信息、用戶登錄目錄以及登錄后使用的shell。這個(gè)文件的每一行保存一 個(gè)用戶的資料,而用戶資料的每一個(gè)數(shù)據(jù)項(xiàng)采用戶冒號(hào)“:”分隔,格式如下所示:注冊(cè)名:口令:用戶標(biāo)識(shí)號(hào):組標(biāo)識(shí)號(hào):用戶名:用戶主目錄:命令解釋程序shell/etc/passwd文件是全局可讀,意味著攻擊者是可以看到所有用戶的口令散列,包括root的口令,雖然使用了不可逆的加密算法如DES來(lái)加密口令,但由于算法是公開(kāi)的,因此攻擊者仍然可以使用散列來(lái)獲取口令。針對(duì)這一問(wèn)題,linux系統(tǒng)使用“shadow”文件機(jī)制,將用戶口令散列轉(zhuǎn)移到該文件中,shadow文件只有root可讀可寫,而同時(shí)/etc/passwcl文件的密文域顯示為一個(gè)x,從而保護(hù)用戶口令避免泄露。