ワンタイムパスワード
読み: わんたいむぱすわーど
ワンタイムパスワード (OTP) は、一度使うと無効になる使い捨てのパスワードです。固定パスワードが漏洩すると繰り返し悪用されるのに対し、OTP は使用済みのコードを再利用できないため、パスワードリスト攻撃やフィッシングへの耐性が高まります。
OTP には大きく 2 つの方式があります。TOTP (Time-based One-Time Password) は、秘密鍵と現在時刻から 30 秒ごとに 6 桁のコードを生成します。HOTP (HMAC-based One-Time Password) は、秘密鍵とカウンター値からコードを生成します。現在主流なのは TOTP で、Google Authenticator や Microsoft Authenticator などの認証アプリが採用しています。
QR コードは TOTP の初期設定で不可欠な役割を果たします。サービス側が生成した秘密鍵を、ユーザーが手入力するのは 32 文字の Base32 文字列を打ち込む作業であり、現実的ではありません。そこで秘密鍵を otpauth://totp/... 形式の URI にエンコードし、QR コードとして表示します。ユーザーは認証アプリで QR コードをスキャンするだけで、秘密鍵が安全にアプリに登録されます。
この仕組みは二要素認証 (2FA) の普及を大きく後押ししました。QR コードによるワンステップの設定がなければ、一般ユーザーが TOTP を導入するハードルは格段に高かったでしょう。セキュリティと利便性を両立させた好例です。