上次我們聊了「時(shí)光相冊」這款 APP 對個(gè)人信息的威脅,而保護(hù)個(gè)人信息安全是必不可少的手段。
那么今天我們就來談一個(gè)嚴(yán)肅的話題:如何正確的設(shè)置密碼。
我們首先要明白的是,密碼非常重要,它直接關(guān)系我們的個(gè)人隱私和財(cái)產(chǎn)安全。這可不是無病呻吟,因?yàn)槊艽a泄露導(dǎo)致的悲劇每天都在我們身邊上演著:
- 你是否曾因好友QQ或微信被盜而收到各種垃圾信息和詐騙消息?
- 你是否有親朋好友因密碼管理不善導(dǎo)致支付寶被盜刷?
- 你是否聽說過某iphone用戶被騙子把手機(jī)鎖定,不給騙子匯款就用不成手機(jī)的故事?
這樣的悲劇不勝枚舉,原本想找一些“密碼泄露”的新聞放在這里引起大家重視的,后來想想還是直接一點(diǎn)好,來給你看幾張圖,告訴你“社工庫”有多強(qiáng)大,告訴你黑客手里有什么,重點(diǎn)已經(jīng)用紅色框出來了:
你沒看錯(cuò),全國10億身份證,1億5千萬163郵箱,5億4千萬QQ賬號,850萬百度賬號……
主流的互聯(lián)網(wǎng)公司基本都在里面了,然而這還只是一個(gè)低級的社工庫的部分信息截圖,你還覺得安全離你很遙遠(yuǎn)么?猜猜你的信息和密碼在不在里面?我猜有。
所以,我們每個(gè)人都應(yīng)當(dāng)學(xué)會正確的設(shè)置密碼,這是保障我們自身利益的最起碼要求。當(dāng)然,如果你愿意選擇去過遠(yuǎn)離互聯(lián)網(wǎng)的“田園生活”,那就當(dāng)我啥都沒說…
不就是設(shè)置個(gè)密碼么,有什么難的?這個(gè)看似不難的問題,其實(shí)還是挺講究的。接下來我們會針對這個(gè)問題展開探討,為了照顧那些不愿讀“長文”的小伙伴,我們會首先給出正確設(shè)置密碼的方法和建議,而后列出設(shè)置密碼的常見錯(cuò)誤認(rèn)識,最后對“為什么這么做才安全”給出詳細(xì)的解釋。你可以根據(jù)自己的喜好,自行選擇需要的部分來閱讀,事關(guān)安全,你看著辦~
1. 一個(gè)好密碼該有的樣子
首先要說明的是,安全的密碼不等于好密碼,請看下面的例子:
- 密碼1:U#LNPg!ZB]8MbHNLtD3d6zVf
- 密碼2:123321
密碼1很安全,但是估計(jì)沒人會去用,因?yàn)楹茈y記得住,密碼2雖然好記,但卻毫無安全性可言,所以說:真正的好密碼,是既安全還好記的密碼。
單從安全性的角度講,請參照下面的標(biāo)準(zhǔn)設(shè)置密碼:
- 秘鑰長度不低于12位(至于為什么,后面我們會給出答案)。
- 同時(shí)包含大寫字母、小寫字母、數(shù)字以及特殊符號。
- 盡量避免使用姓名拼音、縮寫、生日、證件號碼、手機(jī)號碼等與個(gè)人信息相關(guān)的內(nèi)容作為密碼的一部分。
- 對于不同的賬號,盡可能依照1-3的建議設(shè)置不同的密碼。
- 如果你做不到4中的要求,覺得這樣太麻煩,也至少要設(shè)置幾個(gè)不同等級的密碼,分別用于不同安全需求的賬號。例如:涉及理財(cái)及金錢交易APP的用密碼A,社交APP賬號用密碼B,相對次要的賬號用密碼C,更次要的用密碼D,總之,在你能夠接受的范圍內(nèi),盡可能多分幾級,越是重要的賬號,越要避免密碼重用。
- 對于你在注冊賬號時(shí)所填寫的用于找回密碼的郵箱賬號,務(wù)必使用高強(qiáng)度的獨(dú)立密碼。
- 每半年到一年將密碼更換一次,更換時(shí),避免使用在過去一年內(nèi)曾經(jīng)使用過的密碼。
相信我,如果能夠做到以上這7點(diǎn),你的密碼將會很安全,至于為什么,我們會在第三部分給出詳細(xì)的說明(我已盡可能隱去專業(yè)術(shù)語,相信聰明的你一定看得懂)。
現(xiàn)在,安全密碼的標(biāo)準(zhǔn)有了,可是為了安全要顧及這么多要求,記不住怎么辦呀?下面就是要發(fā)揮你腦洞的時(shí)候了。
其實(shí)復(fù)雜的密碼未必就不好記,開動腦筋發(fā)揮你的聰明才智,就一定有辦法,下面我拋磚引玉:
機(jī)智的文藝青年版:
示例1:FLZX3000cY4yhl9day
這是什么鬼,哪里好記了,答案揭曉:飛流直下三千尺,疑似銀河落九天。現(xiàn)在好記了吧?
示例2:ppnn13%dkst-Feb.1st
又沒看懂嗎,其實(shí)還是老套路:娉娉裊裊十三余,豆蔻梢頭二月初。
怎么樣,對你有沒有啟發(fā)?如果你是程序員或者有一個(gè)程序員男朋友,你還可以采取下面的思路:
心機(jī)的IT青年:
示例3:han-shan4.location()!∈[gusucity]
上面這行的意思就是“姑蘇城外寒山寺”,我相信看個(gè)5分鐘,你絕對不會忘。
示例4:MZsay#hold?Fish:Palm
至于這一行,是在說:“孟子曰:魚和熊掌不可兼得”。(不是程序員,看不懂也沒關(guān)系)
作為反面教材,我們看兩個(gè)不好的例子:
- 示例5:ZMM19900908
- 示例6:LoveMSS1314
上面的兩個(gè)例子,第一個(gè)把姓名縮寫和生日進(jìn)行了組合,第二個(gè)估計(jì)是想表白心儀的戀人,雖然看著都挺長,但是我必須很遺憾的告訴你,這樣的密碼在黑客眼里和123456沒啥太大的差別,尤其第二個(gè),你絕對想象不到我大中國使用類似密碼的人會有多少。
綜上,好的密碼就是在遵守安全原則的基礎(chǔ)上,盡可能的大開腦洞,越匪夷所思越好。當(dāng)然,還有一種更省事的解決方案,不過你需要額外付出人民幣,我們會在文末提到它。
2 常見的認(rèn)知誤區(qū)
誤區(qū)一:密碼越長越安全
為了說明這個(gè)問題,我們得先來談?wù)劊瑸槭裁慈藗儠忻艽a越長越安全的錯(cuò)覺。假設(shè)你叫做Alice,現(xiàn)在有一個(gè)壞蛋Eve想要竊取你的密碼,狡猾的Eve知道你不太懂如何設(shè)置正確的密碼,打聽到你的密碼只是由數(shù)字組成,并且長度為6位,那么,理論上講,最壞情況下Eve也只需要嘗試:10×10×10×10×10×10=1000000次,就可以破解你的密碼。如果把密碼長度變成7位,Eve就需要嘗試1000萬次,如果是8位,就變成1億次,所以,密碼越長越安全嘛。
上面的情境中,Eve需要遍歷6位數(shù)字可能構(gòu)成的全排列,這樣的攻擊方式稱為“暴力破解”。然而,這個(gè)聽起來很有道理的解釋,其實(shí)是有問題的,因?yàn)榻^大部分用戶在選擇數(shù)字作為密碼時(shí)不會采用完全無意義的數(shù)字,而是與自己相關(guān)的數(shù)字,譬如生日、紀(jì)念日等等,在這種情況下,Eve可以預(yù)先從網(wǎng)絡(luò)上收集與你相關(guān)的信息,并從這些信息中提取出所有可能的數(shù)字片段,做成一個(gè)字典,有針對性的進(jìn)行嘗試,如果你恰好用8位“年-月-日”格式的數(shù)字串做了密碼,那你的密碼是會被“秒破”的。事實(shí)上,如果只考慮還活在這個(gè)世界上的人,所有人的8位生日加起來也只有3萬7千種不同的情況,根本無需暴力破解1億次。
這種把用戶密碼中可能出現(xiàn)的“片段”作為基本單元進(jìn)行破解的攻擊,稱為“字典攻擊”。
所以,密碼安全與否不能簡單的用長度來衡量,而要看你密碼的復(fù)雜程度。如果別人掌握了你的基本信息,在“字典攻擊”面前,“19920908”這樣所謂8位長度的生日密碼,對計(jì)算機(jī)而言其實(shí)和“1234”是沒有太大差別的。
誤區(qū)二:不愿意使用特殊符號
明白了誤區(qū)一的問題所在,誤區(qū)二就非常好理解了,假設(shè)我們的密碼足夠雜亂,攻擊者無法利用“字典”有效的破解,在這種情況下,如果你只用數(shù)字,那么N位密碼的暴力破解難度是10N,如果你還使用大小寫字母,那么N位密碼的暴力破解難度是62N,由于是指數(shù)增長,所以字母+數(shù)字的破解難度就會比純數(shù)字的難度大很多,如果再將鍵盤上常用的32個(gè)符號加入進(jìn)來,自然破解難度就更大了。
此外,使用符號還有一個(gè)最大的好處,那就是絕大部分密碼中,為了方便記憶人們總會選取有意義的數(shù)字組合(紀(jì)念日等)和字母組合(單詞,縮寫等),這樣就使得數(shù)字與數(shù)字,字母與字母之間存在關(guān)聯(lián)性,從而使制作字典變得可能。但符號與之不同,符號之間是基本無關(guān)聯(lián)的,在你的密碼中插入幾個(gè)符號,可以極大的增加你密碼的強(qiáng)度,何樂而不為呢?
誤區(qū)三:好密碼就要用一輩子
上邊的那張密碼泄露的圖,已經(jīng)很說明問題了,你曾經(jīng)長期使用的密碼,一定確定以及肯定已經(jīng)泄露了。
定期更換密碼安全性更高的道理其實(shí)所有人都懂,無非是一個(gè)懶字作祟,因?yàn)榕侣闊詰械谜垓v,我想這是大多數(shù)人的心靈寫照。可是,在安全問題面前,越是“怕麻煩”,越有可能造成更大的麻煩。
建議:如果你就是怕麻煩,至少對于密保郵箱和支付寶之類的敏感應(yīng)用的密碼,應(yīng)當(dāng)做到每半年到一年更換一次。
3. 為什么要這么做
(注意:以下內(nèi)容適合打破砂鍋問到底的朋友們,涉及技術(shù)細(xì)節(jié),不感興趣可以跳過)
接下來,我們對第一部分提到的7條安全性建議進(jìn)行分析,闡明其背后的緣由,7條建議中的第2條和第3條已經(jīng)在上一部分進(jìn)行了解釋,這里就不再啰嗦了,我們來重點(diǎn)看看其他幾條建議。
(1)為什么偏偏是12位?
這個(gè)問題的答案是:為了防止通過“彩虹表”反查。(以下內(nèi)容雖然有趣,但輕度燒腦)
我們都知道,注冊任何一個(gè)賬號時(shí),我們都會相應(yīng)的指定一個(gè)密碼,這個(gè)密碼被用于登錄驗(yàn)證,因此也被稱為登錄秘鑰。
打個(gè)比方,對于我們在某個(gè)網(wǎng)站注冊賬號,你要想登錄,就必須輸入密碼來進(jìn)行驗(yàn)證,這就好比你購買了一套高檔住宅,要想進(jìn)入房間,就必須要有房間的鑰匙。在這里,“房間的鑰匙”和“賬號的密碼”從本質(zhì)上講作用是相同的,都是進(jìn)入的通行證,用來證明你的合法性,房間的鑰匙是通過與鎖的匹配來完成身份驗(yàn)證,我們的密碼也是類似的道理,當(dāng)你輸入密碼后,隨著你點(diǎn)擊登錄按鈕的那一刻,“密碼”便被發(fā)送到了網(wǎng)站的服務(wù)器端,由于你之前已經(jīng)注冊過,網(wǎng)站的服務(wù)器把你發(fā)來的“密碼”和數(shù)據(jù)庫中的“密碼”拿來比較一下,如果相同則放行,如果不同則拒絕。
但是,這個(gè)過程存在一個(gè)巨大的問題,那就是,如果服務(wù)器端也存了你的密碼,那不相當(dāng)于小區(qū)物業(yè)也保存了一把你家的鑰匙?萬一小區(qū)物業(yè)保管不善把你家的鑰匙丟了,那還得了?況且,在登錄時(shí),你需要把密碼發(fā)給服務(wù)器,這個(gè)過程中如果你的密碼被中途截獲,不也相當(dāng)于丟了鑰匙嗎?所以,這個(gè)方案是有問題的。
好在數(shù)學(xué)上有這么一種神奇的函數(shù),叫做“單向陷門函數(shù)”,它有一個(gè)神奇的特點(diǎn),那就是:根據(jù)輸入計(jì)算輸出非常簡單,而給定輸出想反推輸入?yún)s非常困難,并且,對于不同的輸入,它會給出不同的輸出。利用這樣的函數(shù),我們就可以完美的解決上述問題。
首先,你輸入登錄密碼(用M表示),在點(diǎn)擊登錄按鈕后,瀏覽器并不會將你的密碼M直接發(fā)送出去,而是把你的密碼M輸入這個(gè)“單向陷門函數(shù)”,得到一個(gè)輸出值H,并將H發(fā)送給服務(wù)器,同樣地,服務(wù)器端在注冊時(shí)也不會保存你的密碼M,而是保存M經(jīng)過“單向陷門函數(shù)”計(jì)算得到的H,服務(wù)器把你發(fā)來的H和它保存的H比較一下,如果一致則登錄成功,否則失敗。
在這個(gè)過程中,無論是掌管著服務(wù)器的公司還是網(wǎng)絡(luò)中的其他攻擊者,他們所能獲取到的信息只有H,而根據(jù)“單向陷門函數(shù)”的性質(zhì),由H想倒推出M是幾乎不可能的,所以誰都無法通過計(jì)算反推出你的密碼。補(bǔ)充一句:這樣的單向陷門函數(shù)又被稱為Hash函數(shù),與之相關(guān)算法稱為Hash算法,密碼學(xué)中著名的Hash算法有MD4、MD5、SHA1、SHA2、SHA3等等。
有了數(shù)學(xué)作保障,一切看起來似乎都沒什么問題了,然而不幸的是,依然有問題。正所謂道高一尺魔高一丈,我們前面提到過,Hash函數(shù)的特點(diǎn)是:給定輸入M計(jì)算輸出H很容易,但想從H反計(jì)算M則幾乎不可能。
由于Hash算法是公開的,全世界都在用,于是“黑客”們想出了這樣的辦法:對于一定長度的所有可能的密碼,都利用Hash函數(shù)計(jì)算其輸出,這樣就制作了一張非常大的表格,稱之為“彩虹表”,每次拿到一個(gè)值H,就在“彩虹表”中查找對應(yīng)的M,從而獲得你的密碼。
沒錯(cuò),就是這么簡答粗暴的辦法,計(jì)算一定長度的所有密碼組合,這個(gè)工作人不可能完成,哪怕只考慮10位長度的純數(shù)字密碼,也有100億種可能,但是計(jì)算機(jī)不怕這個(gè),黑客們用計(jì)算力超強(qiáng)的服務(wù)器集群不斷的算啊算,已經(jīng)算了好多年了,雖然這個(gè)笨辦法隨著密碼位數(shù)的增加其計(jì)算成本會越來越高,但就目前來看,對于MD5算法,12位長度以下的“彩虹表”已經(jīng)完成了,至于其他算法的彩虹表,雖然查不到公開的數(shù)據(jù),但遲早也會有這么一天的。
所以,我們建議你在設(shè)置密碼時(shí),要保證長度在12位以上。
(原諒我忍不住再多嘴一句,事實(shí)上,如果服務(wù)器端采取”Hash+鹽”的方式進(jìn)行存儲,就可以有效的抵御彩虹表攻擊,但是很多小公司都沒有這么做,所以還是那個(gè)原則,能靠自己就靠自己,別總想著依靠別人)
(2)為什么不鼓勵(lì)密碼重用?
建議3-6其實(shí)本質(zhì)上都在說一件事,那就是盡量不要在不同的賬號上使用相同的密碼,為什么呢?道理很簡單,因?yàn)槿绻悴煌馁~號都使用同樣的密碼,那一旦泄露一個(gè),就等于全泄露了。
當(dāng)下的中國互聯(lián)網(wǎng)圈,許多企業(yè)就像頑皮任性的孩子,在為自己的“任性”付出代價(jià)之前,是不會認(rèn)為“太任性”其實(shí)容易栽跟頭的。
雖然大家都明白安全的重要性,但從盈利的角度看,解決安全問題并不會為企業(yè)帶來直接的經(jīng)濟(jì)效益,相反還要為此投入大量人力物力財(cái)力,因此,很多小公司在做大之前都不會給予安全問題太高的重視,他們會優(yōu)先把資源投向研發(fā)、投向產(chǎn)品、投向宣傳、投向銷售,唯獨(dú)不會優(yōu)先投向安全。加之普遍存在的僥幸心理,安全問題的解決總是不可避免的帶有滯后性。
明白了這一點(diǎn),你就明白“一個(gè)密碼走天下”是多么的危險(xiǎn)了,因?yàn)橹灰患夜静豢孔V,你便置身危險(xiǎn)之中了。
2011年12月,號稱全球最大中文IT社區(qū)的CSDN的數(shù)據(jù)庫遭到黑客攻擊,于是,6428632用戶的密碼被公之于眾,可笑的是,CSDN居然沒有對用戶密碼做任何Hash處理,直接明文保存所有的密碼(沒錯(cuò),這就好比一個(gè)很不厚道的物業(yè)公司在業(yè)主不知情的情況下復(fù)制了所有業(yè)主家的鑰匙,還給一次性弄丟了),于是,那些“一個(gè)密碼走天下”的人,其QQ、人人、郵箱、飛信等一系列賬戶也緊跟著被盜了個(gè)精光。
當(dāng)然這次事件也給業(yè)界敲響了警鐘,我們很欣喜的看到許多企業(yè)在最近幾年開始高度重視安全問題,然而安全問題畢竟積弊太久,非一朝一夕所能解決,所以,為了你自身的安全,請盡可能避免密碼重用。
(3)一個(gè)安全的好密碼為什么不可以一直用下去?
這個(gè)問題的答案是:雖然你設(shè)置了一個(gè)安全的好密碼,但是如果企業(yè)的防御能力不夠強(qiáng),被黑客黑掉了服務(wù)器,那你的密碼還是會有相當(dāng)大的風(fēng)險(xiǎn),如果遇上像當(dāng)年CSDN一樣明文存儲的,你就可以直接打出GG了。
其實(shí),攻擊服務(wù)器的“好戲”每天都在大量上演,只是企業(yè)為了自身聲譽(yù)和利益著想,往往都不會將這種“丑事”自己曝光,你有見過哪個(gè)企業(yè)主動宣傳自己被攻擊的新聞嗎?恐怕很少有,而那些能讓普羅大眾看到的曝光事件,其曝光者也都是黑客圈里的人。此外,那些真正的大牛黑客,完全可以做到“不留痕跡”的盜取,然后拿著數(shù)據(jù)賣給“黑產(chǎn)”悶聲發(fā)大財(cái),你又怎會看得到呢?
所以說,再好的密碼,也還是要定期改的。
到這里,關(guān)于7條建議背后的理由我們就大體上說清楚了,如果你耐心的看到了這里,那就向你推薦一款神器吧。
有這么一款軟件,名為1password,該軟件相當(dāng)完美的解決了密碼管理的難題,不過這并不是一款免費(fèi)軟件,所以用與不用還是要取決于你自己,該軟件有30天的免費(fèi)試用,如果你信任我的話不妨下載一個(gè)感受下,目前Windows和Mac下均可用,Android和ios下也有相應(yīng)的版本。
1password在提供巨大方便的同時(shí),將最重要的一把鑰匙(私鑰)交到了你的手里,所以你大可放心使用,關(guān)于1password背后的原理我們今天就不分析了,下面是其官方宣傳視頻,時(shí)間不長只有2分鐘,不妨來看下這款軟件都有哪些功能吧。
(我對天發(fā)誓,我不是做廣告,這貨絕對是神器,誰用誰知道)
視頻戳這里:1password 官方宣傳視頻
保護(hù)個(gè)人信息安全的任務(wù)任重道遠(yuǎn),我只希望每個(gè)人能夠真正重視起來,企業(yè)也能夠重視起來,真正保證我們在互聯(lián)網(wǎng)上能夠安心的瀏覽,不再擔(dān)心那一天自己被扒個(gè)底朝天。還有什么想法,歡迎關(guān)注 為爾Vier (Vier111),也可以加我好友,與我私聊 ,是時(shí)候,真正關(guān)心自己了_。