ワンタイムパスワード(ワンタイムパスワード)
使い捨てパスワードによる認証。TOTP(RFC 6238・30秒更新)・HOTPが代表で、Google Authenticator・Authy・1Password・Microsoft Authenticatorで管理、MFA要素として必須。
概要
ワンタイムパスワード(One‑Time Password, OTP)は、認証プロセスで一度だけ使用されるコードを生成する仕組みです。TOTP(Time‑Based One‑Time Password)とHOTP(HMAC‑Based One‑Time Password)が代表的で、RFC 6238で定義されています。TOTPは30秒ごとにコードが更新され、HOTPはカウンタが増加するたびに新しいコードが発行されます。Google Authenticator、Authy、1Password、Microsoft Authenticator、YubiKey 5 NFC、YubiKey 5C Nano、RSA SecurID、Duo Security などが実装例です。OTPは多要素認証(MFA)の重要な要素であり、パスワードだけでは防げないアカウント乗っ取りを防止します。
主な特徴・仕組み
- 一時性:コードは生成後すぐに失効し、再利用ができない。
- 時間同期:TOTPはシステムクロックを基に30秒間隔で更新。
- カウンタ同期:HOTPはカウンタ値を共有し、両端で同期が必要。
- HMACアルゴリズム:SHA‑1、SHA‑256、SHA‑512 のいずれかを使用。
- コード長:一般的に6桁または8桁。
- 暗号強度:128‑bit 以上のシークレットキー。
- MFA統合:パスワード+OTPで二段階認証を実現。
- デバイス非依存:スマートフォン、USBトークン、クラウドベースのアプリで利用可能。
- オフライン対応:TOTPはネットワーク不要で生成。
- バックアップ:QRコードやシークレット文字列を事前に保存。
- 多言語対応:国際化されたOTP生成アルゴリズム。
スペック/製品比較表
| 製品名 | タイプ | アルゴリズム | 生成間隔 | コード長 | 暗号化 | 主要用途 |
|---|---|---|---|---|---|---|
| Google Authenticator | ソフトウェア | SHA‑1 | 30 秒 | 6桁 | 128‑bit | 2FA |
| Authy | ソフトウェア | SHA‑256 | 30 秒 | 6桁 | 256‑bit | 2FA/3FA |
| 1Password | ソフトウェア | SHA‑1 | 30 秒 | 6桁 | 256‑bit | 2FA |
| Microsoft Authenticator | ソフトウェア | SHA‑1 | 30 秒 | 6桁 | 128‑bit | 2FA |
| YubiKey 5 NFC | ハードウェア | SHA‑1 | 30 秒 | 6桁 | 256‑bit | 2FA/3FA |
| YubiKey 5C Nano | ハードウェア | SHA‑256 | 30 秒 | 6桁 | 256‑bit | 2FA/3FA |
| RSA SecurID | ハードウェア | SHA‑1 | 30 秒 | 8桁 | 128‑bit | 2FA |
| Duo Security | ソフトウェア/ハードウェア | SHA‑1 | 30 秒 | 6桁 | 256‑bit | 2FA/3FA |
具体例・対応製品
- クラウドサービス:Google Workspace、Microsoft 365、Amazon Web Services、Slack、GitHub。
- 金融機関:三菱UFJ、三井住友、楽天銀行、PayPay。
- 社内VPN:Cisco AnyConnect、OpenVPN、Palo Alto Networks。
- IoTデバイス:Nest、Philips Hue、Amazon Echo。
- 企業認証:Okta、Auth0、OneLogin。
これらのサービスは、OTPを組み込んだ多要素認証を標準でサポートし、ユーザーはスマートフォンアプリまたはUSBトークンを使用してログイン時にコードを入力します。
自作PCでの選び方・注意点
- OS互換性:Windows、macOS、Linux で動作するアプリを選択。
- クロック精度:TOTPはシステムクロックが重要。NTP サーバーと同期を確認。
- バックアップ:QRコードをスキャンした際に表示されるシークレット文字列を安全に保管。
- デバイス多重登録:複数デバイスで同一アカウントを登録し、紛失時に備える。
- ハードウェアトークン:USB‑C 端子がある場合は YubiKey 5C Nano などを検討。
- 暗号化レベル:SHA‑256 以上のアルゴリズムを採用したアプリを選ぶ。
- アップデート頻度:アプリが定期的に更新されるか確認。
- サーバー側のサポート:利用するサービスが RFC 6238 に準拠しているか確認。
- ユーザー教育:OTPの使い方、失効時間、再生成手順を社内で共有。
- 監査ログ:OTP使用時にログが残るか確認し、監査要件に合致させる。
関連用語との違い
- パスワード:文字列を覚える必要があるが、OTPは時間/カウンタに依存し、再利用不可。
- PIN:短い数値コードだが、OTPは時間同期で自動生成。
- 生体認証:指紋や顔認証はデバイス内で処理されるが、OTPは暗号演算で生成。
- セキュリティトークン:ハードウェアトークンは物理的デバイス、ソフトウェアトークンはアプリ。
- 多要素認証(MFA):OTPはMFAの一要素で、パスワード+OTP=2FA。
よくある質問(FAQ)
Q1. TOTPとHOTPの違いは何ですか?
A1. TOTPは時間ベースで30秒ごとにコードが更新される。HOTPはカウンタベースで、トークンが使用されるたびにカウンタが増加し、新しいコードが生成される。
Q2. 生成間隔を短くすると安全性は高まりますか?
A2. 30秒間隔は業界標準であり、短縮するとユーザーの入力負担が増える。安全性はほぼ同等で、ユーザー体験とのバランスが重要。
Q3. OTPを使うと完全にパスワードが不要になるのですか?
A3. ほとんどの場合、パスワードは必要だが、OTPは第二要素として追加され、パスワード漏洩時のリスクを大幅に低減する。
まとめ
ワンタイムパスワードは、時間やカウンタに基づく一度きりのコードで認証の安全性を高める技術です。TOTP と HOTP は RFC 6238 に準拠し、Google Authenticator、Authy、1Password、Microsoft Authenticator、YubiKey 5 NFC など多様な実装が存在します。自作PCを構築する際は、OS 互換性、クロック同期、バックアップ、暗号化レベルを重視し、ハードウェアトークンとソフトウェアアプリを組み合わせて多要素認証を実装することで、2025年から 2026年にかけて増加するサイバー脅威に対抗できます。最新のセキュリティトレンドを踏まえ、次世代の認証基盤として OTP を活用することは、個人・企業問わず不可欠な選択肢となるでしょう。