DEV Community

Cover image for KeePass 密碼管理器
Leon
Leon

Posted on • Edited on • Originally published at editor.leonh.space

2

KeePass 密碼管理器

KeePass 是個自由的、開源的、多平台的、較適合個人用的密碼管理器。

密碼管理器

「為什麼要用密碼管理器?」

「和瀏覽器幫我存密碼的功能有什麼不一樣?」

早期最簡單也最不安全,卻也最多人管理密碼的方式,就是隨意貼,現在可能是變成瀏覽器幫我們存的密碼,不論是隨意貼還是瀏覽器存密碼,對需要認真保守密碼的人來說,都不是個好的做法。

隨意貼就不說了,除了隨意貼,另外一種稍微好一點的實體紀錄法是女孩們的小本本,小本本確實有做到保密的功能,但是無法備份,掉了就是永久掉了,除此之外還有抄寫時手誤的可能性,以及使用時無法複製貼上導致的效率低落,怎麼看都不會是個嚴肅的做法。

進階一點的會開檔案存,不論何種格式、有無加密,但都會有紀錄一多就難以管理的問題,必須自己手動做格式規劃與整理,其實這也可以算是一種陽春的、獨立的密碼管理器,對帳密不多的人來說確是個簡單有效的好選擇。

瀏覽器存密碼這塊,自從主流瀏覽器都導入這項功能後,的確解決了大多數人的需求,並且還附帶了可同步的特性,電腦存了手機也可以用,相當便利。這些主流瀏覽器(Safari、Firefox、Chrome、Edge)背後的大公司們看起來也都值得信賴(Google 可能有一點…不過不會賤到拿用戶的密碼作惡)。

不過在某些場景下,瀏覽器存密碼也是無法滿足的,最典型的就是台灣的網銀,台灣的網銀登入時往往需要四個欄位:身份證字號、帳號、密碼、驗證碼,而帳號與密碼兩欄在屬性上又都是密碼型態,也就是網銀的帳號、密碼這兩者實質上都是密碼,這種形式的登入不論是哪個瀏覽器都無法處理的很好,很容易造成瀏覽器誤判,最常見的情況就是記錯欄位或是記不住帳號/密碼兩者其一。最後,瀏覽器的記密碼功能還是過於單純,一律是帳號+密碼的組合,像網銀這種有兩個密碼欄位的登入頁,瀏覽器即便沒記錯,也必定會少記另外一個。

還有另一種狀況,在瀏覽器以外的場景,即瀏覽器使不上力的地方,也是非常需要一個獨立的密碼管理器的,包括一些應用軟體的帳密、遊戲的帳密、遠端登入的帳密、金鑰型的認證等等,隨著這些數位應用越來越多的佔據我們的生活,一個人所擁有的帳密只會越來越多,另外在避免共用帳密的安全顧慮之下,一個獨立的密碼管理器確實是有必要的。

KeePass 安全嗎?

接下來要問的就是「安全嗎?」

我們可以拆三個方面檢視 KeePass 的安全性,加密算法的安全性、開源的安全性、KeePass app 的安全性。

加密算法的安全性

我們在 KeePass app 內建立的每筆密碼都會彙整存在一個 kdbx 格式的檔案內,就好像 Excel 的每筆紀錄都會存在一個 xlsx 檔案內一樣。這個 kdbx 當然是加密的,根據 KeePass 的描述,它們會用 AES-256 或 ChaCha20 或 Twofish 三種加密算法對 kdbx 檔案進行加密,這三種算法也是目前業界公認最安全的算法。

開源的安全性

開源並不等於絕對的安全,但是自 KeePass 從 2004 年至今十六年的開源發展,已經經過相當長時間的考驗,另外 KeePass 開發團隊的每一行程式都詳實紀錄在版控系統內,可供查驗。

另外可以看看 CVE 的紀錄,只有四個漏洞,而且早已修復。

KeePass app 的安全性

前面提過,密碼會被存到 kdbx 的檔案內,並且原生的 KeePass 並不具備雲端同步的機制(只有 FTP 的同步),即便 KeePass 有任何的漏洞,只要別人無法拿到 kdbx 檔案,就無法利用漏洞打開加密的 kdbx。

KeePass 也有拿到一些國家證書證明自己的安全性。

安裝與使用 KeePass

到 KeePass 網站下載安裝後,我們來快轉到使用的部份。

起手式當然是先開新檔案,幫新的 kdbx 找一個安全的目錄並取一個好記的檔名存起來,然後設定 kdbx 檔案的密碼:

KeePass

除了密碼外,在下面的「Key file / provider」還可以指定一個鑰匙檔作為解密之用,密碼和鑰匙檔可以擇一使用或兩者皆用,兩者皆用的話這個 kdbx 檔案被開啟時就必須輸入密碼和鑰匙檔才可完整解密。

設定完 kdbx 的密碼後,下一頁的一些屬性設定可以直接 OK 跳過,然後會到主視窗,點擊某筆密碼或新增一筆密碼會跳出如下的對話框:

KeePass

介面實在是滿簡單的,標題、用戶名稱、密碼、密碼強度提示、網址、備註等幾個欄位,有需要的填寫後即可存檔。在對話框的 Advanced 分頁可以在這筆紀錄內夾附檔,譬如說一些金鑰檔就可以夾帶在這裡。

逐筆把密碼記錄起來後記得要把這個 kdbx 檔案存檔,個人建議是異動一筆就存檔一次。另外未避免記錄時手誤,建議在每筆紀錄確認前先到那筆的網頁去驗證一次。

以上是使用介紹,因為真的滿簡單的,就不多做說明了。

KeePass 不適用的情境

在本文的第一句話說到 KeePass 較適合個人使用,因為相較於組織型的密碼管理系統,KeePass 少了一些功能,可能對於組織的密碼管理幫不上忙,簡單列舉一些:

  • 不能做分層分派,只要能打開 kdbx 的人員皆可看到全部的密碼,無法做分層分派,而往往組織用的密碼管理都是需要分層分派的。
  • 不支援開啟人身份驗證,不論是 KeePass 現有的密碼或鑰匙檔都是屬於對密碼檔的解密驗證,欠缺了對開啟人的身份驗證,這部份往往需要結合作業系統的身份驗證機制,而 KeePass 是沒有這部份的功能的。
  • 不支援更複雜的解密驗證,目前只有密碼與鑰匙檔兩種解密驗證,不支援晶片卡或硬體鑰匙做為解密驗證。
  • 以本機檔案儲存 kdbx 密碼檔,對組織型密碼系統來說,可能需要非本機端的存取架構,也就是每次人員解鎖都是對中央伺服器做驗證,驗證後也都是從中央伺服器下載密碼到記憶體內,而不會在本機儲存實體檔案。

因為以上這些特性的缺乏所以還是比較建議拿 KeePass 來做個人用途較妥。

KeePass 的跨平台兄弟

雖然 KeePass 本身是 Windows app,不過受益於開源的特性,在各個主流平台上都可以見到 KeePass 的兄弟 app 的身影,並且隨著 .net 也逐漸走向開源與跨平台的路線,KeePass 本身也具備跨平台使用的能力,在 KeePass 的下載頁可以看到 KeePass 與其它各個平台的兄弟 app,之所以稱為兄弟 app 是因為那些其它平台的 app 都不是 KeePass 的移植,而是參考 KeePass 與 kdbx 的規格而獨立撰寫的 app,其中各有優勢,唯一可以不用擔心的是我們的 kdbx 都可以在我們用的電腦或手機中使用,不用擔心被一個 app 綁住或是換平台要重建資料的困擾。

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay