MessageProtectionOrder Enum
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee geeft u de volgorde op van bewerkingen die een bericht beveiligen.
public enum class MessageProtectionOrder
public enum MessageProtectionOrder
type MessageProtectionOrder =
Public Enum MessageProtectionOrder
- Overname
Velden
| Name | Waarde | Description |
|---|---|---|
| SignBeforeEncrypt | 0 | Hiermee geeft u op dat er een digitale handtekening wordt gegenereerd voor het SOAP-bericht voordat een deel van het SOAP-bericht wordt versleuteld, maar de digitale handtekening niet is versleuteld. |
| SignBeforeEncryptAndEncryptSignature | 1 | Hiermee geeft u op dat er een digitale handtekening wordt gegenereerd voor het SOAP-bericht voordat een deel van het SOAP-bericht wordt versleuteld en dat de digitale handtekening wordt versleuteld. |
| EncryptBeforeSign | 2 | Hiermee geeft u op dat het SOAP-bericht wordt versleuteld voordat een digitale handtekening wordt gegenereerd voor het SOAP-bericht. |
Voorbeelden
In het volgende voorbeeld wordt een SymmetricSecurityBindingElement element gemaakt en wordt de eigenschap ervan ingesteld MessageProtectionOrder op 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
Opmerkingen
Deze opsomming wordt gebruikt met de AsymmetricSecurityBindingElement.MessageProtectionOrder eigenschap van de AsymmetricSecurityBindingElement en de SymmetricSecurityBindingElement.MessageProtectionOrder eigenschap van de SymmetricSecurityBindingElement klassen.
Als een bericht kwetsbaar is voor een digest-aanval (bijvoorbeeld als het bericht kort is of de entropie laag is), moet u de optie SignBeforeEncryptAndEncryptSignature of EncryptBeforeSign gebruiken. (Entropie is willekeurige gegevens die worden geleverd door een server, een client of beide, en wordt gebruikt om een gedeelde sleutel te maken voor het versleutelen en ontsleutelen van gegevens.)
Wat is besteld?
WCF biedt drie verschillende beveiligingsniveaus die bepalen hoe berichten worden beveiligd met SOAP-berichtbeveiliging. De standaardwaarde is SignBeforeEncryptAndEncryptSignature. Deze instelling ondertekent eerst het bericht, versleutelt de hoofdtekst van het bericht en versleutelt vervolgens de XML-handtekening. Dit vermindert de kans op een geslaagde cryptografische schattingsaanval op de handtekening.
Het gebruik van de standaardwaarde heeft echter gevolgen voor de prestaties. In feite is er sprake van een compromis tussen prestaties voor een betere beveiliging. Door de handtekening te versleutelen, kunnen de prestaties tussen 10 en 40 procent afnemen. Als de gegevensinhoud van het bericht een lage waarde heeft en de doorvoer van de prestaties belangrijker is, gebruikt u SignBeforeEncrypt. Met deze instelling wordt de handtekeningsamenvating verzonden in duidelijke tekst en is het bericht dus kwetsbaarder voor aanvallen met een lage entropie.
Alleen aangepaste bindingen
Als u de MessageProtectionOrder eigenschap wilt wijzigen, moet u een aangepaste beveiligingsbinding maken. Zie User-Defined Bindingen maken voor meer informatie over het maken van aangepaste bindingen. Raadpleeg Een SecurityBindingElement maken voor een opgegeven verificatiemodus voor meer informatie over het maken van een aangepaste binding voor een specifieke verificatiemodus.
Van toepassing op
Zie ook
- MessageProtectionOrder
- AsymmetricSecurityBindingElement
- SymmetricSecurityBindingElement
- Procedure: Een aangepaste binding maken met behulp van securityBindingElement
- Door de gebruiker gedefinieerde bindingen en bindingselementen maken
- Procedure: Een SecurityBindingElement maken voor een opgegeven verificatiemodus
- Versleuteling van digitale handtekeningen