Prevenzione degli attacchi di tipo "replay" quando un servizio WCF è ospitato in una Web farmPreventing Replay Attacks When a WCF Service is Hosted in a Web Farm

Quando si utilizza la sicurezza dei messaggi. in WCF si impediscono attacchi di tipo replay creando un parametro NONCE in base al messaggio in arrivo e controllando l'oggetto InMemoryNonceCache interno per verificare se il parametro NONCE generato è presente.When using message security WCF prevents replay attacks by creating a NONCE out of the incoming message and checking the internal InMemoryNonceCache to see if the generated NONCE is present. In tal caso, il messaggio viene rimosso come di tipo replay.If it is, the message is discarded as a replay. Quando un servizio WCF viene ospitato in una Web farm, poiché InMemoryNonceCache non viene condiviso tra i nodi della Web farm, il servizio è vulnerabile agli attacchi di tipo replay.When a WCF service is hosted in a web farm, since the InMemoryNonceCache is not shared across the nodes in the web farm, the service is vulnerable to replay attacks. Per attenuare questo scenario, WCF 4.5 fornisce un punto di estendibilità che consente di implementare la propria cache NONCE condivisa derivando una classe dalla classe astratta NonceCache.To mitigate this scenario WCF 4.5 provides an extensibility point that allows you to implement your own shared NONCE cache by deriving a class from the abstract class NonceCache.

Implementazione di NonceCacheNonceCache Implementation

Per implementare la propria cache NONCE condivisa, derivare una classe da NonceCache ed eseguire l'override dei metodi CheckNonce e TryAddNonce.To implement your own shared NONCE cache, derive a class from NonceCache and override the CheckNonce and TryAddNonce methods. CheckNonce controllerà se il parametro NONCE specificato esiste nella cache.CheckNonce will check to see if the specified NONCE exists in the cache. TryAddNonce tenterà di aggiungere un parametro NONCE alla cache.TryAddNonce will attempt to add a NONCE to the cache. Una volta implementata, la classe viene associata creando un'istanza e assegnandola a NonceCache per il rilevamento di attacchi di tipo replay lato client e a NonceCache per il rilevamento di attacchi di tipo replay lato server.Once the class is implemented, you hook it up by instantiating an instance and assigning it to NonceCache for client-side replay detection and NonceCache for server-side replay detection. Non esiste alcun supporto di configurazione predefinito per questa funzionalità.There is no out of the box configuration support for this feature.

Vedere ancheSee Also

Sicurezza dei messaggiMessage Security
SymmetricSecurityBindingElementSymmetricSecurityBindingElement