Sicherheitsüberlegungen für Sicherheitssitzungen

Berücksichtigen Sie die folgenden Punkte, die sich bei der Implementierung von Sicherheitssitzungen auf die Sicherheit auswirken.Weitere Informationen finden Sie unter zu Sicherheitsüberlegungen finden Sie unter Sicherheitsüberlegungen und Best Practices für Sicherheit.

Sicherheitssitzungen und Metadaten

Wenn eine sichere Sitzung eingerichtet und die RequireCancellation-Eigenschaft auf false festgelegt ist, sendet Windows Communication Foundation (WCF) eine mssp:MustNotSendCancel-Assertion als Bestandteil der Metadaten im WSDL-Dokument (Web Services Description Language) für den Dienstendpunkt.Die mssp:MustNotSendCancel-Assertion informiert Clients, dass der Dienst nicht auf Anforderungen zum Abbrechen der sicheren Sitzung reagiert.Wenn die RequireCancellation-Eigenschaft auf true gesetzt ist, gibt WCF keine mssp:MustNotSendCancel-Assertion im WSDL-Dokument aus.Clients sollen eine Abbruchanforderung an den Dienst senden, wenn sie die sichere Sitzung nicht mehr benötigen.Wenn ein Client mit ServiceModel Metadata Utility-Tool (Svcutil.exe) generiert wird, reagiert der Clientcode entsprechend auf die An- oder Abwesenheit der mssp:MustNotSendCancel-Assertion.

Sichere Unterhaltungen und benutzerdefinierte Token

Beim Mischen benutzerdefinierter Token und abgeleiteter Schlüssel ergeben sich aufgrund der Art der Definition in der WS-SecureConversation-Spezifikation einige Probleme.Laut Spezifikation ist wsse:SecurityTokenReference ein optionales Element, das auf das abgeleitete Token /wsc:DerivedKeyToken/wsse:SecurityTokenReference verweist. Dieses optionale Element wird verwendet, um Sicherheitskontexttoken, Sicherheitstoken oder freigegebenen Schlüssel\/geheime Schlüssel für die Ableitung anzugeben.Wird das Element nicht angegeben, wird davon ausgegangen, dass der Empfänger den freigegebenen Schlüssel dem Nachrichtenkontext entnehmen kann.Wenn der Kontext nicht bestimmt werden kann, sollte ein Fehler (beispielsweise wsc:UnknownDerivationSource) ausgelöst werden."

Das bedeutet, dass zum Ableiten eines benutzerdefinierten Tokens dessen Klauseltyp in ein SecurityTokenReference-Element eingeschlossen werden muss.Zwar steht eine Option zum Deaktivieren der Ableitung zur Verfügung, standardmäßig werden Schlüssel jedoch abgeleitet.Wird der Schlüssel nicht eingeschlossen, ist zwar die Serialisierung des abgeleiteten Schlüsseltokens erfolgreich, bei der Deserialisierung wird jedoch eine Ausnahme ausgelöst.

Siehe auch

Vorgehensweise: Deaktivieren sicherer Sitzungen auf einer WSFederationHttpBinding
Sicherheitsüberlegungen
Best Practices für Sicherheit