Saturday, September 6, 2014

設計你的超級密碼


當你把一般密碼交給密碼管理軟體以後, 就只要信任它產生的密碼就好, 因為亂數產生的密碼絕對比你想得到且記得住的密碼來得安全. 所以, 要怎麼設計一個好的主密碼來開啟密碼檔呢?

其實在前一篇寫的好密碼的要素還是有參考價值的, 長度夠長, 有特殊字元, 還有不要跟一般常用的字詞句一樣都很重要. 這篇文章就只有提一些重點讓你在設計密碼的時候可以思考一下.

1. 其實密碼也是可以加空格的
比方說 "howareyou?i'mfine,thankyou" 變成 "how are you? i am fine, thank you" 也許比較好記一點, 強度倒是沒有加多少就是了.

2. 密碼不一定要是真的
"I have 3 cars, BMW, Porsche, and Ferrari" 雖然我沒有不過反正記得住就好

3. 密碼不一定要合理
同上一點, 不合理的密碼也比較不會被列進字典檔裡. 比方說 "I know how to draw 7 perpendicular lines"

4. 密碼內容最好別太私密
說不定哪一天你要把密碼告訴別人, 或者是密碼真的被破解, 那就糗了.

5. 可以試一下拼音
會說中文有另一個好處, 就是可以用拼音來設密碼, 只要記得別用太常見的詞, 尤其最好別用歌詞. 比方說 "ting hai ku de sheng yin" 就是個很不好的例子. 可以考慮一下只用讀音的第一個字組成密碼, 例如 "dbysb: js, dp, wlt" (東北有三寶: 人蔘, 貂皮, 烏拉草)

6. 要是你想用注音也可以, 不過..
跟前一個例子一樣 "ji32k8au4a83" 是注音"我的密碼"要按的鍵, 用這種密碼的問題是到手機上或是記不起注音位置的人會比較難打.

7. 試試看按鍵水平移位
"ojsbrsnppl" 是 "ihaveabook" 的向右移位,安全性也 ok 只是稍微難打了點.

如果你想不到甚麼安全的密碼, 可以用一下這個, 等它上面那條跑完變成綠色, "Generate a word" 按五次, 它就會幫你用五個隨機選的單字串成你的密碼. 記住最少要五個隨機單字才夠安全, 如果你還記得住那就用六個吧.

要記住的一點是, 要破解密碼的人看的也是跟一般人一樣的密碼設計建議, 而且他們比我們還多研究過了幾百萬個密碼. 把這點做為中心思想去思考你的密碼吧.



如果你想用簡單一點的密碼來當 KeePass 的 Master Password 也 ok, 不過記得也要併用金鑰檔案來開你的密碼檔比較安全.

管好你的密碼!


舖梗舖了這麼久, 這一篇終於講到重點了. 希望從前幾篇看到現在, 可以讓你理解在現代密碼安全有多種要. 

現在每個人常常需要記帳號密碼的網站/地方實在超多的, 而且為了安全性的考量, 又需要每個網站不同密碼, 密碼又要夠安全. 除了少數的超人能夠全部記住以外, 對於記性不好的人 (像我) 最好的方式就是用密碼管理軟體來幫忙了. 今天要跟大家推薦的是 KeePass.

這是一款密碼管理系統, 就像是個放密碼的保險櫃, 你只要記得保險櫃密碼就好, 其他密碼就由這軟體幫你搞定. 這種軟體好用的地方在於他可以幫你用亂數產生幾乎無法破解的密碼, 而且當你要登入時也不需要一個字一個字打, 只要按兩個鍵他就會幫你自動輸入. 關於它的用法很多人都有寫了, 所以我就不浪費大家時間, 希望不熟的人多少看一下.

