為什麼今天就該開始使用密碼管理器

Huang-I Yang
14 min readMar 5, 2019

想想看,自己一天會輸入多少組不同的密碼?

我相信有一部份的人會說一組,因為大部分都一樣阿。而另外一群人則會是說零組,因為瀏覽器或是 App 都已經設定好自動登入了,根本不用輸入。

Photo by Microsiervos (CC By 2.0) https://www.flickr.com/photos/microsiervos/34102380722/

活在生活高度 App 化的台灣,一個月下來累積不重複登入的服務應該都是可以超過 20 個。請問如果每一組都是不同的密碼我們能都記得起來嗎?

我相信答案當然是否定的,因為連我這種對於密碼都有潔癖的人都無法記住我全部的常用密碼了。更不用說可能只有在被系統強制登出或是換新設備才需要輸入密碼的大多數使用者了。

這時候就會有一般常見相對不安全且不恰當的管理密碼方法:

  • 瀏覽器的記憶密碼 (例:Chrome、Firefox、Safari 網頁密碼管理)
  • 桌面上的虛擬便利貼
  • 硬碟/雲端空間的未加密文字密碼檔
  • 桌上的實體筆記本
  • 螢幕框的實體便利貼
  • 鍵盤下的小紙條

上述的最大問題都是密碼無法安全的用加密方式儲存,尤其當電腦或是存放的空間容易被人拜訪、經過或是使用時,往往都會再不小心的狀況下被看見密碼。像是電腦臨時的借人使用,預設的瀏覽器記憶密碼就直接自動完成輸入了、貼在螢幕上的便利貼密碼就這樣被同事看到了、放在桌上的筆記本就被風吹開了。總之有各種千奇百怪的方式可以被不小心或是故意的看到。

Photo by ChatWithMatt.com ( CC By NC 2.0) https://www.flickr.com/photos/70250333@N06/6379693655

上面講了一堆容易有問題的密碼管理方式,這時候就用相對白話的方式來說說密碼管理器通用的好處了。

  • 大多數都支援跨平台 — 現在大家各種裝置都有,從電腦、手機、平版且系統可能都還不一樣,目前絕對多數的都有提供跨平台解決方案,所以不用擔心密碼存在 A 設備上卻不能在 B 設備查詢
  • 密碼都經過加密儲存 — 當密碼被集中存放時,最擔心的就是被其他人存取,所以主流的密碼管理器都是用足夠安全 (例:AES 256) 的加密方式來處理,只有持有正確密碼的人才能解開
  • 使用者只需要記憶一組主要密碼 —就運作邏輯是使用者把所有的各種密碼存在一個地方,然後用主要密碼做加密。這樣優勢是使用者只需要自己紀錄自己那一組最重要的密碼,剩下的就可以登入密碼管理器做查詢
  • 內建密碼產生器 — 因為我們腦袋腦袋有時候就是想不出來足夠複雜的密碼,所以讓系統依照條件產生足夠安全的密碼我覺得也是不錯的方法

以上是絕大部分密碼管理器都有的功能,至於下面說的則是部分品牌的獨家/通用特色,然後因為很值得提到所以我也介紹一下。

  • 瀏覽器外掛 — 這在主流密碼管理器都是有的,然後它的特色是在輸入主要密碼後會偵測你現在登入哪一個網站然後帶入過去已經儲存過的帳號密碼。這樣的優勢是如果今天遇到釣魚網站,系統因為網域不同就不會自動帶入,這時候就可以避免密碼被掉走。然後這比瀏覽器自帶的好處是因為現在很多網站服務都是有提供 App 的,所以如果存在瀏覽器上,當今天要在手機 App 上登入時只能自己手動去找出密碼,而密碼管理器如果有手機版也就可以直接帶入而不需要手動輸入。

