KeePassXC パスワードマネージャーの利用のお勧め（初期設定編）

# はじめに

パスワードマネージャーを使用して、パスワードの安全な一元管理をしましょうという話。
みなさんはパスワードをどのように管理していますか？ パスワードは全て覚えてる、パスワードは一つだけ、テキスト／エクセルファイルにして保存してある、付箋紙に書いてある、等色々なケースがあると思います。

https://pc.watch.impress.co.jp/docs/news/1527816.html

そこでパスワードマネージャーの登場です。パスワードマネージャーを使用することで、以下のメリットが享受できるようになります。

- 一元管理： どこに置いた、置いてあるの管理が明確になる。
- 忘却の彼方へ： パスワードは忘れて良い。覚える必要は無い。
- 暗号化される： 必要な時しか復号化されないので、盗まれても安全。
- 安全な取り扱い： のぞき見られることもなし、バックアップもしやすい。

ということで、パスワードマネージャーと言われるツール中で独断と偏見により [KeepassXC](https://keepassxc.org/) というツールをここでは紹介します。

## 目標

おざなりにパスワード管理している人に、パスワードマネージャーの導入による、快適で便利な生活をもたらすことを目標にします。
よって過度に使い勝手が悪くなるような設定や運用については、キツく戒めるものとなります。
多少苦労する点がありますが、一度設定してしまえば、あとは楽ができることをお約束します。

なお初期設定が済みましたら、[KeePassXC パスワードマネージャーの利用のお勧め（エントリー作成編）](https://qiita.com/nanorkyo/items/f2f5b1434bb0fee75343)に進んでください。

## なぜ KeepassXC？

うんちくについては後日。

## 本章では

初期設定編として、設定項目とパスワードデータベースの作成まで取り上げます。
次の章ではパスワードエントリーの作成方法、エントリーの運用ポイント、ＳＳＨエージェント連携について別立てする予定です。

## 動作確認環境

Ｗｉｎｄｏｗｓ１１開発環境にてクリーンな環境を用意して動作確認を実施しています。環境により極端な差違は発生しないと思いますが、環境固有の問題が発生する点についてはご理解いただけると助かります。
具体的には例えば、動作確認環境ではＷｉｎｄｏｗｓ Ｈｅｌｌｏは使えないため、その効能（項目の表示）を確認することができません。

- Ｗｉｎｄｏｗｓ１１（エンタープライズ評価版）
- バージョン： 22H2
- ＯＳビルド： 22621.2070
- エクスペリエンス： Windows Feature Experience Pack 1000.22659.1000.0
- 日本語環境の整備およびＷｉｎｄｏｗｓ Ｕｐｄａｔｅのみ実施している。

また KeepassXC 自体は執筆時点の最新である 2.7.5 に基づいて記載しています。

# インストール

基本的に[マイクロソフトストア](https://apps.microsoft.com/store/detail/keepassxc/XP8K2L36VP0QMB)からインストールしましょう。バージョンアップ等のお守りをしてくれるはずです（ほんと？要確認）。一度インストールしたらその状態について気にしなくてよくなります（うっそやろ…）。ここでは特に説明しません。

# 立ち上げ

検索バーで `keepassxc` と入力して、「開く」をクリックしてください。

![start-keepassxc.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321527/01c23d7e-98d9-29a7-95b2-21ea3f5e7ac3.png)

すると下記のようにアプリが立ち上がります。次に「設定」のアイコンを押します。このアイコンはトグルになっていますので、再度押すことで、最初の画面に戻ります。

![startup-keepassxc.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321527/421dc56a-13e3-c90b-6884-8c06cff96533.png)

# 初期設定

以下の大項目があります。それぞれについて、必要と思われるポイントを解説します。

- [全般](#全般)
- [セキュリティ](#セキュリティ)
- [ブラウザー統合](#ブラウザー統合)
- [ＳＳＨエージェント](#ＳＳＨエージェント)
- [ＫｅｙＳｈａｒｅ](#ＫｅｙＳｈａｒｅ)

## 全般

「全般」には二つのタブ、基本設定タブに４つのペインがあります。

![setup-general.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321527/294090c0-a3c3-c9f4-d6e7-5d1df0aed002.png)

- 基本設定
    - [起動](#基本設定タブ起動ペイン)
    - [ファイル管理](#基本設定タブファイル管理ペイン)
    - [エントリー管理](#基本設定タブエントリー管理ペイン)
    - [ユーザーインターフェース](#基本設定タブユーザーインターフェースペイン)
- [自動入力](#自動入力タブ)

### 基本設定タブ（起動ペイン）

特にデフォルトから変更する点はありません。以下の項目についてはチェックが入っていることをオススメします。

- `KeePassXC のインスタンスを一つだけ起動する`
- `システム起動時に KeePassXC を自動的に起動する`
- `起動時に更新を確認する（週一回）`

逆に以下の項目についてはチェックを入れることを推奨しません。

- `ウインドウを最小化して起動する`
- `データベースのロック解除後にウインドウを最小化する`

※どちらのケースでも（一つだけでも）ウインドウを見失うことで、一瞬パニックすることになります。

### 基本設定タブ（ファイル管理ペイン）

こちらもデフォルトから変更する点はありません。
`変更するたびに自動保存する` 点については、誤った修正が反映される等の懸念が発生するかもしれません。が、具体的にどう変更すべきかはここでは取り扱いません。

### 基本設定タブ（エントリー管理ペイン）

こちらもデフォルトから変更する点はありません。

### 基本設定タブ（ユーザーインターフェースペイン）

以下の項目についてはデフォルトから変更（チェックを入れる）しておきましょう。

- `終了せずに最小化する`
- `システムトレイアイコンを表示する`
    - トレイアイコンの種類： `カラフル`
    - `最小化した際にシステムトレイへ格納する`

※終了してしまうとパスワード管理してくれなくなるので、通常は最小化にしておく。
※またシステムトレイにアイコン表示させたままの方が使い勝手が良い。
※本当に終了したい場合は、システムトレイにあるアイコンを右クリックして「終了」をクリックすること。

### 自動入力タブ

以下の項目についてはデフォルトから変更しておきましょう。

- 自動入力開始までの遅延： `250` ミリ秒

いわゆるログイン画面が出て、この時間遅延した後、ＩＤ／パスワードが自動入力されるのですが、デフォルトの５００ミリ秒はちょっと気になる遅さです。早すぎてもダメなのですが、適度にチューニングして使用しましょう。

## セキュリティ

「セキュリティ」には３つのペインがあります。

![setup-security.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321527/dfac4e61-4999-9cf2-a011-db1d2c3290ff.png)

- [タイムアウト](#タイムアウトペイン)
- [利便性](#利便性ペイン)
- [プライバシー](#プライバシーペイン)

### タイムアウトペイン

デフォルトから変更する点はありません。
`未操作の時間が続いたらデータベースをロックする` はセキュリティ意識に高い人には魅力的な機能ではありますが、一般庶民には害にしかならないので設定しないことをオススメします。

スマートフォンで見られるように、必要な時に都度、生体認証するような使い方（その瞬間だけパスワードデータベースが解除される）はできなくもないのですが、いちいちアプリのウインドウが立ち上がってくるなど、使い勝手はよろしくありません。また最小タイムアウト時間は２０秒となりますので、自動入力後にすぐロックされるわけでもありません。

### 利便性ペイン

以下の項目についてはデフォルトから変更しておきましょう。以下の項目にチェックが入っていること。

- `データベースのクイック解除を有効にする（Touch ID / Windows Hello）` ※この表示が無い環境もあります

逆に以下の項目についてはチェックを入れない（外れている）こと。

- `セッションをロックしたりラップトップを閉じた際にデータベースをロックする`
- `ウィンドウを最小化したらデータベースをロックする`
- `パスワードが表示されていても再入力を要求する`
- `編集時にパスワードを非表示にする`

この設定もセキュリティ意識に高い人には魅力的な機能ではありますが、一般庶民には害にしかならないので設定しないこと。
設定して良いのは、データベースのロックを解除する度に、一々マスターパスワードないしはクイック解除する手間を惜しまない、【検閲】な人だけ設定すれば十分です。

### プライバシーペイン
デフォルトから変更する点はありません。アイコン（いわゆるファビコン）のダウンロードに DuckDuckGo 使うまでも無いでしょう。

## ブラウザー統合

「ブラウザー統合」には１つのチェックボックスと２のタブがあります。

![setup-browser.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321527/02309ad5-e3c4-7aa0-d971-cf6bb2e8d4ad.png)

- ブラウザー統合を有効にする
- [全般タブ](#全般タブ)（これらのブラウザーの統合を有効にする）
- [詳細設定](#詳細設定タブ)

まずは `ブラウザー統合を有効にする` にチェック入れます。パスワードマネージャー導入して、ブラウザーでの入力を肩代わりしてくれないというのはもはや犯罪です。

### 全般タブ

「これらのブラウザーの統合を有効にする」にて、使用しているブラウザーに応じて、チェックを入れます。通常であればこの選択に困ることは無いと思います。

このリストに無いマイナーなブラウザに関して言えば、Ｆｉｒｅｆｏｘ系であれば `Firefox and Tor Browser` で良いと思うのですが、Ｃｈｒｏｍｅ系の場合３つの選択肢があるので、それぞれで試してみるしか無いです。なんとなく `Chrome, Vivaldi, and Brave` にしておけば良い気がしますが。

残りのチェックボックスについてはデフォルトから変更する点はありません。

### 詳細設定タブ

デフォルトから変更する点はありません。特に `"KPH: "から始まる拡張された文字フィールドを返す` のチェックを外してはいけません。この機能は非常に有用です。

## ＳＳＨエージェント
「ＳＳＨ」というものについて使ってる人だけが関係あるので、使用していない人は無視してください。また使用していないのに設定しても無意味です。下記のようにエラーが表示されます。

![error-ssh-agent.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321527/71e12950-28e7-73b5-e22d-f47d310617f3.png)

本項目では下記のように表示されます。それぞれの環境に合わせて設定します。

![setup-ssh-agent.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321527/fc1748e6-55cf-4611-dcce-f167a27f0af9.png)

ＳＳＨエージェントとして代表的なＰａｇｅａｎｔとＯｐｅｎＳＳＨに対応しています。ＰｕＴＴＹ／ＷｉｎＳＣＰを使用している場合はＰａｇｅａｎｔ、ＯｐｅｎＳＳＨを使用している場合はＯｐｅｎＳＳＨのエージェントを使用するよう設定してください。
実際の設定の仕方、効能については別立てして説明します。

## ＫｅｙＳｈａｒｅ
こちらは設定というよりも、他にデータを移す、あるいは持ってるための操作をまとめたものとなります。

![setup-keyshare.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321527/95e127c9-bd51-3e86-4d82-79cd03a2d605.png)

特に今回は説明しません。

# パスワードデータベースの作成

ここでは「新しいデータベースを作成する」から解説します。
既に作成済みの場合はスキップしても大丈夫です。また KeePass Password Safe 等からの移行といったケースについては取り上げません。
気をつけるというか、違いについては軽く取り上げようとは思っています。

![create-password-database.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321527/0f70c90e-6ced-a151-0886-a901a82ca5b0.png)

「新しいデータベースを作成する」ボタンを押すと、ウイザード形式で作成を進めます。

- [データベースの全般情報](#データベースの全般情報)
- [暗号化の設定](#暗号化の設定)
- [データベースの資格情報](#データベースの資格情報)
- [ファイル名を付けてファイルを保存](#ファイル名を付けてファイルを保存)

## データベースの全般情報

![create-database-general.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321527/eeaab30e-2017-0231-6a52-3d10eb9585f3.png)

ここではパスワードデータベースについて以下の内容について設定を求められます。

- データベース名
- 概要

データベース名は適度にわかりやすいところを攻めるのが良いのですが、あまりベストプラクティスは無いです。安直に `password` としてしまうのもよろしくないのですが、一つしか運用しないならそれでもいいかな、と思いつつ、自分はＰＣ名＋アカウント名（`laptop-nork`）を設定しています。
概要についてはそのパスワードファイルの用途についてメモしておく程度のものなので、何も書かなくて大丈夫です。

用途別にパスワードファイルを分けたい旨あるかと思いますが、エントリーをとりまとめて、フォルダーという形で分類は可能なので、パスワード管理ポリシーが違う単位（持ち運びたいなど）で分けるなど、大がかりな運用を考えてないのであれば、あまり深く考える必要は無いです。

## 暗号化の設定

![create-database-encrypt.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321527/24eb8082-6a51-a701-36fb-03feb99b79ff.png)

デフォルトから変更する点はありません。デフォルトで十分セキュリティ意識が高い設定となっているため、無理に変えなくても十分です。

## データベースの資格情報

![create-database-master-password.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321527/0de2cab0-d2af-04c5-49f4-2732f7f030af.png)

パスワードデータベースを保護するための、いわゆる「マスターパスワード」となります。このパスワードだけは覚えておかないといけませんが、このパスワードだけ覚えておけば、あとは KeePassXC がパスワードを覚えておいてくれます。
ある意味このパスワードデータベースを保護するための最後の砦となりますので、意識高いパスワードの設定が必要ですが、意識が過剰に高いのも問題なので、ほどほどで設定してください。

なお「保護を追加...」ボタンで、追加ハードウェアが必須になるなど、マスターパスワードへの要求が高くならないよう、工夫することが可能です。

## ファイル名を付けてデータベースを保存

![create-database-save-to-file.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321527/fcba189a-f1a0-accc-8cc2-bcb488c0e886.png)

最後にデータベースファイルの名前と保存する場所を聞いてきます。
デフォルトでＯｎｅＤｒｉｖｅ上に保存するよう誘導されます。これでクラウドバックアップも完璧だね（ホント？）。
なおクラウド同期機能についての KeePassXC 側の見解は、[Why is there no cloud synchronization feature built into KeePassXC?](https://keepassxc.org/docs/#faq-cloudsync)をご覧ください。端的に言えば「共有フォルダーに置いてください。KeePassXC 側では特別なサポートはしません」という立場とのことです。

クラウド上に置かない／置きたくない場合、これもベストプラクティスは難しいですが、自分は `%USERPROFILE%`（`C:\User\ユーザー名`）の直下に置くようにしています。

# よくある事象に関するメモ

KeePassXC 単体ではあまり問題になることはないのですが、ブラウザーとの連携（ブラウザー統合機能）で、両者で振るまいがおかしくなることがあります。

具体的には設定した内容が反映されない、追加した内容が見えないので選択できない、そもそも機能しない（パスワード補完されない）、などです。

機能しないケースは設定が足りないケースもありますが、取り急ぎ、一旦は KeePassXC、ブラウザともに完全に終了させ、その後、KeePassXC、ブラウザの順で起動します。ごくシンプルにＯＳ再起動でもいいです。

直後に試してみてＯＫならいいですが、そうでない場合は何かしら設定が足りないケースがあります。個別には別の機会に説明します。

# よくある質問とその答え

## Ｑ．設定変更したのに反映されません？どうすればいいですか？

Ａ．KeePassXC 的には変更が反映されますが、KeePassXC に連携しているシステム（ブラウザ拡張など）では、その変更が反映されないケースがあります。[よくある事象に関するメモ](#よくある事象に関するメモ)を参考に再立ち上げしてください。

## Ｑ．何か動きが変です。

Ａ．[よくある事象に関するメモ](#よくある事象に関するメモ)を参考に再立ち上げしてください。

## Ｑ．回答が似たり寄ったりなのですが何故？

Ａ．本解説レベルで問題なることはないのですが、ブラウザー連携すると特に問題になるので、真っ先に手順として覚えておいてください。

# 参考文献
- [KeepassXC 公式サイト](https://keepassxc.org)
    - [KeepassXC 公式ダウンロードページ](https://keepassxc.org/download/)
    - [マイクロソフトストアより](ms-windows-store://pdp/?ProductId=XP8K2L36VP0QMB) ※Ｗｉｎｄｏｗｓユーザー推奨
    - [Documentation and FAQ](https://keepassxc.org/docs/)
- [「KeePassXC」の偽アプリ問題が解決 ～「Microsoft Store」で公式バイナリが利用可能に](https://forest.watch.impress.co.jp/docs/news/1445178.html)
- [KeePassXCでパスワードもMFA(TOTP)もssh秘密鍵も管理する方法](https://zenn.dev/paiza/articles/keepass-explained)
- [KeePassXC を TouchID でいつでもロック解除するには](https://qiita.com/mainy/items/76a5658bde96795c6445)
- [KeePassXC で AWS アカウントを便利に運用する](https://qiita.com/kwc_takemori/items/027492b9cea33e364e72)