我的作法是
  1. 開一個密碼檔, 用一個夠複雜的 Master Password, 確保別人就算得到檔案也沒辦法開. 更安全的做法是加上一個密碼金鑰檔.
  2. 開始登入我常去的網站, 使用 KeePass 產生最大允許長度且符合規定的密碼, 然後將網站密碼改掉, 並且將這些密碼資料存在 KeePass 裡
  3. 將密碼檔放在 dropbox 某個目錄上面 (當然 gdrive, skydrive 等等雲端空間也隨你高興), 所以我只要在任何地方只要有網路就可以拿到這個密碼檔. 也因為這個檔案放在雲端的關係, 只要資料上了雲端, 就有機會落到任何人手中, 所以第一點提到的要求非常重要. 如果你有密碼金鑰檔, 可以考慮分開放 (比方說事先存在手機/隨身碟裡, 或放在另一個雲端空間).
  4. KeePass 也有手機程式, 所以在手機上也可以用, 而且因為密碼檔在雲端, 所以很容易存在手機裡
  5. 遇到網站需要輸入密碼的地方, 在電腦上就使用自動輸入的功能, 在手機上就使用複製貼上, 所以幾乎不用手動輸入密碼
  6. 以後只要每六個月去每個網站換一下密碼就好
  7. 如果網站有Two Factor Authentication (雙重認證) 的功能, 例如 Facebook, Gmail, Yahoo 都有, 一定要打開.
  8. 我也不是每個網站都用密碼管理, 有些不是很重要的網站我還是會很偷懶的隨便用個密碼, 就是那種我只會在上面放很少資料, 或是甚麼資料都不放的, 被破了也無所謂的地方.


用了這種工具, 我只要記且好好保管一個密碼, 如果這個密碼已經設計到讓人家猜不到, 唯一要防的就只剩下有人在電腦裡裝木馬, 攔截你的輸入, 讓你在打開密碼檔的時候密碼被側錄的步數. 不過這種資訊安全的觀念下次有機會再講吧.

下一篇來探討怎麼設計一個好的 Master Password, 就是開密碼檔的那個密碼, 這個規則跟前一篇提到的一般密碼設計規則有點不太一樣.

Friday, September 5, 2014

大密碼時代 (下)

怎樣的密碼算是一個好密碼, 我想大家看類似的文章大概都看到爛了, 不過我還是不能免俗的要提一下.

1. 密碼長度至少十二個字元  

這個原因在上一篇說過了, 依現在電腦的運算能力八個已經太短了.  如果是英數大小寫混雜的十二字元的話, 就會需要幾千年才算得出來.


2. 密碼該包含英文大小寫, 數字, 最好再加上特殊符號

特殊符號包含像是 !@#$%^&*()_:;"'{}, 加上這些的話會更難算出來, 不過缺點就是比較難記. 一般很常見的用法是用替代法, 比方說用 @ 來替換 "a", "$" 替換 "s", "3" 來替換 "e", "!" 來替換 "i", "&" 來替換 "and", "0" 來替換 "o". 所以 Password => "P@$$w0rd", "like" => "l!k3" 等等. 不過其實這也不太保險, 因為駭客也想得到, 他們只要把他們字典檔裡的字替換一下也可以猜.

3. 密碼最好不要用常見單字單詞

要破解密碼通常駭客不太會直接用暴力破解,用字典檔才是比較常見的作法.駭客的字典檔現在已經不只包含單字了, 也包含常見的句子. 他們也會拼裝單字來猜, 甚至去網路上掃單辭和諺語.

4. 不同的網站用不同的密碼

這個不用多解釋, 如果你全部網站密碼都一樣, 那破一個代表破全部. 另外, 假如說 yahoo 密碼是 "jack123@Yahoo" 那這樣也沒有用, 因為大家很容易猜到你 hotmail 密碼是什麼.

5. 密碼要幾個月換一次

這一點也很重要, 但是很難實行, 畢竟你要記得住才行



