★不要共用口令/密碼 相當多的同學喜歡靠一個口令包打天下,。這是相當相當危險的事情,。同一個口令,用的場合越多,,則泄密的危險越大,。而一旦泄露,,你的安全防線就會全面崩潰。 所以,,今天要講的頭一個要點,,就是絕對不要在所有(大多數(shù))場合,使用同一個口令,。 ★密碼的分級機制 由于共用口令存在很大的風險,,比較穩(wěn)妥的辦法就是——每一個場合僅使用一個密碼。但是很多人會抱怨說:這樣會很繁瑣,,增加了很多的麻煩,。那如何才能做到既安全,又不太麻煩捏,?這就要引入密碼的分級機制,。 根據(jù)安全圈內(nèi)一個人所共知的常識:越安全的措施,通常也就越麻煩,,成本也高,;反之亦然。另外,,根據(jù)二八原理,,非常重要口令畢竟只占少數(shù)。所以,,就像電影要有分級機制一樣,,你的密碼/口令也要引入分級的概念。通過分級機制,,對大多數(shù)不太重要的口令,,可以采取簡化的安全措施;而對少數(shù)重要的口令,,采取高度安全的措施,。 下面,就來介紹一下,,如何對不同的口令,,進行分類。 ◇第1級:不重要的口令 所謂不重要的口令,,就是說萬一被盜了或者忘記了,,對你沒啥損失。 比如,,俺經(jīng)常碰到一些土鱉的論壇,,只允許注冊會員從上面下載附件。因此俺就經(jīng)常臨時注冊一個賬號,,然后登錄上去下載東西,。這類賬號,,基本上都屬于一次性的(用完即扔),所以重要程度很低,。 對于那些不重要的口令,,基本上不用考慮太多安全性的因素。隨便設(shè)置一個即可,。 ◇第2級:重要但少用的口令 對于重要的口令,,還要根據(jù)其使用的頻繁程度,再區(qū)別對待,。有些口令雖然重要,,但是使用的頻度很低。由于這類口令很少使用,,所以設(shè)置得麻煩一些,,問題也不大。 比如俺管理的一些研發(fā)的服務(wù)器(比如源代碼服務(wù)器),,其重要程度非常高,,但是平常基本無需登錄,。 ◇第3級:重要且頻繁使用的口令 最后這類口令,,既重要,又經(jīng)常用,。所以,,設(shè)置這類口令就比較講究。要同時兼顧安全性和易用性,。 比如自己日常使用的操作系統(tǒng)用戶密碼,,就屬于此類。 ★一些反面教材——脆弱的密碼舉例 ◇口令是一串簡單數(shù)字 ◇用英文單詞作口令 用單個的英文單詞作口令,,也很容易被破解,。畢竟,常用的英文單詞,,也就千把個,;算上冷僻的,也就幾萬個,。 在許多年以前,,就有黑客專門收集整理了英文單詞的列表(稱之為“口令字典”)。而且這個字典是根據(jù)單詞的使用頻度進行排序,。有了這種密碼破解字典,,密碼破解程序就可以輕易猜解出那些使用單個英文單詞的密碼。 ◇用日期作口令 有些同學希望用某個具有特殊意義的日期(比如:生日,、結(jié)婚紀念日,、等)作為口令。要知道這種伎倆也是不靈滴,。因為常見的日期,,大都分布在最近100年的范圍內(nèi)。所以充其量,,可能的個數(shù)也就大約是365*100個,。即便把不同的日期表示格式考慮進去,也多不了幾倍,。在這個數(shù)量級上,,對于暴力破解工具而言,還是小菜一碟,。 ★如何構(gòu)造復雜的密碼,? ◇用多個單詞構(gòu)成詞組 為了避免字典攻擊,可以考慮由2-5個英文單詞構(gòu)成密碼,。如果你英語不靈光或你比較習慣中文,,也可以考慮用2-5個漢字的拼音來構(gòu)成密碼。 優(yōu)點是: 由于能顯著增加密碼長度,,可以抗擊暴力破解,。 缺點是: 有可能需要改變你記憶密碼的習慣。 口令中僅包含字母,,復雜度不夠高,。 ◇插入特殊字符 最常見的是插入空格。當然,,你也可以考慮插入其它字符(比如:下劃線,、減號、斜杠,、井號,、星號、等),。 通常進行暴力破解時,,為了加快破解進度,都只針對字母和數(shù)字進行暴力破解,。如果你的口令中含有特殊字符,,會大大提高攻擊者的難度。 優(yōu)點是: 由于口令包含較多特殊符號,,復雜度大大提高,。 缺點是: 很多特殊字符的輸入,要依賴于SHIFT鍵輔助,,會影響你輸入密碼的擊鍵速度,。這會給偷窺者留下可乘之機,。 ◇字符變換 所謂的字符變換,就是用形狀類似的字母和數(shù)字進行相互替換,,通過這種變換,,可以規(guī)避前面提到的基于口令字典的攻擊。 常見的變換有如下幾種: 字母o 和 數(shù)字0 字母l 和 數(shù)字1 字母z 和 數(shù)字2 字母s 和 符號$ 字母g 和 數(shù)字9 字母q 和 數(shù)字9 字母a 和 符號@ 字母b 和 數(shù)字6 字母x 和 符號* 假設(shè)俺想用單詞 program 作為口令,,那么經(jīng)過上述的變換之后,,就成為 pr09r@m 很明顯,變換之后的口令同時具有字母,、數(shù)字,、符號。強度相當好 :) 優(yōu)點是: 不用改變你原先的記憶習慣,。 由于口令包含較多特殊符號,,復雜度大大提高。 缺點是: 如果你想好的口令中,,恰巧所有字母都沒有對應(yīng)的變換,,那就比較不爽啦。 ◇鍵位平移 這個招數(shù)也比較簡單,,就是在進行鍵盤輸入時,,把手向右平移一個鍵位。通常咱們在盲打時,,兩只手的食指分別對著字母F和字母J,。平移之后,則食指對著G和K,。 假設(shè)俺想用單詞 program 作為口令,那么經(jīng)過上述的變換之后,,就成為 [tphts, 經(jīng)過這種輸入法,,口令已經(jīng)面目全非。但是對你自己來說,,并不難記,。 優(yōu)點是: 不用改變你原先的記憶習慣。 口令看起來完全沒規(guī)律,。 缺點是: 依賴于QWERT的鍵盤布局。萬一哪天你想在非QWERT鍵盤(比如某些手機鍵盤)上輸入口令,,那你就歇菜了,。 ◇藏頭詩 為了用此招數(shù),你先要想好一句令你印象深刻的話。這話可以是中文,,也可以是英文、法文,、火星文......反正只要是你熟悉的語言既可,。最好這句話的字數(shù)(單詞數(shù))在6-20之間,。然后你把這句話每一個單詞的頭一個字母取出來,組合成一個口令,。如果是中文的話,,就把每一個字的拼音的聲母取出,組合成口令,。 假設(shè)俺想好的話是:只有偏執(zhí)狂才能生存。那么用拼音的聲母表示就成為:zypzkcnsc 優(yōu)點是: 不用改變你原先的記憶習慣,。 口令看起來完全沒規(guī)律,。 缺點是: 口令中僅包含字母,復雜度不夠高,。 如果句子中的字數(shù)(單詞數(shù))不夠多,效果就不夠好,。 對于港臺的同學,,由于沒學過漢語拼音,只好用英文的藏頭詩了,。好在港臺的英語教育通常比大陸好,應(yīng)該關(guān)系不大 :-) ◇巧用SHIFT鍵 在構(gòu)造口令的時候,,適當?shù)亟M合一下SHIFT鍵,,有時也可以達到不錯的效果。假如你的口令中,,有部分字符是數(shù)字,,那當你輸入口令時,按住SHIFT鍵會讓這些數(shù)字字符變?yōu)樘厥夥枴?/p> 優(yōu)點是: 不用改變你原先的記憶習慣,。 由于口令包含較多特殊符號,,復雜度大大提高。 缺點是: 萬一你原先的口令僅有字母,,沒有數(shù)字,,則密碼的強度會稍微打折扣。 由于要依賴于SHIFT鍵進行切換,,會影響你輸入密碼的擊鍵速度,。這會給偷窺者留下可乘之機。 ◇運用數(shù)學等式 還有一種又好記,,看起來又復雜的密碼構(gòu)造方式——運用數(shù)學等式,。 比如,俺的密碼可以設(shè)計成: 7+8=15 雖然只有6個字符,,但是由于包含了符號,,已經(jīng)有一定的強度。如果你覺得6字符太少,,還可以很容易增加,,比如改為: 110+9=119 如果你覺得還不夠復雜,還可以搞得再變態(tài)一點——把某個數(shù)用英文表示,。比如: two+7=nine 優(yōu)點是: 密碼同時包含了字母,、數(shù)字、符號,。標準的高復雜度,! 缺點是: 需要改變你記憶密碼的習慣。 一旦你的口令被別人看到,,別人很容易就可以發(fā)現(xiàn)你構(gòu)造口令的規(guī)律,。 ◇利用散列值(哈希值) 最后,來說一種俺的看家本領(lǐng)——利用散列值構(gòu)造口令,。 不熟悉IT技術(shù)的同學,,可能不了解散列值是啥玩意兒。俺不想多浪費口水解釋,,好奇的同學請看維基百科的介紹,。 為了構(gòu)造基于散列值的密碼,俺建議大伙兒選用的是CRC32散列算法,。為啥用它捏?因為這玩意兒用起來比較方便,。比如,,假設(shè)俺想得到某個文件的CRC32散列值,,只要用WinRAR或7-Zip等壓縮工具,把它壓縮成zip格式的文件,,然后就可以看到該文件的CRC32值了(因為zip格式用CRC32散列算法作為文件的校驗碼),。不信你隨便拿手頭一個zip格式的文件打開來看看就明白鳥。 現(xiàn)在,,詳細說一下基于散列值的密碼如何構(gòu)造,。 首先,你先想好一個字符串,,作為計算散列的種子,。這個字符串不需要很復雜,也不需要很長,。比如,你叫張三,,那你可以拿張三的拼音聲母zs作為種子串,。 假設(shè)你有一個hotmal的郵箱,,需要設(shè)置口令,。你可以先用notepad生成一個txt文件。里面先寫上種子串sz再寫上hotmail,,存盤,。然后把這個txt文件用工具壓縮成zip格式,,看一下它的CRC32校驗碼(是9C9041C0),,然后就拿它作為密碼。 如果你再有一個gmail郵箱需要設(shè)置口令,,只要同樣地,,往那個txt文件寫入zsgmail,然后計算CRC32,,既可以得到另外一個值(03B2F77D)。大伙注意到?jīng)]有,?這兩個值看起來沒有任何關(guān)聯(lián)性,,而且從這兩個口令,,也看不出和種子串zs有啥關(guān)系。 優(yōu)點是: 密碼同時包含了字母,、數(shù)字,,但是沒有特殊符號,。復雜度屬于中高,! 由于散列值具有隨機性。也就是說,,你看到的絕大多數(shù)散列值都沒啥規(guī)律。 由于散列值具有不可逆性,。也就是說,,即便有一個密碼暴露了,攻擊者也看不出規(guī)律,。 即使有一個密碼暴露,,別人完全看不出規(guī)律,。 如果把CRC算法換成其它算法(比如MD5或SHA-1),,可以輕易構(gòu)造出超長的密碼(32個字符)。 缺點是: 這種密碼是完全隨機的,,不是常人所能記住滴。所以,,在密碼分級機制中,,它僅適合第二級的密碼。第三類密碼沒法這么玩,。 |
|