【おーてぃーぴー】

OTP(ワンタイムパスワード) とは?

最終更新:
💡 一度だけ使う認証コード。入力先にも気をつける

認証で一度だけ受け付ける使い捨てのパスワードやコード。認証アプリなどで生成し、使ったコードの再利用を防ぐ。使用前に盗まれたり、偽サイトへ入力したりすれば悪用されるおそれはある。

📌 このページのポイント
一度だけ受け付ける認証コード 認証アプリ 認証側 コードを生成 秘密+時刻など コードを検証 共有した秘密 コード 使用済みは再度受け付けない TOTP:時刻 HOTP:カウンター 時間幅で更新 値を進めて更新 30秒が標準の推奨 生成と検証で管理 使用前の盗難・偽サイトへの入力は危険
認証アプリで生成するOTPの例。使用済みのコードの再利用を防ぐが、使用前の盗難や偽サイトへの入力による悪用は防げない。
ひよこ ひよこ
ワンタイムパスワードって、銀行アプリでよく見るやつだよね?
ペンギン先生 ペンギン先生
そうだね。ログインや取引の認証で使う、一度だけ受け付けるコードだよ。認証アプリや専用機器で生成するものがあり、SMSで届く確認コードもある。桁数や有効期間は方式とサービス次第で、すべてが30秒や60秒とは限らないんだ。
ひよこ ひよこ
普通のパスワードと何が違うのかな?
ペンギン先生 ペンギン先生
同じ値を繰り返し使うパスワードに対し、OTPは使用済みのコードを再度受け付けないようにするよ。ただし、使う前に盗まれれば先に使われることがある。偽のログイン画面へ入力したコードが本物のサービスへ転送される攻撃も防げないんだ。
ひよこ ひよこ
SMSで届くのとアプリで見るのは何が違うの?
ペンギン先生 ペンギン先生
SMSは電話回線で届け、認証アプリのTOTPは共有した秘密と時刻から計算するよ。SMSには電話番号の乗っ取りなどのリスクがある。アプリでも偽サイトへの入力は危険だし、生成に使う秘密を守る必要があるんだ。
ひよこ ひよこ
TOTPとHOTPって聞いたことあるけど何が違うの?
ペンギン先生 ペンギン先生
TOTPは時刻を使い、RFC 6238では30秒を標準の時間幅として勧めているよ。HOTPはカウンターを使い、生成と検証で値を進める方式。ボタン付き機器は一例だよ。OTPは所持要素になり得るけれど、多要素認証には別の種類の要素との組合せが必要なんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「OTP」って出てきたら「一度きりの使い捨てパスワード」と思えればだいたいOK!
📖 おまけ:英語の意味
「One-Time Password」 = 一回限りのパスワード
💬 One-Timeは「一回限り」。同じ認証コードを繰り返し使わないという意味で、安全性が無条件に保証されるわけではないよ

参考資料

← 用語集にもどる