歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> Unix資訊

講解Unix口令文件的格式及安全機制

我們學習了很久的Unix系統的知識。Unix操作系統有很多值得學習的地方,這裡我們主要介紹Unix操作系統中的Unix口令的知識,主要是Unix口令文件的格式及安全機制的講解。下面大家就一起來學習下吧!

作為Internet上最流行的服務器操作系統,Unix安全性倍受關注。Unixd的安全性主要靠口令實現,因此,Unix口令加密算法幾度改進,現在普遍采用DES算法對口令文件進行25次加密,而對每次DES加密產生的結果,都要用2的56次方次查找與匹配才能進行一次遍歷,要破解這樣的Unix口令,其工作量是巨大的,所以從理論上說這種Unix口令是相當安全的。

然而不幸的是我們仍然不時聽道Unix口令被攻破的消息。這些Unix口令是如何被攻破的,我們又怎樣才能保證Unix口令的安全呢。下面將對這一問題進行探討。 

Unix口令文件的格式及安全機制 

Unix口令文件passwd是一個加密後的文本文件,儲存在/etc目錄下。該文件用於用戶登錄時校驗用戶的口令,僅對root權限可寫。口令文件中每行代表一個用戶條目,格式為:LOGNAME : PASSWORD : UID : GID : USERINFO : HOME : SHELL。

每行的頭兩項是登錄名和加密後的Unix口令,UID和GID是用戶的ID號和用戶所在組的ID號,USERINFO是系統管理員寫入的有關該用戶的信息,HOME是一個路徑名,是分配給用戶的主目錄,SHELL是用戶登錄後將執行的shell(若為空格則缺省為/bin/sh)。目前多數Unix系統中,口令文件都做了Shadow變換,即把/etc/passwd文件中的口令域分離出來,單獨存在/etc/shadow文件中,並加強對shadow的保護,以增強口令安全。 

Unix系統使用一個單向函數crypt()來加密用戶的Unix口令。Crypt()是基於DES的加密算法,它將用戶輸入的口令作為密鑰,加密一個64bit的0/1串,加密的結果又使用用戶的Unix口令再次加密;重復該過程,一共進行25次。最後的輸出為一個13byte的字符串,存放在/etc/passwd的PASSWORD域。單向函數crypt()從數學原理上保證了從加密的密文得到加密前的明文是不可能的或是非常困難的。

當用戶登錄時,系統並不是去解密已加密的Unix口令,而是將輸入的Unix口令明文字符串傳給加密函數,將加密函數的輸出與/etc/passwd文件中該用戶條目的PASSWORD域進行比較,若匹配成功,則允許用戶登錄系統。

這樣,我們就了解了關於Unix口令的文件的格式及安全機制的知識了。

Copyright © Linux教程網 All Rights Reserved