|
跳過這個段落避免陷入鉆牛角尖的密碼術(shù),盡管通常叫做加密,linux密碼實際上使用的是MD5或舊的UNIX密碼打亂機制(基于DES加密算法),這就允許linux不知道你的密碼,即使你提供了正確的密碼讓它知道了。當(dāng)你設(shè)置你的密碼時,linux打亂你的密碼并保存在/etc/shadow中,當(dāng)你登陸時,linux提取你輸入的密碼并再打亂一次,再與保存在/etc/shadow中的進行比較,如果匹配你提供的就是正確的密碼,你就能登陸,如果不匹配,你也不清楚密碼是好多了,因為存儲的是打亂后的數(shù)據(jù),計算機也不會知道你的密碼是好多,反正你是不能登陸進去的。
這就是為什么打亂你自己的密碼有用了,假設(shè)你在另一個計算機上需要一個新密碼,或許它是一個新賬號或你忘記了舊的密碼讓管理員給你重設(shè)密碼,如果你能親自告訴管理員,那么沒有問題,但是如果管理員不在怎么辦呢?或許你從來都沒有和管理員見過面,你怎么傳輸你的新密碼?電子郵件是不安全的,電話可能要好一點,郵寄一封信可能要好幾天(可能會有其他安全問題),傳真機,文本消息和大多數(shù)紙張上的東西是不安全的。
更糟糕的是,你可能不信任那個管理員,當(dāng)然,管理員通常就是root,但是其他人可能知道你的密碼,或許你象在其他機器上使用相同的密碼,并且你也不信任那些機器的管理員。
因此,使用下面的方法:
$ openssl passwd -1
Password:
Verifying - Password:
$1$zmUy5lry$aG45DkcaJwM/GNlpBLTDy0
輸入2次密碼,它不會回顯的,如果你有多個帳戶,就運行多次上面的命令,輸出的內(nèi)容就是密碼加密后的結(jié)果,由于采用的是隨機加密,每次運行結(jié)果都是不一樣的,即使密碼是相同的。
在我的例子中,密碼打亂后是這樣的:
$1$zmUy5lry$aG45DkcaJwM/GNlpBLTDy0
你的密碼打亂后可能與這里完全不同,除了開頭的$1$。
打亂后的密碼【譯者注:實際上通常我們叫做hash值】就能用于電子郵件、傳真、文本消息甚至通過電話交談傳輸給管理員了,管理員據(jù)此可以重新設(shè)置你的密碼hash值。
在管理員收到你的密碼hash值后,它可以手動修改/etc/shadow或使用chpasswd命令,后面需要一個臨時的新文件,叫做newpassword,你的登陸Id和密碼hash值象這樣:
LoginidHere:$1$ywrU2ttf$yjm9OXTIBnoKJLQK2Fw5c/
這個文件可以包括多行,為其他帳戶提供類似的功能。
然后,管理員作為root登陸運行:
chpasswd --encrypted < newpassword
現(xiàn)在,新密碼已經(jīng)設(shè)置好了,一旦你登陸后立即修改你的密碼是個好主意,除非你使用的是一個強壯的密語,這是因為密碼hash值,一旦暴露,就成為離線強制破解的對象,除非這個密碼是真的很長。
這個設(shè)置密碼的方法是相當(dāng)安全的,例如:使用這個技術(shù),某個人能獲取到密碼hash值,創(chuàng)建一個賬號,并知道登陸id和主機名,但是只有原先創(chuàng)建這個用戶的人才知道密碼,即使這個賬號的密碼hash值發(fā)布在雜志上也不用擔(dān)心。
順便說一下,那個hash值對應(yīng)的密碼是完全隨機的基于64位字符編碼的28位長,因此要破解它是非常困難的,但是請注意,不要用那些密碼已經(jīng)公布出來的hash值創(chuàng)建賬號,如:
HXzNnCTo8k44k8v7iz4ZkR/QWkM2
密碼和hash值象下面這樣創(chuàng)建:
$ openssl rand 21 -base64
HXzNnCTo8k44k8v7iz4ZkR/QWkM2
$ openssl passwd -1 HXzNnCTo8k44k8v7iz4ZkR/QWkM2
這些例子使用MD5密碼hash值,目前通用的linux系統(tǒng)都是這樣,如果你需要使用舊的UNIX系統(tǒng)hash值,只需要去掉-1參數(shù),例如:
$ openssl passwd
Password:
Verifying - Password:
xcx7DofWC0LpQ
最后這個密碼hash值的密碼是:TheLinux
密碼基準測試
OpenSSL支持的許多算法使得它非常合適于密碼基準測試,這對于比較相同硬件情況下不同算法的性能很有用,并且,它內(nèi)置了一個基準測試命令。 本新聞共 4頁,當(dāng)前在第 3頁 1 2 3 4 |
|
【收藏】【打印】【進入論壇】 |
|
|
|
|
|
|
|