Verschlüsselung von digitalen Signaturen

Standardmäßig wird eine Nachricht signiert und verschlüsselt, und die Signatur wird digital verschlüsselt. Dies können Sie steuern, indem Sie eine benutzerdefinierte Bindung mit einer Instanz von AsymmetricSecurityBindingElement oder SymmetricSecurityBindingElement erstellen und dann die MessageProtectionOrder-Eigenschaft der Klasse auf einen MessageProtectionOrder-Enumerationswert festlegen. Der Standardwert lautet SignBeforeEncryptAndEncryptSignature. Im Vergleich zum einfachen Signieren und Verschlüsseln dauert dieser Prozess 10 bis 40 Prozent länger. Wenn Sie die Verschlüsselung der Signatur jedoch deaktivieren, kann ein Angreifer eventuell den Inhalt der Nachricht erraten. Dies ist möglich, da das Signaturelement den Hashcode des reinen Texts des signierten Teils der Nachricht enthält. Obwohl der Nachrichtentext zwar standardmäßig verschlüsselt ist, enthält die unverschlüsselte Signatur z. B. den Hashcode des Nachrichtentexts. Wenn die Nachricht klein ist, könnte ein Angreifer den Inhalt herleiten. Diese Möglichkeit wird durch das Verschlüsseln der Signatur reduziert oder ausgeschlossen.

Deshalb sollten Sie die Verschlüsselung der Signatur nur deaktivieren, wenn der Inhalt für Sie von niedrigem Wert und die Leistungssteigerung erheblich ist, z. B. wenn große Binärdateien gesendet werden, die keinerlei Sicherheitsauswirkungen haben.

So deaktivieren Sie das digitale Signieren

  1. Erstellen Sie eine CustomBinding. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen einer benutzerdefinierten Bindung mit dem SecurityBindingElement.

  2. Fügen Sie der Bindungsauflistung entweder ein AsymmetricSecurityBindingElement oder ein SymmetricSecurityBindingElement hinzu.

  3. Legen Sie die AsymmetricSecurityBindingElement.MessageProtectionOrder-Eigenschaft auf SignBeforeEncrypt oder die SymmetricSecurityBindingElement.MessageProtectionOrder-Eigenschaft auf SignBeforeEncrypt fest.

Weitere Informationen zum Erstellen von benutzerdefinierten Bindungen finden Sie unter Erstellen benutzerdefinierter Bindungen. Weitere Informationen zum Erstellen einer benutzerdefinierten Bindung für einen bestimmten Authentifizierungsmodus finden Sie unter Vorgehensweise: Erstellen eines SecurityBindingElement für einen angegebenen Authentifizierungsmodus.

Siehe auch