TOTP検証ツール

Base32のシークレットに対して、現在または指定した時刻でTOTPコードが有効かを確認。実際の2FAサーバーと同様に、±ステップの許容範囲を調整できます。

2FA 設定時にサービスが表示するキーです。スペースや小文字が含まれていても構いません。

現在のステップの前後 ± ステップ数。既定の周期では 1 = ±30 秒。

空欄なら現在時刻を使います。

サーバーと同じく、まず現在のステップ、次に許容範囲までの前後のステップを確認します。実際のサーバーでは使用済みのコードも拒否する必要があります。

すべてブラウザ内で実行されます。データがアップロードされることはありません。

TOTP検証ツールとは?

シークレットとコードを入力すると、そのコードが現在、または指定した時刻で有効かどうかを、認証サーバーと同じ時計ずれの許容範囲で確認できます。結果には一致した時間ステップが表示され、時計の問題の診断に役立ちます。

TOTP検証ツールの使い方

  1. シークレットキー(Base32)を貼り付けます。
  2. 確認するコードを入力します。
  3. アルゴリズム、桁数、Period、許容するずれ(ステップ数)を設定します。必要ならUnix timeも指定します。
  4. 検証をクリックして結果を確認します。

例

入力
Secret GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ, 8 digits, Unix time 89, code 94287082, drift 1
出力
Valid: the code matches time step -1 (clock drift).

TOTP検証ツールを使うべき場面

失敗する2FAログインのデバッグ、実装の許容範囲のテスト、ハードウェアトークンのコードの確認に使います。実際のサーバーは、さらに一度使用されたコードを拒否する必要があります。

TOTP検証ツールの仕組み

まず現在のステップ T = floor(時間 / 周期) を確認し、次にT−1、T+1、T−2…と許容するずれの範囲まで確認します。各ステップのコードはRFC 4226/6238に従ってHMACで計算され、入力されたコードと比較されます。一致した場合はそのオフセットが報告されます。たとえば前の30秒の枠のコードなら−1です。

一般的な使用例

  • 時計のずれが原因の2FAログイン失敗の診断
  • TOTP実装の受け入れ範囲のテスト
  • ハードウェアトークンのコードの検証
  • TOTP検証の仕組みの説明

よくある質問

サーバーはどのくらいのずれを許容すべきですか?

RFC 6238は、ネットワーク遅延のために最大1ステップ前までを推奨しています。多くのサーバーは±1ステップ(±30秒)を受け付けます。

有効なコードがログイン後に拒否されるのはなぜですか?

リプレイ攻撃を防ぐため、サーバーは使用済みのコードを記憶し、再度の使用を拒否する必要があるからです。

ここでHOTPのコードを検証できますか?

いいえ。HOTPジェネレーターを使い、想定するカウンター値のコードと比較してください。

他のカテゴリを見る