Time based One Time Passwords (TOTP) とは何ですか?
Time based One Time Passwords (TOTP) は、短時間で期限切れになるコードを発行してログインを確認する方法です。携帯とサービス側は共有されたシークレットと現在時刻をそれぞれ参照するため、同じ6桁のコードに独立して到達します。見ている間に変わるロッカーの暗証番号を想像してください。それだけシンプルです。
TOTPは携帯の電波がないと動かない。いいえ。アプリは端末内で時間と共有シークレットを使ってコードを作るため、機内モードでも動作します。
Time based One Time Passwords (TOTP) の仕組み
取引所やウォレットのログインで有効にしたときの流れは次の通りです。
- 開始: セキュリティ設定で認証アプリのオプションを選び、QRコードをスキャンします。
- シークレット: アプリは共有シードを保存します。しばしば秘密鍵と呼ばれ、端末とサービスを結びつけます。
- 同期: 両側が短い時間区切りで同じ時刻を読み、標準的な計算を行って6桁のコードを作ります。
- 入力: サインイン時にタイマーが切れる前にコードを入力します。
- 検証: サービス側が同じ計算でコードを確認し、一致すればログインを許可します。
これだけです。
Time based One Time Passwords (TOTP) が重要な理由
ポイントを簡単にまとめると:
- 利点: パスワードが知られていても、多くのアカウント乗っ取りを防げます。
- 観点: SMSコードはSIM乗っ取りなどで弱くなることがあるため、TOTPはより強い二段階目になります。ほとんどのサービスは認証アプリで二要素認証 2FAを有効にできます。
- 関連性: 取引所、NFTマーケット、DeFiダッシュボード、カストディポータルなどで出会います。
設定時にシードを書き留めるか安全に保管し、携帯の時計は自動更新のままにしておきましょう。シードを失うと時間ずれでログインできなくなります。
Time based One Time Passwords (TOTP) の主な特徴
覚えておくべき点:
- 有効期限: コードは約30秒で期限切れになり、その後変わります。
- オフライン: 一度設定すれば、アプリはインターネットなしでコードを生成します。
- 共有: 両側は設定時に保存された同じシークレットに依存します。
- 公開: 公開されたRFCに基づいているため、多くのアプリが対応しています。
Time based One Time Passwords (TOTP) はどのように計算されるか
内部では、TOTPは時間を入力とする一方向関数を使います。手作業は不要ですが、考え方は次の通りです:
TOTP code = Truncate(HMAC SHA 1(secret, counter)) mod 10^digits counter = floor(unix time in seconds divided by step) step = 30 and digits = 6 in most apps バリエーション
主な種類:
- HOTP: 使用ごとに進むカウンタベースのコードで、時刻には依存しません。
- プッシュ: 承認を求めるアプリの通知で、コード入力が不要なTOTPの親戚です。
- ハードウェア: 画面やキーフォブにコードを表示する小さなトークンです。
- マルチ: 多数のアカウントを保存し、復旧用のバックアップオプションを持つアプリです。
偽サイトに有効なコードを入力してしまうとTOTPでも防げません。フィッシングのリスクに注意し、確認する前に必ずアドレスバーをチェックしてください。
例
暗号資産取引所にログインし、パスワードを入力した後、認証アプリを開いて30秒で期限切れになる6桁のTime based One Time Passwords (TOTP) を入力します。
豆知識
TOTPはOATHコミュニティによってRFC 6238で標準化され、Google Authenticatorなど多くのアプリの裏側で静かに支えています。ログインコードの基盤となる仕組みです。
まとめ
TOTPは時間同期された小さな鍵と考えれば、ログインを盗まれにくくしつつ使いやすさも保てます。
