本記事のゴール
利用する Web サービスが増え、パスワード管理は悩みのタネになっているかと思います。根性で記憶するのは限界があるしリスクもあるし、使い回しもリスクがあるし・・。そんなときに活躍するのが、パスワードマネージャーです。パスワードを保管してくれるだけでなく、自動入力機能や、自動生成機能もあり、便利です。
本記事ではパスワードマネージャーを紹介しつつ、パスワードマネージャー導入手順についてもご紹介します。また、その後に背景としてのパスワード管理の課題や、必要なパスワード強度についてもご紹介できればと思います。
パスワードマネージャーでできること
概要
パスワードマネージャーを導入するとできるようになることといえば、主には下記の 4 つかな、と思います。
- アカウント・パスワードの一元管理
- セキュリティ (パスワード強度) の強化、パスワードの自動生成
- アカウント・パスワードの自動入力
以下、それぞれ解説していきたいと思います。
アカウント・パスワードの一元管理
あるショッピングサイトに行ったときに、このサイトのアカウント持ってたっけかな、どうだけっかな、ってなることありませんでしょうか。また、忘れたからアカウント作成しようとすると、既に登録されていますのエラー、なのでログインしようとすると今度はパスワード誤りのエラー・・ということはあることかな、と思います。パスワードマネージャーを導入すれば、パスワードマネージャーがそのサイトのパスワード情報を持っているか表示してくれるので、その心配はございません。
また、サービスによっては、アカウント、ログイン ID がサービス提供者側で指定された、あるいはパスワードも含めてサービス提供者側で指定された経験はございませんでしょうか。さらにはケースによっては指定されたアカウント・パスワードが紙で郵送されてきており、その紙を紛失した、またパスワード再発行には電話連絡が必要・・のような経験をしたことがありました。このようなケースでも、パスワードマネージャーを導入していれば、サービス提供者側からアカウント・パスワードが通知されたタイミングでパスワードマネージャーに登録すれば、アカウント・パスワードの紛失リスクはなくなります。
セキュリティ (パスワード強度) の強化、パスワードの自動生成
パスワードマネージャーで生成したランダム文字列の方が、同じ長さでも人力で作ったパスワードよりパスワード強度 (パスワードのセキュリティ観点での強さ) が強く、さらにより長くできます。前者は人力で記憶しているパスワードが何らかの意味に紐付いている可能性が高いためで、後者は人には記憶容量の限界があるためです。なお、こちらによると、最低でも12文字のランダム文字列にすべし、ということですが、12文字未満のパスワードを使ったり、またランダムとは程遠い意味のある文字列にセット去れているケースが多く、これを人力で覚えて運用するのは困難かな、と思います。
また、パスワードマネージャーを導入するとパスワードを使い回す必要がなくなります。こちらにパスワードの使い回しのリスクについてまとまっていましたが、「1 つのアカウントで不正ログインされると別のアカウントもログインされてしまう」「パスワードを使い回したアカウント数分攻撃のリスクが倍増する」「数珠つなぎに不正ログインされたサービスが金融サービス等の場合目も当てられない」ということで、要するにリスクが何倍にもなるということです。一方でこちらによると人は平均で同じパスワードを約 14 回使い回しているらしく、じゃあ 1 個だったパスワードを 14 個別の物にして憶えましょう、となるとそれは現実的じゃないと思います。
そもそもサインアップの度にパスワードをいちいち考えるのも手間だと思うんですよね。なので、パスワードマネージャーでパスワードを自動生成した方が、パスワードを作る手間も楽になると思います。
アカウント・パスワードの自動入力
パスワードマネージャーを使うと、アカウント、パスワードを自動入力できます。また、パスワードマネージャーに依存しますが、よくあるサーバー型のパスワードマネージャーであれば、端末が変わってもパスワードマネージャーに同じアカウントでログインしておけば、いちいちアカウント・パスワードのデータを移さなくても同じアカウント・パスワード情報を自動入力できます。
もちろん、ブラウザに記録させる、あるいは Google アカウントに記憶させるような方法もあると思いますが、使うブラウザが制限される、Google アカウントの場合スマホと密接に紐づくので運用の柔軟性に欠けそうです (たとえば 2 つの端末でアカウントとパスワードを共有したいが Google アカウント上は別アカウントで登録したいようなケース)。
主なパスワードマネージャー
Bitwarden
Bitwarden はオープンソースのパスワードマネージャーで、オープンソースなだけに無料です。無料で使えるためコストパフォーマンスが高く、 Windows、Mac、Chromebook、iPhone、iPad、Android、主要ブラウザに対応しており、カバレッジが広くどんな環境でも使えます。また、何台でも制限なく同期でき、何件でも制限なくパスワードの保存が可能な点は大きいと思います。またアプリの UI も簡素で余計なガイダンスがないところも筆者のお気に入りだったりします。
一方、パスワード強度診断や侵入通知、暗号化ストレージ等の機能はありません。オープンソースなので (仕組みがわかるという理由で) 攻撃を受けやすいのでは?と誤解されそうですが、これはむしろ同様に高いスキルを持ったオープンソース関係者が Bitwarden を改善・レビューしてくれているので安全といえます (ソースはこちら)。
ただオープンソースではあってもいつまで無料で提供してくれるのかな?と個人的には思います。パスワード管理ということは、当然ストレージにパスワードのデータを保管するわけで・・。ストレージ含むサーバー運用費用はどうするんですかね?という。まあ docker イメージも GitHub 上で公開されているので、Bitwarden サーバーをセルフホスティングすればいいのですが、ハードルが高い・・。
1Password
こちらの GIZMODO の記事で、有料版の中では最高の評価を得たパスワードマネージャーです。非常に高機能で、Bitwarden と同様の高いカバレッジ、使える端末の台数、保存できるパスワードの数に制限なし、パスワード強度診断、侵入通知機能あり、暗号化ストレージ付きといたれりつくせりです。
ただし、有料で、月額 $3.99 かかります。この価格は決してずば抜けて高い方ではないのですが、パスワード管理のみで年間 4,000 円強の出費は、個人的にはやや重く感じます。
LastPass
こちらも評価の高いパスワードマネージャーで、OS やブラウザのカバレッジが広く、また Android でのパスワードの自動保存も対応している等、高機能なパスワードマネージャーです。
料金については、もともと無料でほぼ制限なく使えたものが、無料版だと PC とスマホの同時利用が使えなくなりました (2021 年 2 月、詳細はこちら)。有料版は月額 $3 となります。1Password と同じような価格帯ですね。
Bitwarden の使い方
Bitwarden アカウントの作成
そこで本記事では、唯一無料でほぼ制限なく使える Bitwarden をピックアップし、その導入手順を説明していきたいと思います。
こちらが Bitwarden のサイトです。「Get started」を押して、サインアップします。
そうすると必要な情報を入力する画面になりますので、下記の赤枠を入力し、最後に「Submit」の青いボタンを押して、アカウントを作成します。ここで注意したいのが、Master Password を忘れないものにすることです。Master Password を忘れると、使えなくなります・・。
するとすぐにアカウントが作成され、ログイン画面に遷移します。既にアカウントの Email Address は入力されているかと思いますので、先程設定した Master Password を入力して、「Log In」
以下、Bitwarden の管理画面です。まずは Email Address を検証して、機能を開放していきます。「VERIFY EMAIL」の「Send Email」をクリック。
するとメールボックスに以下のようなメールが来ているかと思いますので、「Verify Email Address Now」を押してメールアドレスの検証を完了します。
再びログイン画面に戻るので、再度マスターパスワードを入力して「Log In」してください。
次に、Bitwarden の多要素認証を有効にします。「Settings」->「Two-step Login」->「Manage」で設定します。
マスターパスワードを入力すると、以下のように QR コードとキーが表示されるので、どちらかを使ってお使いの認証システムアプリ (Google Authenticator, Twilio Authy, WinAuth 等) に登録します。
認証システムアプリで 6 桁の確認コードが出るようになるので、上記の画面の「3. Enter the resulting 6 digit verfication code from the app」に入力、「Enable」で有効にします。
認証システムアプリ、ワンタイムパスワードでの認証はクライアントとサーバー側で時間の同期が取れないと詰むので、リカバリーコードを取得しておきます。
マスターパスワードを入力した後、8 組の 4 桁英数字が表示されます。これがリカバリーコードですので、安全な場所に控えておきます。
PC での使い方
「Chrome Bitwarden」等で検索してもらうと、すぐに拡張機能のページは見つかると思います。
拡張機能をインストールし、有効にすると、Chrome の場合 URL 欄の右隣の拡張機能欄に Bitwarden が追加されます。
アイコンに数字が出ていると思いますが、現在閲覧中のサイトに、何個のアカウント、パスワードが登録されているかを表します。
アイコンをクリックすると Bitwarden の機能が使えます。
「Tab」欄は、現在開いているタブで使えるアカウント、パスワードが表示されます。
ログイン情報は赤枠の 1 要素ごとに上図のように 2 行 (下の行はモザイクがかかっていますが) 表示され、上段が (自身で登録した) サービス名、下段がアカウント名になっております。こちらの赤枠をクリックしていただくと、今タブで開いているアカウント、パスワードに自動入力されます。
次に「MyVault」です。登録しているログイン、アカウント情報がずらずら並びます。
ここでもいくつか機能がありますが、筆者がよく使う 2 点だけご紹介します。(1) は個々のログイン情報の詳細画面です。(2) は登録されたログイン URL に遷移するボタンで、ブックマーク代わりに使えて便利です。さらに、(1) の中身について説明します。
個々のログイン情報については、人手で登録していきます。大体上記の赤枠で囲ったような 4 つのフィールドの登録になるかと思います。Name はログイン情報自体の識別子なのでわかりやすい名前を自由につけていただければと思います。ほとんどの場合はシンプルにサービス名、もしくはサービス名×アカウント名という形になりそうですが。Username はアカウント名、アカウント ID、ログイン ID、ユーザー名・・等々、サービス側のユーザーアカウントの識別子ですね。Password はパスワード (こちらの自動生成は後述します) です。Website はログインするための URLで、例えば AWS マネジメントコンソールであれば、https://${AWS アカウント ID}.signin.aws.amazon.com/console/ のように登録しておければ便利です。
最後に、「Generator」です。こちらはパスワードの 自動生成機能です。
指定された Length (文字数)、使用する文字列 (A-Z: 大文字英字、a-z: 小文字英字、0-9: 数字、!@#$%6&*: 記号) で、パスワードを自動生成します。「Regenerate Password」で、パスワードを再生成します。「Copy Password」で、OS のクリップボードにパスワードをコピーし、どこにでも貼り付けられる状態にします・・という感じです。パスワードの自動生成機能については、私の戦術としては「可能な限り多様な文字種を使う」「(どうせ手で入力しないのだから) 可能な限り長くする」が基本で、自動生成されたパスワードがまれに文字種に偏りがある (特に数字が入らないことが多い) ので、その場合はよりランダムに見えるパスワードが出るまで「Regenerate Password」する運用をしています (より長くより複雑なパスワードはよりブルートフォースアタックに強いので)。なお、自動入力することができないパスワードの管理 (たとえば PC のパスワード等) は、12文字程度の常識的な長さにする等工夫は必要です。
ご覧の通り、UI はシンプルで、余分なものがないため使いやすいかと思います。
スマホでの使い方
スマホについては、アプリをインストールして使っています。
使い方、使い勝手は Chrome 拡張機能とほとんど同じなので詳細は解説しませんが、これは Android のケースですが自動入力を ON にする設定が必要です。
アプリをインストールした後、「設定」->「システム」->「言語と入力」->「自動入力サービス」で、デフォルトの Google から Bitwarden に変更する必要があります (筆者の Android はバージョン 11)。
スクリーンショットが取れなかったのですが、後はアプリの設定で、ぜひスマホ側が対応しているのであれば「Unlock with Biometrics」は「Enabled」にしておきましょう。筆者の使用している Pixel 4 だと顔認証の精度が高くスムーズに開けることができて快適です。
まとめ
いかがでしたでしょうか。パスワードマネージャーを導入すると、セキュリティが強化されるだけでなく、アカウント忘れ、パスワード忘れの防止ができアカウントを持っているサービスの管理ができますし、パスワードの自動入力や自動生成機能で生産性を大きく改善できるので、おすすめです。

