パスワードの次に六桁のコードを求めるVPNクライアントにサインインすると、二つの問いかけは独立した二つの障壁に見えます。要素の種類で数えればそのとおりで、パスワードは知識、コードは所持です。一台の侵害されたノートPCが何を露呈するかで数えると、所持しているものは入力しているそのマシン上のファイルだからこそ、両者は一つの境界に崩れ落ちかねません。この二つの数え方の差が、この解説の主題です。

パスワード欄からコード欄までの一回のログインを追う

ラベルではなく順序を見てください。クライアントがパスワードを送り、サーバーが第二の証明が必要だと返し、クライアントが六桁または八桁の欄を開きます。その欄の背後には、共有秘密と時計を持つ生成器アプリがあります。秘密と現在の時間ステップから値を計算し、サーバーは秘密の自分の複製から同じ値を再計算します。

双方は同じ鍵素材を持っています。この対称性こそ、コードを秘密と呼ぶときに見落とされる部分であり、提供者もあなたのコードを生成できるため、シードは単一の出力よりも価値があります。漏れたコードは一度きりの値ですが、それを生んだシードは、置き換えられるまで有効な値を生み続ける恒久的な資格情報です。

有効化は流れのもう半分です。端末の暗証番号、生体認証の要求、または暗号化されたコンテナで解除する生成器は、所持の証明に何かもう一つを加えて提示します。暗号化なしで動き、OSのセッションで解除する生成器は、ファイルだけを提示します。同じアプリでも登録の仕方によって両方の構成を提供できるので、配備の判断はその手順にあり、アプリの販促ページにはありません。

コードが実際に何を証明するかを決める

標準の言葉づかいはここでは異例に明確で、直接読む価値があります。NISTの認証器ガイドラインは、ソフトウェアベースのOTP生成器を認証器として挙げ、活性化要素を伴う多要素OTPと単要素OTPを区別し、OTP認証はフィッシング耐性がないと述べています。この三つの条項のそれぞれが、問いかけについて何を主張できるかを変えます。

フィッシング耐性がないことが最も鋭い刃です。欄に入力されたコードは、現実の時間に、そうするよう説得された人によって、他人の欄に入力され得ます。窓は短く、有用な試行の数は減りますが、手法は閉じません。要件にそれへの耐性が含まれるなら、生成器がどこで動いていようとOTPは誤った基本要素です。

単要素か多要素かが第二の区別です。有効化の手順なしに現れるコードは、ファイルの所持を証明するだけで、ファイルはそれを読めるアカウントと同じ強さしかありません。有効化要素を加えれば主張は改善しますが、それでもログイン時に提示される証明を述べており、生成するマシンの分離を述べているのではありません。

侵害されたノートPCが何に届くかを見る

ワークステーションでコード実行を得た攻撃者は、あなたが入力している欄を読むことに限定されません。ログイン成功後に確立されるセッションは通常トークンかCookieで、トークンはコードなしで別のマシンから使えます。それが守ろうとしている能力なら、ログイン時の二つ目の問いかけは攻撃の手順数を変えるだけで、結果は変えません。

ArrangementWhat it adds at loginWhat it leaves inside the laptop boundary
Password plus TOTP app on the same machineA possession proof the password alone does not supplyThe seed, the unlock step and the authenticated session
TOTP app on a separate phoneSeed storage outside the workstationSession cookies, the typed password and any prompt that can be proxied
Hardware key with a signed challengeA per-login signature bound to the originWhatever the browser and the workstation are already trusted to do

三列目を正直な列として読んでください。上のどの構成も、セッションが使われるのがそこだからこそ、ワークステーションの信頼境界の内側に何かを残します。変わるのは、長寿命の秘密がその境界とともに移動するか外に留まるか、そして証明が特定のオリジンに結び付いて、似せたページが中継できないかどうかです。

小さな二つの詳細も同じ絵に属します。コードは受け入れ窓の間だけ有効で、多くの場合三十秒に加えて時計のずれの許容があり、捕捉された値は検証側が再利用を拒否しない限りその窓の中で再生できます。そして新しい生成器を導入しても、すでに認証済みのセッションは終了しないので、古いセッションはインシデントを封じ込めるはずだった資格情報の変更より長く生き残ります。

分離が助ける場所にだけ生成器を移す

コード生成器をスマートフォンに置くことは、盗まれたノートPCが二つの証明を併せ持たなくなるという一つの特定の故障には実際の改善です。しかしノートPC上のセッション乗っ取りには何の役にも立たず、フィッシングページにコードを入力する利用者にも、一度印刷してメモアプリに撮影された復旧コードにも役に立ちません。

だから道具を選ぶ前に要件を書いてください。目標が漏れたパスワードに対する追加の証明なら、そう明言すればよく、同じ端末のアプリがすでにそれを提供します。目標がVPNワークステーションの侵害への耐性なら、その攻撃者の能力を名指しし、それに対して評価された構成を選び、フィッシングの要件は前提にせず別に述べてください。

次に、これらがインシデントとの接触に耐えるかを決める運用の半分を扱ってください。端末の紛失には文書化された交換経路が必要で、資格情報の更新には有効なセッションの失効が必要で、登録材料にはシードと同じ保護が必要なのは、保護されていない登録の複製が同じ未来のコードをより短い経路で攻撃者に渡すからです。この四項目を列挙するほうが、同じ端末のトークンが有効か無価値かを論じるより役に立ちます。

関連記事