私の質問は、U2Fプロトコル、より正確にはクローン検出についてです。ドキュメントによると:
"2Fトークンが複製される可能性がある場合は、それを検出する方法も必要です。これは、操作カウンターを持つことで実行できます。暗号化操作が実行されるたびに、カウンターは1ずつ増加します。カウンターの値は署名され、応答の一部として証明書利用者へ送信されます。証明書利用者は、カウンターの値をデータベースに保存します。将来の認証応答のカウンター値が証明書利用者によって保存されたカウンター値よりも小さい場合、その後、トークンが複製され、依存パーティは認証リクエストを拒否する必要があります。たとえば、トークンの以降の認証試行をブロックするなど、イベントの発生を記録したり、ユーザーを保護するために必要なアクションを実行したりする必要があります。 」
将来の認証応答のカウンター値が、証明書利用者によって保存されたカウンター値よりも小さくなるのはなぜですか?攻撃者がデバイスを複製した場合、攻撃者は元のデバイスに保存されている現在のカウンター値にアクセスできますか?次に、証明書利用者のデータベースに格納されているカウンターよりも大きいカウンター値を送信することができ、デバイスは侵害されたとマークされません。
私は確かに間違っていますが、ただ疑問に思っています。
よろしくお願いします!
シナリオをプロットしてみましょう:
T = 1 Authenticate Real, Counter = 20
T = 2 Device is cloned into Real / Dup
T = 3 Authenticate Real, Counter = 21
T = 4 Authenticate Dup, Counter = 21
サーバーは同じカウンターを2回見たので、明らかに複製されました。
攻撃者は依存パーティのデータベースに保存されているカウンターよりも大きいカウンター値を送信する可能性があります
では、これを試してみましょう。カウンターに1000を加えます。
T = 1 Authenticate Real, Counter = 20
T = 2 Device is cloned into Real / Dup
T = 3 Authenticate Real, Counter = 21
T = 4 Authenticate Dup, Counter = 1021
元気そう...
T = 5 Authenticate Real, Counter = 22
ええと-22は1021未満です-現在、実際のキーは拒否されており、ユーザーは何か問題があることを認識しています。