來源:shell909090
下面是我自己總結的密碼管理規範,大家可以參考一下。
概念解說
▲網路密碼和本地密碼。網路密碼通常很難暴力攻擊,嘗試速度受到網路限制,而且嘗試一定次數後還可能被管理員發現。而本地密碼則相對比較容易攻擊,我假定本地密碼攻擊可以達到每秒測試2^30個密碼。
▲密碼長度推定使用如下計算方式。使用年數乘以攻擊頻率,得出攻擊者在金鑰使用期限內能嘗試的最大次數。為了安全起見,嘗試範圍不應當超過總體密碼空間的一定比例。以此推算出密碼空間大小,進而推算出資訊位數,然後還原為密碼位數。
▲數字密碼,字母密碼,數字字母混合密碼,大小寫數字混合密碼。數字密碼的資訊量是3.3bit/位,字母為4.7bit/位,混合為5.17bit/位,全混合5.96bit/位。
密碼原則
▲一次一密。除了零級密碼,不要為多個系統設定一樣的密碼。有些系統並不像我們想像的安全,一旦這個系統出問題,被還原原始密碼,就會牽連到其他系統。
▲定期更換。沒有什麼密碼能用一輩子。
▲寫下來。因為一次一密,所以我們會有大量的散碎密碼。不寫下來是不保險的,寫下來是不安全的。折衷一下,還是寫下來,儲存好吧。推薦用高階密碼加密低階密碼的方法,例如keepass。
▲生成型密碼。用一個特定字串+網站名,做sha-1然後取最後8位。這樣的密碼滿足一次一密,不容易破解,不需要寫下來,唯一的問題是你要現算…
零級密碼
▲零級密碼是有些不需要保護的情況下,又非設定密碼不可。對於這種情況,你只能設定一個不算密碼的密碼。例如常用機器的使用者密碼。這些密碼可以通過livecd/liveusb輕易修改,因此沒有一點保密價值。
▲零級密碼不需要安全性和保密性,因此好記就行。例如111,222,選一個常用的,愛用多久用多久。
低階密碼
▲低階密碼是用於保護一些你不希望別人看到,然而別人看到並沒有直接損失的內容。例如家裡機器的效能資料,普通相簿的訪問密碼。這些內容被別人看到不會產生傷害,然而無成本的放出這些內容有潛在的風險,或是你自己主觀意願希望保護,內容安全性要求又不特別高。
▲我假定低階密碼在網路上會受到100次/年的攻擊,本地密碼會受到1小時/年的攻擊,可用時間五年,窮舉空間不超過總密碼空間的1/1000。
▲網路密碼的攻擊資訊量為log2(100 * 5 * 1000) = 18.93bit。使用數字密碼應在6位以上,字母,混合,全混合應在4位以上。
▲本地密碼的攻擊資訊量為log2(2^30 * 3600 * 5 * 1000) = 54.10bit。使用數字密碼在17位以上,字母在12位以上,混合在11位以上,全混合在9位以上。
▲結論,低等級的密碼長度小,使用數字也並不難記。推薦使用4位以上字母(反正混合使用長度也沒有下降),不要使用常見組合還有單詞。推薦方式是將自己喜歡的一句英文首字母簡寫前後顛倒使用。例如:I will be back,對應密碼bbwi。
中級密碼
▲中級密碼用於保護一些你不希望別人看到,別人看到會對你產生損失的內容。例如你的帳薄,日記等等。中級密碼使用時,最主要的風險已經不來自於密碼本身,而是使用密碼的環境。包括電腦是否安全,中途網路是否安全,旁邊人的肩窺攻擊。
▲我假定中級密碼在網路上可能會受到10000次/年的攻擊,本地密碼會受到100小時/年的攻擊,可用時間1年,窮舉空間不超過總密碼空間的1/100000。
▲網路密碼的攻擊資訊量為log2(10000 * 1 * 100000) = 29.90bit。使用數字密碼應在9位以上,字母在7位以上,混合應在6位以上,全混合應當在4位以上。
▲本地密碼的攻擊資訊量為log2(2^30 * 3600 * 100 * 1 * 100000) = 65.07。使用數字密碼在20位以上,字母在14位以上,混合在13位以上,全混合應當在11位以上。
▲結論,中級密碼開始,數字密碼的位數就太長了,人類記憶很難記得。推薦使用8位以上字母密碼,產生方式同上。
高階密碼
▲高階密碼用於保護一些有價內容,例如公司標書,銀行賬戶。高階密碼要注意更換,最長不要超過半年。
▲我假定中級密碼在網路上可能受到1000000次/年的攻擊,本地密碼會受到8700小時/年的攻擊,可用時間0.5年,窮舉空間不超過總密碼空間的1/10000000。
▲網路密碼的攻擊資訊量為log2(1000000 * 0.5 * 10000000) = 42.19bit。使用數字密碼應在12位以上,字母和混合應在9位以上上,全混合應當在8位以上。
▲本地密碼的攻擊資訊量為log2(2^30 * 3600 * 8700 * 0.5 * 10000000) = 77.15。使用數字密碼在24位以上,字母在17位以上,混合在15位以上,全混合應當在13位以上。
▲結論,高階密碼使用字母都很難記憶了,只有寫下來。千萬注意儲存好寫下的密碼,一旦丟失或者洩露,絕對不是鬧著玩的。熟悉計算機的可以使用keepass配合版本管理器,支援linux/windows/android。尤其是android版本,雖然不方便修改,但是方便使用,非常好用。
特殊密碼
▲所謂特殊密碼,就是銀行賬戶。這類密碼分級上應當屬於高階密碼,然而大家可以看到,高階密碼長度應當在12位以上,而銀行卡密碼最大長度只有6位。這主要是因為銀行為了安全做了特殊設計,五次密碼猜錯就會警告或者鎖定,破解難度遠遠高於網路密碼。如果你的銀行密碼是全隨機的,可以放心使用,不過建議一年一換。如果你的銀行沒有五次猜錯警告並鎖卡功能,立刻換銀行!
▲不過銀行密碼最大的風險,在於很多人為了方便記憶,使用了自己或者親友的生日。根據統計,在銀行密碼中使用生日是最多的,其次是電話號碼,車牌號碼,門牌號碼。不過限於實驗次數,多數是實驗生日。
▲對於這類密碼,推薦一種好記又夠強的數字產生方式。將親友的生日順序顛倒使用。不要對外說明或者暗示是哪個親友,也不要洩露顛倒方法。這樣造成的窮舉範圍通常在3000-5000之間。即使是你的熟人心懷鬼胎,也很難猜出密碼。就算用的是他本人生日,都未必猜的到。如果將他們的電話號碼順序顛倒,則效果更好。
其實上面條例林林總總,貝殼自己都未必全部遵守。例如一次一密,有些賬戶密碼還是一樣的。不過經過我本人評估,這個風險比較低,可以接受而已。至於我的主密碼長度——這個可以透露。是14位數字大小寫混合密碼,有效資訊量82位。部分還帶有特殊字元,資訊量91位。即使以最嚴苛的標準來看,都足夠解密者算到5年後了。