ワンタイムパスワード わんたいむぱすわーど
簡単に言うとこんな感じ!
「1回しか使えないパスワード」のことだよ!ネットバンキングにログインするとき、スマホにSMSで「123456」みたいな数字が届いて、それを入力するやつ。使ったら即失効するから、万が一盗まれても二度と使えない、超セキュアな合言葉なんだ!
ワンタイムパスワードとは
ワンタイムパスワード(OTP: One-Time Password) とは、一度しか使えない使い捨てのパスワードのことです。通常のパスワードは何度でも使い回せますが、OTPは認証に成功した瞬間、あるいは一定時間が経過すると自動的に無効になります。
OTPが生まれた背景には、固定パスワードの根本的な弱点があります。固定パスワードはフィッシング詐欺(偽サイトで入力させて盗む手口)やリスト型攻撃(漏洩したID・パスワードを別サービスで試す攻撃)に対して無力です。しかしOTPは「盗んでも次の瞬間には使えない」という性質を持つため、これらの攻撃を根本から無効化できます。
実務では、パスワード+OTP という組み合わせで使われることがほとんどです。「知っているもの(パスワード)」と「持っているもの(OTPを受け取るスマホ等)」を組み合わせることで、セキュリティを二重にする 多要素認証(MFA) の中核技術として広く普及しています。
OTPの種類と仕組み
OTPには主に2つの生成方式があります。どちらも「サーバーとクライアントが同じルールで同じ値を計算する」という考え方が根本にあります。
| 方式 | 正式名称 | 有効期限の決め方 | 主な用途 |
|---|---|---|---|
| TOTP | Time-based OTP | 現在時刻(30秒ごとに変わる) | Google Authenticator、Microsoft Authenticator |
| HOTP | HMAC-based OTP | 認証回数(カウンター方式) | ハードウェアトークン |
| SMS OTP | — | 送信後数分(サーバー側で管理) | ネットバンキング、ECサイト |
| メールOTP | — | 送信後数分(サーバー側で管理) | アカウント確認、パスワードリセット |
TOTP の仕組みを「時計の針」で覚える
TOTPは「今の時刻」を種(シード)にしてパスワードを計算します。サーバーもスマホアプリも同じ秘密鍵と同じ時刻を持っているので、同じ計算をすれば同じ6桁が出る、という仕組みです。
┌─────────────────┐ ┌─────────────────┐
│ スマホアプリ │ │ サーバー側 │
│ │ │ │
│ 秘密鍵 + 時刻 │ │ 秘密鍵 + 時刻 │
│ ↓ │ │ ↓ │
│ HMAC計算 │ │ HMAC計算 │
│ ↓ │ │ ↓ │
│ 「483921」 │ ←一致→ │ 「483921」 │
└─────────────────┘ └─────────────────┘
(ユーザーが入力) (サーバーが検証)
数字は30秒で変わる
TOTPは通常 30秒ごとに新しい値を生成 します。アプリのパスワード横にある「残り秒数を示す円グラフ」がそれを示しています。時刻がズレるとOTPも合わなくなるため、スマホの時刻自動同期が必須です。
歴史と背景
- 1981年 — Leslie Lamportがハッシュチェーンを用いたワンタイムパスワードの概念を論文で発表。OTPの理論的出発点となった。
- 1998年 — RFC 2289 として「S/KEY」ベースのOTP仕様が標準化される。
- 2000年代前半 — ネットバンキングの普及に伴い、SMSによるOTP認証が日本でも一般化。
- 2005年 — OATH(Initiative for Open Authentication)が HOTP仕様 を策定、後にRFC 4226として標準化。
- 2011年 — RFC 6238 にてTOTPが標準化。Google AuthenticatorがTOTPを採用し、スマホアプリによる認証が爆発的に普及。
- 2010年代後半〜現在 — フィッシング被害の増加を背景に、各金融機関・クラウドサービスがOTPを標準搭載。FIDOなどのパスワードレス認証との併用も進んでいる。
SMS・アプリ・ハードウェアトークンの比較
OTPの「受け取り手段」は大きく3種類あり、セキュリティと使いやすさのバランスが異なります。
SIMスワップ攻撃とは
SMS認証の弱点として知られる SIMスワップ とは、攻撃者が携帯キャリアに不正な手続きをして、被害者の電話番号を自分のSIMカードに乗っ取る攻撃です。成功するとSMSのOTPも攻撃者のスマホに届くようになります。重要なシステムほど認証アプリやハードウェアトークンの利用を検討しましょう。
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 2289 | S/KEY ワンタイムパスワードの標準仕様(1998年) |
| RFC 4226 | HOTP(HMAC-Based One-Time Password)仕様 |
| RFC 6238 | TOTP(Time-Based One-Time Password)仕様 |
| FIDO2 / WebAuthn | OTPを超えたパスワードレス認証の次世代規格 |
関連用語
- 多要素認証(MFA) — パスワード+OTPなど、複数の認証要素を組み合わせる手法
- 二段階認証 — ログインを2ステップで行う認証方式。OTPはその代表的な第2要素
- フィッシング詐欺 — 偽サイトでパスワードやOTPを騙し取る攻撃手法
- [FIDO