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 sicurezza.

Per disattivare la firma digitale

  1. Creare un oggetto CustomBinding. Per maggiori informazioni, vedere Procedura: Creare un'associazione personalizzata usando SecurityBindingElement.

  2. Aggiungere un elemento AsymmetricSecurityBindingElement o SymmetricSecurityBindingElement alla raccolta di associazioni.

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

Per altre informazioni sulla creazione di associazioni personalizzate, vedere Creazione di binding definiti dall'utente. Per altre informazioni sulla creazione di un binding personalizzato per una modalità di autenticazione specifica, vedere Procedura: Creare un SecurityBindingElement per una modalità di autenticazione specificata.

Vedi anche