🔢

OTP コードジェネレーターと検証器

OTP コードジェネレーターと検証器

設定
OTP タイプ:
TOTP(時間ベース)
アルゴリズム:
SHA1
桁数:
時間周期(秒) (TOTP):
シークレット:
生成
検証
コード入力:

OTPとは

ワンタイムパスワード(OTP)は、単一のログインセッションまたはトランザクションに対してのみ有効な自動生成された一時的なパスワードです。静的パスワードとは異なり、OTPは再利用できず、フィッシング、キーロガー、リプレイ攻撃に対する保護を提供します。最も一般的な実装は、現在時刻に基づいてコードを生成するTOTPと、同期されたカウンターを使用するHOTPです。OTPは暗号化ハッシュ関数(HMAC)と共有秘密鍵を使用して生成され、銀行、クラウドサービス、エンタープライズアプリケーションにおける2段階認証の基礎となっています。

機能

TOTP サポート

30秒後に自動的に期限切れになる時間ベースの OTP コードを生成し、アカウントに安全な二要素認証を提供
🔢

HOTP サポート

使用ごとに増加するカウンターベースの OTP コードを作成、オフライン認証とハードウェアトークン実装に最適
🔒

複数のアルゴリズム

SHA-1、SHA-256、SHA-512 アルゴリズムをサポート、コード長(6-8桁)を設定可能で、柔軟なセキュリティ要件に対応

コード検証

生成されたコードとユーザー入力を比較して OTP コードを即座に検証、時間ウィンドウ許容とカウンター同期をサポート

📋使用ガイド

1️⃣
パラメータ設定
OTP タイプ(TOTP/HOTP)、アルゴリズム(SHA-1/SHA-256/SHA-512)、コード長(6-8桁)を選択し、秘密鍵を入力。
2️⃣
コード生成
「コードを生成」をクリックして OTP を作成。TOTP コードは30秒ごとに自動更新、HOTP は手動でカウンター増加が必要。
3️⃣
コード検証
秘密鍵と検証するコードを入力し、「コードを検証」をクリックして期待値と一致するか確認。

📚技術紹介

🔐OTP コードとは

ワンタイムパスワード(OTP)コードは、システムやサービスへの安全なアクセスを提供する一時的な認証トークンです。暗号化アルゴリズムと共有秘密鍵を使用して生成され、各コードが一意で時間制限されていることを保証します。OTP コードは二要素認証(2FA)、多要素認証(MFA)、安全なログインシステムで広く使用されています。主な2つのタイプは TOTP(時間ベース OTP)と HOTP(HMAC ベース OTP)で、それぞれ特定のユースケースとセキュリティ特性があります。

TOTP(時間ベース OTP)実装

TOTP は現在のタイムスタンプと共有秘密鍵に基づいてコードを生成します。アルゴリズムは HMAC-SHA1、HMAC-SHA256、または HMAC-SHA512 を使用して、現在の時間ウィンドウ(通常30秒)と秘密鍵の組み合わせのハッシュを作成します。生成されたハッシュは切り詰められ、数値コードに変換されます。TOTP コードはサーバーのクロックと同期され、時間ウィンドウ後に自動的に期限切れになり、リプレイ攻撃に対する強力な保護を提供し、コードが短期間のみ有効であることを保証します。

🔢HOTP(HMAC ベース OTP)実装

HOTP は増加するカウンターと共有秘密鍵を使用してコードを生成します。アルゴリズムはカウンター値と秘密鍵に HMAC-SHA1 を適用し、結果を切り詰めて数値コードを作成します。HOTP コードが使用されるたびにカウンターが増加し、次のコードが異なることを保証します。HOTP は時間同期が困難な可能性があるオフラインシナリオに便利ですが、クライアントとサーバー間の非同期を防ぐために慎重なカウンター管理が必要です。

🛡️セキュリティと検証

OTP セキュリティは共有鍵の秘密性と HMAC アルゴリズムの暗号強度に依存します。秘密鍵は暗号的に安全な乱数生成器を使用して生成し、安全に保存する必要があります。検証には、同じアルゴリズムとパラメータを使用して期待される OTP コードを再計算し、提供されたコードと比較することが含まれます。高度な検証には、TOTP の時間ウィンドウ許容、HOTP のカウンター同期、およびレート制限とアカウントロックアウトメカニズムによるブルートフォース攻撃からの保護が含まれます。

よくある質問

TOTPとHOTPの違いは何ですか?

TOTP(時間ベースOTP)は現在時刻を使用してコードを生成し、通常30秒ごとに自動的に変更されます。HOTP(カウンターベースOTP)はカウンターを使用し、コードを生成するたびに手動で増やす必要があります。TOTPはほとんどの2FAアプリで使用され、HOTPはハードウェアトークンやオフラインシナリオに適しています。
💬

秘密鍵はどこで入手しますか?

秘密鍵は通常、2FAを有効にするときにサービスから提供されます。QRコードとして表示されるか、Base32でエンコードされた文字列として提供される場合があります。開発とテストの目的では、ランダムなBase32文字列を生成できますが、本番環境ではサービスから提供された秘密鍵を使用する必要があります。
🔍

どのアルゴリズムを選択すべきですか?

SHA-1は最も広くサポートされているアルゴリズムで、ほとんどの2FAシステムと互換性があります。SHA-256とSHA-512はより強力なセキュリティを提供しますが、一部の古いシステムではサポートされていない場合があります。特定の要件がない限り、SHA-1から始めることをお勧めします。
💡

生成されたコードがGoogle Authenticatorと一致しないのはなぜですか?

最も一般的な理由は、クロック同期の問題です。TOTPは正確な時刻に依存するため、デバイスとサーバーのクロックが同期している必要があります。また、秘密鍵、アルゴリズム(SHA-1)、桁数(6)、期間(30秒)が正確に一致していることを確認してください。
📚

このツールは本番環境で安全に使用できますか?

このツールは教育およびテスト目的で提供されています。本番環境では、検証済みのOTPライブラリ(例:speakeasy、otplib)を使用し、秘密鍵を安全に保存してください(環境変数、シークレット管理システム)。ブラウザコンソールやログで秘密鍵を公開しないでください。

💡使用方法

1️⃣

2FAシステムのテスト

アプリケーションに2FAを実装する際、このツールを使用してOTP生成と検証ロジックをテストします。秘密鍵を入力し、コードを生成してから、検証機能で確認します。
2️⃣

認証アプリとの同期を確認

サーバー側のOTP実装がGoogle Authenticator、2FAアプリ、または他の認証アプリと一致することを確認します。同じ秘密鍵でコードを生成し、両方の出力を比較します。
3️⃣

時間ウィンドウのテスト

TOTP時間ウィンドウの許容範囲をテストします。異なる時間帯でコードを生成して検証し、実装がクロックドリフトを正しく処理することを確認します。
4️⃣

アルゴリズムの比較

異なるアルゴリズム(SHA-1、SHA-256、SHA-512)でコードを生成して、その違いを理解します。各アルゴリズムが同じ秘密鍵で異なるコードを生成することを確認します。
5️⃣

HOTPカウンター管理

HOTP実装の場合、カウンター同期をテストします。カウンターを増やしながら複数のコードを生成し、シーケンスが期待どおりに機能することを確認します。

User Comments

0 / 2000
Loading...