Web Service - Security: Difference between revisions

From
Jump to navigation Jump to search
Line 116: Line 116:
<EncryptionProperties>?
<EncryptionProperties>?
</EncryptedData>
</EncryptedData>

Ein zu XML-Encryption zugehöriger Abschnitt befindet sich innerhalb des Tag <EncryptedData>. Mit Hilfe von <EncryptionMethod> wird der Verschlüsselungsalgorithmus spezifiziert. Der Tag <ds:KeyInfo> beschreibt den verwendeten Schlüssel für die Chiffrierung. Innerhalb der Tags <CipherData> und </CipherData> befindet sich der Kryptotext oder ein Verweis auf die verschlüssselten Informationen. Die Tags <EncryptedData> und <EncryptedKey> sind von dem selben Eltern Tag abgeleitet worden. Durch diesen Umstand kann das <EncryptedKey> Tag beliebig oft verschachtelt werden und der Schlüssel kann wiederum mit einem anderen Key chiffriert werden. Dies ermöglicht den kombinierten Einsatz von asymmetrischen und symmetrischen Kryptoverfahren.


===Security Token===
===Security Token===

Revision as of 21:33, 16 June 2010

Web Service

Definition

Eine Definition von Web Services gibt folgender Satz:

Ein Webservice ist ein Dienst, der heterogen in Websystemen verteilt und in beliebigen Anwendungen benutzbar ist.

Durch Web Services soll das Anbieten von Dienstleistungen und deren Nutzung unabhängig von verwendeten Websystemen automatisierbar möglich sein.

Verwendete Technologien/Protokolle

Folgende Technologien finden eine Anwendung im Bereich von Web Services:

  • XML
  • SOAP
  • HTTP
  • WSDL
  • UDDI

Als grundlegender Bestandteil von Web Services ist XML zu nennen. Der Aufbau der zu übertragenden Nachrichten ist durch XML spezifiziert. Messages zwischen Serviceanbieter und Servicenachfrager werden über das SOAP (Simple Object Access Protocol) übertragen. Diese SOAP-Messages werden über das im Internet verbreitete HTTP Protokoll weitergegeben. Neben HTTP können auch andere Protokolle genutzt werden. HTTP hat sich als Standard etabliert, da Port 80 Verkehr bei den meisten Firewalls nicht blockiert wird. Mit Hilfe von WSDL (Web Service Description Language) werden Web Services beschrieben, insbesondere die erwartete Eingaben,zu liefernde Ausgaben sowie die Schnittstelle zu dem Web Service. UDDI (Universal Description, Discovery and Integration) ist ein Verzeichnisdienst der Informationen über bei dem Dienst registrierten Web Services sowie deren Anbieter liefert.


Architektur

Folgendes Bild stellt die Architektur einer Web Service Umgebung dar:

ArchitekturWS.png

Der Service Provider veröffentlicht eine Beschreibung in WSDL seines Web Services in dem Service Directory. Der Service Requestor sucht für sein Anliegen einen entsprechenden Service im Service Directory. Wurde ein passender Service gefunden, verbindet sich der Requestor mit dem Provider und tauschen die nötigen Informationen aus.

Schutzziele und deren Realisierung

Als Schutzziele in der Datenkommunikation werden Vertraulichkeit, Integrität, Nichtabstreitbarkeit und Autenzität gefordert. Vertraulichkeit beschreibt das Ziel der Geheimhaltung von Informationen vor unberechtigter Einsichtnahme durch Dritte. Integrität fordert den Nachweis der Unverändertheit von Daten, d. h. eine Manipulation der Informationen während der Übermittlung soll festellbar sein. Die Zielstellung Nichtabstreitbarkeit umfasst die Verbindung einer Nachricht zu seinem Ersteller. Der Erzeuger kann bei einer von ihm erstellen Nachricht nicht abstreiten, dass er sie erstellt hat. Ihm Rahmen des Web Service - Security Standards werden Integrität sowie Nichtabstreitbarkeit durch XML-Signature garantiert, Vertraulichkeit durch XML-Encryption realisiert und Authenzität durch die Verwendung verschiedener Security Token ermöglicht.

