多要素認証は、ログイン時に複数種類の本人確認を組み合わせる考え方です。
パスキーは、スマホやPCなどの端末にある鍵を使い、指紋・顔・PINなどで確認してログインするパスワードレスな方法です。
多要素認証は「違う種類の確認」を足すこと
多要素認証は、本人確認を1つだけに頼らず、複数の要素を組み合わせる考え方です。英語ではMFAと呼ばれます。
ポイントは、単に確認回数を増やすことではなく、種類の違う確認を組み合わせることです。たとえば、パスワードとSMSコード、パスワードと認証アプリ、端末と生体認証のような組み合わせがあります。
パスワード、PIN、秘密の質問など、本人が知っているもの。
スマホ、認証アプリ、セキュリティキーなど、本人が持っているもの。
指紋、顔、虹彩など、本人の身体的な特徴。
二段階認証と多要素認証は少し違う
二段階認証は、ログイン時に確認を2段階にする方法です。ただし、2段階でも同じ種類の確認だけなら、多要素とは言いにくい場合があります。
たとえば「パスワード」と「別の合言葉」は、どちらも知識に寄っています。一方で「パスワード」と「スマホの認証アプリ」は、知識と所持の組み合わせなので、多要素認証として考えやすくなります。
確認の回数や手順の数に注目する考え方。
知識、所持、生体のような確認の種類に注目する考え方。
違う種類を組み合わせるほど、1つ漏れても突破されにくい。
パスキーは端末の中の鍵を使う
パスキーは、パスワードの代わりに、スマホやPCなどの端末に保存された鍵を使ってログインする仕組みです。利用者は、指紋認証、顔認証、端末のPINなどで「この端末を使っている本人です」と確認します。
サービス側には、秘密の鍵そのものを渡しません。端末内にある秘密鍵で確認用の応答を作り、サービス側は対応する公開鍵で正しいかを確認します。パスワードを入力して送る方式より、フィッシングに強い設計にしやすいのが特徴です。
パスキーは「所持」と「生体やPIN」を組み合わせる
パスキーは、端末を持っていることと、その端末を本人が解除できることを組み合わせます。つまり、スマホやPCという所持の要素と、指紋・顔・PINなどの確認がセットになります。
ここでの指紋や顔の情報が、毎回サービスへ送られるわけではありません。多くの場合、端末の中で本人確認を済ませ、サービスには鍵による確認結果を返します。利用者から見ると簡単でも、裏側では「端末を持っている人だけが作れる応答」を確認しています。
登録済みのスマホやPCが必要になる。
指紋、顔、PINなどで端末側の本人確認を行う。
サービスは公開鍵で、正しい端末からの応答かを確認する。
安全になる一方で、復旧方法も大事
パスキーや多要素認証は、パスワードだけのログインより安全にしやすい方法です。ただし、端末をなくしたとき、スマホを買い替えたとき、認証アプリに入れなくなったときの復旧方法も重要です。
実際のサービスでは、複数端末への登録、バックアップコード、予備の認証方法などを用意することがあります。強い本人確認と、困ったときに戻れる導線をセットで考えるのが現実的です。
スマホだけでなく、PCや別端末にも登録しておく。
復旧コードや予備の認証方法を安全な場所に保管する。
認証方法の追加・削除は、本人確認を強めに行う。
ここまでのまとめ
多要素認証は、知識・所持・生体のような違う種類の本人確認を組み合わせる考え方です。パスキーは、端末にある鍵を使い、端末側の本人確認を通してログインする仕組みです。
多要素認証は「確認の種類を分けて組み合わせる」。パスキーは「端末の鍵を、本人だけが使えるようにする」と覚えると、入口としてつかみやすくなります。
このUIを実装してみよう