KeePass

KeePass  は、フリーかつオープンソースのパスワードマネージャーである。主なターゲットはWindowsだが、バージョン2.x以降ではMonoによってLinuxやmacOSにも対応している。また、様々なプラットフォームに移植されている。

1. 概要
-----

KeePassはユーザー名やパスワード、自由形式のメモや添付ファイルを含むフィールドを暗号化されたデータベースファイルに保存する。このファイルはマスターパスワード・キーファイル・Windowsのユーザーアカウントの何れかまたは組み合わせによって暗号化することができる。デフォルトでは、このファイルはクラウドストレージではなく、ローカルのファイルシステムに保存される。

KeePassは多くのプラグインに対応している。KeePassはランダム・パスワード・ジェネレーターや同期機能を持ち、二要素認証に対応し、セキュアデスクトップモードを持っている。セキュアデスクトップモードでは、キーロガーからの保護のために2系統の難読化機能付きの自動入力を使用することができる。KeePassは30以上の一般的なパスワードマネージャーからインポートすることができる。

2017年のコンシューマー・レポートの記事では、KeePassが1Password・Dashlane・LastPassと並んで最も広く使用されているパスワードマネージャーの1つであり、ギークの間で人気があり、自由でないライバルのパスワードマネージャーと同レベルのセキュリティを提供しているが、それらよりインストールをすることが困難であるとしている。

2. 機能 
------

2.1. パスワード管理
------------

KeePassによって保存されたパスワードは、管理可能なグループに分けることができる。各グループは識別するためのアイコンを付けることができる。各グループはサブグループに分けることができる。

KeePassはパスワードの作成日時・変更日時・最終アクセス日時・有効期限を追跡する。パスワードにファイルを添付して保存することや、メモを入力することができる。パスワードの各レコードにはアイコンを付けることができる。

2.2. インポートとエクスポート
-----------------

KeePassはデフォルトでは暗号化されたデータベースファイル  にパスワードを保存するが、テキストファイル・HTML・XML・CSVなどの形式にエクスポートすることができる。XML形式の出力は他のアプリケーションで使用したりプラグインによってKeePassに再インポートすることができる。CSV形式の出力は、市販のプロプライエタリなパスワードマネージャーと互換性がある。また、Microsoft ExcelやOpenOffice.org Calc/LibreOffice Calcなどの表計算ソフトでインポートすることができ、これらのアプリケーションでエクスポートしたCSVファイルをKeePassにインポートすることができる。KeePassは市販のプロプライエタリなパスワードマネージャーであるCodeWalletProや、ブルース・シュナイアーのPassword Safe バージョン2.xのテキスト形式の出力をインポートすることができる。

KeePassがインポートとエクスポート可能なファイルフォーマットは、プラグインによって拡張することができる。

2.3. マルチユーザーサポート
----------------

KeePassは複数のコンピュータによる共有パスワードファイルへの同時接続と同時変更をサポートしている。ただし、グループごとまたはエントリーごとの接続については提供されていない。2014年5月時点ではこれに対応するためのプラグインは存在しないが、KeePassと互換性があり、この機能が提供されているプロプライエタリなパスワードサーバであるPleasant Password Serverが存在する。

2.4. 自動入力
---------

KeePassは自身を最小化し、選択中のエントリーのパスワードなどの情報をダイアログや入力フォームに入力することができる。KeePassには自動入力をするためのグローバルショートカットキーがある。KeePassがデータベースが開かれた状態でバックグラウンドで実行されているときにユーザーがショートカットキーを押すと、適切なエントリを検索して自動的に情報が入力される。エントリーの各フィールドは他のウィンドウにドラッグ・アンド・ドロップすることができる。

Windowsのクリップボードでは、任意のフィールドをダブルクリックすることで、その値をクリップボードにコピーすることができる。ユーザーがパスワードをペーストしてから一定時間が経過した後、KeePassはクリップボードの内容を自動的に消去することができる。KeePassはクリップボードモニターに対する保護機能がある。

ペーストを一度だけ許可し、ペースト後に自動的にクリップボードの内容を消去する機能があったが、バージョン2.xには適合せず、効果が不十分だったので削除された。

2.5. ブラウザサポート
-------------

自動入力機能は全てのウィンドウで動作するので、全てのウェブブラウザで機能する。KeeForm拡張機能によって、ユーザーはFirefoxやGoogle Chromeを使用しているときに、パスワードなどの情報を自動的に入力することができる。

2.6. パスワード生成機能
--------------

KeePassにはランダムなパスワードを生成する機能が内蔵されており、ランダム・シードにユーザーの入力を利用することができる。

2.7. プラグイン
----------

KeePassにはプラグインアーキテクチャがあり、様々なプラグインがある。プラグインはKeePass本体とは別の開発者によって書かれており、KeePassのデータベースへのフルアクセス権を持っているので、セキュリティ上の問題になる可能性があることに注意する必要がある。

3. 暗号化
------

3.1. 実行中のセキュリティ
---------------

KeePassの開発者曰く、KeePassはセキュリティが強化されたパスワード編集コントロールを使用する最初のパスワード管理ユーティリティの1つであり、この場合は//CSecureEditEx//と呼ばれている。開発者はコントロールのセキュリティとパスワードを流出させるユーティリティに対する耐性に関する幾つかの主張をしているが、そのセキュリティを裏付けるための、第三者によるテストについては言及していない。

KeePassの実行中、パスワードはメモリ内で保護されている。Windows Vista以降では、パスワードはDPAPIを使用してプロセスメモリ内で暗号化される。これによって、メモリ保護のためのキーを安全でスワップできないメモリ領域に格納することができる。Windows Vistaよりも前のバージョンでは、KeePassは一時的なランダムセッションキーを利用したRC4暗号に依存していた。

3.2. オフラインセキュリティ
----------------

データベースへのアクセスは、マスターパスワード・キーファイル・Windowsのユーザーアカウントの何れかまたは組み合わせによって制限される。KeePassはAESまたはTwofishを使用してデータベースを暗号化する。kdbxデータベースは認証付きでないCBC/PKCS7モードのAESで暗号化されており、暗号文の整合性の保護はSHA-2ハッシュのみによるものなので、典型的なファイルの破損を捉える可能性はあるが、悪意のある改竄を防ぐことはできない。AESはデフォルトで利用可能であり、Twofishはバージョン1.xでは利用できるが、バージョン2.xでは利用することができない。しかし、プラグインによってバージョン2.xでもTwofishを利用することができる。バージョン2.35以降はChaCha20暗号を利用することができる。

4. 脚注
-----

5. 関連項目
-------

KeePassX - KeePass バージョン1.xのクロスプラットフォーム化を目的として開発が開始され、C++とQt 5によって書かれている
KeePassXC - コミュニティによってKeePassXからフォークされた

6. 外部リンク
--------