問題タブ [replay]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wcf - 実世界の負荷分散された WCF サービスをリプレイ攻撃から保護する方法
Web サービスのセキュリティを向上させるために新しい WCF サービス エンドポイントを作成している間、リプレイ攻撃を防ぐ方法を検討し始めました。一見すると、これは簡単です。WCF には "DetectReplays" フラグがあり、これをオンにすると、すべてが並べ替えられます。ただし、使用中のメカニズム (メモリ内ナンス キャッシングと重複拒否) を簡単に理解しただけでも、これが実際の実装ではないことがわかります。率直に言って、彼らがそれを実装することはまったく不可解です。このレベルのセキュリティを十分に気にかけている人は、Web ファームで複数のサーバーを実行することになり、その結果、このメカニズムは N がサーバーの数である N 攻撃を許可します。したがって、トラフィックの急増に対処するために必要なスケーリングが無効になり、サーバーが圧倒される可能性があります。create 呼び出しの重複が引き起こす混乱は言うまでもありません。
スティッキー セッションをオンにすることもできますが、それはまったく別の問題なので、そうしないでください。
さらに調査すると、Microsoft 自身がこの問題を認識していることが示されています 。 Web ファームでホスト されている Microsoft の基準でさえ、これは簡潔で、まったく役に立ちません。彼らは問題を認識し、解決策が存在することを示し、それを実装する方法に関する最も基本的なヒントのみを提供します。
グーグルで調べてみると、その使い方について誰も書いていないことがわかりました。ソースコードを調べてみると、デフォルト機能を提供するために、インメモリ実装でこのメカニズムを内部的に使用していることがわかります。これを SecurityProtocolFactory で使用し、何も指定されていない場合は NonceCache をメモリ内バージョンに設定します。しかし、WCF で SecurityProtocolFactory をどのようにセットアップして使用するのでしょうか?
多くの人がリプレイ攻撃について心配する必要はないという反応を示すことはわかっています。しかし、これはもはや真実ではありません。驚くべきことに、TLS のバージョン 1.3 に対する一部の最適化により、この機能が静かに削除されたようです。https://blog.cloudflare.com/introducing-0-rtt/を参照してください
質問は次のとおりです。
- 私はこれを考えすぎていますか、それは本当に問題ですか?
- Microsoft の実装を実際に機能させた人はいますか? もしそうなら、どのように!?
- 他のみんなは何をしているの?誰もが TLS 1.3 の問題を認識せずに、この問題を無視しているのでしょうか?
localclientsecurity 設定で NonceCache 変数を設定しようとしましたが、影響はありません。