www.wikidata.de-de.nina.az
Die XML Signature XML Sig auch XML DSig XMLDsig ist eine Spezifikation um bestehende digitale Signaturen in XML Schreibweise nutzen zu konnen Funktionell hat sie viel mit PKCS 7 gemeinsam ist aber erweiterbar und auf das Signieren von XML Dokumenten ausgerichtet Sie findet Einsatz in vielen weiterfuhrenden Web Standards wie etwa SOAP SAML oder dem deutschen Online Banking System FinTS Mit XML Signaturen konnen Daten jedes Typs signiert werden sofern sie in das XML Dokument der Signatur eingebettet worden sind oder mit einer URL adressiert werden konnen erstere wird als enveloped signature 1 letztere als detached losgeloste signature 2 bezeichnet Inhaltsverzeichnis 1 Struktur 2 Validierung und Sicherheitsaspekte 3 XML Normalisierung Kanonisierung 4 Vorteile 5 Kritik 6 Einzelnachweise 7 Siehe auch 8 Literatur 9 Normen und Standards 10 WeblinksStruktur BearbeitenEine XML Signatur besteht aus einem Signature Element im Namensraum http www w3 org 2000 09 xmldsig Die Grundstruktur ist wie folgt lt Signature gt lt SignedInfo gt lt CanonicalizationMethod gt lt SignatureMethod gt lt Reference gt lt Transforms gt lt DigestMethod gt lt DigestValue gt lt Reference gt lt Reference gt etc lt SignedInfo gt lt SignatureValue gt lt KeyInfo gt lt Object gt lt Signature gt Das SignedInfo Element enthalt oder referenziert die signierten Daten und gibt an welche Algorithmen verwendet werden Die Elemente SignatureMethod und CanonicalizationMethod werden vom Element SignatureValue verwendet und sind in SignedInfo enthalten um sie vor Manipulationen zu schutzen Ein oder mehrere Reference Elemente definieren die zu signierende Ressource durch eine URI Referenz und alle Transformationen die vor der Signierung auf die Ressource anzuwenden sind Transforms enthalt die Transformationen die auf die Ressource vor dem Signieren angewendet werden Eine Transformation kann ein XPath Ausdruck sein der eine bestimmte Teilmenge des Dokumentenbaums auswahlt 3 DigestMethod gibt den Hash Algorithmus vor der Anwendung des Hashes an DigestValue enthalt das Base64 kodierte Ergebnis der Anwendung des Hash Algorithmus auf die in den Attributen des Elements Reference definierte n transformierte n Ressource n Das SignatureValue enthalt das Base64 kodierte Signaturergebnis die mit den im SignatureMethod Element angegebenen Parametern erzeugte Signatur des SignedInfo Elements nach Anwendung des durch die CanonicalizationMethod angegebenen Algorithmus Das KeyInfo Element ermoglicht es dem Unterzeichner optional den Empfangern den Schlussel zur Verfugung zu stellen der die Signatur validiert normalerweise in Form eines oder mehrerer digitaler X 509 Zertifikate Die vertrauende Partei muss den Schlussel aus dem Kontext identifizieren wenn KeyInfo nicht vorhanden ist Das optionale Element Object enthalt die signierten Daten wenn es sich um eine umschliessende Signatur handelt Validierung und Sicherheitsaspekte BearbeitenBei der Validierung einer XML Signatur wird ein Verfahren namens Core Validation angewandt Referenz Validierung Der Digest jeder Reference wird uberpruft indem die entsprechende Ressource abgerufen und alle Transformationen und dann die angegebene Digest Methode auf sie angewendet werden Das Ergebnis wird mit dem aufgezeichneten DigestValue verglichen wenn sie nicht ubereinstimmen schlagt die Validierung fehl Signatur Validierung Das SignedInfo Element wird mit der in CanonicalizationMethod angegebenen Kanonisierungsmethode serialisiert die Schlusseldaten werden mit KeyInfo oder auf andere Weise abgerufen und die Signatur wird mit der in SignatureMethod angegebenen Methode uberpruft Mit diesem Verfahren wird festgestellt ob die Ressourcen wirklich von der angeblichen Partei signiert wurden Aufgrund der Erweiterbarkeit der Kanonisierungs und Transformationsmethoden muss die uberprufende Partei jedoch auch sicherstellen dass das was tatsachlich signiert oder verdaut wurde auch wirklich das ist was in den ursprunglichen Daten vorhanden war mit anderen Worten dass den dort verwendeten Algorithmen vertraut werden kann dass sie die Bedeutung der signierten Daten nicht verandern Da die Struktur des signierten Dokuments manipuliert werden kann was zu Signature Wrapping Angriffen fuhrt sollte der Validierungsprozess auch die Struktur des XML Dokuments umfassen Signierte Elemente und Signaturelemente sollten mit absoluten XPath Ausdrucken und nicht mit getElementByName Methoden ausgewahlt werden 4 XML Normalisierung Kanonisierung BearbeitenDie Erstellung von XML Signaturen ist wesentlich komplexer als die Erstellung einer gewohnlichen digitalen Signatur da ein bestimmtes XML Dokument ein Infoset wie es unter XML Entwicklern ublich ist mehr als eine legale serialisierte Darstellung haben kann So ist beispielsweise Leerraum innerhalb eines XML Elements syntaktisch nicht von Bedeutung sodass lt Elem gt syntaktisch identisch mit lt Elem gt ist Da die digitale Signatur die Datenintegritat gewahrleistet wurde ein Unterschied von nur einem Byte dazu fuhren dass sich die Signatur andert Wird ein XML Dokument von einem Computer auf einen anderen ubertragen kann sich ausserdem das Zeilenende von CR zu LF zu CR LF usw andern Ein Programm das ein XML Dokument verdaut und validiert kann das XML Dokument spater anders darstellen z B durch Hinzufugen von uberflussigem Leerraum zwischen Attributdefinitionen und Elementdefinitionen durch Verwendung relativer statt absoluter URLs oder durch Umordnung von Namespace Definitionen Kanonisches XML ist besonders wichtig wenn eine XML Signatur auf ein entferntes Dokument verweist das von einem fehlerhaften entfernten Server auf zeitlich variierende Weise gerendert werden kann Um diese Probleme zu vermeiden und zu gewahrleisten dass logisch identische XML Dokumente identische digitale Signaturen ergeben wird beim Signieren von XML Dokumenten eine XML Kanonisierungstransformation haufig mit C14n abgekurzt verwendet fur das Signieren der SignedInfo ist eine Normalisierung obligatorisch Diese Algorithmen garantieren dass semantisch identische Dokumente exakt identische serialisierte Darstellungen erzeugen Eine weitere Komplikation ergibt sich aus der Art und Weise wie der Standard Kanonisierungsalgorithmus mit Namensraumdeklarationen umgeht haufig muss ein signiertes XML Dokument in ein anderes Dokument eingebettet werden in diesem Fall liefert der ursprungliche Kanonisierungsalgorithmus nicht dasselbe Ergebnis als wenn das Dokument allein behandelt wird Aus diesem Grund wurde die sogenannte Exklusive Kanonisierung geschaffen die XML Namensraumdeklarationen unabhangig vom umgebenden XML serialisiert Vorteile BearbeitenDie XML Signatur ist flexibler als andere Formen digitaler Signaturen wie Pretty Good Privacy und Cryptographic Message Syntax da sie nicht mit Binardaten sondern mit dem XML Infoset arbeitet sodass Teilmengen der Daten bearbeitet werden konnen dies ist auch mit Binardaten auf nicht standardisierte Weise moglich z B durch Kodierung von Blocken von Binardaten in Base64 ASCII wobei es verschiedene Moglichkeiten gibt die Signatur und die signierten Informationen zu verbinden und Transformationen durchzufuhren Ein weiteres zentrales Konzept ist die Kanonisierung d h es wird nur das Wesentliche signiert wobei bedeutungslose Unterschiede wie Leerzeichen und Zeilenenden eliminiert werden Kritik BearbeitenEs gibt Kritik an der Architektur der XML Sicherheit im Allgemeinen 5 und an der Eignung der XML Kanonisierung im Besonderen als Front End zum Signieren und Verschlusseln von XML Daten aufgrund ihrer Komplexitat ihrer inharenten Verarbeitungsanforderungen und ihrer schlechten Leistungsmerkmale 6 7 8 Das Argument ist dass die Durchfuhrung der XML Kanonisierung eine ubermassige Latenzzeit verursacht die fur transaktionale leistungsempfindliche SOA Anwendungen einfach zu gross ist Diese Fragen werden in der XML Security Working Group behandelt 9 10 Ohne angemessene Richtlinien und Implementierung 4 kann die Verwendung von XML Dsig in SOAP und WS Security zu Schwachstellen fuhren 11 wie etwa XML Signatur Wrapping Einzelnachweise Bearbeiten XML Signature Syntax and Processing Version 1 1 Abgerufen am 22 September 2023 englisch XML Signature Syntax and Processing Version 1 1 Abgerufen am 22 September 2023 englisch XML Signature XPath Filter 2 0 a b Pawel Krawczyk Secure SAML validation to prevent XML signature wrapping attacks Nicht mehr online verfugbar Archiviert vom Original abgerufen am 9 Januar 2015 englisch 2013 Why XML Security is Broken Abgerufen am 22 September 2023 englisch Performance of Web Services Security Performance Comparison of Security Mechanisms for Grid Services Jimmy Zhang Accelerate WSS applications with VTD XML In InfoWorld 9 Januar 2007 abgerufen am 22 September 2023 W3C Workshop on Next Steps for XML Signature and XML Encryption Abgerufen am 22 September 2023 englisch 2007 XML Security 2 0 Requirements and Design Considerations Abgerufen am 22 September 2023 englisch Juraj Somorovsky Andreas Mayer Jorg Schwenk Marco Kampmann Meiko Jensen On Breaking SAML Be Whoever You Want to Be Abgerufen am 22 September 2023 englisch 2012Siehe auch BearbeitenXML Encryption Canonical XMLLiteratur BearbeitenMichael Hausler Michael Merz Michel Wichers Digitales Signieren mit XML In iX Magazin fur professionelle Informationstechnik Nr 6 2004 S 104 109 heise de abgerufen am 9 Juli 2019 Normen und Standards BearbeitenXML Signature Syntax and Processing W3C englisch Die aktuelle Version ist 1 1 von 2013 Weblinks BearbeitenEinfuhrung in XML Signaturen englisch V DStandards des World Wide Web Consortiums W3C Empfehlungen ActivityPub ARIA Canonical XML CDF CSS DOM Geolocation API HTML HTML5 InkML ITS JSON LD MathML OWL P3P PLS PNG RDF RDF Schema RIF SCXML SISR SKOS SMIL SOAP SRGS SSML SVG SPARQL Timed Text Turtle VoiceXML WSDL XForms XHTML XHTML RDFa XInclude XLink XML XML Base XML Encryption XML Events XML Information Set XML Namespace XML Schema XML Signature XPath XPointer XProc XQuery XSL XSL FO XSLT Elemente nbsp Arbeitsentwurfeund Kandidaten CCXML CURIE SMIL Timesheets sXBL WICD XFrames XBL XHTML MathML SVG XMLHttpRequestAnmerkungen XAdES XFDL XHTML SMIL XUPRichtlinien Web Content Accessibility Guidelines Multimodal Interaction Activity Markup Validation ServiceInitiativen Web Accessibility Initiative Abgerufen von https de wikipedia org w index php title XML Signature amp oldid 237615324