6

暗号化されたデータを Bluetooth デバイスに送信し、この Bluetooth デバイスがデータをサーバーに送信するモバイル アプリケーションを開発ます。私の質問は、この場合、リプレイ攻撃を防ぐにはどうすればよいかということです。誰かが偽の Bluetooth デバイスを使用して信号を取得し、サーバーに送信する可能性があります。

  • モバイル アプリケーションはオフライン モードで動作し、サーバーには接続されません。したがって、同期ナンスまたはカウンターを使用しても役に立ちません。

  • 携帯電話の時刻が正しくない (タイム サーバーと同期している) 可能性があるため、タイムスタンプを使用して攻撃ウィンドウを狭めることもできません。

  • モバイル アプリケーションとBluetoothデバイス間の通信は一方向であり、モバイル アプリケーションはデバイスにデータを送信することしかできません。

4

1 に答える 1

3

これを行う 1 つの方法は、カウンターを使用することですが、多数のステップをスキップできるようにします。たとえば、電話 A から見た最後のカウンター値が 123 で、カウンター値が 156 の何かを取得した場合、それを受け入れますが、[124, 1000123] の範囲外のものはすべて破棄します (1000000 は完全に任意であり、ユースケースによって異なります)。

これにより、リプレイ攻撃を防ぐことができますが、送信が順応性を持たないように注意する必要があります。そうしないと、カウンター番号を偽造するのが簡単になります. これは、デバイスの MAC キーごとにシークレットを持つことで実現できます (これは、サーバーと電話が事前に通信している場合にのみ可能です)。

トランザクションが認証されるのは良いことです (電話 A からのものであるというメッセージを生成する機能を持っているのは電話 A だけです)。そうしないと、攻撃者が非常に迅速にカウンターを上って、電話 A でサービス拒否を行う可能性があります。 . しかし、質問の言い方からすると、すでに対処済みのように聞こえます。

于 2014-04-08T08:16:01.510 に答える