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. Par défaut, il s’agit de 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. En effet, l'élément de la signature contient le code de hachage du texte brut de chaque partie signée du message. 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éer un CustomBinding. Pour plus d’informations, consultez Procédure : 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é AsymmetricSecurityBindingElement.MessageProtectionOrder la valeur SignBeforeEncrypt ou affectez à la propriété SymmetricSecurityBindingElement.MessageProtectionOrder la valeur SignBeforeEncrypt.

Pour plus d’informations sur la création de liaisons personnalisées, consultez Création de liaisons définies par l’utilisateur. Pour plus d’informations sur la création d’une liaison personnalisée pour un mode d’authentification spécifique, consultez Procédure : Créer un SecurityBindingElement pour un mode d’authentification spécifié.

Voir aussi