多要素認証(MFA)の中でも、ワンタイムパスワード(OTP)は最も実装がしやすく、かつセキュリティに優れた手法です。本記事では、TOTP(時間ベース)とHOTP(カウンタベース)の違い、主要アプリとの連携、そして何より実務的な課題である「デバイス紛失時の対応」を詳しく解説します。
ワンタイムパスワード(OTP)とは
ワンタイムパスワードは、RFC 4226(HOTP)およびRFC 6238(TOTP)で標準化された、30秒ごと(またはイベント発生ごと)に自動生成される一度限りのパスワードです。スマートフォンのアプリケーションで生成されるため、SMS送信などの外部インフラに依存せず、オフライン環境でも機能します。
HOTP(HMAC-based One-Time Password)の仕組み
HOTPはRFC 4226で定義され、カウンタ値をベースに生成されます。
HOTP(K,C) = Truncate(HMAC-SHA1(K, C)) mod 10^Digits
K: 共有シークレット(秘密鍵)
C: イベントカウンタ(ユーザーがOTPを生成するたびにインクリメント)
特徴:
- ユーザーが新しいOTPを要求するたびに、デバイスとサーバーの両方でカウンタをインクリメント
- 同期ズレの影響を受けやすい
- セキュリティキーなどのハードウェアトークンでよく使用
TOTP(Time-based One-Time Password)の仕組み
TOTPはRFC 6238で定義され、時刻をベースに生成されます。
TOTP = HOTP(K, floor(unixtime / 30))
unixtime: 現在のUnixタイムスタンプ
30: タイムステップ(秒単位、デフォルト値)
特徴:
- サーバーとデバイスの時刻が同期していれば、常に同じOTPが生成される
- ユーザーが何度生成しても、30秒以内なら同じコード
- Google Authenticator、Microsoft Authenticatorなど大多数のアプリはTOTPを採用
- 現在、MFAの業界標準として認識される
IDaaS導入RFPテンプレート
IDaaS導入の社内稟議に使えるRFPテンプレート。SSO、MFA、プロビジョニングなどの要件を網羅したフォーマットです。
主要OTPアプリケーション比較
エンタープライズ環境での導入実績、セキュリティ機能、ユーザーサポートの観点から、3つの主流アプリを比較します。
Google Authenticator
対応プラットフォーム:iOS、Android シェア:約60%のエンタープライズで採用
メリット:
- インストール数が最も多く、ユーザーが既に持っている可能性が高い
- UI/UXが最もシンプル
- バックアップコード機能で紛失時対応が可能
- クラウド同期機能(新バージョン)で複数デバイス対応
デメリット:
- アプリ単体では、デバイス紛失時にコード復旧が困難(バックアップコード保存が必須)
- 2段階認証設定時にバックアップコードを表示するだけで、定期的な管理が難しい
- エンタープライズグレードの集中管理機能なし
Microsoft Authenticator
対応プラットフォーム:iOS、Android、Windows Phone シェア:約35%、特にMicrosoft製品ユーザーで高い
メリット:
- Microsoft Entra ID(旧Azure AD)、Office 365との親和性が最高
- 生体認証(顔認証・指紋認証)による承認が可能
- Passwordless Sign-in対応で、パスワードレス認証が実現
- クラウド同期によるデバイス変更時の復旧が容易
デメリット:
- Microsoft エコシステム外の連携は限定的
- エンタープライズMDM(Mobile Device Management)との統合には専門知識が必要
Authy(TwilioAuthy)
対応プラットフォーム:iOS、Android、Mac、Windows、ブラウザ拡張 シェア:約15%、セキュリティを重視する企業で採用
メリット:
- マルチプラットフォーム対応の充実度が最高
- Authy Backupsでクラウド同期、デバイス紛失時の復旧が自動化
- エンタープライズグレードのセキュリティ設定(Trusted Devices)
- 外部監査によるセキュリティ認証(SOC 2 Type II)を取得
デメリット:
- 有料プランの導入コスト(エンタープライズ向け)
- UI が複数プラットフォーム間で若干異なるため、サポート負担が増える
運用上の課題:デバイス紛失時の対応
OTP導入で最大の課題は、「ユーザーがスマートフォンを紛失した場合、どうするか」です。多くの企業で、この対応フローが不十分なため、ユーザーがロックアウトされる事態が発生しています。
課題シナリオ
ユーザーの携帯が盗難 → OTPアプリにアクセス不可 → ログイン不可
→ 情シス部門に連絡 → 本人確認に30分~2時間 → ようやく復旧
月間で数件発生する組織では、情シス部門の負担が顕著です。
推奨される対応フロー
フェーズ1:事前準備(ユーザー側)
-
バックアップコード保管:初回設定時に、6~8個のバックアップコードを紙に記録
- 金庫や自宅の安全な場所に保管
- デジタル保管(パスワードマネージャーなど)も併用
-
バックアップデバイス登録:予備のスマートフォンやタブレットに同じOTPアプリを設定
- 同一のシークレットキーで複数デバイス登録(Authy推奨)
- Google Authenticator の場合は、QRコード画像をセキュアに保管
-
緊急連絡先登録:情シス部門の直通番号、メールアドレスを把握
フェーズ2:紛失検知時(ユーザー側)
- ただちに情シス部門に連絡(電話推奨:メールより確実)
- 盗難の場合は、通信キャリアに回線停止を依頼
- バックアップコードがあれば、それでログイン可能と伝達
フェーズ3:復旧(情シス側)
紛失報告受理
↓
身分確認(従業員ID番号、契約時の情報確認など)
↓
LOCKED MSO管理画面でOTP設定をリセット
↓
ユーザーに新しいQRコードを送付(セキュアチャネル)
↓
ユーザーが新規デバイスで再設定
↓
テストコード確認で復旧完了
LOCKED MSO での紛失対応自動化
LOCKED MSO は、OTP紛失時の対応を大幅に簡素化します。
実装される機能:
- バックアップコード自動生成・管理:初回登録時に8個を自動生成、ユーザーダッシュボードで確認・再発行可能
- 複数デバイス登録:メイン端末のOTP + 予備端末 のTOTP同時登録が管理画面から実現
- OTPリセット権限制御:情シス部門が本人確認後、クリック一つでリセット。監査ログに全て記録
- 緊急アクセストークン:紛失判定後、一度限りのログインを可能にする仮コード発行
- スマート検知:30日以上OTP使用なしの警告、デバイス紛失の可能性を管理者に通知
RFC 6238/4226 準拠の実装上注意点
クロック同期の重要性(TOTP)
TOTPは30秒単位で切り替わるため、サーバーとデバイスの時刻ズレが ±30秒を超えると、認証失敗します。
対応方法:
- デバイス側:スマートフォンのNTP同期を有効化(ほとんどのデバイスはデフォルト有効)
- サーバー側:NTPサーバーで正確な時刻管理
- LOCKED MSO:クロックスキュー許容値を最大±90秒に設定可能
設定例:
TimeWindowSize = 1 # デフォルト(±30秒)
TimeWindowSize = 3 # 許容度を高める(±90秒)
シークレットキーの安全な配布
OTP初期設定時、QRコードの読み込みやシークレット手動入力を行いますが、この際の情報漏洩防止が重要です。
安全な配布フロー:
- LOCKED MSO 管理画面でユーザーごとにシークレット生成
- QRコード画像をHTTPS経由でのみ転送
- ユーザーが読み込み完了後、QRコード・シークレット文字列を削除
- バックアップコード(暗号化)をセキュアに保管
トークン有効期間管理
大規模導入では、OTP登録から数年経つと、ユーザーがバックアップコードを忘れています。
推奨ポリシー:
- 年1回、「OTP設定確認キャンペーン」を実施
- 登録から2年以上経過したユーザーには、再設定を促す
- 強制再設定時は、一時的に別の認証方法(メール確認など)で対応
運用事例:大手金融機関(5,000名展開)
この金融機関は、TOTP導入後、初年度に月平均12件のデバイス紛失トラブルが発生していました。
改善施策:
- 入社時オリエンテーションで、OTP紛失対応フローを30分間の講習に
- バックアップコードの「金庫保管」を強制化(経営層から社員まで統一)
- LOCKED MSO導入で、リセット権限の厳密化と監査ログの自動記録
結果:
- 紛失報告対応時間:平均90分 → 平均15分
- 月間紛失件数:12件 → 3件(70%削減)
- 情シス部門の負担:月間30時間削減
まとめ
TOTPは現在、エンタープライズMFA の最適解です。RFC 6238準拠により、アプリ間の互換性も高く、実装コストも低い。ただし、スマートフォン紛失という現実的な課題に直面するため、バックアップコード管理と緊急対応フローの整備が不可欠です。
LOCKED MSO なら、OTP設定・リセット・監査をトータルに管理でき、デバイス紛失時も迅速に対応できます。
参考資料・外部リンク
関連記事
- SAML 2.0仕様書日本語詳解【RFC 7114準拠実装】
- Azure AD SAML連携完全手順【証明書管理までの全手順】
- パスワードレス認証で不正ログイン完全防止【実装ガイド】
- FIDO2認証完全実装ガイド【フィッシング耐性99%】
- SSOセキュリティ課題完全対策【トークンハイジャック・セッション固定攻撃防止】
LOCKEDの詳細を見る
シングルサインオン・認証管理でお悩みなら、LOCKEDの無料デモをお試しください。