Bundesamt für Sicherheit in der Informationstechnik

M 4.450 Absicherung der Kommunikation bei Web-Services

Verantwortlich für Initiierung: Verantwortliche der einzelnen Anwendungen, Leiter IT

Verantwortlich für Umsetzung: Administrator, Leiter IT

Da die Kommunikation mit Web-Services nicht immer zwingend intern, sondern auch extern über fremde Netze und weitere beteiligte Stellen ablaufen kann, muss sichergestellt werden, dass die Daten über einen sicheren Kanal übertragen werden. Ziel dabei ist es, die Vertraulichkeit und die Integrität der übertragenen Daten zu gewährleisten. Zur Absicherung der Kommunikation bei Web-Services können unterschiedliche Methoden und Standards angewendet werden, die sich in zwei grundlegende Strategien gliedern lassen:

  • Transportbasierte Verschlüsselung und
  • Nachrichtenbasierte Verschlüsselung.

Transport-basierte Verschlüsselung mittels SSL/TLS

Durch die Anwendung des SSL/TLS-Protokolls können die Kommunikationswege von Web-Services auf Transportebene abgesichert werden. Durch die Verschlüsselung des Datenstroms zwischen zwei Endpunkten ist sichergestellt, dass die Daten während der Übertragung geschützt sind und nicht mitgelesen werden können. Durch die Verschlüsselung wird ebenfalls sichergestellt, dass die Nachrichtenintegrität bewahrt wird. Zusätzlich zur Verschlüsselung birgt die Nutzung von SSL/TLS den Vorteil, dass dadurch mehrere Formen der Authentisierung relativ problemlos umgesetzt werden können:

  • Serverauthentisierung: Der Server authentisiert sich gegenüber dem Web-Service-Client auf der Grundlage eines kryptographischen Zertifikats.
  • Clientauthentisierung: Zusätzlich zum Server authentisiert sich auch der Client gegenüber dem Server anhand eines maschinenspezifischen Zertifikats.
  • Benutzerauthentisierung: Die client-seitige Authentisierung kann auch mit benutzerbezogenen Zertifikaten erfolgen und so gleichzeitig zur Authentisierung des jeweiligen Benutzers verwendet werden.

Der Vorteil einer Verschlüsselung mit SSL/TLS besteht insbesondere darin, dass die Umsetzung weitgehend unabhängig von der Realisierung der Web-Services selbst erfolgen kann, im einfachen Fall durch entsprechende Konfiguration der Web- oder Applikationsserver.

Der Nachteil in der Verwendung von SSL/TLS liegt darin, dass nur die Verbindung zwischen zwei direkten Endpunkten verschlüsselt wird. Komplexere Szenarien, in denen zum Beispiel eine Nachricht über mehrere Zwischenstationen gesendet werden muss und der jeweilige Empfänger nur einen bestimmten Teil einer Nachricht lesen darf, lassen sich nicht abbilden.

Bei einer Verschlüsselung mittels SSL/TLS sind die Daten nur bei der Übertragung selbst verschlüsselt. Während sich die Daten zum Beispiel noch in der Warteschlange für die Nachrichtenverarbeitung auf dem Server befinden, liegen diese unverschlüsselt auf dem System vor. Der Einsatz von SSL/TLS muss daher vor dem Hintergrund des konkreten Anwendungsszenarios geprüft werden. Weitere Informationen zur Nutzung von SSL/TLS finden sich in M 5.66 Clientseitige Verwendung von SSL/TLS und M 5.177 Serverseitige Verwendung von SSL/TLS .

Nachrichten-basierte Verschlüsselung mittels WS-Standards

Da bei Web-Services Nachrichten über mehrere Intermediäre gehen können und eine Direktverbindung nicht immer möglich ist, erhält der Intermediär eventuell Informationen, die gar nicht für ihn bestimmt sind. Um die Sicherheit der Nachrichten gewährleisten zu können, müssen Nachrichten so behandelt werden können, dass Teilnachrichten nur von den rechtmäßigen Empfängern gelesen werden können, weshalb in diesem Fall auf eine nachrichtenbasierte Verschlüsselung, zum Beispiel auf XML -Ebene, zurückzugreifen ist. Dafür stehen verschiedene Standards zur Verfügung:

  • XML -Encryption (XMLEnc)
  • XML -Signaturen (XMLSig)
  • WS-Security
  • WS-SecureConversation

