blob: 4944f61a68b20dfab61b27a18e9c8cbfecd610ce [file] [log] [blame]
<html xmlns:sec="http://www.xml-sicherheit.de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../format.css">
</head>
<body>
<h1>Transformation</h1>
<p>Mittels Transformationen können die durch das URI Attribut adressierten Daten vor der Hashwertberechnung umgewandelt und gezielt
Dokumentfragmente zum Signieren ausgewählt werden.
</p>
<p>
<strong>Base64</strong> wandelt Base-64 Zeichenketten zurück in die entsprechenden Oktette. Base-64 ist ein von der IETF spezifiziertes Kodierungsverfahren
für Binärdaten und ermöglicht die Einbettung beliebiger Daten in das XML-Dokument. Der Name Base-64 kommt daher, dass zur
Kodierung von Daten aller Art nur die 64 Zeichen <em>a-z, A-Z, 0-9,+,/</em> verwendet werden. Binäre Zeichen könnten sonst nicht in XML dargestellt werden. Die so eingebetteten Binärdaten werden im
Base-64 encoding dadurch allerdings um 33% größer als die Ursprungsdaten im Binärformat.
</p>
<p>Die <strong>Enveloped Signature Transform</strong> verhindert, dass Signaturen sich selbst signieren, indem vor dem Signieren alle zur Signatur gehörenden Elemente durch die
Transformation entfernt werden.
</p>
<p>Das <strong>XPath Filtering</strong> verarbeitet XPath-Knoten. Mit diesen Transformationen können Knoten aus einer XML-Knotenmenge ausgewählt werden, die beim
Signieren berücksichtigt werden sollen. Der Rest des Dokuments wird nicht in die Signatur miteinbezogen. Wird XPath als Transformation
einer XML-Signatur verwendet, wird es als Filtermechanismus angewandt und nicht als Auswahlmechanismus. Der XPath Filter 2.0
besitzt die gleichen Funktionen wie die ursprünglichen XPath Transformationen, arbeitet aber sehr viel effizienter und besitzt
eine einfachere Syntax.
</p>
<p>Eine <strong>XSLT Transform</strong> transformiert die zu signierenden Daten mit den Extensible Stylesheet Language Transformations (XSLT). Mit XSLT können die
XML-Daten beispielsweise vor dem Signieren in die HyperText Markup Language (HTML) umgewandelt werden.
</p>
<p>Möglich sind die in der folgenden Tabelle aufgeführten Transformationen. Zusätzlich zu den hier aufgeführten Algorithmen gehören
auch die bereits bei der <a href="signatures_canon.html">Kanonisierung</a> genannten Algorithmen zu den Transformationen.
</p>
<table cellspacing="0">
<thead>
<tr>
<th>Name</th>
<th>URI</th>
<th>Implementierung</th>
</tr>
</thead>
<tbody>
<tr class="uneven">
<td>
Base64
</td>
<td>http://www.w3.org/2000/09/xmldsig#base64</td>
<td>erforderlich</td>
</tr>
<tr class="even">
<td>
Enveloped Signature Transform
</td>
<td>http://www.w3.org/2000/09/xmldsig#enveloped-signature</td>
<td>erforderlich</td>
</tr>
<tr class="uneven">
<td>
XPath Filtering
</td>
<td>http://www.w3.org/TR/1999/REC-xpath-19991116</td>
<td>empfohlen</td>
</tr>
<tr class="even">
<td>
XSLT Transform
</td>
<td>http://www.w3.org/TR/1999/REC-xslt-19991116</td>
<td>optional</td>
</tr>
</tbody>
</table>
</body>
</html>