Web Service - Security: Difference between revisions
No edit summary |
|||
(17 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
Eine Definition von Web Services gibt folgender Satz: |
Eine Definition von Web Services gibt folgender Satz: |
||
Ein Webservice ist ein Dienst, der heterogen in Websystemen |
"Ein Webservice ist ein Dienst, der heterogen in Websystemen |
||
verteilt und in beliebigen Anwendungen benutzbar ist. |
verteilt und in beliebigen Anwendungen benutzbar ist." [3] |
||
Durch Web Services soll das Anbieten von Dienstleistungen und deren Nutzung unabhängig von verwendeten |
Durch Web Services soll das Anbieten von Dienstleistungen und deren Nutzung unabhängig von verwendeten |
||
Line 15: | Line 15: | ||
Folgende Technologien finden eine Anwendung im Bereich von Web Services: |
Folgende Technologien finden eine Anwendung im Bereich von Web Services: |
||
XML |
* XML |
||
SOAP |
* SOAP |
||
HTTP |
* HTTP |
||
WSDL |
* WSDL |
||
UDDI |
* UDDI |
||
Als grundlegender Bestandteil von Web Services ist XML zu nennen. Der Aufbau der zu übertragenden |
Als grundlegender Bestandteil von Web Services ist XML zu nennen. Der Aufbau der zu übertragenden |
||
Line 61: | Line 61: | ||
Der Web Service - Security Standard beschreibt die Realisierung der oben beschriebenen Schutzziele |
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 |
bei der Verwendung von SOAP. Im speziellen definiert Web Service - Security den SOAP Header als Security Header |
||
zur Sicherung der SOAP |
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=== |
||
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=== |
===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=== |
===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== |
==Quellen== |
||
* Securing Web Services with WS-Security |
* [1] Rosenberg,J./Remy,D.: Securing Web Services with WS-Security. Demystifying WS-Security, WS-Policy, SAML, XML-Signature and XML-Encryption. 2004. |
||
* [2] Gustavo/A.: Web Services. Concepts, Architectures and Applications. 2004. |
|||
* [3] IT-Wissen: Definition Web Service. URL http://www.itwissen.info/definition/lexikon/Webservice-WS-web-services.html |
Latest revision as of 21:54, 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." [3]
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:
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
- [1] Rosenberg,J./Remy,D.: Securing Web Services with WS-Security. Demystifying WS-Security, WS-Policy, SAML, XML-Signature and XML-Encryption. 2004.
- [2] Gustavo/A.: Web Services. Concepts, Architectures and Applications. 2004.
- [3] IT-Wissen: Definition Web Service. URL http://www.itwissen.info/definition/lexikon/Webservice-WS-web-services.html