Technischer Altova-Leitfaden: Überblick über die Technologie digitaler XML-SignaturenDigitale XML-SignaturenBei der XML-Signatur handelt es sich, wie der Name schon sagt, um eine Art von XML-basierter Signatur und eine wichtige XML-Sicherheitsfunktion. (Eine Übersicht über die Technologie, auf der digitale Signaturen basieren, finden Sie auf unserer Website im Abschnitt "Technische Leitfäden" unter Überblick über digitale Signaturen.) Digitale XML-Signaturen basieren auf denselben Grundsätzen wie andere digitale Signaturen.
Aufgrund der Struktur von XML muss dieses sonst einfache Verfahren für XML adaptiert werden. Der Hash-AlgorithmusDer Algorithmus oder "Hash", der die Datei in einen Message Digest übersetzt, verwendet eine zeichengenaue Interpretation dieser Datei - der Message Digest für eine Datei mit zwei Leerzeichen am Ende eines bestimmten Satzes unterschiedet sich von dem für eine Datei mit nur einem Leerzeichen am Ende desselben Satzes. Da es sich bei XML um eine Sprache handelt, die XML-Dateien als "logisch äquivalent" erkennen kann (so ist z.B. <ref>loop</ref> syntaktisch dasselbe wie <ref > loop </ref>), wird die XML-Syntax von XML-Prozessoren nicht auf standardisierte Weise dargestellt. Aus diesem Grund müssen die Formatierung und andere Unterschiede, die potenziell zu Ungereimtheiten führen können, unbedingt "normalisiert" werden, damit der Hash sowohl auf Seiten des Absenders als auch des Empfängers denselben Message Digest erzeugt. XML-KanonisierungEine XML-Datei wird mittels Kanonisierung (Canonicalization) "normalisiert". Bei der Kanonisierung werden die Struktur, Formatierung und andere "physische" Attribute einer XML-Datei - nicht aber ihre Erscheinungsform, die auf der "Logik" basiert, die durch die XML-Tags vorgegeben ist - so geändert, dass sie den in den W3C-Standards Canonical XML 1.0 oder Canonical XML 1.1 entspricht. Man könnte dies mit einem Zeitungsartikel vergleichen, der auf einer Reihe verschiedener Webseiten gepostet wird - die Wörter werden auf dem Bildschirm genau gleich angezeigt, aber der auf den einzelnen Seiten verwendete HTML-Code unterscheidet sich zumindest geringfügig von dem der anderen Seiten. Durch Anwendung des Hash auf eine XML-Datei in ihrer kanonischen Form (Canonical XML) anstelle der XML-Originaldatei (die von einem XML-Prozessor auf Seiten des Empfängers möglicherweise geringfügig geändert wurde), wird ein "fälschlicherweise negatives" Ergebnis verhindert. Durch die Kanonisierung kann der ursprüngliche Message Digest mit dem neu erzeugten Message Digest zuverlässig verglichen werden, um zu gewährleisten, dass die Datei unversehrt geblieben ist. Bei der Kanonisierung für eigenständige XML-Dateien kann es aufgrund des Vorhandenseins von Namespaces außerhalb einer eingebetteten XML-Datei zu einem anderen Ergebnis kommen als bei der Kanonisierung für XML-Dateien, die in ein anderes Dokument eingebettet wurden. Zur Behebung dieses Problems hat das W3C den Exclusive XML Canonicalization-Standard entwickelt. Bei der exklusiven Kanonisierung werden nur die im signierten Abschnitt der XML-Datei verwendeten Namespaces inkludiert - dagegen werden bei der "inklusiven" Kanonisierung auch die Namespaces aus dem Dokument, in das die signierte XML-Datei eingebettet wurde, inkludiert. Der angewendete Kanonisierungsalgorithmus ist im Element "CanonicalizationMethod" im Element XML <Signature> angegeben. (In Altova XMLSpy und StyleVision wird der Benutzer aufgefordert auszuwählen, welche Form der Kanonisierung angewendet und wie Whitespaces behandelt werden sollen. Diese Informationen werden in das XML Signature-Element eingesetzt.) Ein interessantes Detail daran: Canonicalization wird oft als C14n abgekürzt, wobei "c" und "n" für den ersten und letzten Buchstaben des Begriffs und 14 für die Anzahl der Buchstaben dazwischen stehen. Einfügen einer XML-SignaturGemäß der hierarchischen Struktur der Extensible Markup Language können XML-Signaturen an unterschiedliche Abschnitte einer Datei angehängt werden. Eine "enveloping" Signatur ist eine Signatur, in der die XML-Signatur ein übergeordnetes Element ist - das Element <Signature> wird als Root-Element erstellt und der XML-Code wird in dieses eingefügt. Beachten Sie in diesem Beispiel das Element <xsig:SignedInfo>, das unterhalb des Root-Elements <Signature> angezeigt wird.
Eine XML-Signatur wird als "enveloped" bezeichnet, wenn sie innerhalb des Root-Elements erscheint - das Element <Signature> wird als das letzte Child-Element eingefügt.
Eine "detached" XML-Signatur befindet sich in einer externen Datei, mit der das XML-Dokument verknüpft ist. Die Signaturdatei (<xsig:Reference URI="DetachedXMLSignature.xsd"> in diesem Beispiel) enthält eine Referenz zurück auf das damit verknüpfte Dokument.
Altova XMLSpy, Altova MapForce, Altova StyleVision und Altova Authentic unterstützen digitale XML-Signaturen. Klicken Sie bitte, um mehr über digitale XML-Signaturen in XMLSpy, MapForce, StyleVision und Authentic zu erfahren. |
| |||||||||||||||||||||||||||||
| Altova | Rechtsabteilung | Presse | Partner | Karriere | Übersicht | Kontakt | Altova Blog | Mobile | Full Site | |||
|