看到這裡, 如果你正在思考你的新密碼, 那你可以停止了, 因為你想得到且記得住的密碼有可能馬上會被破解. 利用網路上掃來的資料構成的字典檔, 資安人員已經成功的破解以下密碼:
  • Am i ever gonna see your face again?   (一首有名的歌)
  • thereisnofatebutwhatwemake   (魔鬼終結者的台詞)
  • givemelibertyorgivemedeath   (不自由吾寧死, 千古名言)
  • !)@(#*$&%^Test123   (數字鍵上方的特殊字元從1和9開始收斂, 再加 Test123)
  • "frequency modulation"   (就是那個廣播 AM/FM 的 FM)
  • Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn1   (某部小說裡用某種語言說的台詞)
  • Password must be at least 8 characters   (常見的密碼提示)
  • i have no idea what my password is   (一般人常常會想到的句子)
  • Harry Potter and the Deathly Hallows22   (書名加上 22)
  • qeadzcwrsfxv1331   (鍵盤上照九宮格打出來的)
  • Oscar+emmy2   (奧斯卡跟艾美獎)
以上的這些密碼要不是很常用, 不然就是曾經在哪裡出現過, 再不然就是有個特定規則, 這些只是一些例子, 其他包含拼錯的, 奇奇怪怪的專有名詞當成密碼的都不能幸免於難. 雖然這些密碼很長且有包含特殊字元, 但是還是沒有用. 只要這些字, 詞, 句有在社群網站, wiki, 新聞, 部落格文章, 或是書裡出現過都有可能被破解.


Sorry 我說謊了, 上一篇我說這一篇要來講怎麼設計一個好密碼, 但是事實上這篇是給大家看一般認知中的密碼規則也已經過時了. 下一篇我會講解我怎麼管理我的密碼讓人家無法破解, 而且還記得住密碼.

Thursday, September 4, 2014

大密碼時代 (中)

一般網站蒐集到密碼後, 通常都會先利用某些複雜的運算式來算出一串編碼, 比方說

p@ssword 這個密碼經過 SHA-1 計算會變成
36e618512a68721f032470bb0891adef3362cfa9
然後網站再把編碼儲存起來, 並且把原來的密碼丟棄. 這種編碼一般來說是"不可逆"的, 也就是說沒有辦法從編碼反推回去原本密碼.

等下次你登入的時候, 網站會再做同樣的運算, 並且把這次算過的編碼跟你註冊時存的編碼做比對, 如果一致就代表密碼正確, 反之代表密碼錯誤. 這也就是為什麼忘記密碼的時候網站就算想直接告訴你密碼也沒辦法, 因為他們也不知道, 他們只知道計算過的編碼.

所以, 絕大部分網站的密碼被盜時, 都是這種編碼過的資料, 乍看似乎很安全, 因為盜走資料庫的人也不知道真正密碼是甚麼. 如果你這麼想那麼就錯了.

盜走密碼的人, 要破解密碼主要是用"猜"的, 最笨的方法就是窮舉法. 假定密碼只有一個小寫英文字母的話, 那麼駭客最多只要試
26^1 (26 的 1 次方)
就猜出來了. 兩個小寫英文字母的話就是26^2 = 676 次,
三個則是 26^3 = 17576,
以此類推. 如果加上大寫英文字母還有數字的話, 一個字元的密碼最多猜
26+26+10 = 62 次 (小寫 26, 大寫 26, 數字 0~9),
兩個字元變成 62^2 = 3844,
三個字元變成 238328.

以現在一般網站都要求至少五字元以上的密碼為例, 就是最多有 62^5 = 916,132,832 種組合, 九億多分之一耶! 這樣不是很安全嗎?

 並沒有.

以 SHA-1 這種演算法來說, 駭客只要花大概兩百塊美金左右的硬體設備就可以在 1/15 秒全部算完五個字元密碼的全部排列組合, 這還是慢的, 如果你的密碼是全數字, 就算有十幾個數字也是直接秒殺.

用 2012 年的資料, 當時的紀錄一秒可以跑完三千五百億個 NTML 編碼, 換算是大約十五億個 SHA-1 編碼, 也就是說就算你的密碼是八個字元, 大概一個小時左右就可以猜出來.

更糟糕的是, 駭客並沒有那麼笨一個一個算, 他們會先去拿所謂的"字典檔"來猜,這個字典檔裏面包含了一般常用的單字或是密碼, 所以像是 12345, password, Password 這種類型的密碼馬上就會被猜中. 上一篇有提到 RockYou 這個網站有三千萬個沒加密過的密碼被偷, 你最好祈禱你的密碼沒有在這三千萬密碼裡面, 因為這些密碼肯定早就被加到他們的字典檔裡了. 當然, 一個夠格的駭客字典檔裡絕對不只有三千萬個排列組合.

一小時算出八個字元的速度其實還不夠快, 駭客們還用一種工具叫做"Rainbow Table", 基本上你可以想像這是個對照表, 駭客們事先算出某個密碼的編碼, 然後拿偷過來的編碼直接去對照, 連算都不用算. Linked-In 幾百萬密碼被快速破解, 除了他們是用這種簡單的 SHA-1 編碼以外, 不安全的編碼方式很容易用 Rainbow Table 直接找出原本密碼.

下一篇我們會來討論好的密碼該怎麼設計.

Wednesday, September 3, 2014

大密碼時代 (上)


網路已經是我們生活中密不可分的一部分, 但是似乎絕大多數的人對於資訊安全卻沒有相對應該有的觀念. 尤其當我們許多資料都放在雲端的時, 除了我們常常聽到預防病毒, 木馬甚麼的, 另外很重要的是對於自己每天使用密碼的觀念更該加強,

在現在電腦計算能力這麼強的時候, 過去許多密碼保護的觀念已經需要改變了. 從 2010 年開始, 幾乎每年都可以聽到某些站成千上萬幾百幾千萬密碼被偷:
2010 年
2011 年
2012 年
2013 年

你以為這樣就結束了嗎? 今年四月 heartbleed 漏洞之後有駭客組織聲稱掌握了十二億個帳號密碼, 五億個 email 信箱.

開始緊張了嗎? 先來解釋一般儲存密碼的原理吧.

一般來說當使用者到一個網站/app註冊後, 使用者資料包含密碼會被存起來, 有少數網站會將密碼不加密直接存到資料庫, 所以任何人只要能夠看到資料庫 (包含工程師, 客服等等內部人員)就會知道密碼是甚麼. 為什麼有人會這麼設計呢?

原因不外是
  1. 腦殘
  2. 詐騙集團
  3. 偷懶
  4. 腦殘
腦殘要提兩次因為真的是很腦殘. 所以, 如果下次在有些網站用 "忘記密碼" 功能的時候, 他直接告訴你的你密碼是多少而不是給你一個連結要你重設, 或是給你一個暫時密碼, 你應該要馬上做的事就是將所有資料清空, 密碼換掉, 刪除帳號, 然後不再用那個網站.

將密碼不經過處理而直接存到資料庫的畢竟是少數, 下一篇我們再來看看一般網站是怎麼做的, 而且會解釋為什麼你的密碼太短了.

Saturday, January 7, 2012

9 - 兵役體檢

自從送了陳情書以後, 能做的事除了等待外, 同時也要查查自己是否有符合替代役的體位. 在查了體位標準表後, 沒想到真的讓我找到一項: 臀大肌攣縮.

Thursday, January 5, 2012

8 - 要去高雄 (下)

這下子沒轍了, 繼續留在區公所盧也不是辦法, 解鈴還須繫鈴人, 我看就再去出入國移民署問問好了. 中午吃完了飯, 我就跑去中正路底的內政部南區行政大樓. 說起來真是有夠悲哀, 在台北的出入國移民署有夠大, 很氣派, 但是高雄的卻是小到跟個普通銀行沒兩樣..