認証アプリとは
認証アプリ(Authenticatorアプリ)は、2段階認証をオンにしたときに、パスワードのあとに入力する6桁のコードを作るアプリです。設定のとき、サービスは秘密の鍵が入ったQRコードを表示します。アプリはその鍵を保存し、鍵と現在の時刻から30秒ごとに新しいコードを計算します。ネットにつながっていなくても動き、コードは少したてば使えなくなります。
コードの作られ方
QRコードには、サービスとあなたのスマホだけが知っている秘密の鍵が入っています。アプリは30秒ごとに鍵と現在の時刻を組み合わせ、その結果を6桁の数字にします。サービスも同じ計算をして、数字が一致すればログインできます。この方式はTOTPというオープンな標準(RFC 6238)なので、「認証アプリ」に対応したサービスなら、どの認証アプリでも使えます。
スマホには何も送られてこないので、機内モードでも動きます。スマホの時計が大事なのもこのためです。1分以上ずれていると、たいていコードが通りません(直し方)。
SMSのコードより安全な理由
- SMSは電話網を通って届きます。携帯会社をだましてSIMカードを再発行させる(SIMスワップ)などして電話番号を乗っ取られると、コードも奪われます。認証アプリの鍵はスマホの中にとどまります。
- 海外でも、電波がなくても、電話番号がなくても使えます。
- 設定が終われば鍵がスマホの外に出ることはないので、途中で盗み取られる心配がありません。
完璧ではありません。本物そっくりの偽のログインページが、コードを入力させてすぐに使うこともあります。コードを入力する前にアドレスを確かめてください。サービスが対応していれば、パスキーはこの手口でだまし取られません。
設定のしかた
- 認証アプリをインストールします。
- サービスのセキュリティ設定で2段階認証を開き、SMSではなく認証アプリを選びます。
- アプリでQRコードをスキャンします。スキャンできない場合は、たいていのサービスが鍵を文字でも表示するので、それを入力します。
- アプリに表示されている今のコードを入力して確認します。
- サービスが表示するバックアップコードを、スマホ以外の場所に保存します。スマホをなくしたときは、これでログインできます。
どのアプリを選ぶ?
どのアプリも同じコードを作るので、違いは鍵をどこに保存するか、新しいスマホにどう移すかです。
- Google Authenticator:コードをGoogleアカウントに保存することも、アカウントなしで使うこともできます。機種変更のしかた
- Microsoft Authenticator:Microsoftや職場のアカウントのサインイン承認にも使え、iCloudまたはMicrosoftアカウントにバックアップします。機種変更のしかた
- パスワード管理アプリ(iPhoneの「パスワード」App、1Password、Bitwarden):コードをパスワードの隣に保存できます。
- 専用のアプリ(2FAS、Ente Auth、Kodeなど):コードをパスワードと分けて保存するので、片方が漏れても両方を知られることはありません。
一部のサービスは独自のアプリを使います(Steam Guardなど)。また、「本人ですか? はい」とタップする承認は、そのサービス自身のアプリの機能で、認証アプリ全般の機能ではありません。
スマホをなくしたら
鍵は、アプリが保存している場所にしかありません。同期やバックアップをしていれば、新しいスマホで元に戻せます。していなければ鍵は失われるので、バックアップコードかサービスのアカウント復旧でログインし、2段階認証を設定し直します。だからバックアップコードが大切なのです。
Kode
Kodeは、Peter Theillが作ったiPhoneアプリ(300円の買い切り)で、このコードを作ります。アカウントも広告もなく、ネットワーク通信もしません。鍵はiPhoneのキーチェーンに保存され、エンドツーエンドで暗号化されるiCloudキーチェーンで新しいiPhoneにも引き継がれます。Google Authenticatorなどのアプリからコードを移せます:Kodeにコードを移す
App Storeでダウンロード