密碼的一些存儲方式和安全傳輸建議

密碼是軟件系統(tǒng)中非常常見的屬性,密碼保存和傳遞都需要考慮如何才能不泄漏。
密碼存儲
密碼在服務(wù)器都需要加密保存,根據(jù)用途不一樣,有可逆加密(AES)和非可逆加密(PBKDF2)算法。
可逆加密方式存儲
可逆加密一般是客戶端保存密碼,客戶端需要還原出密碼然后使用密碼訪問服務(wù)器??赡婕用艿腁ES算法需要一個密鑰,通過密鑰加密和解密。因此AES算法的關(guān)鍵就是密鑰。
通常的做法是密鑰也加密存儲,如果這么做,就是一個雞和蛋的問題了。
解決這個問題的一個方法是提供一個 根密鑰 和 工作密鑰 。
1.根密鑰 根密鑰不加密存儲,文件權(quán)限為600
2.工作密鑰 工作密鑰由根密鑰加密得到,文件權(quán)限為600
3.密碼使用工作密鑰加密,不使用根密鑰加密
3.密鑰建議可以替換,以便及時修復密鑰泄漏問題(最好沒問題,有問題了盡量把影響降低到最小,有問題了能盡快修復)
非可逆加密方式存儲
非可逆加密一般是服務(wù)端存儲密碼方式,因為服務(wù)端不需要逆向密碼明文,服務(wù)端在校驗密碼的時候,有很多種方式。最常見的是把客戶端發(fā)送過來的明文密碼加密得到密文,與服務(wù)器保存的密文對比是否相等。
非可逆加密一般有一個隨機鹽值,保護好隨機鹽值,比可逆加密算法防護措施要簡單。
密碼傳輸
在很多場景下,需要在不同系統(tǒng)或進程之間傳輸密碼,特別是不同的系統(tǒng),傳輸密碼比較麻煩。
1.不同系統(tǒng)之間,不能共享密鑰(如果需要共享密鑰的話非常復雜,讀者們可以結(jié)合實際場景思考),所以不能傳輸加密之后的密碼
2.如果通過命令行參數(shù)方式傳輸明文密碼的話,又很容易通過操作系統(tǒng)的 ps 命令查看到(低權(quán)限級別的用戶可以 ps 到高權(quán)限級別用戶的進程)
3.將明文密碼寫到一個文件?密碼不能明文存儲啊!
一個典型的場景是調(diào)用mysql客戶端連接mysql服務(wù)器時候,命令行參數(shù)傳遞密碼。
當然,細心的讀者發(fā)現(xiàn)這個例子不合適,因為你ps不到mysql客戶端的密碼!
mao 59402 9674 0 Apr29 pts/4 00:00:00 mysql -u root -px xxxxxxxx
對的,mysql 客戶端是專門考慮了這種場景的。這也是一種解決這個問題的方案哦。
環(huán)境變量 ,對就是用環(huán)境變量傳遞明文密碼。每個進程的環(huán)境變量保存在:
/proc/${pid}/environ
-r-------- 1 root root 0 May 1 22:00 environ
文件中,這個文件權(quán)限是 400 ,屬主是當前運行進程的用戶。也就是說,只有當前用戶才可以看到此環(huán)境變量值,而其他用戶是無法查看的,即使權(quán)限比當前用戶高(root除外)!
相關(guān)文章
- 本文教大家如何找回密碼,僅供參考,用于密碼丟失的情況,不要做壞事哦2013-01-09
- 你還在為忘記密碼無法開機而發(fā)愁嗎?你還在為沒有密碼無法打開電腦而著急嗎?本章將大家一個巧妙的小招數(shù),讓你輕松解開任何一個電腦的開機密碼,非常實用2013-07-22
- PDF因為不易編輯,傳輸效果好,可以加密等特點深受大家的喜愛,在需要分享PDF文件到人數(shù)比較多的平臺時,為了不讓其他人可以隨意地查看這個文件,我都會先對這個文件進行加2013-09-17
- 這篇文章主要為大家介紹了在linux下使用reaver破解無線wifi密碼的下載安裝使用方法,需要的朋友可以參考下2013-11-20
- 大家平時設(shè)置密碼時,為了省事就設(shè)置很簡單的密碼,殊不知卻留下了很大的安全隱患2013-12-06
- 互聯(lián)網(wǎng)生活促成了龐大的賬戶密碼數(shù)據(jù),怎樣設(shè)置自己登陸密碼最安全?什么樣的密碼難破解?據(jù)媒體報道表情符號將成最安全的密碼。2015-06-17
- 散列法會讓黑客很難從散表中回到口令上,同時也會讓網(wǎng)站保存一系列的散列,而不是將它們儲存為安全性低的文本口令。這就意味著,即使散列的口令被偷竊,真正的純文本口令也2016-05-25
- 很多安全專家反復提醒用戶設(shè)置賬戶和密碼時要盡可能多樣化,以防被破解。黑客只要簡單的使用暴力破解攻擊。暴力破解攻擊是指攻擊者嘗試所有的可能性破解用戶的賬戶名、密碼2016-05-26
- 本文總結(jié)了最差的密碼前25名,看看自己有沒有中招,另外給大家分析了設(shè)置密碼的小技巧,肯定會讓你受益匪淺2016-05-30