Skip to content
Latchkey

ワンタイムパスワードとは?一度だけ使えるコード

ワンタイムパスワード (OTP) は、一度の使用または短い時間枠でのみ有効な短いコードであるため、後で捕捉しても無意味です。

ワンタイムパスワード、すなわちOTPは、一度使ったら破棄されるように設計された資格情報です。ほぼ即座に失効するため、古いOTPを傍受した攻撃者は何も得られません。OTPは認証アプリから得られるコードであり、日々のログインにおいて多要素認証を実用的にする2つ目の要素です。

OTPの生成方法

  • TOTP: 時刻ベースで、共有シークレットと現在の時計から導出されます。
  • HOTP: カウンターベースで、共有シークレットと増加するカウンターから導出されます。
  • どちらも、変化し素早く失効する短いコードを生成します。

一度きりであることが重要な理由

再利用可能なパスワードは、変更されるまで永遠に捕捉され再生されうります。OTPは一度の使用または約30秒間有効なので、盗まれたコードはほぼ即座に無価値になります。その短い時間枠こそが要点です。

TOTPの内部

時刻ベースのOTPは、セットアップ時に共有されたシークレットと現在の時刻を組み合わせ、ハッシュ化して6桁のコードを生成し、両者が独立して計算します。事前にコードがネットワークを流れることはなく、これが認証アプリがオフラインで機能する理由です。

OTPとCI/CD

OTPは、パイプラインの背後にある人間のアカウントを保護します。特にソースホストやクラウドコンソールにおけるMFAの2つ目の要素としてです。自動化されたパイプラインはOTPを入力できないため、マシンアクセスは代わりにスコープ付きトークンとOIDCを使用します。

限界とリスク

SMSで配信されるOTPはフィッシングや傍受の対象になりえます。アプリで生成されるTOTPはより強力ですが、それでも巧妙なフィッシングページによってリアルタイムで中継される可能性があります。ハードウェアセキュリティキーは、単にコードを生成するのではなく本物のサイトを検証するため、これを回避します。

OTPがスタック内で占める位置

OTPは人向けの使い捨ての2つ目の要素だと考えてください。それは、パイプラインがサービスに認証するためにエフェメラルなrunner (Latchkeyのマネージドrunnerなど) で使用する、短命でスコープ付きの資格情報の代替にはなりません。

重要なポイント

  • OTPは一度の使用または短い時間枠で有効であり、捕捉されたコードの再生を防ぎます。
  • TOTPは時刻ベース、HOTPはカウンターベースで、どちらも共有シークレットを使用します。
  • OTPは人間の2つ目の要素です。パイプラインは代わりにスコープ付きトークンを使用します。

関連ガイド