Home. 
.

transparent

transparent

transparent

Technischer Altova-Leitfaden: Überblick über die Technologie digitaler XML-Signaturen

Digitale XML-Signaturen

Bei 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.

  • Eine Datei wird über einen Algorithmus in einen Message Digest transformiert.
  • Anschließend wird der Message Digest verschlüsselt und an den gewünschten Empfänger gesendet.
  • Der Empfänger "entsperrt" den Message Digest mit Hilfe des öffentlichen Schlüssels (Public Key) eines Private-Public-Schlüsselpaares.
  • Derselbe Algorithmus, der die Datei auf der Seite des Absenders in einen Message Digest transformiert hat, wird auf die Datei des Empfängers angewendet.
  • Der neu erzeugte Message Digest wird anschließend mit dem mit der Datei mitgesendeten Message Digest verglichen.
  • Wenn die Message Digests miteinander übereinstimmen, wurde die die Datei nach ihrer Signierung nicht geändert.

digital signature overview
Zum Vergrößern anklicken

Aufgrund der Struktur von XML muss dieses sonst einfache Verfahren für XML adaptiert werden.

Der Hash-Algorithmus

Der 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-Kanonisierung

Eine 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-Signatur

Gemäß 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.

enveloping XML signature

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.

enveloped XML signature

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.

detached XML signature


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.



transparent
Print
Mail
Like It
.

XBRL whitepaper

.
.

Jolt Product Excellence Award 2009

.

Altova MissionKit erhält Jolt Award für “Beste Entwicklungsumgebung”

.
.

Lesen Sie den Altova Blog
Read the Altova Blog!

.

Im Altova Blog lesen Sie über die neuesten Altova-Produktankündigungen, neue Produktfunktionen, technische Tipps und Informationen über die Branche. Registrieren Sie sich jetzt!

.
Akronymophobie
.

Substantiv. Zustand, der durch eine unübersehbare Anzahl an technischen Abkürzungen, Akronymen und Schlagwörtern verursacht wird. Lässt sich mit dem Altova-Glossar gut behandeln.

.
.

transparent

transparent