數位簽章加密
根據預設,訊息會經過簽署及加密,並且簽章會經過數位加密。 您可以透過使用 AsymmetricSecurityBindingElement 或 SymmetricSecurityBindingElement 的執行個體建立自訂繫結,並將其中一個類別的 MessageProtectionOrder
屬性設定為 MessageProtectionOrder 列舉值的方式來控制。 預設值為 SignBeforeEncryptAndEncryptSignature。 這個過程的耗用時間會比純粹簽署和加密的耗用時間多出 10% 至 40%。 然而,停用簽章加密可能會使攻擊者得以猜測訊息內容。 這是有可能的,因為簽章項目包含訊息中每個簽署部分的純文字雜湊程式碼。 例如,雖然訊息本文預設會經過加密,但未加密的簽章會包含訊息本文的雜湊程式碼。 如果訊息內容較短,攻擊者可能會推算出內容。 加密簽章則可降低或排除這種可能性。
因此,只有在內容不具重要性以及效能提升是關鍵要素時才可停用簽章加密,例如,當傳送不具安全性含義的大型二進位檔案時。
若要停用數位簽章
建立 CustomBinding。 如需詳細資訊,請參閱操作說明:使用 SecurityBindingElement 建立自訂繫結。
在繫結集合中加入 AsymmetricSecurityBindingElement 或 SymmetricSecurityBindingElement。
將 AsymmetricSecurityBindingElement.MessageProtectionOrder 屬性設定為 SignBeforeEncrypt,或將 SymmetricSecurityBindingElement.MessageProtectionOrder 屬性設定為 SignBeforeEncrypt。
如需建立自訂繫結的詳細資訊,請參閱建立使用者定義的繫結。 如需針對特定驗證模式建立自訂繫結的詳細資訊,請參閱作法:針對指定驗證模式建立 SecurityBindingElement。