下面這案例應該算是近期超經典的釣魚手法,就當大多數人都有意識跳出來的視窗要注意看網址有沒有異常時,這釣魚是自己做出一個彈跳出新視窗的動畫,所以實際上根本沒有新視窗而是在原本頁面畫一個假的視窗出來。這時候如果沒發現到是假的視窗就乖乖輸入密碼就會中獎,而如果是使用密碼管理器則會因為所登入的網址不同,所以不會自動輸入這樣就可以避免一次可能被釣魚走自己密碼的可能。

  • 多人共用密碼管理 — 密碼不要共用應該會是我說到爛的鐵律,但現實世界總是沒有這麼美好。像是如果一個團隊要管理 Twitter 帳號時,過去的作法會是一個一個告知密碼或是比較常見的寫在某個/多個共用文件內。但如果有人離職或是因故需要換密碼時,這時候不是再次一個一個通知不然就是把記得有寫密碼的文件都改過一次,然後如果有人在自己瀏覽器記憶了舊密碼,還很有可能會因為輸入次數過多而被鎖定帳戶。這時候如果是搭配有團隊功能的密碼管理器(例:LastPass 或是 1Password),管理員就可以直接更新大家共用的那組密碼且把離職人員踢除。這樣每位現有使用者連通知都不需要也不會發現任何改變,因為它們還是只要輸入自己那組主要密碼,剩下密碼管理器就會幫忙填入管理員更新過的密碼。
  • 旅遊模式 — 大家或多或少在出國時都有被其他國家的執法人員做過搜身,然後部分國家甚至會要求把手機解鎖讓他們檢查。過去對於個人資料比較敏感的人可能是把不想被看的 App 與資料都事先刪除,通常這時候就會包含密碼管理器。所以 1Password 就很天才的想到了,你先在網頁版開啟 Travel Mode,在開啟的當下只要是登入該帳戶且有連網的設備都會自動把所有儲存的帳號密碼與資料都刪除。然後因為最主要登入 1Password 的密碼是存在自己的腦袋裡,所以就算手機整台被資料對拷或是種種的方式都無法取得到密碼。然後等入境後,只要再回到網頁上把 Travel Mode 關閉這樣密碼就又會自己全部回來了。這樣就可以減少過去要把 App 刪除然後事後還要自己手動裝回來與同步等等的麻煩了

這邊來解釋一下常見的密碼管理器的密碼儲存方式

  • 存放在服務商的雲端上
  • 存放在自己本地空間(通常還可以搭配 Dropbox 或是 iCloud 等服務)
  • 存放在自行架設的 Server 上

直接存放在服務商的雲端上當然是最簡單的,就只要設定好帳號密碼與付月費即可使用。但相對的風險就是服務商的雲就像是一個黑盒子,沒有人知道到底他有沒有照他宣稱的管理(例:加密方式、有沒有因應政府開後門等等等的問題),而且這種密碼管理器的雲往往都是攻擊者的頭號目標,因為只要打下來且破解的了加密,就可以取得全世界一大堆人真實服務的帳號密碼、所存的信用卡卡號、個資等等超極有價值的資料。所以選擇服務商的雲就是成本最低也最容易入門,但風險就是看自己能不能承擔。

而存放在自己本地端空間則是需要自己妥善保管好檔案,因為全部的密碼就是在那檔案或是資料夾內。如果因為手殘誤刪、硬碟壞掉等等意外且又沒有預先備份,那就是跟自己所有的密碼說再見。目前比較好的設計是可以跟第三方的雲端服務做整合與同步,這樣就因為有同步一份上雲端就算本地端不見了還是可以從雲端拉回來,且也可以方便跨裝置的同步。我知道這時候肯定有人會問那就一開始上服務商的雲就好,何必要多繞一步。最大的差異在於服務商的雲第三方的雲確實都會被攻擊,但一個是針對性的就是要密碼,另外一個則是就算攻擊下來,他會得到你的一大堆檔案然後其中包含了確定有加密的密碼檔,然後他還要特別願意再花時間去分析與破解。所以攻擊的成本與目標相對不同,因此雖然都是上雲,但安全性還是有差距的。當然如果選擇不上雲,自己手動在區網或是透過其他儲存媒介來傳輸肯定是更安全的選擇,但這就是犧牲了更多的便利性。

至於成本最高的則是自行建設 Server,這通常都是給想上雲但又只相信自己且具有技術與維護能力的人。因為自行架設 Server 最安全的點就是別人要先知到你有這台 Server 才能開始攻擊,但缺點就是如果自己沒有定時更新與維護,在有公開漏洞時就很容易成為目標。當然有很多種方法可以讓自架變安全,像是只放在內網然後每次要用才 VPN 連線進來使用。我想當有這技術能力與考量時,就很感謝還願意看我這入門的文章了 XD

然後上面貼的各家被黑的新聞,只是提醒說每種選擇都有成本,請自己評估

常見密碼管理器介紹:

1Password

  • 支援平台:macOS、iOS、Android、Windows、Linux、ChromeOS、CLI、Chrome、Firefox、Safari、Opera、Edge
  • 授權方式:商業軟體
  • 費用:訂閱(2.99 USD/ month)、買斷( 64.99 USD for macOS)
  • 儲存方式:1Password 公有雲、iCloud、Dropbox、本機硬碟
  • 特色:支援平台相當廣泛,且同時支援公有雲、私有雲、本地儲存,只是像是團隊功能與旅行模式都只支援將檔案存在公有雲的狀態下。使用私有雲與本機硬碟那就只能使用基本功能(瀏覽器外掛當然是可以用的)
