ワンタイムパスワード(OTP)とは?
One-Time Passwordの略。一度だけ有効な使い捨てパスワード。SMSや認証アプリで生成され多要素認証に使われる
詳細解説
ワンタイムパスワード(OTP: One-Time Password)は、一度使うと無効になる使い捨てのパスワードで、毎回異なる値を使うため盗聴・リプレイ攻撃を防ぐ仕組みです。固定パスワード(同じ文字列を使い続ける)と異なり、OTPは有効期限が短く再利用不可のため、仮に攻撃者が盗んでも悪用できません。OTPの主要な種類は次の通りです。TOTP(Time-based OTP: 時間ベースOTP):現在の時刻とシークレットキーを組み合わせてハッシュ計算し、通常30秒ごとに6〜8桁の数値を生成します。Google Authenticator・Microsoft Authenticator・Authyが代表的な実装アプリで、RFC 6238で標準化されています。HOTP(HMAC-based OTP: カウンタベースOTP):カウンタ値とシークレットキーを組み合わせてOTPを生成。利用回数でカウンタが増加します。SMS OTP:銀行・ECサイト等が携帯電話のSMSでOTPを送信する方式。利便性が高いが、SIMスワッピング攻撃(電話番号乗っ取り)の弱点があります。PUSH通知型:Duoなどのアプリでスマートフォンに承認要求をプッシュ通知、MFAファティーグ攻撃(大量通知で誤承認させる)の標的になり得ます。OTPはMFA(多要素認証)の「所持要素(Something you have)」として機能し、パスワード(知識要素)と組み合わせることで大幅にセキュリティが向上します。ITパスポートでは「OTPの定義とTOTP・SMS方式の違い」「MFAの構成要素としての役割」「SIMスワッピングのリスク」が出題されます。
ITパスポートでの出題ポイント
- 1一度使うと無効になる使い捨てパスワード(リプレイ攻撃を防ぐ)
- 2TOTP:時刻+シークレットキーで30秒ごとに生成(Google Authenticator等)
- 3SMS OTPはSIMスワッピング攻撃に弱い
- 4MFAの「所持要素」として機能し固定パスワードと組み合わせる