シナリオは次のとおりです。クライアントが暗号化されたデータをサーバーに送信し、サーバーがクライアントデータに基づいてルーチンを実行するクライアントサーバーアプリケーションがあります。誰かが送信されたデータを盗聴してサーバーに再送信し、サーバーがコマンドを実行し、許可されていない人に機密データへのアクセスを許可したり、ログインを許可したりするのを防ぐにはどうすればよいですか?
質問する
101 次
2 に答える
2
コマンドを送信する前に、クライアントにサーバーからナンス(1回だけ使用される番号)を取得するように要求します。ナンスがクライアントに送信された後、あなたが最後に与えたナンスを含まないそのクライアントからのコマンドは明らかに偽造です。誰かがナンスを盗聴したとしても、自分のメッセージを作成するために必要な暗号化キーを知らないため、それを使用することはできません。また、同じ誰かが古いリクエストを再利用することはできません。現在アクティブなナンス。
編集:明らかに、余分なラウンドトリップを回避するために、クライアントでナンスを生成するためにさまざまなスマートな方法を使用できますが、それは難しいでしょう。
于 2012-06-04T08:23:51.970 に答える
0
ナンスをリクエストに含めて、すでに表示されているナンスを再利用するリクエストを拒否することができます。
于 2012-06-04T08:22:58.990 に答える