2010-09-06 5 views
24

Ich versuche herauszufinden, wie ein Replay-Angriffserkennungsmechanismus mit WCF in einem Webfarm-Szenario implementiert wird.Verwenden eines freigegebenen Cache in einer Webfarm-Umgebung zum Erkennen von Replay-Angriffen in WCF

WCF bietet einen solchen Erkennungsmechanismus mit einem Nonce-Cache. Korrigieren Sie mich, wenn ich falsch liege, aber die einzige Möglichkeit, diesen Angriff in einem Nachrichtensicherheits- und Webfarmszenario zu verhindern, besteht darin, einen Nonce-Cache zu verwenden, der auf allen Servern gemeinsam genutzt wird.

In WSE3.0, verwendet es möglich sein, zu schaffen nonce Cache benutzerdefinierte Implementierungen

http://msdn.microsoft.com/en-us/library/ff647945.aspx

aber es scheint nicht, eine Möglichkeit zu sein, so in WCF zu tun (keine Konfigurationsoptionen, neben Ich habe mit Reflector gefunden, dass die NonceCache-Klasse sowohl als versiegelt als auch intern markiert ist.)

Irgendwelche Gedanken?

+0

Für diejenigen, die daran interessiert sind, habe ich eine Antwort von jemandem von Microsoft hier http://social.msdn.microsoft.com/Forums/en-US/netfxnetcom/thread/09fe4fb3-425c-4726- 9959-b8c7131cbe8b? Prof = erforderlich – Javi

Antwort

1

Erstens gibt es keine Silberkugeln dafür. Jede Option hat ihre Nachteile. Microsoft empfiehlt one of two options:

  • Verwenden Sicherheit Nachrichtenmodus mit Stateful Sicherheitskontext-Token (mit oder ohne sichere Konversation aktiviert)
  • Konfigurieren Sie den Service Transport-Level-Security

verwenden Während Sie da Sicherung mit Transport-Level-Sicherheit schützt vor dem Mann in der Mitte Szenario schützt Sie nicht vor einem kompromittierten Client. In der Tat ist es keine robuste Lösung und stateful security context tokens ist der bessere Weg für die beiden. Dies erfordert einige Überlegungen bei der Entwicklung und Bereitstellung.

Wie ich in meiner früheren Antwort angegeben habe, gibt es keine Silberkugeln dafür. Mit den Einstellungen detectReplays, maxClockSkew, replayWindow und replayCacheSize können Sie eine weitere Option auswählen (die Sie möglicherweise bereits berücksichtigt haben). Obwohl ich mir nicht sicher bin, wie robust es in einem WebFarm-Szenario ist, sollte es angesichts der zugrunde liegenden Operation von WCF funktionieren. Hier ist eine kurze article that demonstrates it. Der Nachteil dieser Option ist, wenn Sie einen Client in einer anderen Zeitzone als den Server haben, erhalten Sie Fehler, wenn Ihre maxClockSkew nicht für die Zeitzone Unterschiede eingestellt ist.

+0

Die Tatsache, dass das STS-Token im Umschlag enthalten ist, hindert einen Angreifer nicht daran, Nachrichten an verschiedene Server in der Webfarm erneut abzuspielen, oder? – Javi

Verwandte Themen