為何你應該使用密碼管理員?

 Gordon Lau 劉偉中

Gordon Lau 劉偉中

2019-06-27

根據一項網上調查,發現超過7成用戶有超過10個網上帳戶,而大多數情況下都會於不同的帳戶重用密碼。更有3成用戶表示自己實在有太多帳戶,連自己也不清楚有多少個。縱然保安專家常常建議用戶應該為每一個帳戶設下不同的密碼,執行上卻是不切實際:一個正常千禧年代互聯網用戶,動輒就有四五十個帳戶,要以人腦記住四五十個不同帳戶的電郵已是Mission Impossible ,更何況是密碼呢?

問題所在

這項調查揭示了一個嚴重的問題: 互聯網無遠弗屆,網上應用如Google、WhatsApp為人類生活方便良多,但要安全使用這些應用,就必須有一個有效的方法管理密碼,但普遍用戶對如何有效管理密碼,其實是一籌莫展。 一個良好的密碼管理(Password Management)策略,應該遵從以下幾個原則:

密碼必須要有足夠強度

人類天生就會覺得自己與別不同,一句有趣句子就將這個世上普遍的錯覺綜合起來。

Everyone thinks they are unique until they have to create a username

事實也確實如此,自己名字的username總是被人捷足先登,因此很多人的username往往要加上出生日期才可以成功注冊。密碼也是同理, 人們常常以為自己的密碼很特別,不會有其他人使用,研究卻發現,很多密碼經常被世界各地的人重用:

  • 最常用的Password系列(Password,password1),也就是password的變種、
  • I love you系列(不同語言的i love you變種)
  • 字典常用字(sunshine,happy,football)
  • 順序或反序數字系列(1234567,24680)
  • 電話號碼系列(98475294,00831248233)
  • 鍵盤順手次序系列(!@#$%^&,qwerty)
  • 置換系列(Pa55w0rd,/\cc3$$)。

不幸的是,以上的密碼通通都不安全,即使看起來不錯的置換系列,強度也不足夠,因為置換規則s -> 5o -> 0都是早已廣為人知,也就代表駭客的密碼破解工具,早已包含此類規則。

著名的網絡漫畫xkcd就曾以password strength為題,解釋大眾對密碼強度的誤解。

xkcd_password_strength.png

Source

大家改密碼時常常會加入一些不同的大寫字母或常用置換,就如漫畫中的Tr0ub4dor&3,看起來好像很安全,但由於置換規則太常見,加上長度不夠,實際上比四個隨機的英文組合correct horse battery staple的強度更低。而人類天生記憶更能記住有意義的詞語,因此後者的密碼不論在易於記憶及強度上都更好。

註: 大家可能會問,那為何很多網站都要求密碼有一定的格式,例如一個大寫字母,一個符號等要求呢?筆者認為這也是由於對密碼強度不甚瞭解所作出的錯誤要求。

簡單來說,密碼的强度,其實主要由長度決定,隨機七個英文詞語的密碼(含空格),例如upgrade outfield unstaffed handbag overpower catatonic padlock,遠比一條較短,卻使用符號及大寫字母更為安全。

有一個方便生成足夠強度密碼的方法,稱為Diceware,具體方法是先準備一條有7776個英文字,再從中隨機抽取六至七個英文字,就可以生成一個像以上一樣的安全密碼,大家有興趣的話,在這個網址可以輕易生成一個又安全、又相對易記的密碼。

diceware.png

密碼不應該在不同帳戶重用

使用了一個像以上一樣安全密碼,在不同網站使用同一個密碼可以嗎?很遺憾,不可以。,第二大原則,就是密碼不應該重用。因為重用密碼,會出現如果一個帳戶洩漏密碼,卻導致多個重用密碼的帳戶都被同時盜用,情況就如火燒連環船一樣。假如全部帳戶都使用同一個密碼,就更為危險。

大家可能會心想,那有這麼巧合,我的帳戶不會那麼容易被盜用的,事實再一次與大眾的直覺相反,有一個網站名為Have I been pwned,供大家輸入自己的電郵地址,查找大家是否曾經是資料外洩的受害者吧?

haveibeenpwned.png

相信出乎大家意料之外,大家自以為安全的密碼,可能早已外洩。因此,為了帳戶真正安全,每一個獨立的帳戶,都需要一個有足夠強度的密碼

必要時可與他人分享

有些用家對密碼管理有一定認識,會將密碼儲存在一個Excel檔案,或是Google Sheet之上,這樣的做法比重用密碼要安全得多,但有一個分享密碼的問題,例如大家在日常工作時,常常有一些密碼需要在同事之間分享,卻又只能限制某些群組才能存取,群組以外不應該有存取。Excel檔案及Google Sheet都可以容易分享,卻難以對密碼分享有精細的控制,也就是甲同事只能使用A、B、C三個密碼,而乙同事只能使用D、E兩個密碼,這些情況使用Excel或是Google Sheet就很難處理,也很容易分享了不應分享密碼。就筆者的經驗所見,普遍人們覺得要管理密碼實在太麻煩,最終方法都是將所有密碼通通放到Excel檔案供人查閱,這樣的結果可是最壞的結果呢!

執行上的困難

讀完這三大原則,大家應該會想:「我也知道密碼不應重用,也要有足夠強度才安全,可是我記不住啊,改得再好也沒有用,一個半個還可以啊,數十個密碼怎麼可能?」這是一個很實際的問題。有趣的是,其實早已有解決方法,這個方法正正是密碼管理員(Password Manager)!

password_managers.png

密碼管理員

所謂密碼管理員,就是將所有用戶名(username)、密碼(password)都加以集中,整個密碼資料庫以一個高強度的終極密碼(Master Password)保護,用戶每當需要輸入密碼時,就可以解鎖密碼管理員,然後由密碼管理員自動輸入(Auto-fill).

這個方法乍看之下,好像很複雜,卻顯著之好處:

用戶只需要記住一個高强度密碼

由於只要有終極密碼就能讀取其他密碼,用戶可以放心只記一個終極密碼,只要有終極密碼,自然能夠讀取其他帳戶的密碼,再作登入。要記住數十個高強度密碼當然是Mission Impossible,但只是記住一個,相信人人皆可。

更甚者,現時很多密碼管理員都有相對應的手機應用程式,用戶可以使用指紋辨識面孔辨識,就可以輕鬆為密碼管理員解鎖,更簡化了使用密碼管理員的難度。

fingerprint_unlock.png

Source

密碼不重用而且強度很高

除了終極密碼外,其他所有帳戶的密碼都應由密碼管理員自動隨機生成,生成的密碼強度非常之高,因為無須理會人類記憶的限制,可以大大提高複雜性及長度。以下是一個隨機生成的密碼,筆者相信一定比大家任何一個自創的密碼都要複雜。

generate_password.png

每個帳戶密碼不重用、強度高,要重新更改密碼也很簡單,只要重新生成一個即可;相比起要自己更改密碼,再努力記住,還要密碼強度不夠,實是不可同日而語。有些密碼管理員更可以設計密碼的過期日,提醒用戶要定期更改密碼,就更是方便了。

個人帳戶一目了然

上面提過有3成用戶連自己有多少個帳戶也不清楚,正正是因為缺乏一個儲存機制去紀錄帳戶的資料,密碼管理員本質就是帳戶名及密碼的最終紀錄(master record),可以幫助用戶紀錄所有曾經有過的帳戶名,一些每年只會使用一至兩次的密碼,例如香港的eTax網上報稅系統,也可以輕鬆記住。同時亦方便用戶分組管理或是搜尋用戶名,都比使用Excel更一目了然。

1password_ui.png

Source

不同平台都能使用

也許有人會認為,以上的好處,用一個Excel檔案或是Google Sheet也可以,密碼管理員沒有明顯優勢哦。其實主流的密碼管理員如LastPast,1Password,Dashlane,KeePass,都在主流的平台有各自的軟件支援,也就是同一套密碼,大家可以在Android電話上使用、iPad上使用也可、桌面電腦及手提電腦上使用亦可。其中Keepass更是一個離線的密碼管理員,即使身處外地,或是沒有互聯網的地方,也能存取自己的密碼。

keepass_google_play.png

Source

自動輸入省卻輸入麻煩

密碼管理員還有一個殺手鐧(Killer feature),就是可以提供自動輸入的功能,最安全的密碼,莫過於連用戶自己也不知道的密碼,密碼管理員通常在桌面或是手機上,都內置自動輸入之功能, 例如LastPass就支援了Chrome 插件,到www.facebook.com就自動會提示用戶可以輸入。用家可以直接命令密碼管理員輸入。不支援Autofill的網站,密碼管理員通常容許簡易複製/貼上功能,也省卻了輸入長密碼的麻煩。

autofill.png

方便在不同用戶之間分享

最後一個密碼管理員的優勢在於支援分享密碼,當須要分享密碼予其他用戶時,只需要輸入其他用戶名,就可以將密碼與其他用家共享。就算密碼之後更改了,其他用戶也隨之存取了最新密碼。

share_password.png

如何開始

如果你覺得本文所談的好處,聽起來好像不錯的話,就可以坐言起行,開始準備!

以下是數個步驟,可以幫助初用密碼管理員的朋友,習慣這種截然不同之密碼管理方法。

1. 選擇一個密碼管理員:不論是離線的Keepass或是網上的LastPass1PasswordDashlane等。不同密碼管理員各有優勢,網上的方便分享;離線則較為安全。有些是付費方案,有些是免費方案。筆者則使用KeepassXC,因為既是開源而且可以離線使用。

2. 在每一個常用的平台安裝:要養成使用密碼管理員,要在所有平時常用的裝置上安裝好密碼管理員,等每一次需要輸入密碼時,都可以信手拈來。

3. 逐一將現有密碼搬運至密碼管理員裏面:這通常是一個漫長的過程,誠如上面所言,現今一個用戶通常有數十個乃至過百個用戶,除了逐一搬運,別無他法。

4. 新帳戶直接使用密碼管理員: 在使用了密碼管理員之後,注冊任何新賬戶都應該利用密碼管理員儲存登入資料。該密碼亦應直接隨機生成,不重用密碼

完成以上幾個步驟之後,你會驚訝地發現以前不同賬戶的密碼,早已經忘記得乾乾淨淨,無需再為密碼而奔波了!

留言

延伸閱讀

平常人都能掌握的Programming 原則

如何對治思維籠統

資訊熵