TOTPとHOTP
時間ベースのワンタイムパスワード
「TOTPとHOTP」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
ワンタイムパスワード
ワンタイムパスワード(OTP)とは、1回のログインまたは短い期間だけ有効なコードです。
これを生成する標準的なアルゴリズムには、HOTPとTOTPの2つがあります。
共有シークレット
どちらのアルゴリズムも、サーバーと認証アプリだけが知っている共有シークレットから始まります。
通常、セットアップ時にQRコードとして配布され、双方に保存されます。
HOTP:カウンターベース
HOTP(HMACベースのOTP)は、共有シークレットとカウンターをHMACで組み合わせ、その結果を短い数字コードに切り詰めます。
カウンターは、コードを生成するたびに1ずつ増加します。
HOTP = Truncate( HMAC-SHA1(secret, counter) )TOTP:時間ベース
TOTP(時間ベースのOTP)は、カウンターとして現在時刻を固定長のステップで割った値を使うHOTPです(通常は30秒単位です)。
時間は常に進むため、手動のカウンターを追跡しなくても双方の状態を同期できます。
T = floor( (current_unix_time) / 30 )
TOTP = Truncate( HMAC-SHA1(secret, T) )30秒のウィンドウ
TOTPコードは通常、30秒ごとに変わります。有効期間が短いため、盗まれたコードが使える時間を制限できます。
そのため、認証アプリにはカウントダウンバーが表示されます。
クロックスキューの許容範囲
端末の時計にはわずかなずれが生じます。有効なコードが拒否されないよう、サーバーは現在のウィンドウの前後1ステップにあるコードを受け入れます。
ウィンドウを広げすぎるとセキュリティが弱くなるため、狭く保ちます。
HOTPの同期
生成されたコードが使われないと、HOTPの状態がずれることがあります(端末ではカウンターが進みますが、サーバーでは進まないためです)。
サーバーは再同期のために小さな先読みウィンドウを許可しますが、大きなずれには手動での再同期が必要です。
otpauth URI
QRコードには、シークレットとパラメーターを記述したotpauth URIがエンコードされています。
otpauth://totp/Example:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Example&period=30TOTPが主流になった理由
TOTPがHOTPよりはるかに一般的なのは、次の理由によります。
- ずれたり再同期したりするカウンターが不要です。
- コードが自然に期限切れになります。
- オフラインで動作し、コードの生成にネットワークを必要としません。
長所と限界
TOTPはパスワードだけの場合に比べて大きな進歩ですが、依然としてフィッシングされやすいという問題があります。偽サイトによって、ユーザーが有効なコードを入力するよう誘導される可能性があるためです。
ハードウェアキーは、次のレッスンで扱うように、この攻撃に耐性があります。
バックアップと復旧
シークレットを保持している端末を失うと、アカウントから締め出される可能性があります。適切な対策は次のとおりです。
- セットアップ時に発行されたリカバリーコードを保存します。
- シークレットを安全にバックアップするか、2つ目の認証アプリを登録します。
クイックチェック
HOTPとTOTPの主な違いは何ですか?
振り返り
OTPアルゴリズムの仕組みについて学びました。
- どちらも共有秘密とHMACを基盤としています。
- HOTPはカウンターを使用し、TOTPは時間を使用します。
- TOTPコードは約30秒で有効期限が切れますが、フィッシングには弱いままです。
- リカバリーコードを保管しておきます。
次は、プッシュ承認とハードウェアキーについて見ていきます。
AI チューターと学ぶ Cyber Security Academy — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 76
- レッスン
- 303
よくある質問
「TOTPとHOTP」レッスンは無料ですか?
はい。「TOTPとHOTP」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「TOTPとHOTP」で何を学びますか?
時間ベースのワンタイムパスワード ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「TOTPとHOTP」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 認証要素
- TOTPとHOTP
- プッシュ認証とハードウェアキー
- MFAバイパスのリスク