XML-Sicherheitsaspekte

Beispielsignatur

Das Signieren von XML-Dokumenten erfolgt in zwei Schritten. In unserem Beispiel-Listing unten sehen Sie die typischen Bestandteile. Zunächst wird die Datenstruktur gemäß dem vom W3C spezifizierten Algorithmus durch Canonical XML vereinfacht.

Im zweiten Schritt folgen dann Aktionen, wie man sie von anderen Signiervorgängen kennt. Dabei wird beispielsweise an einem Hash-Wert eine Operation mit dem Private Key durchgeführt.

Die Verifizierung der Signatur erfolgt ebenfalls in zwei Schritten: Zunächst erfolgt die Validierung der Signatur, um die Authentizität sicherzustellen. Anschließend wird der Digest-Wert, in unserem Listing j6lwx3rvEPO0vKtMup4NbeVu8nk, verifiziert, um die Datenintegrität zu überprüfen. Hier ein Beispiel für eine angehängte Signatur, die also nicht in das XML-Dokument eingebettet ist:

<Signature Id="MeineErsteSignatur" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/T 20010315"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/><Reference URI="http://www.w3.org/TR/2000/REC-xhtml1-20000126/"><Transforms><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue></Reference></SignedInfo><SignatureValue>MC0CFFrVLtRlk=...</SignatureValue><KeyInfo><KeyValue><DSAKeyValue><p>...</p><Q>...</Q><G>...</G><Y>...</Y></DSAKeyValue></KeyValue></KeyInfo></Signature>