Partager via


Chiffrement de signatures numériques

Par défaut, un message est signé et chiffré et sa signature chiffrée numériquement. Vous pouvez contrôler ce paramètre en créant une liaison personnalisée à l'aide d'une instance de AsymmetricSecurityBindingElement ou de SymmetricSecurityBindingElement, puis en affectant à la propriété MessageProtectionOrder de l'une de ces deux classes une valeur d'énumération MessageProtectionOrder. La valeur par défaut est SignBeforeEncryptAndEncryptSignature. Ce processus nécessite 10 à 40 pour cent plus de temps que lorsque les messages sont seulement signés et chiffrés. Toutefois, désactiver le chiffrement de la signature présente un risque en matière de sécurité, les intrus pouvant deviner en son absence le contenu des messages. La signature contient en effet le code de hachage du texte brut de chaque partie signée des messages. Par exemple, même si le corps des messages est chiffré par défaut, la signature non chiffrée contient le code de hachage du corps des messages. Si le message est petit, un intrus risque de parvenir à déduire son contenu. Le chiffrement de la signature limite ou élimine complètement ce risque.

En conclusion, désactivez uniquement le chiffrement de la signature lorsque les messages ne contiennent pas d'informations à caractère sensible et lorsque cela peut permettre une amélioration significative des performances, par exemple lorsque vous envoyez des fichiers binaires de grande taille ne nécessitant pas de protection particulière.

Pour désactiver la signature numérique

  1. Créez une liaison CustomBinding. Pour plus d'informations, consultez Comment : créer une liaison personnalisée à l'aide de SecurityBindingElement.

  2. Ajoutez un élément AsymmetricSecurityBindingElement ou un élément SymmetricSecurityBindingElement à la collection de liaisons.

  3. Affectez à la propriété System.ServiceModel.Channels.AsymmetricSecurityBindingElement.MessageProtectionOrder la valeur SignBeforeEncrypt ou affectez à la propriété System.ServiceModel.Channels.SymmetricSecurityBindingElement.MessageProtectionOrder la valeur SignBeforeEncrypt.

Pour plus d'informations sur la création des liaisons personnalisées, consultez Création de liaisons définies par l'utilisateur. Pour plus d'informations sur la création des liaisons personnalisées dans le cadre d'un mode d'authentification particulier, consultez Comment : créer un SecurityBindingElement pour un mode d'authentification spécifié.

Voir aussi

Tâches

Comment : créer un SecurityBindingElement pour un mode d'authentification spécifié

Référence

MessageProtectionOrder
AsymmetricSecurityBindingElement
SymmetricSecurityBindingElement

Concepts

Comment : créer une liaison personnalisée à l'aide de SecurityBindingElement
Création de liaisons définies par l'utilisateur