ワンタイムパスワードとは?一度だけ使えるコード
ワンタイムパスワード (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つ目の要素です。パイプラインは代わりにスコープ付きトークンを使用します。