所持情報とは?スマートフォンで本人を確かめるとき、何を確かめているのか

2段階認証を設定すると、ログインのたびに、スマートフォンに届いたコードや、アプリに表示された数字を入力するようになります。サービスは、遠くにあるあなたのスマートフォンを、どうやって確かめているのでしょうか。
本記事では、本人を確かめる3つの要素のうち、所持情報の考え方を、家の鍵に例えて解説します。
所持情報とは
所持情報は、本人だけが持っている物で、本人かどうかを確かめる方法です。多要素認証で紹介した3つの要素のうち、「持っているもの」にあたります。
身近な例は、家の鍵です。鍵を持っている人だけが、ドアを開けて家に入れます。
ログインで持ち物としてよく使われるのは、スマートフォンです。ほかに、セキュリティキーという専用の機器もあります。USBの差し込み口に挿したり、スマートフォンにかざしたりして使う、家の鍵ほどの大きさの小さな機器です。
パスワードなら、偽サイトに入力させれば、遠くにいる攻撃者でも盗めます。持ち物は遠くから盗めないので、パスワードと組み合わせれば守りが固くなる仕組みです。
サービスは持ち物をどう確かめるのか
サービスからは、あなたのスマートフォンが見えません。それでも持っていると分かるのは、家の鍵とドアの関係と同じ仕組みを使っているからです。下の図では、上に家の鍵、下にログインの場合を並べました。
ドアが見ているのは、ギザギザの形が合うかどうかだけで、鍵を差し込んだ人の顔も、鍵の色も見ていません。
ログインでも、サービスはスマートフォンの中に入っている秘密でしか作れない答えを返してもらい、それが合うかどうかだけを確かめます。この秘密が、鍵のギザギザにあたるわけです。
では、スマートフォンの中のどこに、その秘密があるのでしょうか。下の図に、手段ごとの秘密の置き場所を示しました。
図のとおり、認証アプリなら数字の元になる暗号表、パスキーなら秘密鍵です。SMSの場合は、その電話番号でコードを受け取れること自体が、確かめる中身になります。
ここで大事なのは、ギザギザの形を写されると合鍵を作られるのと同じく、中の秘密を写されると、別のスマートフォンでも通ってしまうことです。手段ごとに、この写されやすさが違います。
手段ごとの違い
所持情報の代表的な手段は、SMS、認証アプリ、パスキーとセキュリティキーの3つです。それぞれ、持っていることの示し方と弱いところを順に見ていきます。
SMSで届くコード
ログインのときに、サービスが携帯電話の番号へ、ショートメッセージ(SMS)で数桁のコードを送る方法です。届いたコードを入力できれば、その電話番号を持っている本人だと判断します。
確かめているのは、スマートフォンの中身ではなく、その電話番号でメッセージを受け取れることです。そのため、攻撃者が携帯電話会社をだましてSIMカードを再発行させるなど、電話番号を乗っ取られると、コードも相手に届きかねません。大阪府警察の解説も、SMSを多要素認証の中で「最も脆弱」な方式に挙げています。
認証アプリの6桁の数字
Google Authenticatorのような認証アプリに表示される、30秒ごとに変わる6桁の数字を入力する方法です。仕組みはワンタイムパスワードとはで詳しく解説しました。
最初の設定は、画面に出るQRコードをアプリで読み取る作業です。このQRコードには、サービスとアプリだけが持つ、数字の元になる暗号表の写しが入っています。中身はランダムな英数字の文字列で、専門用語ではシードと呼ぶものです。その後は、サービスとアプリがそれぞれ、同じ暗号表と現在の時刻から同じ6桁の数字を計算するので、通信しなくても数字がそろいます。
家の鍵に例えると、設定のQRコードは合鍵を作るための型にあたり、QRコードを撮影した人は、自分のスマートフォンでも同じ数字を作れてしまうのです。設定の画面を人に見せたり、スクリーンショットを残したりしないでください。
パスキーとセキュリティキー
パスキーとセキュリティキーは、中に入っている秘密鍵を使って、サービスが毎回違う問題を出し、それに答える方法です。人が数字を入力する必要はありません。
下の図は、合鍵を作れる認証アプリの暗号表と、取り出せないセキュリティキーの秘密鍵を比べたものです。
セキュリティキーの秘密鍵は、機器の外へ取り出せない作りです。ギザギザの形を写し取れない鍵のようなもので、合鍵を作られる心配がありません。その機器を持っている人しか使えないので、所持情報としての意味がいちばんはっきりした手段です。
パスキーには、1台の端末から出ないものと、同じ人の端末どうしで同期するものがあります。同期するパスキーは、自分のアカウントでつながった端末にだけ合鍵が配られる、と考えると分かりやすいでしょう。
3つの手段を比べる
3つの手段の違いを、下の表で比べました。左から、手段、何を確かめているか、合鍵を作られる例、偽サイトへの強さの順です。
| 手段 | 確かめているもの | 合鍵を作られる例 | 偽サイトへの強さ |
|---|---|---|---|
| SMSで届くコード | その電話番号で受け取れること | 電話番号を乗っ取られる | 弱い。コードを入力してしまえば使われる |
| 認証アプリの6桁の数字 | 数字の元になる暗号表 | 設定のQRコードを撮影される | 弱い。数字を入力してしまえば使われる |
| パスキーとセキュリティキー | 中に入っている秘密鍵 | 取り出せないので作られにくい | 強い。ブラウザーが偽サイトには使わない |
SMSと認証アプリは、人が数字を書き写す方法です。本物そっくりの偽サイトに入力すれば、その場で使われかねません。パスキーとセキュリティキーは、ログイン先のサイトをブラウザーが確かめるので、偽サイトでは使われない作りです。選べるなら、パスキーかセキュリティキーを使ってください。
端末をなくしたときの備え
所持情報には、持ち物をなくすとログインできなくなる弱みがあります。家の鍵をなくすと家に入れないのと同じです。下の図に、そのときに備えて用意しておきたい3つのことを示しました。
1つ目は、回復用コード(リカバリーコード)の保管です。多くのサービスは、2段階認証を設定するときに、端末をなくしたとき用の使い捨てのコードを表示します。印刷するか、なくした端末とは別の場所に保存してください。
2つ目は、2つ目の認証方法の登録です。認証アプリとセキュリティキーのように、別の手段も登録しておけば、片方をなくしてもログインできます。
3つ目は、同期できるパスキーを使うことです。同じ人の端末へ同期されるので、1台をなくしても、ほかの端末からログインできます。
製品での使われ方
このサイトでは、パスワードマネージャーの1つである1Passwordを例に、認証アプリの数字とパスキーを保存する手順を紹介しています。
パスワードマネージャーにワンタイムパスワードを保存するときの考え方は、2段階認証とはで解説しました。
参考にした一次情報
NISTは、アメリカ政府の技術標準を作る研究機関です。