1Password・Google パスワードマネージャーはどう安全を保つのか? マスターパスワードと暗号化

読了 5分

今どきの一般的な人のアカウント数は、軽く 100 を超えます。ショッピング・SNS・銀行・社内ツール・ニュースサイトまで、登録ボタンを押すたびにまた一つパスワードが増えます。人間が 100 個を全部別々に覚えていられるはずもなく、結局は同じパスワードを使い回したり、メモアプリに集めて置いたりして、必ずどこかに穴が空きます。その穴を埋めようとして登場したのが、1Password・Bitwarden・Google パスワードマネージャーといったツールです。

この記事では、パスワードマネージャーがどんな仕組みで安全を作り出しているのか、そして「パスワードを 1 か所にまとめるほうがむしろ危ないのでは?」という疑いに対してどんな答えがあるのかを、コードなしで整理します。

一つのパスワードで残りすべてに鍵をかける金庫 #

パスワードマネージャーの出発点は単純です。ユーザーが覚えるパスワードは一つだけにして、残りのパスワードはその一つで鍵をかけた金庫の中に保管する、という発想です。覚える 1 つを普通はマスターパスワードと呼びます。マスターパスワードを入力して金庫を開かなければ、他のサイトのパスワードを取り出して使うことはできません。

こうすると「1 か所にまとまっているならむしろ危なくないのか?」という疑問が自然に出てきます。答えは二つの仕組みにあります。一つ目は、金庫そのものが強力なアルゴリズムで暗号化されており、マスター鍵なしではコンピューターでも現実的ではない時間がかかるという事実です。二つ目は、どこに保存されても、その中身は鍵なしには意味のない文字列にすぎないという事実です。

サーバーにも開けない「ゼロ知識」構造 #

複数の端末でパスワードを共有するためには、クラウド同期が必要です。ですが同期するとは、会社のサーバーに金庫ファイルがアップロードされるということで、その会社がハッキングされたら、社員に覗かれたら、と新たな心配が出てきます。

ここで登場する概念がゼロ知識(zero-knowledge)構造です。要点は一行で済みます。「会社のサーバーには、最初から開けない形でアップロードされる」ということです。ユーザーの端末上でマスターパスワードから暗号鍵を作り、その鍵で金庫を閉じてから、閉じた金庫だけをサーバーに送ります。マスターパスワードはサーバーに送られないので、会社も、会社の社員もその金庫を開けません。1Password・Bitwarden のような専用サービスが強調する安全性の根拠はここにあります。

だからマスターパスワードを忘れると会社が助けられる手段はない、という点も同じコインの裏表です。開けられるなら、会社も覗けるという意味になってしまうからです。

自動入力は実はもっとも強力な安全装置 #

パスワードマネージャーの自動入力は便利な機能のように見えますが、実際にはフィッシングを防ぐ強力な安全装置です。パスワードマネージャーはパスワードを保存するときに、そのパスワードがどのドメインのものかも一緒に記録しておきます。次に自動入力を出すときには、いま見ているサイトのドメインが保存されたドメインと正確に一致する場合のみ、パスワードを取り出してくれます。

フィッシングサイトはたいてい本物と 1 文字だけ違うドメインを使います(google.com の代わりに goog1e.com といった具合)。人間は騙されてパスワードを入力してしまっても、パスワードマネージャーはドメインが違うことを正しく見抜いて自動入力を出しません。「今日は自動入力が出ないな」という小さな違和感が、疑いの出発点になるわけです。HTTPS が通信そのものを守るのに対して(アドレスバーの鍵マークは何を守っているのか を参照)、自動入力はその一歩手前で「このサイトは本当にそのサイトなのか」を見分けてくれます。

弱点と運用のコツ #

ゼロ知識構造だからといって無敵ではありません。一番大きな弱点はマスターパスワード自体です。マスターが弱かったり、ほかから漏れていたりすれば、その一つで金庫全体が開いてしまいます。だからマスターは十分長く設定し、できるかぎり二段階認証も併用するのが標準的な運用です。

ブラウザーに保存するパスワードと専用アプリのパスワードの違いも知っておく価値があります。Chrome や Safari に保存されたパスワードは便利ですが、保護は普通 PC・Mac のロックパスワードに依存しています。専用パスワードマネージャーは別のマスターパスワードでもう一枚壁を作り、一定時間が経ったら再度尋ねる自動ロックを別に動かす形で、もう一段隔離を加えます。

パスワードが消える方向、パスキー #

ここまでの話はすべて、人間がパスワードを覚えるという前提の上にあります。最近標準化されたパスキー(passkey)は、その前提自体を変えようとする試みです。端末内の安全チップがサイトごとに別の鍵ペアを生成し、人は指紋や顔認証のロックを解くだけで済みます。人が覚えるパスワード自体が存在しないので、データが漏れてもパスワードとしては使えず、ドメインが違うと鍵が動作しないのでフィッシングも防がれます。

パスワードマネージャー各社はすでにパスキーを併せて保存・同期する方向に進化しています。しばらくはパスワードとパスキーが同じ金庫の中に共存し、新規登録は徐々にパスキーへ移っていく流れが続くでしょう。

結局は一つの鍵をきちんと管理する仕事 #

パスワードマネージャーを使うことは、100 個の鍵を 100 個とも覚えるかわりに、一つの良い鍵をきちんと管理する仕事に置き換える作業です。その 1 つを十分に強くし、二段階認証を足し、マスターを絶対に他のサイトと共有しないでおけば、100 個のパスワードを頭で覚えようと頑張るよりはるかに安全な状態になります。

X