目前互聯網上各類賬號的密碼數字和字母組合真的比純數字更加安全嗎?
很多密碼都要求數字和字母組合,這樣真的比純數字更加安全嗎?
大家在網上註冊賬戶的時候,經常遇到這樣的要求:
(其實你本來只打算用自己的名字拼音當密碼對不對?別的單詞你根本記不住。)
於是你先把密碼里的單詞首字母替換成大寫:
myname -&> MyName
然後在末尾加上一串數字
MyName -&> MyName123
也許你是個安全意識很強的人,你還懂得在密碼里加上特殊字元
MyName123 -&> MyName123!
終於
直到有一天,你的密碼被盜了,你才知道原來所謂的「密碼強度」
全都是騙人的
想想十幾年前,大家都還在用自己的生日或者名字當密碼,今天我們的密碼已經複雜到了自己都根本記不住的地步,為什麼反而似乎更不安全了?
事實的真相是,對於黑客來說,myname 和 MyName123! 這兩個密碼,在破解難度上幾乎沒有任何差別。
因為大家都想到一塊去了
修改密碼時把單詞首字母替換成大寫,混入「123」或者「1234」或者「1」這樣的數字,是很多人的自然反應。
黑客當然也知道這點。
黑客在試圖破解你的密碼的時候,除了大小寫轉換、加入「1234」等數字串之外,還會嘗試多得多的組合,比如把「S」替換成「$」,把「a」替換成「@」等等。所以前面說的那些招數根本就沒有用。
在某些極端情況下,兩個同樣長度的密碼,全是英文字母 的密碼甚至可能比 字母+數字 的組合更安全。
因為人們在往字元串里混入數字的時候,往往不知不覺地遵從了某種常見的模式。
比如說,一個八位字元長度的密碼,在全是英文字母的情況下,理論上可能的情況是
而在英文字母+數字的情況下,理論上可能的組合有
不幸的是,人類太喜歡模式化的思維了。對於很多人來說,八個字元的英文字母+數字的組合,等同於
前邊四個字母 + 後邊四個數字
(你用過 "abcd1234"當密碼嗎?)
於是可能的組合只剩下
也就是說有很多人在全英文字母的密碼里混入數字以後,密碼強度反而比原來弱了731倍。
黑客破解密碼的常規技術是:
大量的嘗試 + 猜測你的想法
所以,要想讓你的密碼盡量安全一點,就要做到
讓人猜不透你的想法
下邊這些事情絕對不能做:
- 用個人信息(姓名、生日等)做密碼還沒等真正的黑客下手,你女朋友可能都無數次翻過你的聊天記錄了
- 用喜歡的東西做密碼因為黑客可能和你喜歡同樣的東西。我曾經很愛用的一個密碼是「AmamiTsubasa」,直到有一天,我在一個黑客朋友家裡看到了一塊8T的硬碟......
- 用「password」做密碼信不信由你,「password」在過去三十年來一直是全世界最受歡迎的密碼。如果你感興趣,可以登錄 www.passwordrandom.com 查看目前最流行的10000個密碼
那麼,怎樣才能得到一個讓黑客猜不透的密碼呢?難道要用
完全隨機的字元串?
確實曾經有段時間使用隨機字元串是備受推崇的密碼設置方法。這個網站http://random.org可以幫你生成一個真正隨機的字元串。一個長度足夠的隨機密碼,確實是非常安全的。
這個方案唯一的缺點是
根本就記不住
也許你會用一個文本文件或者一張真的草稿紙記下你的密碼,但請別忘了
女朋友比黑客更危險。
曾經有人提出一種解決方案,就是以隨機字元串中的每一個字元作為首字母,把整個字元串變成方便記憶的句子。
比如說下面這個真的是隨機生成的密碼
-PYHOMPTMIH-
可以記成:
Put Your Hands On My Pipe To Make It Hard
然而這種方法現在也是不推薦的
因為硬體發展太快了
根據摩爾定律,計算機的運算能力約每隔兩年就會增加一倍。(這裡插句題外話,摩爾定律其實是個世紀大騙局,改天有機會再八一八。)
一個十位字元長度的隨機密碼,用現在最好的電腦進行暴力破解,只需要大概0.8秒
對今天的硬體技術水平來說,一個還算安全的密碼,推薦長度是16位。
而相對正常人類的智力而言,要把一個16位以上的隨機字元串擴展成有意義的句子,難度可能僅此於高考作文。
那麼,世界上有沒有一種既好記、又難破解的完美密碼存在呢?
答案是YES,有這樣這一種字元串,對人類來說很容易記憶,對黑客使用的計算機來說卻幾乎是隨機的。
那就是我們平時說的自然語言。
我們可以這樣做,比如說這句話「世界上有10種人,懂二進位的和有女朋友的」。
把每個字漢語拼音的第一個字母連起來,就是
「sjsy1zr,dejzdhynpyd」
如果把這個長度為19字元(包括標點)的字元串作為密碼,現在最先進的黑客手段也幾乎無能為力。
因為它夠長,並且接近隨機
然而,僅僅有一個安全又好記的密碼還是不夠的,因為這世界上永遠有缺乏安全意識的網站。
隨著這幾年黑客技術的進步,國外各大網站紛紛把允許的密碼長度上限增加到了256位左右。
不幸的是,目前國內大部分網站還是只接受最多16位甚至14位的密碼
對此我們也只能建議
盡量把密碼長度限制用滿
其實密碼長度方面的限制只是你的密碼在互聯網上可能遇到的成千上萬種威脅之一。
即使你的密碼本身是難以破解的,還是隨時隨地都有被泄露的可能。
如果只是不常用的郵箱密碼之類被泄露還倒罷了。幾年前,我國還發生過多家著名連鎖酒店的開房記錄被泄露的大事件,據說起因就是酒店的WIFI系統以明文傳輸密碼
基本上,互聯網上每一起密碼泄露事件的背後,都有一個坑爹的程序員。
- 他可能在資料庫里明文存儲你的密碼
- 他可能在網路上明文傳輸你的密碼
- 他甚至可能自己在用「1234」當密碼
除了坑爹的程序員之外,還有一大威脅是各種邪惡的組織
- 網路運營商可能攔截你的網頁瀏覽
- 輸入法軟體可能記錄你輸入的內容
- 還有隨處可見的釣魚網站
互聯網是很危險的,我們要麼逃回火星,要麼好好保護自己的密碼,並且在萬一密碼被盜時,能夠做到止損。
最安全的辦法當然是在不同的地方使用不同的密碼,以免一旦你的某一個密碼被盜了,殃及你的其他賬號。但是密碼一旦多了,記憶是個很大的負擔。在這裡給大家推薦一種
三級密碼管理法
我們可以把個人密碼按照用途不同分為三個等級:
- 分享級這類密碼是你可能需要和別人分享的,比如說你家的WIFI密碼可能需要給訪客使用,還有無恥的朋友常會提這種要求:
這類密碼只需要記住一個通用的就可以了。
2. 普通級
這類密碼是給那些你在各種門戶網站、論壇使用的。比如說,很多電影網站不註冊就不能下片,像1024這樣的論壇,甚至不允許未註冊用戶求種子。這類密碼也只需要一個通用的就可以了。
3. 重要級
就是你的聊天軟體、私人郵箱、在線支付等等絕對不能泄露的密碼了。這類密碼通常不會太多,但一定要保證每個都不一樣。
最後,祝大家好運 ^_^
(聲明:本文曾經在公眾號「程序員十日談」上發表過,略作修改)
推薦閱讀:
※暴露自己IP地址有危險嗎?
※Android最新的VMP加固技術一般是怎麼實現的?
※微軟怎樣才能打消大家對 Windows 的顧慮?
※Android 上的「玩機」行為究竟會對安全性造成多大程度的損害?
※相比廠商自身力量、國家測評和專業安全公司,民間漏洞眾測的優勢主要體現在哪裡?但對其監管是否存在難點?