TOTP(Time-based One-time Password)概要

TOTP(Time-based One-time Password)

概要

TOTP(Time-based One-time Password)とは、時刻同期に基づき生成される使い捨てのパスワードです。一定時間(通常は30秒または60秒)ごとに新しいパスワードが生成され、従来の静的なパスワードに加えて、より安全な認証方式として利用されます。RFC 6238で標準化されています。

特徴

  • 時間同期: 現在時刻に基づいてパスワードが生成されるため、有効時間が短い(通常30秒または60秒)。
  • アルゴリズム: HMAC-SHA-1などのハッシュ関数を利用したアルゴリズムで生成される。
  • シークレットキー: サービス提供者と利用者の間で共有される秘密鍵(シード値)が必要。
  • オフライン生成: 一度秘密鍵を設定すれば、ネットワーク接続がない環境でもパスワードを生成可能。
  • 利便性: 専用の認証アプリやハードウェアトークンで簡単に利用できる。

分類

TOTP自体に厳密な分類はありませんが、利用するデバイスや形式によって区別できます。

  • ソフトウェアトークン(認証アプリ): スマートフォンやPCのアプリケーションとして実装される。
  • ハードウェアトークン: 物理的なデバイスとして提供される。
  • 組み込み型: 他のアプリケーションやサービスに組み込まれた形式。

上位概念・下位概念

  • 上位概念:
    • 多要素認証 (MFA - Multi-Factor Authentication): 複数の認証要素を組み合わせることでセキュリティを向上させる認証方式。TOTPはMFAにおける「所持要素」(何かを持っている)または「生体要素」(ソフトウェアトークン利用時)として利用されることがあります。
    • 二段階認証 (2FA - Two-Factor Authentication): 2種類の異なる認証要素を組み合わせる認証方式。TOTPはパスワード(知識要素)と組み合わせて利用されることが多いです。
    • ワンタイムパスワード (OTP - One-Time Password): 一度しか利用できないパスワードの総称。TOTPはOTPの一種です。
  • 下位概念:
    • HOTP (HMAC-based One-time Password): イベント同期型ワンタイムパスワード。TOTPとは異なり、特定のイベント(ボタンを押すなど)が発生するたびに新しいパスワードが生成されます。

メリット

  • 高いセキュリティ: 一度しか使えないため、パスワードが漏洩しても不正利用のリスクが低い。
  • 利便性: スマートフォンアプリなどで容易に利用できる。
  • オフライン利用: 一度設定すれば、ネットワーク接続がない環境でも利用可能。
  • 導入コスト: ソフトウェアトークンであれば、追加のハードウェアコストが不要な場合が多い。
  • 標準化: RFCで標準化されており、多くのサービスで採用されている。

デメリット

  • 初期設定の手間: サービスごとに秘密鍵の設定が必要。
  • 時刻同期の依存: デバイスとサーバーの時刻が大きくずれると認証に失敗する可能性がある。
  • デバイス紛失・故障のリスク: ソフトウェアトークンを利用している場合、デバイスを紛失・故障すると一時的に認証できなくなる。
  • フィッシング詐欺への耐性: パスワードを入力するプロセスがあるため、巧妙なフィッシング詐欺には注意が必要。
  • バッテリー切れのリスク: ソフトウェアトークンを利用している場合、デバイスのバッテリー切れで利用できなくなる可能性がある。

既存との比較

比較項目 静的パスワード TOTP(時間同期型ワンタイムパスワード) SMS認証(ワンタイムパスワード) 生体認証(指紋、顔認証など)
セキュリティ強度 低い(使い回し、推測のリスク) 高い(有効期限が短く、一度しか使えない) 中程度(通信経路の傍受リスク、SIMスワップリスク) 高い(固有の生体情報に基づく)
利便性 高い(覚えやすい) 中程度(アプリの起動や入力が必要) 高い(SMSを受信するだけ) 高い(デバイスによってはスムーズ)
オフライン利用 可能 可能(初期設定後) 不可(SMS受信が必要) 可能(デバイスに情報が保存されている場合)
導入コスト 低い 低い(ソフトウェアトークン)~中程度(ハードウェアトークン) 低い 中程度~高い(デバイスにセンサーが必要)
フィッシング耐性 低い 比較的高い 中程度 高い(認証プロセスが異なる)
依存性 なし デバイスの時刻同期、秘密鍵の管理 携帯電話回線 デバイスのセンサー、生体情報の登録

競合(代替技術)

厳密な競合というより、多要素認証を実現するための代替技術として以下のようなものが挙げられます。

  • SMS認証(ワンタイムパスワード): 携帯電話番号宛にSMSで送信されるワンタイムパスワード。
  • 生体認証: 指紋認証、顔認証、虹彩認証など。
  • プッシュ通知認証: スマートフォンアプリにプッシュ通知を送信し、承認する方式。
  • FIDO(Fast IDentity Online): 公開鍵暗号方式を用いたより安全な認証規格。

導入ポイント

  • 利用者のリテラシー: 利用者がTOTPの仕組みや利用方法を理解しやすいように、丁寧な説明やサポート体制を整える。
  • 秘密鍵の安全な管理: 秘密鍵の漏洩はセキュリティ低下に直結するため、安全な管理方法を周知する。
  • リカバリー方法の提供: デバイス紛失や故障時のリカバリー方法(バックアップコードなど)を用意する。
  • 時刻同期の重要性の周知: デバイスの時刻設定が正確であることを利用者に促す。
  • 複数の選択肢の提供: 必要に応じて、TOTP以外の認証方式(SMS認証など)も提供することを検討する。
  • ユーザーインターフェースの設計: 認証アプリの使いやすさや、設定手順の分かりやすさを考慮する。

注意点

  • 秘密鍵のバックアップ: 秘密鍵を紛失した場合に備え、バックアップコードなどを安全な場所に保管するように利用者に促す。
  • フィッシング詐欺への注意喚起: TOTPの入力画面を偽装したフィッシング詐欺に注意するよう利用者に周知する。
  • デバイスのセキュリティ: 利用者のデバイス(スマートフォンなど)自体のセキュリティ対策(パスワードロックなど)も重要となる。
  • 時刻ずれへの対応: サーバー側の時刻同期を正確に行うとともに、利用者側の時刻ずれによるトラブルシューティング方法を提供する。

今後

  • より簡便な利用方法の登場: 生体認証との連携など、よりユーザーフレンドリーなTOTPの利用方法が開発される可能性。
  • FIDOとの連携強化: より安全な認証方式であるFIDOとの連携が進むことで、TOTPのセキュリティがさらに向上する可能性。
  • 多様なデバイスへの対応: スマートウォッチなど、より多様なデバイスでTOTPが利用できるようになる可能性。
  • リスクベース認証との組み合わせ: 通常とは異なる挙動を検知した場合にのみTOTPを要求するなど、リスクベース認証と組み合わせることで利便性とセキュリティのバランスが向上する可能性。

関連キーワード

  • 多要素認証 (MFA)
  • 二段階認証 (2FA)
  • ワンタイムパスワード (OTP)
  • HOTP (HMAC-based One-time Password)
  • 認証アプリ
  • ハードウェアトークン
  • 秘密鍵(シード値)
  • RFC 6238
  • 時刻同期
  • セキュリティトークン
  • 生体認証
  • FIDO (Fast IDentity Online)
  • プッシュ通知認証
  • SMS認証