ブログ

ブログ

二要素認証、TOTPのセキュリティ、オンラインアカウントを保護するためのベストプラクティスに関する記事。

TOTPの仕組み

RFC 6238 時間ベースワンタイムパスワードアルゴリズムのフロー

ステップ 1Base32

シークレットキー

ユーザーが認証リクエストを開始

JBSWY3DPEH...
ステップ 2Unix

Unix時間

起算秒数 1970-01-01

1741531200
ステップ 3T = t / 30

時間カウンタ (T)

30秒間隔

58051040
ステップ 4HMAC-SHA

HMAC-SHA Hash

HMAC(秘密鍵, カウンタ)

160-bit digest
ステップ 5有効期間 30秒

動的切り捨て

482901

& 6桁コード出力

RFC 6238TOTP = HOTP(SecretKey, ⌊(CurrentTime − T0) / TimeStep⌋)
T0 = 0 (Unix Epoch)•TimeStep = 30s

TOTPアルゴリズムは、共有シークレットキーと、時間ステップ(通常30秒)で割った現在のUnixタイムスタンプを組み合わせます。この値をHMAC-SHA-1、SHA-256、またはSHA-512でハッシュ化し、動的切り捨て(Dynamic Truncation)によって6桁または8桁のコードを生成します。コードは30秒ごとに自動更新されます。

TOTPアルゴリズムの比較

TOTP実装で使用されるハッシュ関数の比較

アルゴリズムハッシュビット数セキュリティ速度使用例
SHA-1HMAC-SHA-1160標準最速一般向け
SHA-256HMAC-SHA-256256強化高速ビジネス向け
SHA-512HMAC-SHA-512512最大中程度高セキュリティ

TOTP設定ガイド

認証アプリを使用してアカウントを安全に保護するための手順

ステップアクション詳細
1認証アプリをインストールGoogle Authenticator、Authy、またはMicrosoft Authenticatorをダウンロード
2サービスで2FAを有効化[Launch Generator ↑]アカウント設定で2段階認証をオンに
3QRコードをスキャンアプリでQRコードをスキャンしてシークレットを保存
4TOTPコードを生成[Save in Vault ↑]ログイン時にTOTPコードを入力
5バックアップを保存シークレットキーを安全な場所にバックアップ

ニュースレター

最新のTOTP関連情報をお届けします