共用方式為


數位簽名的加密

根據預設,訊息會簽署和加密,且簽章會以數位方式加密。 您可以透過建立AsymmetricSecurityBindingElementSymmetricSecurityBindingElement的實例來自定義系結,然後將這兩個類別中的任一個的MessageProtectionOrder屬性設置為MessageProtectionOrder的列舉值來控制此功能。 預設值為 SignBeforeEncryptAndEncryptSignature。 此流程比單純簽署和加密多耗費 10% 到 40% 的時間。 不過,停用簽章加密可能會讓攻擊者猜測訊息的內容。 這是可能的,因為簽章專案包含訊息中每個已簽署元件的純文本哈希碼。 例如,雖然訊息本文預設會加密,但未加密的簽章會包含訊息本文的哈希碼。 如果訊息很小,攻擊者就可能能夠推算內容。 加密簽章可減少或消除這種可能性。

因此,只有在內容值為低時,才停用簽章的加密,例如,傳送沒有安全性影響的大型二進位檔時,效能提升將會相當重要。

停用數字簽名

  1. 建立 CustomBinding。 如需詳細資訊,請參閱 如何:使用 SecurityBindingElement 建立自定義系結

  2. 在系結集合中新增 AsymmetricSecurityBindingElementSymmetricSecurityBindingElement

  3. 屬性 AsymmetricSecurityBindingElement.MessageProtectionOrder 設定為 SignBeforeEncrypt,或將 SymmetricSecurityBindingElement.MessageProtectionOrder 屬性設定為 SignBeforeEncrypt

如需建立自定義系結的詳細資訊,請參閱 建立 User-Defined 系結。 如需針對特定驗證模式建立自定義系結的詳細資訊,請參閱 如何:建立指定驗證模式的 SecurityBindingElement

另請參閱