MessageProtectionOrder Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje pořadí operací, které chrání zprávu.
public enum class MessageProtectionOrder
public enum MessageProtectionOrder
type MessageProtectionOrder =
Public Enum MessageProtectionOrder
- Dědičnost
Pole
| Name | Hodnota | Description |
|---|---|---|
| SignBeforeEncrypt | 0 | Určuje, že se digitální podpis vygeneruje pro zprávu SOAP před šifrováním jakékoli části zprávy SOAP, ale digitální podpis není šifrovaný. |
| SignBeforeEncryptAndEncryptSignature | 1 | Určuje, že se digitální podpis vygeneruje pro zprávu SOAP před zašifrovanými částmi zprávy SOAP a digitální podpis se zašifruje. |
| EncryptBeforeSign | 2 | Určuje, že zpráva SOAP je zašifrována před vygenerování digitálního podpisu pro zprávu SOAP. |
Příklady
Následující příklad vytvoří SymmetricSecurityBindingElement element a nastaví jeho MessageProtectionOrder vlastnost SignBeforeEncrypt.
public static Binding CreateCustomBinding()
{
// Create an empty BindingElementCollection to populate,
// then create a custom binding from it.
BindingElementCollection outputBec = new BindingElementCollection();
// Create a SymmetricSecurityBindingElement.
SymmetricSecurityBindingElement ssbe =
new SymmetricSecurityBindingElement();
// Set the algorithm suite to one that uses 128-bit keys.
ssbe.DefaultAlgorithmSuite = SecurityAlgorithmSuite.Basic128;
// Set MessageProtectionOrder to SignBeforeEncrypt.
ssbe.MessageProtectionOrder = MessageProtectionOrder.SignBeforeEncrypt;
// Use a Kerberos token as the protection token.
ssbe.ProtectionTokenParameters = new KerberosSecurityTokenParameters();
// Add the SymmetricSecurityBindingElement to the BindingElementCollection.
outputBec.Add ( ssbe );
outputBec.Add(new TextMessageEncodingBindingElement());
outputBec.Add(new HttpTransportBindingElement());
// Create a CustomBinding and return it; otherwise, return null.
return new CustomBinding(outputBec);
}
Public Shared Function CreateCustomBinding() As Binding
' Create an empty BindingElementCollection to populate,
' then create a custom binding from it.
Dim outputBec As New BindingElementCollection()
' Create a SymmetricSecurityBindingElement.
Dim ssbe As New SymmetricSecurityBindingElement()
' Set the algorithm suite to one that uses 128-bit keys.
ssbe.DefaultAlgorithmSuite = SecurityAlgorithmSuite.Basic128
' Set MessageProtectionOrder to SignBeforeEncrypt.
ssbe.MessageProtectionOrder = MessageProtectionOrder.SignBeforeEncrypt
' Use a Kerberos token as the protection token.
ssbe.ProtectionTokenParameters = New KerberosSecurityTokenParameters()
' Add the SymmetricSecurityBindingElement to the BindingElementCollection.
outputBec.Add(ssbe)
outputBec.Add(New TextMessageEncodingBindingElement())
outputBec.Add(New HttpTransportBindingElement())
' Create a CustomBinding and return it; otherwise, return null.
Return New CustomBinding(outputBec)
End Function
Poznámky
Tento výčet se používá s AsymmetricSecurityBindingElement.MessageProtectionOrder vlastností AsymmetricSecurityBindingElement a SymmetricSecurityBindingElement.MessageProtectionOrder vlastností SymmetricSecurityBindingElement tříd.
Pokud je zpráva ohrožená útokem digest (například pokud je zpráva krátká nebo entropie je nízká), měli byste použít možnost SignBeforeEncryptAndEncryptAndEncryptSignature nebo EncryptBeforeSign. (Entropie je náhodná data poskytovaná serverem, klientem nebo obojím a slouží k vytvoření sdíleného klíče pro šifrování a dešifrování dat.)
Co je objednáno?
WCF nabízí tři různé úrovně ochrany, které určují, jak jsou zprávy zabezpečené pomocí zabezpečení zpráv SOAP. Výchozí hodnota je SignBeforeEncryptAndEncryptSignature. Toto nastavení nejprve podepíše zprávu, zašifruje text zprávy a pak zašifruje podpis XML. To snižuje pravděpodobnost úspěšného kryptografického odhadu útoku na podpis.
Použití výchozího nastavení má ale vliv na výkon. V důsledku toho existuje kompromis mezi výkonem pro zvýšení zabezpečení. Šifrování podpisu může snížit výkon mezi 10 a 40 procenty. Pokud datový obsah zprávy má nízkou hodnotu a propustnost výkonu je důležitější, použijte SignBeforeEncrypt. Při tomto nastavení se hodnota hash podpisu odešle v prostém textu, a proto je zpráva zranitelnější vůči útokům s nízkými entropii.
Pouze vlastní vazby
MessageProtectionOrder Změna vlastnosti vyžaduje vytvoření vlastní vazby zabezpečení. Další informace o vytváření vlastních vazeb naleznete v tématu Vytváření User-Defined vazeb. Další informace o vytvoření vlastní vazby pro konkrétní režim ověřování naleznete v tématu Postupy: Vytvoření SecurityBindingElement pro zadaný režim ověřování.
Platí pro
Viz také
- MessageProtectionOrder
- AsymmetricSecurityBindingElement
- SymmetricSecurityBindingElement
- Postupy: Vytvoření vlastní vazby pomocí securityBindingElement
- Vytváření uživatelsky definovaných vazeb a elementů vazeb
- Postupy: Vytvoření SecurityBindingElement pro zadaný režim ověřování
- Šifrování digitálních podpisů