Photo By 1Password

LastPass

  • 支援平台:macOS、iOS、Android、Windows、Linux、Windows RT、Chrome、Firefox、Safari、Opera、Edge、Internet Explorer
  • 授權方式:商業軟體
  • 費用:免費功能限制版、訂閱版(3 USD/ month)
  • 儲存方式:LastPass 公有雲
  • 特色:付費用戶很常會有新功能,像是支援 Yubikey 與各式 2FA 驗證,然後使用上因為就只有單一的儲存方式,所以介面對於新手相對於 1Password 友善非常多。
Photo by LastPass

KeePass

  • 支援平台:僅 Windows 為官方版本,剩下 iOS、Android、Linux、macOS、J2ME、Web、Windows Phone、BlackBerry、Chrome OS 都為社群第三方開發
  • 授權方式:GPL,目前持續維護中
  • 費用:免費
  • 儲存方式:本地儲存,可以搭配 Amazon S3、Dropbox 等第三方公有雲
  • 特色:夠老牌且支援度夠高的開源密碼管理器,且有不少中文相關資訊

LessPass

  • 支援平台:
  • 授權方式:GPL,目前持續維護中
  • 費用:免費
  • 儲存方式:即時運算、LessPass 公有雲、自架 Server
  • 特色:透過輸入主要密碼即時產生出隨機密碼,這樣就可以免除需要同步的問題,然後對於真的需要把密碼存起來的情況,可以選擇使用他們的公有雲或是自己架設 Server 來儲存。

此外,不少強者我朋友也都推薦了 Bitwarden 這套開源的密碼管理器軟體,他的優點也是可以自行架設 Server 然後付費版還支援 Yubikey 這類的硬體 2FA 驗證,也推薦給需要的人。

同場加映,如果建立安全的密碼!

當開始是用密碼管理器後,就請把過去那種一組密碼用到底的習慣給改了,因為有人(軟體)可以幫你記憶密碼了,請每個服務都用不同密碼吧!

然後這邊再次提醒,密碼的長度比複雜度還來的重要很多。

密碼長度比複雜度重要,寧可好記但長也不要很複雜但是短!

密碼長度比複雜度重要,寧可好記但長也不要很複雜但是短!

密碼長度比複雜度重要,寧可好記但長也不要很複雜但是短!

這邊可以看個很真實的小漫畫

圖片來源 https://xkcd.com/936/

現行常見的破解密碼都是用字典檔或是暴力運算,所以如果密碼太短在一碼一碼暴力測試的時候很容易被算出來,至於不要單純只用常見單字的原因是因為攻擊者都已經會去蒐集常用單字與目前外洩出來的密碼當素材來測試。

所以當密碼只要曾經有在任一個網站被外洩,就會建議這密碼就可以直接廢棄永遠不要再用。因為很有可能已經被收錄在攻擊者的字典檔內了。

下面這個是列出歷年常見的密碼,如果有密碼在上面,拜託趕快去更新

而這是 Mozilla 整合了 Have I Been Pwned的查詢服務,用來查詢自己的密碼有沒有曾經外洩的紀錄,然後他是輸入 Email 後在經過部分去識別化後做比對,而且這服務是由 Mozilla 來掛保證相對安全,可以放心使用。

Google 在自家的帳戶安全頁面也講了各種有效的密碼產生方式

我最推薦的就是把部分的英文字換成阿拉伯數字與把一句話給簡寫,因為這樣最好很記憶且又很難被破解與跟其他人重複

像是把 Password 換成 P@ssw0rD 或是把 Function 換成 Funct10n 等等的都是一種不錯的好記憶但又有點特殊的方式

然後還有一招是自己有一組固定的密碼,然後固定在密碼的某一個位數後面加上服務的簡寫或是自己知道的代稱。這樣的好處是就算其中一組密碼被盜,也無法被拿去其他服務用,而且這樣也算是有規則好記憶的方式

最後,就是希望大家都可以找到屬於自己安全的方式存放密碼吧 XD

如果真的沒有想法就拿密碼管理器產生的密碼來用也很棒喔!

--

--

Huang-I Yang

Hi, I’m Henry. Mozillian, NISRA, CPRTeam. Personal Tags: Information Security, Fintech, Mobile.