ID・パスワードなどを暗号化して一元管理できるオープンソースのパスワードマネージャー『KeePass(キーパス)』の設定備忘録記事です。
各種サービスのユーザーID・パスワードの管理を「自分の目の届くところでやりつつ効率化する」ために、KeePassを使って各デバイス間での情報を同期しやすくしてみました。
KeePassについて
『KeePass』は、各種のID・パスワードを暗号化したデータベースにまとめて一元管理できるパスワードマネージャーソフト。
- パスワード管理機能
- ジャンルに応じた自由なグループ分け(サブグループも作成可)
- 各エントリーの作成・変更・アクセス日時の記録
- 添付ファイル・メモの入力
- インポート・エクスポート機能
- KeePass独自形式以外にも「text、html、xml、csv」の入出力可
- プラグインによる拡張も可能
- 入力支援機能
- 一発で全部入力してくれる自動入力
- ショートカットで簡単コピペ
- KeePassのウィンドウからドラッグ&ドロップ
- パスワード生成機能
- 安全性の高いパスワードを生成してくれる機能を内蔵
フリーソフト&オープンソースで開発が進められていて、Windows・MacOS・Linux・Androidなど幅広いOSで利用できる。
暗号化したデータベースにまとめてID・パスワードを保存しておいて、あとはそのデータベース用のマスターパスワードさえ覚えておけばOKってやつです。
使い方の方向性
セキュリティ関連の設定は、突き詰めると底なし!ということで、今回の設定の着地点は以下のようなスタイルとなる。
- 環境はWindowsPC、Androidのスマホ・タブレット
- 個人利用
- データベースの同期は自動化しない
- データベースはクラウドストレージ・SDメモリなどで手動同期&バックアップ
- データベースの暗号化はマスターパスワード&キーファイル
- データベースとキーファイルはデバイスのローカルに保存(バックアップも別途保存)
「手動でめんどうな部分はあるけれど、なるべく自分の目の届く範囲でやる」がコンセプト。
Firefoxの同期機能『Fiefox Sync(ID・パスも同期できる)』や、Googleアカウント(Android/Chrome)を用いたオンラインでのパスワード自動保存/同期は使わない(ローカルでは保存して利用する)。
KeePassデータベースの自動同期は、通信回線や同期のタイミングによる不具合などがあると面倒くさいので使わない。
データベースとキーファイルは、デバイスのローカルに一緒に保存。デバイスへの侵入や盗難・紛失した場合のリスクは高まるけど妥協。キーファイル利用は、データベースを同期する際のリスク軽減がメイン。
各種設定
- 1ソフト・アプリの入手バックアップ用のストレージも
- 2データベースのマスターキー作成キーファイルも同時に作成
- 3データベースのセキュリティ設定
- 4データベースにID・パスをインポート
- 5各デバイスにデータベースとキーファイルをコピー
- 6同期・バックアップ用のデーターベースを保存キーファイルもバックアップ用に別途保存
準備/使用するもの
- Windows版のKeePassソフト
- Android版のKeePassアプリ
- 『KeePass2Android』を使用
- バックアップ用のストレージ
- microSDメモリ/USBメモリ/クラウドストレージなど
Windows用ソフト
翻訳ファイル
Android用のKeePassアプリ
KeePass公式のダウンロードページ下部にも各種デバイス/OS用のソフト・アプリへのリンクがあります。
データベースの作成
ソフトをダウンロード・インストールして準備が整ったら、まずはWindows版のKeePassを使ってデータベースを作成。復号マスターキーを設定する。
メニューの「ファイル」→「新規」→「ファイル名を設定」→「複合マスターキーを作成」へと進む。
- マスターパスワード
- 20文字以上あるといいかも
- 大文字・小文字・数字・記号を含むのが望ましい
- キーファイル
- 作成ボタンから簡単に作れる(後述)
キーファイルの作成
キーファイルの作成は、マウスカーソルを適当に動かすか、キーボードで適当に文字を入力して作成する。
マウスで作成する場合は、「生成されたビット」が緑色(256ビット)になるまで、マウスカーソルを動かしてセキュリティ強度を高めると良さそう。
大元のセキュリティとして、データベースファイル(と対応するキーファイル)を一つに統一せず複数に分けて作り、リスクを分散する手もあります。
手間とのトレードオフになるんでしょうなあ。
データベースのセキュリティ設定
データベースを新規作成して複合マスターキーを設定すると、データベースの各種設定に進む。
後から設定を変えたい場合は、メニューの「ファイル」→「データーベースの設定」から変更可。
暗号化アルゴリズム
データベースのセキュリティ項目では、「暗号化」と「変換鍵」を設定。
暗号化アルゴリズムは、「ChaCha20(256ビットの鍵, RFC 7539)」を選択。低スペックのデバイスではAESより処理が高速らしい。
変換鍵
この「変換鍵」項目では、「データベースを開く(復号する)際に意図的に追加する負荷」を設定する。
これによって、データーベースの暗号を突破するための不正なアクセス(総当り・辞書・推測攻撃)にも大きな負荷を掛けることになるので、セキュリティ強度を高めることになるらしい。
「使用している1番スペックの低いデバイスでデータベースを保存したり開く時に掛かる時間」を目安に設定すると、普段の利用に支障が出にくいと思う。待ち時間が長すぎるとストレス溜まりそう。
負荷の大きさは、主に「反復回数」「メモリ」がポイントになる模様。
実際の待ち時間は、例えば『Amazon Fire7 2019年版(CPU:1.3GHz/4コア、RAM:1GB)』だと、ざっくり以下のようになった。
反復回数 | メモリ | 並列処理 | 時間 |
---|---|---|---|
10 | 8MB | 2 | 0.5秒 |
20 | 0.5秒 | ||
30 | 2秒 | ||
40 | 2.5秒 | ||
10 | 16MB | 1秒 | |
20 | 2.5秒 | ||
30 | 3秒 | ||
40 | 4秒 |
Fire7よりも高スペックなPCやスマホだと、体感上は分からないくらいに”パッ”と開くのでストレスは小さい。
最終的に「2.5秒くらいなら待ち時間あってもいいかな」ということで、[反復回数:40、メモリ:8MB、並列度:2]にしてみた(この設定は後からでも変更可能)。
ID・パスのインポート
ブラウザのエクスポート機能・その他パスワードマネージャーから出力したファイルからID・パスワードをインポートできる。
メニューの「ファイル」→「インポート」から、書式とファイルを選択すればOK。エントリー(各IDとパスワード)は手動でも追加・編集できる。
複数のブラウザやパスワードマネージャーのファイルからインポートした場合はデータベースツールが役に立つ。
メニューの「ツール」→「データベースツール」で、「データベースの保守」「重複エントリー/空のグループの削除」などが可能。
各ファイルをデバイスに保存
データベース関連の設定が終わったら、作成したデータベースファイルとキーファイルを各デバイスやバックアップ用のストレージに保存する。
同期・バックアップ用
データベースの情報を更新した際の同期の効率化(あくまでも手動だけど)には、メインにOneDriveの「個人用 Vault」、サブにmicroSDカードやUSBメモリを使用。
「個人用 Vault」は、OneDriveで利用できる別途2段階認証が必要になるセキュリティ機能。他のフォルダと違い、通常の認証に加えて、追加で2段階認証を行わないとアクセスできないので安全性が高い。
GoogleDriveやDropboxなど、他のクラウドストレージ(オンラインストレージ)も便利ですね。
バックアップ用
microSDカードやUSBメモリにバックアップしておくデータベースとキーファイルは、それぞれ別のメモリ(個体)に分けて保存しておく。
どちらか一方に侵入(紛失・盗難)されても、片方だけならそうそう突破されないはず。
新しいIDやパスを登録した際は、その最新データベースファイルをコピーして手動で同期・更新します。
まとめ
様々なサービスのIDやパスワードの管理は本当に面倒くさいです。
しかし、どこか(GoogleなりFirefox)に管理を丸投げしてしまうと、それはそれで怖いし、問題(漏洩)が発生した時にも後悔が大きいような気がします。
また、それらのサービスにアカウントを不意に停止させられたりする可能生も否定できない(Googleには過去に誤BANされた/復旧済み)というのも重要な点です。過信は禁物!!
トラブルが発生した時になるべく被害が小さくなるように、後悔しないように工夫していきたいところです。