2016年6月25日 星期六

[經驗分享]開源密碼管理軟體與多裝置同步方案


現代人各種資訊設備充斥於日常生活,不論是工作上或在私人領域,使用各種系統便有各式各樣的密碼,電子郵件、網路硬碟、線上購物...等等,到處都需要密碼,這怎麼可能全部記住?更何況是有些系統偶爾才用這麼一次,恐怕下次要用時就忘了密碼,甚至連帳號叫什麼也不記得了。





有什麼好方法?


每個人對於密碼記憶都有自己的一套方法,寫在記事本、便條紙...等等。

不過別忘記,既然稱之為密碼,就代表這個鑰匙保護著重要資訊,寫在紙上不就增加外洩的機會了嗎?例如記事本遺忘在咖啡廳、便條紙貼在螢幕旁,呃... 這樣密碼已經不能稱之為密碼了。

因此,開始有「密碼管理軟體」的出現,利用軟體來分門別類保管你的帳號、密碼、網址、備註等資訊,方便查閱,並且把這些資訊再經過加密保存,未來如果忘記了某個網站的密碼,只要記住這套密碼管理軟體的密碼,登入後就可以找回遺忘的資訊。

過往這些軟體都是在電腦上執行,然而現在智慧型手機流行後,對於這類軟體還增加了「跨平台」、「同步」的需求。

因此,目前許多人推薦「1Password」這一套優秀的商業軟體方案。






有開源替代方案嗎?


嚴格來說,沒有。

目前沒有像 1Password 直接提供這麼完整的解決方案,不過開源的好處就是選擇夠多,而且可以靈活搭配、自由運用,採用各種組合來達成需求。

以下提供我個人的使用經驗,與各位分享。



各作業系統對應方案


開源世界中,有一套「KeePass」方案,以 C#/.NET 開發,採用了 AES 進行加密,還可以搭配 KeyFile 的方式來加強安全性。

正因為 KeePass 是開源方案,所以才能在各種平台上開枝散葉。


Windows 使用「KeePass


MacOSX、Linux 使用「KeePassX


Android 使用「KeePassDroid


iOS 使用「MiniKeePass




各裝置資料同步方案


上面提到各種作業系統的對應方案,但卻是各自為政,所有資料只在本機儲存,這樣根本沒有解決問題。


幸好,現在各種網路資料夾同步化方案非常齊全,不論採用雲端方案或者自建 NAS 系統都不是問題,例如我用過的方案如下:
  1. Dropbox (公有雲)
  2. Synology CloudStation (私有雲)

各裝置安裝並設定好相對應方案的同步程式,再將 KeePass 所用的資料庫檔案(.kdb)放到同步資料夾,只要一方有異動就會自動上載到雲端,其它裝置則會觸發同步機制保持最新版本,即可變相達到帳號密碼資料庫跨裝置同步的效果。

示意圖我繪製如下:


要特別注意的是,由於採用檔案等級的同步,因此要儘量避免兩個以上的裝置同時開啟 .kdb 編輯與存檔,以免同步後資料遺失。

當然,除了上述提到的兩個同步方案,還有 ownCloud 或 NextCloud 也是值得一試的開源網路同步解決方案。

[2019/03/11 補充]

在 Andorid 裝置上,我已經改用 Keepass2Android