Crittografia di firme digitali

Per impostazione predefinita, un messaggio viene firmato e crittografato e la firma viene crittografata digitalmente. È possibile controllare questo comportamento creando un'associazione personalizzata con un'istanza della classe AsymmetricSecurityBindingElement o SymmetricSecurityBindingElement e quindi impostando la proprietà MessageProtectionOrder della classe su un valore dell'enumerazione MessageProtectionOrder. Il valore predefinito è SignBeforeEncryptAndEncryptSignature. Questo processo richiede un tempo superiore dal 10 al 40 percento rispetto alla semplice firma e crittografia. La disattivazione della crittografia della firma può tuttavia consentire all'autore di un attacco di individuare il contenuto del messaggio, poiché l'elemento di firma contiene il codice hash del testo normale di ogni parte firmata del messaggio. Ad esempio, anche se il corpo del messaggio è crittografato per impostazione predefinita, la firma non crittografata contiene il codice hash del corpo del messaggio. Se il messaggio è di piccole dimensioni, l'autore dell'attacco potrebbe essere in grado di dedurre il contenuto. Con la crittografia della firma si riduce o si elimina questa possibilità.

Disattivare pertanto la crittografia della firma solo quando il valore del contenuto è basso e il miglioramento delle prestazioni sarà significativo, ad esempio in caso di invio di file binari di grandi dimensioni senza implicazioni di protezione.

Per disattivare la firma digitale

  1. Creare una classe CustomBinding. Per ulteriori informazioni, vedere Procedura: creare un'associazione personalizzata utilizzando SecurityBindingElement.

  2. Aggiungere un elemento AsymmetricSecurityBindingElement o SymmetricSecurityBindingElement all'insieme di associazioni.

  3. Impostare la proprietà System.ServiceModel.Channels.AsymmetricSecurityBindingElement.MessageProtectionOrder su SignBeforeEncrypt oppure impostare la proprietà System.ServiceModel.Channels.SymmetricSecurityBindingElement.MessageProtectionOrder su SignBeforeEncrypt.

Per ulteriori informazioni sulla creazione di associazioni personalizzate, vedere Creazione di associazioni definite dall'utente. Per ulteriori informazioni sulla creazione di un'associazione personalizzata per una modalità di autenticazione specifica, vedere Procedura: creare un elemento SecurityBindingElement per una modalità di autenticazione specificata.

Vedere anche

Attività

Procedura: creare un elemento SecurityBindingElement per una modalità di autenticazione specificata

Riferimenti

MessageProtectionOrder
AsymmetricSecurityBindingElement
SymmetricSecurityBindingElement

Concetti

Procedura: creare un'associazione personalizzata utilizzando SecurityBindingElement
Creazione di associazioni definite dall'utente