Eine nähere Beschreibung dieser Standards und ihrer Einsatzmöglichkeiten findet sich in der W-Maßnahme M 4.451 Aktuelle Web-Service Standards .

Für die Implementierung von kryptographischen Mechanismen sollte auf eine etablierte Softwarebibliothek (Framework) und bestehende Kryptobibliotheken (zum Beispiel für Java die Krypto-Bibliotheken IAIK-JCE oder Bouncy Castle, Letztere ist auch für C#/Microsoft .NET verfügbar) zurückgegriffen werden, da eine eigenständige Kryptoimplementierung sehr fehlerträchtig ist und erfahrungsgemäß Schwachstellen beinhaltet.

Integrität

Um die Kommunikation bei Web-Services abzusichern, sollte validiert werden, ob die XML -Strukturen der empfangenen Nachrichten dem vorgegebenen XML -Schema entsprechen. Wenn eine Nachricht nicht dem gewünschten Format entspricht, ist sie abzuweisen.

Zudem können XML -Signaturen eingesetzt werden, sodass Nachrichten erkannt werden, die auf der Kommunikationsstrecke manipuliert wurden. Eine Signatur sollte möglichst auf die komplette Nachricht angewendet werden, sodass ein Angriff auf die Integrität von vornherein nicht durchführbar ist. Können jedoch, z. B. aufgrund erheblicher Performance-Vorteile bei großen Nachrichten, nur bestimmte Elemente signiert werden, muss neben dem referenzierten Namen, die korrekte Position von signierten Inhalten mittels einer kontextabhängigen Semantik überprüft werden. Das bedeutet, es wird der absolute Pfad des signierten Elements geprüft. Weicht dieser von den Erwartungen ab, muss die Nachricht abgelehnt werden.

Verfügbarkeit

Da durch Web-Services ermöglicht wird, dass Geschäftsprozesse organisationsübergreifend realisiert werden, ist hierbei auch ein besonderes Augenmerk auf die Verfügbarkeit zu legen. Ein Ausfall einer Komponente kann zu einem Ausfall des gesamten Geschäftsprozesses führen, was sich auf mehrere Parteien auswirken kann. Aus diesem Grund müssen im Hinblick auf die Verfügbarkeit der Systeme Maßnahmen wie eine Lastverteilung oder Redundanzen der eingesetzten Applikationsserver mit betrachtet werden, um eine ausreichend hohe Verfügbarkeit erzielen zu können. Das Ziel muss dabei sein, den Verlust der Verfügbarkeit durch Ausfall einer einzigen Komponente (engl. Single Point of Failure) zu vermeiden. Abhängig von der Menge der durch das System verarbeiteten Nachrichten muss das System so skalierbar sein, dass dieses auch mit einem vermehrten Aufkommen von Anfragen umgehen kann.

Zusätzlich müssen Sicherheitsmaßnahmen getroffen werden, um das Risiko eines Ausfalls eines Web-Service durch gezielte Angriffe (Denial of Service) zu minimieren. Weitere Informationen hierzu finden sich in der Maßnahme M 4.405 Verhinderung der Blockade von Ressourcen (DoS) bei Webanwendungen und Web-Services .

Prüffragen:

  • Wird ein geeignetes Transport-basiertes oder Nachrichten-basiertes Verschlüsselungsverfahren eingesetzt, um den Nachrichtenaustausch abzusichern?

  • Wurde für die Implementierung kryptographischer Funktionen auf eine etablierte Softwarebibliothek zurückgegriffen?

  • Wurden für die Kommunikationsschnittstellen des Web-Service die Verfügbarkeitsanforderungen berücksichtigt und entsprechend umgesetzt?

  • Werden XML-Signaturen eingesetzt und wird die korrekte Position des signierten Inhalts bei jeder Verwendung überprüft?

Stand: 15. EL Stand 2016

Hinweis zur Verwendung von Cookies

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen hierzu erhalten Sie in unserer Datenschutzerklärung.

OK