影子口令

影子口令

幾乎所有的類Unix作業系統的口令檔案的格式都雷同,Linux亦不例外。口令安全是Linux作業系統的傳統安全問題之一。 Linux使用不可逆的加密算法如DES來加密口令,由於加密算法是不可逆的,所以從密文是得不到明文的。但問題在於,/etc/passwd檔案是全局可讀的,加密的算法是公開的,如果有惡意用戶取得了/etc/passwd檔案,他就可以窮舉所有可能的明文通過相同的算法計算出密文進行比較,直到相同,於是他就破解了口令。因此,針對這種安全問題,Linux/Unix廣泛採用了“shadow(影子)”機制,將加密的口令轉移到/etc/shadow檔案里,該檔案只為root超級用戶可讀,而同時/etc/passwd檔案的密文域顯示為一個x,從而最大限度減少密文泄露的機會。

定義

影子口令 影子口令

ShadowPasswords影子口令

在大多數Unix系統中,用戶密碼是存儲於一個可閱讀和編輯的文檔中。對於黑客來說,要想獲得其文檔的副本也就相對容易,他們只需要使用一些常用的工具,便可解讀其中用戶的加密密碼。

傳統上,/etc/passwd檔案在很大範圍內是可讀的,因為許多程式需要用它來把UID轉換為用戶名。例如,如果不能訪問/etc/passwd,那么ls-l命令將顯示數字UID而不是用戶名。不幸的是,使用口令猜測程式,具有加密口令的可讀/etc/passwd檔案表現出巨大的安全危險。多數近來的UNIX產品支持一個變通方法:影子口令檔案。影子口令系統把口令檔案分成兩部分:/etc/passwd和影子口令檔案。影子口令檔案保存加密的口令;/etc/passwd中的coded-password域都被置為“X”或其他替代符號。影子口令檔案只能被root或像passwd這樣的set_uid程式在需要合法訪問時讀取,其他所有非授權用戶都被拒絕訪問。習慣上,影子口令檔案保存在/etc/shadow中,儘管有些系統使用可選的路徑和檔案名稱。例如BSD系統把加密的口令保存在/etc/master.passwd。

傳統口令與影子口令

/etc/passwd是存放用戶的基本信息的口令檔案。該口令檔案的每一行都包含由6個冒號分隔的7個域:

username:passwd:uid:gid:comments:directory:shell

以上從左到右7個域分別敘述如下:

username:是用戶登入使用的名字。

passwd:是口令密文域。密文是加密過的口令。如果口令經過shadow則口令密文域只顯示一個x,通常,口令都應該經過shadow以確保全全。如果口令密文域顯示為*,則表明該用戶名有效但不能登入。如果口令密文域為空則表明該用戶登入不需要口令。

啟用影子口令

RedHat

Linux預設安裝shadow,如果你發現你的系統的/etc/passwd檔案仍然可以看到密文,就說明你沒有啟用shadow。可以執行pwconv來啟用shadow。

在RedHatLinux7.1中,影子工具包(shadowutils)包含了幾個工具支持以下功能:

傳統口令與影子口令之間的轉換工具:pwconv、pwunconv。

驗證口令,組和相應的影子檔案:pwck、grpck。

以符合工業標準的方法增加、刪除和修改用戶帳戶:useradd、usermod、userdel。

以符合工業標準的方法增加、刪除和修改用戶組:groupadd、groupmod、groupdel。

以符合工業標準的方法管理檔案/etc/group。

無論系統是否啟用shadow機制,上述工具都可以正常使用。

相關詞條

相關搜尋

熱門詞條

聯絡我們