在Linux中從隱藏密碼遷移至tcb

roninwei發表於2006-10-19
隱藏密碼作為Linux產品的既定事實標準已經有好多年了,md5密碼的使用亦是如此。但是,使用傳統的隱藏密碼方法也有不足之處,甚至md5也不像以前那麼安全了。

隱藏密碼檔案的一個缺點就是,任意一個需要查詢個別隱藏密碼(如您的密碼)的應用程式也可以看到其他人的隱藏密碼,這也就意味著任意一個可以讀取隱藏檔案的惡意工具都能夠獲得別人的隱藏密碼。

除了隱藏,還有一個叫做tcb的可供選擇的辦法,它由Openwall Project編寫,可以從tcb主頁上獲取。遷移到tcb雖然需要做一些工作,但是相當直接。因為只有Openwall GNU/*/Linux、ALT Linux、和Annvix 直接支援tcb。要為您選擇的流通產品獲得tcb支援,您必須重新編輯幾個程式,打上補丁。

從tcb站點上,您可以下載tcb程式,並將它和相關的pam_tcb和nss_tcb庫一起進行編輯。您還需要打上支援crypt_blowfish的glibc補丁(像SUSE一樣的有些產品可能已經可以支援blowfish密碼,就不需要再打補丁了)。

也許您還想為shadow-utils組打上補丁;取決於您的產品所採用的shadow-utils的版本,您可以從Openwall CVS為shadow-utils 4.0.4.1或從Annvix SVN儲存庫為4.0.12獲得所需的補丁。像adduser、chage等這樣的工具中的Shadow-utils需要被打上補丁,提供tcb支援。在tcb頁面上有可以打glibc補丁的最新crypt_blowfish的連結。

一旦這些先決條件都滿足了,且tcb編譯和安裝以後,只需簡單地將/etc/pam.d/*檔案中的所有呼叫都替換為pam_unix.so和/或pam_pwdb.so就行了。然後就可以像列表A中那樣使用pam_tcb.so了。

列表A

auth

required

pam_env.so

auth

required

pam_tcb.so shadow fork nullok prefix=$2a$ count=8

account

required

pam_tcb.so shadow fork

password

required

pam_passwdqc.so min=disabled,12,8,6,5 max=40 passphrase=3 match=4 similar=deny random=42 enforce=everyone retry=3

password

required

pam_tcb.so use_authtok shadow write_to=tcb fork nullok prefix=$2a$ count=8

session

required

pam_limits.so

session

required

pam_tcb.so

如果您希望繼續使用md5密碼,而不是blowfish密碼,將prefix=$2a$ count=8一條從密碼行移除,同時,您還需要修改/etc/nsswitch.conf,讓隱藏行改讀:

shadow: tcb nisplus nis

passwd程式需要sgid隱藏,而不是suid根,並且/etc/login.defs中要包括USE_TCB yes。這些完成以後,您就可以執行/sbin/tcb_convert程式,將隱藏檔案轉換成為適當的單一使用者檔案了,這些檔案將儲存在/etc/tcb/中。做完這些之後,移除/etc/shadow和/etc/shadow-檔案,然後您的系統就可以使用tcb了。

獲得tcb支援可能需要花點功夫,但遺憾的是更多的產品沒有提供支援,它們既沒有本地支援也沒有透過外掛來支援。使用tcb,連同blowfish密碼一起,會為您的Linux產品提供一個安全得多的密碼系統。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7507082/viewspace-872634/,如需轉載,請註明出處,否則將追究法律責任。

相關文章