なんかこんなキャンペーンのバナーを見たことがある方もいらっしゃるかと思いますが、コラムが長すぎて入ってこない刺さらないとかいう話は置いといて、ここではとにかくパスワードマネージャであるKeePassXCのデスクトップ版を使い始めてどういうものなのかを知ることにします。わかる人はこちらを見た方が早いです。
本記事はKeePassXCの使い方などの説明です。本記事に限ってFDL1.3を適用します。
Copyright (c) 2020 Fumiyuki Shimizu
Copyright (c) 2020 Abacus Technologies, Inc..
FDL1.3についはhttps://www.gnu.org/licenses/fdl-1.3.txtをご参照ください。
まず最初にTroy Huntが運用する‘;–have i been pwned?に自分で使っている、使っていたメールアドレスを入力すると、これまでに知られているデータ漏洩リストから流出があったことの確認ができます。あった場合はそのユーザIDとパスワードの組み合わせは結構危険と考えると良いです。ここで表示されなかった場合もどこからも流出が無かったことにはならないので安心せずにパスワードマネージャ使いましょう。
始めます。KeePassXCより
- Windows: msiをダウンロードしてインストールします。
- macOS: dmgをダウンロードしてインストールします。
- GNU/Linux: 各ディストロ向けの指示にしたがいます。
正しくダウンロードできていることの確認が推奨されますが、Windowsならばmsiのデジタル署名、macOSならばdmgのデジタル署名、GNU/Linuxならば各ディストロのOpenPGP等でのパッケージの署名の確認機能が働くことを信じてここでは割愛します。
インストールしたKeePassXCを起動します。
「新しいデータベースを作成する」ボタン
を押します。ここでのデータベースとはパスワード一覧を保管するファイルという程度の意味です。
データベース名を入力するように言われますが、そのまま「続き」
を押します。
暗号化の設定ダイアログが表示されますが、そのまま「続き」
を押します。
パスワードを入力するように言われるので、これを機に今までどこでも使ったことがないパスワードを考えて2回同じものを入力
して、終了ボタンを押します。
ファイル名を付けてデータベースを保存するように言われるので、覚えられるフォルダに
保存します。
ここから横線で囲まれた部分の作業はwebブラウザの拡張機能のインストールに慣れている方で自動入力機能を使いたい方だけ行ってください。なおブラウザの拡張機能が攻略される場合もあります。
ツール -> 設定 で表示される ブラウザ統合 をクリックして、ブラウザ統合を有効にする にチェックを付けて、お使いのブラウザにチェックを付けてOKを押します。Edge + KeePassXCの統合は面倒なので使うメリットがあまりないかもしれません。チェックを付けたブラウザを起動してKeePassXC-Browserアドオンを追加しておきます。なおスマホのアプリ版には専用のキーボードを選択して入力するようなものがあります。
上でwebブラウザの拡張機能をインストールされた方のみ、右上にKeePassXCアイコンに×が付いたものが表示されるのでそのアイコンをクリックして「接続」
をクリックすると、KeePassXCからIDを付けるように
言われるので、ブラウザの名前とそのPCの名前とパスワードデータベースの用途でもつなげて(例:chrome-foopc-barpw)入力して許可します。なお接続ボタンが出ないとか、エラーとか表示される場合はKeePassXCが起動していてエントリを見ることができる状態であることを確認し、アイコンをクリックして「設定」「接続済みデータベース」とクリックしてから「接続」ボタンを押してみてください。それでも接続できない場合は今回はパスワードマネージャを使うことの方が主な目的で、単に自動入力されないというだけの話なのでそこで頑張らずに拡張機能をアンインストールして、上のブラウザ統合の設定画面から該当のブラウザのチェックを外してさくっと自動入力をあきらめてください。
早速使ってみます。ブラウザを起動し、ここでは例としてGoogleアカウントの作成をします。アカウントの作成
をクリックすると
のような画面になるのでユーザ名を決定し、同時にKeePassXC側で新規エントリを作成ボタン
を押して、新規エントリを作成してタイトルと、先ほど決定したユーザ名を入力します。そしてここがパスワードマネージャを使う最大の理由となりますが、パスワード確認の右端にある「パスワードの生成切替」ボタン
を押します。そして「半角英字、数字、記号を組み合わせて 8 文字以上で入力してください」とのことなので「拡張ASCII」以外をハイライトさせて文字数に100を入力して「再生成」ボタンを押してから「適用」ボタン
を押して、OKを押してエントリを作成します。そして出来上がったエントリを右クリックして「パスワードをコピー」を選択するとパスワードがクリップボードにコピーされるので、Googleアカウント側に2回ペーストして続行し、あとは言われるがままに進行して完了させます。完了後はURLをエントリに設定するため「エントリの編集ボタン」を押した後にURL欄を
埋めます。以降はエントリの右クリックで「ユーザ名をコピー」や「パスワードをコピー」を使ってログインできるはずです。
ブラウザの拡張機能をインストールした方は、エントリを右クリックして「URLを開く」を実行するか、エントリとマッチしたURLにアクセスしてログインを要求している場合には、エントリと結びつけるかどうかの問い合わせダイアログが出るようになり、結びつけると、各入力欄でKeePassXCアイコンをクリックするだけで内容が埋まるようになります。
同様の手順でこれまで記憶に頼ってきたパスワードを、エントリを追加して自動で生成させたパスワードに更新していきます。ここまでの手順でできたパスワードデータベースは、他の人がアクセスできない場所にバックアップをするようにしておくことをお勧めします。
なおGoogleアカウントでは100文字を選択しましたが、30文字が最大長だったり記号が使えなかったりとサービスによってパスワードに使える文字や長さは異なります。最悪のパターンが新規アカウント作成や更新時には最大長を明示せずに入力フィールドを受け入れ可能な最大長と同じ長さに制限していて、そしてログイン時には最大長以上のパスワードを受け付けるような困ったサイトで、アカウント作成、更新時には最大長を超えていることに気付かずにログインができなくなります。この場合は再度アカウント作成ページに行ってパスワードの最大長をソースから確認するとかサポートに連絡するとかの不毛な作業が発生します。パスワードの最大長に気を使っていないようなサイトはデータの管理やテストに気を使っていないサイトかもしれないので、入力する情報には注意した方が良いかもしれません。またユーザIDやパスワードコピペを禁止しているサイトもあるかと思いますが、それに意味がないうえにパスワードマネージャを利用するなと言ってるようなものなので、そのサイトの利用も考えた方がよろしいかと思います。
次回はファイルシステムの暗号化、フォルダの暗号化、ファイルの暗号化や、パスワードデータベースの保護の追加をして、パスワードデータベースを安全に保管、複数デバイスで共有する方法を検証していこうと思います。保護の追加をするまでは、パスワードデータベースをDropboxなどで共有するのはやめておくのが無難かと思います。
今この場では何言ってるのかわからなくて大丈夫ですが、KeePassXCをさらに安全に使い、
- Something you have
- Something you know
- Something you are
- Somewhere you are
といった要素のうち複数要素での認証(多要素認証)を使う、現状の主要サービスは1要素目にSomething you knowであるユーザIDとパスワード、2要素目にSomething you haveであり鍵ペアを使ったchallenge responseで確認するFIDO U2F、2要素目のバックアップにSomething you haveとSomething you knowの間のようなユーザ固有の値(secret)と時間で確認するTOTPを使うのが一番ましになりそうなサービスが多いのでその状態にまで持っていく説明が最終的にできればと思います。