Web Service - Security

Beschreibung

Der Web Service - Security Standard beschreibt die Realisierung der oben beschriebenen Schutzziele bei der Verwendung von SOAP. Im speziellen definiert Web Service - Security den SOAP Header als Security Header zur Sicherung der SOAP Message. Security Token, XML-Encryption sowie XML-Signature wird im SOAP Header verwendet zur Sicherung der SOAP Nachricht

XML-Signature

XML-Signature erlaubt das Signieren von XML-Dokumenten und anderen Daten.

Es gibt folgende drei Typen von XML-Signaturen:

  • Enveloping Signatures
  • Enveloped Signatures
  • Detached Signatures


Eine XML Signatur ist folgendermaßen aufgebaut:

<Signature ID?>
 <SignedInfo>
  <CanonicalizationMethod/>
  <SignatureMethod/>
  (<Reference URI?>
  (<Transforms>)?
  <DigestMethod>
  <DigestValue>)
  </Reference>)+
 </SignedInfo>
 <SignatureValue>
 (<KeyInfo>)?
 (<Object ID?>)
</Signature>

Die Signatur ist in einem <Signature> Tag eingeschlossen. Innerhalb des <SignedInfo> Tag werden zusätzliche Informationen präsentiert. Als erstes wird eine Standardisierungsmethode durch das Tag <CanonicalizationMethod/> festgelegt. Mit diesem Verfahren werden die zu signierenden Daten in eine kanonische Form überführt. Das Tag <Reference URI?> kann einen Verweis auf die zu signierenden Daten enthalten, wenn sie nicht innerhalb des <Signature> Tag stehen. Der Tag <DigestMethod> verweist auf die verwendete Hashfunktion und <DigestValue> enthält den Hashwert. Die digitale Signatur steht innerhalb der Tags <SignatureValue> und </SignatureValue>.

XML-Encryption

Mit Hilfe von XML-Encryption können Dokumente verschlüsselt werden. Der Einsatz verschiedener Verfahren der symmetrischen und asymmetrischen Kryptografie können eingesetzt werden.

<EncryptedData Id? Type? MimeType? Encoding?>
 <EncryptionMethod>?
 <ds:KeyInfo>
  <EncryptedKey>?
  <AgreementMethod>?
  <ds:KeyName>?
  <ds:RetrievalMethod>?
 </ds:KeyInfo>?
 <CipherData>
  <CipherValue>?
  <CipherReference URI?>?
 </CipherData>
 <EncryptionProperties>?
</EncryptedData>

Ein zu XML-Encryption zugehöriger Abschnitt befindet sich innerhalb des Tag <EncryptedData>. Mit Hilfe von <EncryptionMethod> wird der Verschlüsselungsalgorithmus spezifiziert. Der Tag <ds:KeyInfo> beschreibt den verwendeten Schlüssel für die Chiffrierung. Innerhalb der Tags <CipherData> und </CipherData> befindet sich der Kryptotext oder ein Verweis auf die verschlüssselten Informationen. Die Tags <EncryptedData> und <EncryptedKey> sind von dem selben Eltern Tag abgeleitet worden. Durch diesen Umstand kann das <EncryptedKey> Tag beliebig oft verschachtelt werden und der Schlüssel kann wiederum mit einem anderen Key chiffriert werden. Dies ermöglicht den kombinierten Einsatz von asymmetrischen und symmetrischen Kryptoverfahren.

Security Token

Als Security Token zur Authentifizierung können folgende Techniken verwendet werden:

  • Benutzername/Passwort
  • Zertifikate
  • SAML Assertions
  • Kerberos Token
  • XrML Token
  • XCBF Token

Quellen

  • Securing Web Services with WS-Security