甚至,黑客們專門制作了彩虹表 。什么是彩虹表呢?就是預先模擬了一個數(shù)據(jù)庫,這個數(shù)據(jù)庫中窮盡了各種可能的密碼組合,實際上就是一種暴力窮舉的破解方法 。黑客們可以將泄露的數(shù)據(jù)庫中的加密值與預先準備好的彩虹表進行查找配對,一旦發(fā)現(xiàn)同樣的密文,雖然不可逆加密的密文在理論上可能對應多個原始值,但由于有些密碼的通用性,其反推的結(jié)果中,各個可能的原始值可能性卻是不一樣的 。
而且這件事情并不難,舉個例子來說,普通我們認為只要密碼位數(shù)夠長、組合夠復雜、有大小寫數(shù)字特殊符號總安全了吧?而事實情況是,一個由大小寫字母數(shù)字部分特殊符號預先設立的彩虹表,窮舉所有 14 位及以下的密碼可能加密值時,整個彩虹表的大小也不過才 64GB,在當今的計算能力看來,進行暴力破解的成功機率還是非常大的 。
建議:密碼位數(shù)不宜過短;密碼采用數(shù)字大小寫特殊符號組成;不要使用一些簡單的、他人也可能使用的密碼組合 。3.4 加鹽后的不可逆加密泄露如果不可逆加密都如此不可靠,還有沒有什么解決方案呢?當然是有的,那就是加鹽后的不可逆加密 。什么是加鹽呢?在理解這個概念前,讓我們先回過頭去看一下,為什么說不可逆加密依然不可靠 。
原因主要有兩點:同樣的密碼加密后生成的密文是一樣的,而一些簡單密碼的使用頻率很高;由于計算能力的提升,使用暴力破解的成本越來越低,使得運用彩虹表進行暴力破解的成功概率上升 。要解決這兩個問題,實際上需要解決的核心是,讓加密后的密文與原密碼進一步隔離,這就需要加鹽了 。例如最常用的組合 SHA512 SALT,這里的 SALT 就是我們所說的鹽,當用戶注冊時,先進行一次不可逆加密后,再對生成的密文撒上一點鹽,就是隨機值,這個撒鹽的過程可以是添加前后綴,可以是改變順序,或者某種隨機的規(guī)則,并在此加了鹽的密文的基礎上,再進行一次不可逆加密,就大功告成了 。
舉個例子來說,我們先把密碼 123456 不可逆加密到 abcdefg,然后對生成的密文加一些鹽,比如增加前后綴變成 xxxabcefgyyy,這時再對 xxxabcefgyyy 進行一次不可逆加密生成了二次密文 3kda3kd,這時候即使數(shù)據(jù)庫泄露,黑客也很難通過之前的彩虹表或大數(shù)定理的情況,反推出用戶的密碼了 。
建議:看來真正的安全,還是要靠廠商靠譜,基本上國內(nèi)外的大廠的加密都會采用類似比這種方案更加復雜一些的方案 。設置密碼時,牢記這幾點如果你有耐心看完了上面這一節(jié),一定已經(jīng)理解了,密碼安全其實是一個「端到端」,即「客戶端 - 傳輸層 - 服務端」三位一體的問題,只要其中某一個環(huán)節(jié)有問題,哪怕另外兩個環(huán)節(jié)做得再好再安全,也是白搭 。
木桶理論在安全領域,實在是再適用不過了 。我們能做好的最重要的事情,其實用一句話來概括,就是永遠只在可信的設備和可信的網(wǎng)絡環(huán)境下進行密碼操作 。一旦到達服務器端,基本事情就已經(jīng)不在我們掌控的范圍內(nèi)了 。一家使用明文存儲密碼的公司一旦發(fā)生數(shù)據(jù)泄露,哪怕我們的密碼設計得再復雜,設備和網(wǎng)絡安全再周密,這一切也都是白搭 。
不過,即使是這樣,我們還是有一些措施,即使在服務器端發(fā)生問題時,最小化我們的損失 。1. 密碼位數(shù)、大小寫和特殊符號密碼越復雜,安全程度越高,這一假設的前提是你的本地設備和網(wǎng)絡環(huán)境足夠安全,否則就像我們前面所說的,密碼再復雜,如果你本地有木馬程序監(jiān)聽輸入,那么一樣是徒勞 。在保證本機和網(wǎng)絡環(huán)境安全的前提下,如果網(wǎng)站的數(shù)據(jù)發(fā)生泄露,對方在暴力破解時,密碼的復雜程度就直接對破解的效率和成本有關系,一般來說,位數(shù)越長,混雜得大小寫和特殊符號越多,暴力破解的成本就越大 。
推薦閱讀
- 11月賣得最好的手機排行 2017手機排行榜
- 打了疫苗為什么得細小,明明接種了疫苗為什么還是得了水痘
- 小米10怎么樣值得購買嗎 現(xiàn)在還值得入手嗎
- iphone se值得買嗎 新款iPhone
- iphone哪款值得入手 目前這3款值得入手
- 2020柳州房價,您覺得廣西柳州的房價虛高嗎
- 火影忍者ol人物怎么獲得,《火影忍者OL
- 賽爾號加體力的套裝怎么得,玩賽爾號這個錢絕對值得花
- 金裝傳奇技能書怎么獲得,高級技能書怎么獲取
- 神槍手怎么得末日鐮刀,我的末世基地車
