XML Security Tools

Tutorial aktualisiert am 14.12.2009

Dieses Tutorial ist Bestandteil der XML Security Tools (früher XML-Security Plug-In), dem Open Source eLearning Plug-in für XML-Sicherheit mit Eclipse ab Version 3.0. Mit den XML Security Tools können Sie beliebige XML-Dokumente sichern und XML Canonicalization, XML Signature sowie XML Encryption in beliebigen XML-Dokumenten ausprobieren und anwenden. Verschiedene Cheat Sheets erleichtern Einsteigern die ersten Schritte mit dem Plug-in und der XML-Sicherheit. Die umfangreichen Tutorials und in Teilen auch die Online-Hilfe des Plug-ins enthalten ausführliche Informationen zu den W3C Empfehlungen und Hintergründe zu Signaturen und Verschlüsselung mit der Extensible Markup Language sowie Anleitungen zur Verwendung der XML Security Tools.

Im Fokus der XML Security Tools stehen die praktische Anwendung und das Experimentieren mit den vielfältigen Möglichkeiten der XML-Sicherheit: beliebige XML-Dokumente können kanonisiert, signiert, verifiziert sowie ver- und entschlüsselt werden. Die theoretischen Informationen und Hintergründe zu den umfangreichen W3C Empfehlungen stehen in diesen Tutorials verständlich zum Nachlesen bereit.

Für die XML Security Tools sind Kenntnisse in XML erforderlich, XPath Expressions und Namespaces sind hilfreich, aber nicht zwingend notwendig. Empfehlenswert sind außerdem Kenntnisse in XML Schema (XSD) und XSL Transformations (XSLT). Kenntnisse in der Kryptografie (Digitale Signaturen, Verschlüsselung, Hashfunktionen) sind hilfreich aber nicht unbedingt erforderlich. Für die XML Security Tools sollten dafür grundlegende Eclipse Kenntnisse vorhanden sein.

Die Homepage zu den XML Security Tools und zur XML-Sicherheit für Support, Tipps und vielem mehr ist verfügbar unter www.xml-sicherheit.de. Der Source Code des nicht mehr weiterentwickelten XML-Security Plug-in findet sich auf der SourceForge Projektseite unter http://sourceforge.net/projects/xml-security. Der aktuelle Source Code der XML Security Tools befindet sich unter http://dev.eclipse.org/viewcvs/index.cgi/incubator/sourceediting/?root=WebTools_Project.

Die XML Security Tools stehen unter der Eclipse Public License Version 1.0, einsehbar unter http://www.eclipse.org/legal/epl-v10.html. Die für die XML Security Tools notwendige Apache XML Security API (Santuario) im Plug-in org.apache.xml.security, Apache Commons Logging im Plug-in org.apache.commons.logging, Apache Xalan im Plug-in org.apache.xalan sowie Apache Xerces im Plug-in org.apache.xerces stehen unter der Apache Software License Version 2.0. Diese ist einsehbar unter http://www.apache.org/licenses/LICENSE-2.0.html.

Seit Oktober 2008 ist das XML-Security Plug-In ein offizielles Eclipse Plug-in und wird nicht mehr eigenständig weiterentwickelt. Unter dem Namen XML Security Tools sind neue Versionen des Plug-ins nun im Incubator der Eclipse Web Tools Platform (WTP) zu finden.

Fehler im Tutorial? Unverständliche oder unvollständige Erklärung? Mehr Informationen gewünscht? Den Entwickler und Autor Dominik Schadow erreichen Sie per Email über info@xml-sicherheit.de oder über die zahlreichen Kontaktmöglichkeiten auf der Homepage.

XML Security Tools

Die XML Security Tools bestehen aus den fünf Komponenten Canonicalization, XML Signature Wizard, XML Signatures View, XML Encryption Wizard und XML Decryption Wizard. Der Fokus liegt stets auf der zu sichernden Ressource, Ausgangspunkt ist also immer ein beliebiges XML-Dokument im XML-Editor der Eclipse Web Tools Platform (empfohlen) oder verschiedenen Views.

Die Wizards erfordern immer zunächst ein zu sicherndes XML-Dokument bevor die Details der Signatur, Verschlüsselung oder Entschlüsselung festgelegt werden können.

Ganz im Sinne einer Lernsoftware ist es das Ziel der XML Security Tools, Ihnen die größtmöglichen Freiheiten zu lassen und das Experimentieren mit der XML-Sicherheit zu fördern. Das bedeutet, dass Sie in den Wizards so viele Einstellungen wie möglich selbst vornehmen müssen und Ihnen so wenige Einschränkungen wie möglich durch das Plug-in gemacht werden. Teilweise hat das zur Folge, dass in den Wizards viele Angaben getätigt werden müssen, bevor das XML-Dokument gesichert werden kann. Auf diese Art können Sie aber am besten die umfangreichen Eigenschaften und Möglichkeiten der XML-Sicherheit kennen lernen.

Die Grundlagen der Kryptografie, also digitale Signaturen und Verschlüsselung, sind nicht Bestandteil der XML Security Tools. Kenntnisse in diesem Bereich sind aber natürlich von Vorteil. Ein hervorragendes und sehr empfehlenswertes Tool hierfür ist das frei erhältliche CrypTool oder dessen Nachfolger JCrypTool.

Zum schnellen Signieren, Verifizieren sowie Ver- und Entschlüsseln stehen die so genannten Quick Functions zur Verfügung. Die dabei verwendeten Einstellungen werden vorab in den Preferences festgelegt, wodurch das Sichern des XML-Dokuments (fast) mit einem Klick erfolgen kann. Zur einfacheren Unterscheidung besitzen die Quick Functions keine Icons im Kontextmenü.

Alle Wizards und Befehle der XML Security Tools lassen sich über das übersichtliche Kontextmenü an verschiedenen Stellen aufrufen:

Zum einen können Sie im Navigator, Package Explorer oder Project Explorer genau ein XML-Dokument markieren. Zum anderen lassen sich sämtliche Funktionen bei einem geöffneten XML-Dokument auch über das Kontextmenü im Eclipse XML-Editor der Web Tools Platform erreichen. Die Funktionen des Plug-ins sind immer mit der rechten Maustaste über das Untermenü XML Security erreichbar.

Kontextmenü

Kontextmenü

Das XML Security Menü im XML-Editor ist immer vorhanden. In den erwähnten Views ist der Eintrag jedoch nur sichtbar wenn Sie sich in der XML Perspective befinden.

Das Kontextmenü ist stets dasselbe, jedoch kann bei einem Aufruf über die Views in den Signature und Encryption Wizards nicht die Option Selection ausgewählt werden. Auch bei der Quick Signature und Quick Encryption ist das Sichern einer Textmarkierung nicht möglich.

Um eine Textauswahl zu signieren oder zu verschlüsseln muss die Textmarkierung bereits vor dem Aufruf des Wizards im Editor vorhanden sein. Ihre Textauswahl darf die Regeln der Wohlgeformtheit nicht verletzen! Das heißt, dass beim Sichern (Signieren/ Verschlüsseln) eines Elements sowohl das öffnende als auch das schließende Tag mit in die Auswahl einbezogen werden müssen. Der Inhalt eines Elements kann beliebig signiert oder verschlüsselt werden. Das Signieren oder Verschlüsseln von einzelnen Attributen ist nicht möglich. Würde das Signieren oder Verschlüsseln Ihrer Textauswahl die Wohlgeformtheit verletzen, können Sie im jeweiligen Wizard den Eintrag Selection nicht auswählen. Verlassen Sie in diesem Fall den Wizard wieder und korrigieren Sie die Textauswahl oder sichern Sie das ganze Dokument bzw. ein durch einen XPath Ausdruck spezifiziertes Dokumentfragment.

Beim Aufruf eines Wizards über das Kontextmenü des XML-Editors steht die Rückgängig-Funktion von Eclipse zur Verfügung. Alle durch das Plug-in vorgenommenen Änderungen können so mit dieser Funktion rückgängig gemacht werden. Beim Aufruf eines Wizards über eine View werden die Änderungen dagegen direkt in das XML-Dokument geschrieben und können nicht rückgängig gemacht werden. Ist das XML-Dokument aber gleichzeitig im XML-Editor geöffnet können dort auch die Änderungen einer View rückgängig gemacht werden. Bitte beachten Sie daher, dass die Rückgängig-Funktion auch ein entsprechendes Sicherheitsrisiko darstellen kann (der Klartext kann einfach wiederhergestellt werden).

Cheat Sheets

Die Cheat Sheets sind deutsch- bzw. englischsprachige Tutorials (die angezeigte Sprache hängt von den Ländereinstellungen des Betriebssystems ab) speziell für Anfänger und sollen Ihnen den Einstieg in die XML Security Tools und die XML-Sicherheit erleichtern. Mit den fünf verfügbaren Anleitungen werden Sie Schritt für Schritt durch die Generierung einer Signatur, die Verifizierung sowie Ver- und Entschlüsselung und die Verwendung der Quick Functions geführt.

Anzeigen können Sie die Cheat Sheets über den Menüpunkt Cheat Sheets... im Menü Help. Im sich öffnenden Fenster finden Sie eine Rubrik XML Security mit den fünf enthaltenen Cheat Sheets. Nach der Auswahl eines Tutorials und dem Klick auf OK wird die gewünschte Anleitung angezeigt und Sie können diese schrittweise durcharbeiten. Über die Hilfe-Icons neben jedem Eintrag gelangen Sie zu weiterführenden Informationen in der Online-Hilfe.

Einige Abschnitte besitzen Icons zum Starten einer Aktion. Beispielsweise können Sie sich in den Signatur- und Verschlüsselungs-Cheat Sheets ein Projekt und ein XML-Dokument zum Ausprobieren generieren lassen. Außerdem können Sie direkt von aus dem Quick Functions Cheat Sheet in die Preferences Ihres Workspace wechseln.

Selbstverständlich können Sie einzelne Schritte überspringen sofern Sie die darin enthaltenen Aktionen bereits durchgeführt haben (wenn Sie z.B. bereits ein XML-Dokument zum Sichern erstellt haben).

Preferences

In den Benutzereinstellungen können auf der Hauptseite XML Security (zu finden in der Kategorie XML) und den Unterseiten Signature sowie Encryption verschiedene Optionen für die XML Security Tools eingestellt werden. Die Einstellungen auf den Unterseiten betreffen ausschließlich die Quick Functions des Plug-ins. Diese Angaben müssen vollständig ausgefüllt sein, bevor die Einträge zum schnellen Signieren, Verifizieren oder Ver- und Entschlüsseln verwenden können. Fehlen Angaben beim Aufruf einer Quick Function können diese über den angezeigten Link auf der jeweiligen Preference Seite eingegeben werden.

Auf der Hauptseite XML Security können Sie zunächst festlegen, was beim Aufruf der Canonicalization über das Kontextmenü passieren soll. Beim Canonicalization Type können Sie zwischen der inklusiven und der exklusiven Variante auswählen. Mit dem Canonicalization Target können Sie bestimmen, wie ein über das Kontextmenü kanonisiertes XML-Dokument angezeigt werden soll. Mit Same Document wird das angezeigte XML-Dokument selbst kanonisiert, mit New Document öffnet sich ein neues Editorfenster in dem das kanonisierte XML-Dokument angezeigt wird. Das Ursprungsdokument wird dabei nicht verändert. So lassen sich die Unterschiede leichter vergleichen.

Allgemeine XML Security Tools Einstellungen und zur Kanonisierung

Allgemeine XML Security Tools Einstellungen und zur Kanonisierung

Alle weiteren Einstellungen auf den Unterseiten Signature und Encryption betreffen die Quick Functions. Sie müssen hier sämtliche Informationen angeben die Sie normalerweise über den entsprechenden Assistenten angeben würden. Lediglich sicherheitsrelevante Daten wie Passwörter werden nicht gespeichert und müssen direkt beim Aufruf der Quick Functions angegeben werden (ein Popup-Dialog fordert Sie zur Eingabe auf).

Signature Preferences

Die Einstellungen auf der Unterseite Signatures beeinflussen sowohl den Befehl Quick Signature als auch Quick Verification. Wie im Wizard müssen Sie zunächst auswählen welche Ressource Sie signieren möchten und welchen Signaturtyp Sie verwenden wollen (nur enveloping und enveloped stehen zur Verfügung). Anschließend müssen Sie noch die zu verwendenden Algorithmen und einen Java Keystore mit dem Schlüssel auswählen sowie den Aliasnamen dieses Schlüssels angeben. Die Signature ID schließlich entspricht auch der ID nach der bei der Quick Verification gesucht wird. Auf fehlende Angaben werden Sie beim Aufruf von Quick Signature bzw. Quick Verification hingewiesen und können diese Angaben dann entweder nachholen oder die Operation abbrechen.

Einstellungen für die Quick Signature und Quick Verification

Einstellungen für die Quick Signature und Quick Verification

Encryption Preferences

Unter Encryption finden Sie alle Einstellungen, die für die Befehle Quick Encryption und Quick Decryption notwendig sind. Dies betrifft die Auswahl der zu verschlüsselnden Ressource, des Verschlüsselungstyps und die gewünschten Algorithmen. Außerdem müssen Sie noch den Schlüsselspeicher und den Aliasnamen des Schlüssels angeben. Auch hier bestimmt die Encryption ID die Verschlüsselung, nach der bei der Entschlüsselung gesucht wird. Auf fehlende Angaben werden Sie beim Aufruf von Quick Encryption bzw. Quick Decryption hingewiesen und können diese dann entweder angeben oder die Operation abbrechen.

Einstellungen für die Quick Encryption und Quick Decryption

Einstellungen für die Quick Encryption und Quick Decryption

Quick Functions

Mit den Quick Functions können Sie schnell ein XML-Dokument(-fragment) signieren, verifizieren sowie ver- und wieder entschlüsseln. Um diese Funktionen nutzen zu können sind daher einige Einstellungen in den Preferences erforderlich. Anschließend ersparen Ihnen diese Befehle das umfangreiche Ausfüllen des jeweiligen Wizards. Abgefragt werden nur noch die sicherheitskritischen Angaben wie Passwörter (ein Popup-Dialog fordert Sie zur Eingabe auf). Alle weiteren Informationen werden in den Workspace Einstellungen gespeichert. Fehlen eine oder mehrere Einstellungen in den Preferences werden Sie beim Aufruf einer Quick Function entsprechend darüber informiert und können direkt in die Preferences wechseln oder die Operation abbrechen.

Passwörter werden grundsätzlich verschlüsselt in den Eingabefeldern angezeigt. Sollten Sie sich bei der Eingabe vertippen erhalten Sie eine entsprechende Fehlermeldung.

Bitte beachten Sie, dass Sie eine Textauswahl nur Signieren oder Verschlüsseln können, sofern Sie die Quick Function in einem Editor mit einem XML-Dokument aufrufen. Über eine View wie den Navigator oder Package Explorer ist das Sichern einer Textauswahl nicht möglich.

Quick Signature ermöglicht das schnelle Signieren eines XML-Dokuments oder eines Dokumentfragments. Sie werden dabei nur nach dem Keystore Password und dem Key Password gefragt. Sollte eines davon nicht korrekt sein erhalten Sie eine entsprechende Fehlermeldung und das XML-Dokument kann nicht signiert werden.

Quick Verification zeigt Ihnen in einem kleinen Dialogfeld an, ob die Signatur mit der angegebenen ID gültig (valid) oder ungültig (invalid) ist. Sollte keine Signatur mit der gespeicherten ID im XML-Dokument vorhanden sein erhalten Sie eine entsprechende Fehlermeldung.

Quick Encryption verschlüsselt ein XML-Dokument oder Teile davon mit einem Klick. Sie werden dabei nur nach dem Keystore Password und dem Key Password gefragt. Sollte eines davon nicht korrekt sein erhalten Sie eine entsprechende Fehlermeldung und das XML-Dokument kann nicht verschlüsselt werden.

Quick Decryption entschlüsselt ein XML-Dokument Sie werden dabei nur nach dem Keystore Password und dem Key Password gefragt. Sollte eines davon nicht korrekt sein erhalten Sie eine entsprechende Fehlermeldung und das XML-Dokument kann nicht entschlüsselt werden.

XML Signature Wizard

Mit dem XML Signature Wizard können Sie assistentengestützt eine Signatur für das von Ihnen gewählte XML-Dokument erstellen. Der XML Signature Wizard stellt einen den umfangreichsten Assistenten im Plug-in dar und ermöglicht viele unterschiedliche Kombinationen und Anwendungsmöglichkeiten. Bei der Signatur handelt es sich um eine Mischung aus einfacher und fortgeschrittener Signatur. Trotz einer erfolgreich verifizierten Signatur (d.h. einem erfolgreich verifizierten Hashwert) muss der Signierende aber nicht der sein, der er vorgibt zu sein (Sie können beim Generieren des Schlüssels jeden beliebigen Namen angeben). Um die Benutzerauthentizität zu garantieren wäre beispielsweise ein Key Management in der Art von XKMS notwendig. Dafür ist es mit den XML Security Tools sehr einfach, einen eigenen Schlüssel auf dem eigenen System zu generieren und diesen in verschiedenen Signaturen zu verwenden.

Der XML Signature Wizard besteht aus drei Seiten, die der Reihe nach von Ihnen ausgefüllt werden müssen. Die zweite Seite hängt dabei von der gewählten Schlüssel-Option ab und unterscheidet sich dadurch. Nur nachdem Sie alle Pflichtfelder einer Seite korrekt ausgefüllt haben können Sie auf die nächste Seite wechseln. Zu Ihrer Unterstützung stellt der Assistent Kurzhinweise im oberen Bereich zur Verfügung. Der XML Signature Wizard kann nur auf der letzten Seite erfolgreich beendet werden. Nach dem Klick auf den Finish Button wird anschließend die Signatur generiert.

Der XML Signature Wizard wird über den Eintrag New Signature... im Kontextmenü aufgerufen. Er besteht aus den Seiten Resource and Signature Type, Keystore and Key und Algorithms and Signature Properties. Über das Hilfe-Icon links unten auf jeder Wizard Seite erhalten Sie eine kontextabhängige Kurzhilfe und können weitergehende Informationen zum Wizard abrufen.

Resource and Signature Type

Auf der ersten Seite des XML Signature Wizard müssen Sie die zu signierende Ressource und die Signatur-Variante auswählen. Außerdem können Sie bestimmen, ob Sie ein vorhandenes Zertifikat verwenden oder im Assistenten ein neues generieren möchten. Mit der Auswahl von Generate a Basic Security Profile compliant signature werden die Auswahlmöglichkeiten im gesamten Assistenten im Hinblick auf die Basic Security Profile Empfehlung eingeschränkt.

Resource and Signature Type

Resource and Signature Type

Die erste Auswahlmöglichkeit im Assistent betrifft die Wahl der zu signierenden Ressource. Der Eintrag Document ist immer verfügbar und signiert das vollständige Dokument. Selection ist nur möglich wenn Sie im Editor mindestens ein Element bzw. Elementinhalt vor dem Aufruf des Assistenten markiert haben und der Assistent über das Kontextmenü eines Editors aufgerufen wurde. Die Auswahl muss wohlgeformt sein, d.h. sowohl das öffnende als auch das schließende Tag müssen in der Auswahl vorhanden sein. Werden die Regeln der Wohlgeformtheit verletzt kann Selection nicht aktiviert werden.

Bei der Auswahl von XPath können Sie im Textfeld einen XPath-Ausdruck eingeben. Alternativ können Sie über den Button Browse... einen weiteren Dialog zur Auswahl eines XPath Ausdrucks für das aktuelle XML-Dokument öffnen.

XPath Selection

XPath Selection

Damit die XPath-Ausdrücke zu jedem Element angezeigt werden können muss es sich um ein wohlgeformtes XML-Dokument handeln. Insbesondere bei der Verwendung von Namensräumen muss der Namensraum auch definiert werden, d.h. ein xmlns:MeinNamensraum="http://www.namensraum.de" muss bei der Verwendung von MeinNamensraum unbedingt vorhanden sein.

Anschließend müssen Sie die Signatur-Variante bestimmen. Zur Auswahl stehen Enveloped, Enveloping und Detached Signaturen. Nach der Auswahl von Detached müssen Sie im Textfeld den Pfad und Dateinamen zu der zu signierenden Datei angeben. Dies kann ein XML-Dokument oder eine beliebige andere Datei sein. Über den Button Select... können Sie ein Standarddialogfeld zur Auswahl einer Datei öffnen. Die Auswahl einer Detached Signatur schränkt die zu signierende Ressource automatisch auf Document ein.

In der Gruppe Keystore and Key wählen Sie eine Schlüsseloption aus. Mit der Auswahl von Use a Key from an existing Keystore verwenden Sie einen vorhandenen Schlüssel aus einem Java Keystore zum Signieren. Bei Insert a new Key in an existing Keystore erweitern Sie einen vorhandenen Keystore um einen neuen Schlüssel und verwenden diesen gleich zum Signieren. Mit der Auswahl von Create a new Key and a new Keystore legen Sie einen neuen Keystore und darin einen neuen Schlüssel an. Dieser Schlüssel wird ebenfalls gleich zum Signieren verwendet.

Durch das Aktivieren der Basic Security Profile compliant signature wird der Assistent auf zu dieser Empfehlung kompatible Einstellungen eingeschränkt. Enveloping Signaturen werden dadurch deaktiviert. Stattdessen wird die Verwendung von Detached Signaturen empfohlen. Enveloped Signaturen sind möglich, ihre Verwendung wird aber nicht empfohlen.

Um vollständig konform zum Basic Security Profile zu sein muss auf der Use a Key from an existing Keystore Seite ein Schlüssel mit einem RSA Algorithmus ausgewählt oder auf der Seite Insert a new Key in an existing Keystore bzw. Create a new Key and a new Keystore ein entsprechender Schlüssel generiert werden. Auf der Seite Algorithms and Signature Properties werden alle Algorithmen gemäß der Empfehlung eingeschränkt und nur diese zur Auswahl angezeigt.

Nach der korrekten Eingabe aller erforderlichen Daten können Sie mit dem Next Button auf die nächste Seite des XML Signature Wizards wechseln. Je nach Auswahl bei den Schlüssel-Option unterscheidet sich diese: Use a Key from an existing Keystore, Insert a new Key in an existing Keystore oder Create a new Key and a new Keystore.

Keystore and Key

Bei der Verwendung von Schlüsselspeichern (Keystores) und Schlüsseln (Keys) mit Java Keystores haben Sie mehrere Möglichkeiten: Sie können einen vorhandenen Schlüssel aus einem Java Keystore verwenden (Use a Key from an existing Keystore), einen neuen Schlüssel in einen vorhanden Keystore einfügen (Insert a new Key in an existing Keystore) oder auch einen neuen Schlüssel in einem neuen Keystore generieren (Create a new Key and a new Keystore).

Je nachdem für welche dieser Optionen Sie sich entscheiden wird eine andere zweite Seite des XML Signature Wizards aufgerufen. Wenn Sie Ihre Schlüssel-Auswahl ändern wollen können Sie jederzeit mit dem Back Button eine Seite zurückspringen und einen anderen Eintrag markieren.

Keystores werden in dem speziellen Format JKS (Java Keystore) als Datei abgelegt. Das Format beinhaltet eine Verschlüsselung des Inhalts und die Möglichkeit, den Zugriff mit einem Passwort zu schützen. Um den Zugriff auf einen bestimmten Schlüssel zu ermöglichen muss für jedes ein beliebiger Alias Name vergeben werden. Ein Keystore kann damit mehrere Schlüssel auch unterschiedlichen Typs enthalten.

Beim Generieren einer Basic Security Profile compliant encryption kann nur ein RSA Schlüssel verwendet werden. Auch die Generierung von neuen Schlüsseln ist auf RSA beschränkt.

Use a Key from an existing Keystore

Auf dieser zweiten Seite des XML Signature Wizard müssen Sie zunächst den gewünschten Schlüsselspeicher und einen darin enthaltenen Schlüssel auswählen sowie die zugehörigen Passwörter angeben.

Use a Key from an existing Keystore

Use a Key from an existing Keystore

Zunächst müssen Sie eine Java Keystore Datei (mit der Dateiendung .jks) auswählen. Über den Button Open... öffnen Sie das Standarddialogfeld zur Auswahl einer solchen Datei.

Anschließend sind weitere Angaben zum Schlüsselspeicher und Schlüssel erforderlich. Alle angegebenen Felder sind Pflichtfelder. Mit den Punkt Buttons rechts neben den Passwortfeldern können sie den Klartext in einem Passwortfeld anzeigen lassen und Ihre Eingabe kontrollieren.

Mit dem Keystore Password kann der Schlüsselspeicher selbst geöffnet werden. Anschließend legen Sie mit dem Key Alias fest, welcher Schlüssel aus dem Keystore geladen werden soll. Dieser Schlüssel wird zur Erzeugung des KeyInfo Elements und später zur Verification der Signatur benötigt. Zum Abschluss müssen Sie noch das Passwort des Schlüssels angeben.

Nach der korrekten Eingabe aller erforderlichen Daten können Sie mit dem Next Button auf die nächste Seite des XML Signature Wizards wechseln: Algorithms and Signature Properties.

Insert a new Key in an existing Keystore

Auf dieser zweiten Seite des XML Signature Wizard können Sie einen neuen Schlüssel in einem vorhandenen Java Keystore generieren. Nach Angabe aller erforderlichen Daten wird das Zertifikat unter dem von Ihnen angegebenen Alias im ausgewählten Keystore gespeichert und zur Generierung dieser digitalen Signatur verwendet.

Insert a new Key in an existing Keystore

Insert a new Key in an existing Keystore

Zunächst müssen Sie die Daten für den Distinguished Name angeben. Dazu gehören Common Name, Organizational Unit, Organization, Location, State und Country. Lediglich der Common Name ist ein Pflichtfeld, die anderen fünf sind optional. Während der Eingabe der Daten zeigt das Vorschaufeld eine Übersicht Ihrer getätigten Eingaben an.

Anschließend sind einige Angaben zum Schlüssel (Key) erforderlich. Der Alias ist ein Pflichtfeld und muss zwischen 4 und 20 Zeichen lang sein. Das Password für den Schlüssel ist ebenfalls ein Pflichtfeld und muss mindestens 6, maximal jedoch 20 Zeichen lang sein. Mit dem Punkt Button rechts neben den Eingabefeld können Sie sich den Klartext anzeigen lassen und Ihre Eingabe kontrollieren. Aus der Type Auswahlbox können Sie jetzt noch den Typ des Schlüssels auswählen. Möglich sind Digital Signature Algorithm (DSA), Elliptic Curve DSA (ECDSA) und Rivest, Shamir, Adleman (RSA).

Jetzt müssen Sie noch den Java Keystore (mit der Dateiendung .jks) angeben, den Sie um den neuen Schlüssel erweitern wollen. Über den Button Open... öffnen Sie das Standarddialogfeld zur Auswahl einer solchen Datei. Damit der Schlüssel darin gespeichert werden kann ist noch die Eingabe des Keystore Passworts im Password Feld erforderlich. Mit dem Punkt Button rechts neben den Eingabefeld können Sie sich den Klartext anzeigen lassen und Ihre Eingabe kontrollieren.

Nach der korrekten Angabe aller erforderlichen Daten können Sie den Schlüssel über den Button Generate generieren und im angegebenen Keystore speichern lassen.

Den generierten Schlüssel können Sie in Zukunft über die Seite Use a Key from an existing Keystore direkt verwenden. Dazu benötigen Sie neben dem Dateinamen die unter Key Alias, Key Password und Keystore Password angegebenen Daten.

Nach der erfolgreichen Generierung des neuen Schlüssels können Sie mit dem Next Button auf die nächste Seite des XML Signature Wizards wechseln: Algorithms and Signature Properties.

Create a new Key and a new Keystore

Auf dieser zweiten Seite des XML Signature Wizard können Sie einen neuen Keystore mit einem neuen Schlüssel generieren. Nach Angabe aller erforderlichen Daten wird der Schlüssel unter dem von Ihnen angegebenen Alias im Keystore unter dem von Ihnen angegebenen Common Name gespeichert und zur Generierung dieser digitalen Signatur verwendet.

Create a new Key and a new Keystore

Create a new Key and a new Keystore

Zunächst müssen Sie die Daten für den Distinguished Name angeben. Dazu gehören Common Name, Organizational Unit, Organization, Location, State und Country. Lediglich der Common Name ist ein Pflichtfeld, die anderen fünf sind optional. Während der Eingabe der Daten zeigt das Vorschaufeld eine Übersicht Ihrer getätigten Eingaben an.

Anschließend sind einige Angaben zum Schlüssel (Key) erforderlich. Der Alias ist ein Pflichtfeld und muss zwischen 4 und 20 Zeichen lang sein. Das Password für den Schlüssel ist ebenfalls ein Pflichtfeld und muss mindestens 6, maximal jedoch 20 Zeichen lang sein. Mit dem Punkt Button rechts neben den Eingabefeld können Sie sich den Klartext anzeigen lassen und Ihre Eingabe kontrollieren. Aus der Type Auswahlbox können Sie jetzt noch den Typ des Schlüssels auswählen. Möglich sind Digital Signature Algorithm (DSA), Elliptic Curve DSA (ECDSA) und Rivest, Shamir, Adleman (RSA).

Jetzt müssen Sie nur noch ein Passwort für den neuen Keystore im Password Feld angeben. Das Password muss mindestens 6, maximal jedoch 20 Zeichen lang sein. Mit dem Punkt Button rechts neben den Eingabefeld können Sie sich den Klartext anzeigen lassen und Ihre Eingabe kontrollieren.

Nach der korrekten Angabe aller erforderlichen Daten können Sie den Schlüsselspeicher und den Schlüssel über den Button Create Keystore generieren lassen.

Den generierten Schlüssel können Sie in Zukunft über die Seite Use a Key from an existing Keystore direkt verwenden. Dazu benötigen Sie neben dem Dateinamen die unter Key Alias, Key Password und Keystore Password angegebenen Daten. Über die Seite Insert a new Key in an existing Keystore können Sie diesen Keystore um weitere Schlüssel ergänzen. Dazu benötigen Sie neben dem Dateinamen nur das Keystore Password.

Nach der erfolgreichen Generierung des neuen Schlüssels können Sie mit dem Next Button auf die nächste Seite des XML Signature Wizards wechseln: Algorithms and Signature Properties.

Algorithms and Signature Properties

Auf der letzten Seite des XML Signature Wizard müssen Sie sämtliche Algorithmen zur Canonicalization, Transformation sowie den Message Digest und Signature Algorithmus festlegen. Zusätzlich können Sie zur Signatur beliebige Signature Properties angeben und der Signatur eine optionale beliebige ID geben.

Algorithms and Signature Properties

Algorithms and Signature Properties

Sie müssen in jedem der vier Auswahlfelder zu den Algorithmen eine Auswahl treffen. Lediglich beim Transformation Algorithm können Sie auch None auswählen und damit auf eine Transformation verzichten. Wenn Sie auf der Resource and Signature Type Seite des Wizard das Basic Security Profile aktiviert haben sind die Einträge in allen Auswahlfeldern entsprechend eingeschränkt. Die möglichen Signature Algorithm hängen von dem von Ihnen gewählten Zertifikat ab (bei DSA stehen nur DSA Algorithmen zur Auswahl, bei EC nur EC Algorithmen und bei RSA entsprechend nur RSA Algorithmen).

Nicht auf jeder Plattform stehen alle Algorithmen in allen verfügbaren Schlüssellängen zur Verfügung. Bei der Erzeugung der Signatur wird unter Umständen eine Fehlermeldung ausgegeben und die Signierung abgebrochen. Bitte verwenden Sie in diesem Fall einen anderen Algorithmus oder eine kürzere Schlüssellänge. Der Algorithmus RIPEMD160 beispielsweise steht nur auf Systemen mit zusätzlichem Kryptografieprovider (z.B. BouncyCastle) zur Verfügung.

Als Message Digest Algorithm können Sie auch den Algorithmus MD5 auswählen. Dieser gilt jedoch nicht mehr als ausreichend sicher und sollte keinesfalls zur Sicherung von wichtigen Dokumenten verwendet werden. Als ausreichend sicher gelten derzeit Hashwerte ab einer Länge von 160 Bit.

Bei den Signature Properties können Sie zusätzliche Informationen erfassen, die ebenfalls mit signiert werden sollen. Um einen neuen Eintrag hinzuzufügen klicken Sie zunächst auf den + Button neben der Tabelle. Anschließend können Sie die Informationen in der Tabelle eintragen. ID und Target sind dabei Pflichtangaben. IDs müssen außerdem im Dokument eindeutig sein. Einen markierten Eintrag löschen Sie über den - Button.

Eine optionale ID können Sie der Signatur mit Hilfe des Textfelds zuweisen. Erlaubt sind hierfür alle Zeichen bis auf die fünf bekannten XML Entity-Referenzen <, &, >, " und ' bis zu einer maximalen Länge von 20 Zeichen. Diese ID muss im XML-Dokument eindeutig sein, d.h. sie darf in keiner anderen Signatur verwendet werden.

Durch das Markieren der Checkbox Start Encryption Wizard afterwards wird direkt nach dem erfolgreichen Signieren der XML Encryption Wizard aufgerufen.

Nach der korrekten Eingabe aller erforderlichen Daten können Sie mit dem Finish Button den XML Signature Wizard beenden und das XML-Dokument signieren lassen.

XML Signatures View

Der Eintrag New Verification... im XML Security Kontextmenü überprüft alle im gewählten/ geöffneten XML-Dokument enthaltenen XML-Signaturen. Das Ergebnis der Überprüfung wird in der XML Signatures View angezeigt. Je nach Anzahl der im XML-Dokument enthaltenen Signaturen finden Sie hier unterschiedlich viele Einträge die Ihnen neben der Signatur ID den Status der Signatur (gültig, ungültig oder unbekannt) über ein Icon mitteilen. Angezeigt werden auch Informationen über den verwendeten Certificate Type und den Certificate Algorithm.

XML Signatures View

XML Signatures View

Ein Doppelklick auf einen Eintrag öffnet ein Popup-Dialog mit weiteren Informationen zur gewählten Signatur. Alternativ können Sie auch einen Eintrag markieren und den Menüeintrag Properties auswählen). Um alle Signaturen im geöffneten XML-Dokument erneut zu verifizieren können Sie auf den Button Refresh klicken.

Ungültige Signatur

Ungültige Signatur

XML Encryption Wizard

Mit dem XML Encryption Wizard können Sie beliebige XML-Dokumente verschlüsseln und die Verschlüsselung dabei an zahlreichen Stellen ganz nach Ihren Wünschen konfigurieren.

Der Wizard besteht aus drei Seiten, die nacheinander bearbeitet werden müssen. Nur wenn Sie alle Pflichtfelder einer Seite korrekt ausgefüllt haben können Sie auf die nächste Seite wechseln. Beachten Sie zu Ihrer Unterstützung die Textmeldungen oben im Dialog. Der Wizard kann nur auf der letzten Seite zum Generieren der Verschlüsselung beendet werden.

Der XML Encryption Wizard wird über den Eintrag New Encryption... im Kontextmenü aufgerufen. Er besteht aus den Seiten Resource and Encryption Type, Keystore and Key und Algorithms and Encryption Properties. Über das Hilfe-Icon links unten auf jeder Seite erhalten Sie eine kontextabhängige Kurzhilfe und können weitergehende Informationen aufrufen.

Resource and Encryption Type

Auf der ersten Seite des XML Encryption Wizard müssen Sie die zu verschlüsselnde Ressource auswählen und eine Vorauswahl zum kryptografischen Schlüssel treffen. Mit der Aktivierung von Generate a Basic Security Profile compliant encryption werden die Auswahlmöglichkeiten im gesamten Assistenten im Hinblick auf diese Empfehlung eingeschränkt.

Resource and Encryption Type

Resource and Encryption Type

Die erste Auswahlmöglichkeit betrifft die zu verschlüsselnde Ressource. Document ist immer auswählbar und verschlüsselt das vollständige Dokument. Selection ist nur möglich wenn Sie im Editor mindestens ein Element oder Elementinhalt vor dem Aufruf des Assistenten markiert haben und der Assistent über das Kontextmenü eines Editors aufgerufen wurde. Die Auswahl muss wohlgeformt sein, d.h. sowohl das öffnende als auch das schließende Tag müssen in der Auswahl vorhanden sein. Werden die Regeln der Wohlgeformtheit verletzt kann Selection nicht aktiviert werden.

Bei der Auswahl von XPath können Sie im Textfeld einen XPath-Ausdruck eingeben. Alternativ können Sie über den Button Browse... einen weiteren Dialog zur Auswahl eines XPath Ausdrucks für das aktuelle XML-Dokument öffnen.

XPath Selection

XPath Selection

Damit die XPath-Ausdrücke zu jedem Element angezeigt werden können muss es sich um ein wohlgeformtes XML-Dokument handeln. Insbesondere bei der Verwendung von Namensräumen muss der Namensraum auch definiert werden, d.h. ein xmlns:MeinNamensraum="http://www.namensraum.de" muss bei der Verwendung von MeinNamensraum unbedingt vorhanden sein.

Durch das Aktivieren von Generate a Basic Security Profile compliant encryption wird der Wizard auf zu dieser Empfehlung kompatible Einstellungen eingeschränkt. Auf der Seite Algorithms and Encryption Properties werden so alle Algorithmen gemäß der Empfehlung eingeschränkt.

Hierbei werden hinsichtlich der zugelassenen Algorithmen folgende Einschränkungen vorgenommen. Für die EncryptionMethod innerhalb von EncryptedData sind ausschließlich die Algorithmen Triple DES, AES 128 und AES 256 erlaubt. Für EncryptionMethod als Kindelement von EncryptedKey sind die Algorithmen Triple DES Key Wrap, AES-128 Key Wrap und AES-256 Key Wrap zugelassen.

Keystore and Key

Bei der Verwendung von Schlüsselspeichern (Keystores) und Schlüsseln (Keys) mit Java Keystores haben Sie mehrere Möglichkeiten: Sie können einen vorhandenen Schlüssel aus einem Java Keystore verwenden (Use a Key from an existing Keystore), einen neuen Schlüssel in einen vorhanden Keystore einfügen (Insert a new Key in an existing Keystore) oder auch einen neuen Schlüssel in einem neuen Keystore generieren (Create a new Key and a new Keystore).

Je nachdem für welche dieser Optionen Sie sich entscheiden wird eine andere zweite Seite des XML Encryption Wizards aufgerufen. Wenn Sie Ihre Schlüssel-Auswahl ändern wollen können Sie jederzeit mit dem Back Button eine Seite zurückspringen und einen anderen Eintrag markieren.

Keystores werden in dem speziellen Format JKS (Java Keystore) als Datei abgelegt. Das Format beinhaltet eine Verschlüsselung des Inhalts und die Möglichkeit, den Zugriff mit einem Passwort zu schützen. Um den Zugriff auf einen bestimmten Schlüssel zu ermöglichen muss für jedes ein beliebiger Alias Name vergeben werden. Ein Keystore kann damit mehrere Schlüssel auch unterschiedlichen Typs enthalten.

Beim Generieren einer Basic Security Profile compliant encryption kann nur ein RSA Schlüssel verwendet werden. Auch die Generierung von neuen Schlüsseln ist auf RSA beschränkt.

Use a Key from an existing Keystore

Auf dieser Seite müssen Sie den Schlüsselspeicher auswählen, der den gewünschten Schlüssel enthält. Sofern der Schlüsselspeicher mit einem Passwort geschützt ist, müssen Sie dieses hier ebenfalls angegeben. Anschließend benötigen Sie noch den Aliasnamen des Schlüssels und das Passwort mit dem der Schlüssel geschützt ist.

Use a Key from an existing Keystore

Use a Key from an existing Keystore

Der Assistent speichert automatisch den Pfad zum Schlüsselspeicher und den eingegebenen Aliasnamen. Beim nächsten Aufruf des Assistenten müssen Sie diese Informationen daher nicht nochmals eingeben. Passwörter werden niemals gespeichert und müssen bei jeder Verwendung neu eingegeben werden.

Insert a new Key in an existing Keystore

Auf dieser Seite können Sie einen neuen Schlüssel generieren und diesen in einen vorhandenen Schlüsselspeicher einfügen. Wählen Sie dazu zunächst den zu verwendenden Schlüsselspeicher aus und geben Sie das zugehörige Passwort ein. Schlüsselspeicher können beliebig viele Schlüssel, auch mit unterschiedlichen Algorithmen und Schlüssellängen, enthalten. Lediglich der Aliasname darf nur ein einziges Mal vorhanden sein.

Insert a new Key in an existing Keystore

Insert a new Key in an existing Keystore

Anschließend müssen Sie einige Angaben zum Schlüssel vornehmen. Neben dem Algorithmus und einer dazu passenden Länge (die Box passt sich automatisch dem gewählten Algorithmus an) sind das ein Aliasname und ein Passwort für den Schlüssel. Der Aliasname muss im Schlüsselspeicher eindeutig sein.

Nach Angabe bzw. Auswahl aller notwendigen Informationen können Sie den neuen Schlüssel über den Generate Button generieren lassen. Der neue Schlüssel wird automatisch im folgenden Verschlüsselungsprozess verwendet.

Nicht auf jeder Plattform stehen alle Algorithmen in allen möglichen Längen zur Verfügung. Bei der Erzeugung des Schlüssels oder später der Verschlüsselung wird unter Umständen eine Fehlermeldung ausgegeben und die Verschlüsselung abgebrochen. Bitte verwenden Sie in diesem Fall einen anderen oder kürzeren Algorithmus.

Create a new Key and a new Keystore

Auf dieser Seite generieren Sie einen neuen Schlüsselspeicher und fügen gleichzeitig einen neuen Schlüssel ein.

Create a new Key and a new Keystore

Create a new Key and a new Keystore

Für den Schlüsselspeicher müssen Sie einen Namen und ein Passwort angeben. Anschließend müssen Sie noch einige Angaben zum Schlüssel vornehmen. Neben dem Algorithmus und einer dazu passenden Länge (die Box passt sich automatisch dem gewählten Algorithmus an) sind das ein Aliasname und ein Passwort für den Schlüssel. Der Aliasname muss im Schlüsselspeicher eindeutig sein.

Nach Angabe bzw. Auswahl aller notwendigen Informationen können Sie den neuen Schlüsselspeicher zusammen mit dem neuen Schlüssel über den Generate Button generieren lassen. Der Schlüsselspeicher wird im aktuellen Verzeichnis (i.d.R. das aktive Projekt) abgelegt. Der neue Schlüssel wird automatisch im folgenden Verschlüsselungsprozess verwendet.

Nicht auf jeder Plattform stehen alle Algorithmen in allen möglichen Längen zur Verfügung. Bei der Erzeugung des Schlüssels oder später der Verschlüsselung wird unter Umständen eine Fehlermeldung ausgegeben und die Verschlüsselung abgebrochen. Bitte verwenden Sie in diesem Fall einen anderen oder kürzeren Algorithmus.

Algorithms and Encryption Properties

Auf der letzten Seite müssen Sie noch die beiden zu verwendenden Algorithmen für die Verschlüsselung der Daten und die Verschlüsselung des Schlüssels selbst angeben. Die Angabe einer ID für die Verschlüsselung ist optional, wird aber sehr empfohlen.

Algorithms and Encryption Properties

Algorithms and Encryption Properties

Zunächst müssen Sie die beiden erforderlichen Algorithmen für die Verschlüsselung der Daten (Encryption Algorithm) und zum Schlüsseltransport (Key Wrap Algorithm) auswählen.

Der Key Wrap Algorithmus dient dem sicheren Schlüsseltransport von einem Teilnehmer zu einem oder mehreren anderen (bspw. bei einer ungesicherten Übertragung über das Internet).

Keep root element as plain text bewirkt, dass nur der Inhalt des gewählten Elements verschlüsselt wird, das Element selbst aber im Klartext erhalten bleibt. Beim Verschlüsseln des vollständigen Dokuments bedeutet das, dass das Wurzelelement (nur dieses) im Klartext erhalten bleibt. Bei einer Textauswahl bleibt das entsprechende temporäre Wurzelelement der Textauswahl im Klartext erhalten. Standardmäßig werden sowohl das Element als auch der Elementinhalt verschlüsselt.

Die Angabe der ID für die Verschlüsselung ist optional. Hier können Sie beliebige Zeichen außer den fünf bekannten XML Entity-Referenzen <, &, >, " und ' bis zu einer maximalen Länge von 20 Zeichen eingeben. Diese ID muss im XML-Dokument eindeutig sein, d.h. sie darf von keiner anderen Verschlüsselung verwendet werden.

Wenn Sie Start Signature Wizard afterwards aktivieren wird nach der erfolgreichen Verschlüsselung automatisch der XML Signature Wizard aufgerufen. Damit können Sie das ausgewählte XML-Dokument direkt im Anschluss an die Verschlüsselung signieren.

Nach der Angabe aller erforderlichen Daten und dem Klick auf Finish erzeugt der Assistent das verschlüsselte XML-Dokument. Der ausgewählte Klartext wird dabei automatisch entfernt und durch den dazu passenden Geheimtext ersetzt.

XML Decryption Wizard

Mit dem XML Decryption Wizard können Sie aIhre verschlüsselten XML-Dokumente wieder entschlüsseln und den Klartext wiederherstellen. Hierfür benötigen Sie den bei der Verschlüsselung verwendeten Schlüsselspeicher und den darin enthaltenen Schlüssel.

Der XML Decryption Wizard wird über den Eintrag New Decryption... im Kontextmenü aufgerufen. Er besteht aus einer einzigen Seite Resource and Key Information. Über das Hilfe-Icon links unten auf jeder Seite erhalten Sie eine kontextabhängige Kurzhilfe und können weitergehende Informationen abrufen.

Resource and Key Information

Auf der ersten und einzigen Seite des Assistenten müssen Sie den bei der Verschlüsselung verwendeten Schlüsselspeicher samt Schlüssel angeben und eine Encryption ID auswählen.

Resource and Key Information

Resource and Key Information

Geben Sie Im Feld Keystore Name den bei der Verschlüsselung verwendeten Schlüsselspeicher an. Über den Button Open... können Sie diesen einfach auswählen. Anschließend tragen Sie in das Feld Keystore Password das Passwort für den Schlüsselspeicher ein.

Neben dem Schlüsselspeicher müssen Sie auch noch einige Informationen zum Schlüssel selbst angeben.

In der Encryption ID Drop-Down-Box wählen Sie die Verschlüsselung aus die Sie wieder entschlüsseln möchten (und die zum angegebenen Schlüssel passt). Die Encryption ID entspricht dabei der ID die Sie beim Verschlüsseln angegeben haben. Haben Sie keine ID festgelegt oder möchten Sie die Entschlüsselung der Reihe nach vornehmen wählen Sie den Eintrag Use first encryption id aus.

Weitere Angaben sind nicht erforderlich. Ein Klick auf Finish entschlüsselt, bei korrekt eingegebenen Daten, das gewählte XML-Dokument und ersetzt den Chiffretext durch den Klartext. Bleibt das XML-Dokument verschlüsselt haben Sie evtl. nicht den Schlüsselspeicher bzw. Schlüssel ausgewählt, der zur Verschlüsselung des XML-Dokuments verwendet wurde. Oder Sie haben einen Schlüsselspeicher/ Schlüssel angegeben, der nicht zur Encryption ID passt. Rufen Sie in diesem Fall den Wizard erneut auf und geben die korrekten Daten an.

Canonicalization

Mit den Menüeinträgen Canonicalization without comments und Canonicalization with comments aus dem Kontextmenü können Sie das gewählte XML-Dokument mit der Exclusive XML Canonicalization oder Inclusive XML Canonicalization kanonisieren. Ob die exclusive oder die inclusive Variante verwendet wird und ob das XML-Dokument direkt aktualisiert wird oder ein weiteres Editorfenster mit der kanonisierten Version erstellt wird hängt von den Einstellungen in den Preferences ab. Beim Aufruf über eine View wie den Navigator und der Zieldokument Einstellung New Document wird das kanonisierte XML-Dokument als [Dateiname]_canon.xml im aktuellen Projekt gespeichert.

Wenn Sie Canonicalization without comments auswählen werden die Kommentare im XML-Dokument entfernt und durch Leerzeilen ersetzt, bei Canonicalization with comments bleiben die Kommentare erhalten. In jedem Fall wird der Befehl sofort ausgeführt (ohne Assistent) und das XML-Dokument entweder im Editor aktualisiert oder im Dateisystem gespeichert.

Die Kanonisierung ist an sich ein sehr einfacher Vorgang. Mit der Möglichkeit diese separat auszuführen sollen Ihnen vor allem die Vorgänge bei der Signierung verdeutlicht werden, was sich hinter dem Stichwort Kanonisierung verbirgt und welche Veränderungen dabei in einem XML-Dokument durchgeführt werden. Die Kanonisierung ist einer der wichtigsten Vorgänge die unter anderem bei der Signierung vor den Blicken des Benutzers verborgen ablaufen.

Online Resources

Lizenz

Die XML Security Tools und auch das XML-Security Plug-in stehen unter der Eclipse Public License Version 1.0. Diese ist verfügbar unter http://www.eclipse.org/legal/epl-v10.html.

Die für die XML Security Tools notwendige Apache XML Security API (Santuario) im Plug-in org.apache.xml.security, Apache Commons Logging im Plug-in org.apache.commons.logging, Apache Xalan im Plug-in org.apache.xalan sowie Apache Xerces im Plug-in org.apache.xerces stehen unter der Apache Software License Version 2.0. Diese ist einsehbar unter http://www.apache.org/licenses/LICENSE-2.0.html.

Glossar

Akronym Beschreibung
AES Advanced Encryption Standard
Blockchiffre mit variabler Schlüssellänge von 128, 192 oder 256 Bit. 2001 vom NIST zum DES Nachfolger bestimmt
ASN.1 Abstract Syntax Notation One
Notationsart für die Beschreibung von abstrakten Datentypen und Werten
BSP Basic Security Profile
Herstellerunabhängige Empfehlung mit dem Ziel maximaler Interoperabilität und einfachem Datenaustausch
CBC Cipher Block Chaining
Symmetrische Blockchiffre - der folgende Block wird mit dem vorherigen verknüpft, erster Block beliebig
CEK Content Encryption Key
Verschlüsselt die Nutzdaten einer Kommunikation - aus Geschwindigkeitsgründen meist symmetrische Schlüssel
CFB Cipher Feedback
Symmetrische Blockchiffre - Pseudozufallsgenerator zur Erzeugung einer Schlüsselfolge
CSP Cryptographic Service Provider
Stellt kryptografische Funktionalität bereit
DES Data Encryption Standard
Mittlerweile als unsicher (zu geringe Schlüssellänge) betrachteter symmetrischer Algorithmus
DES-EDE Data Encryption Standard-Encryption Decryption Encryption
Verbesserter DES Algorithmus durch längeren Schlüssel (auch Triple DES genannt)
DH Diffie-Hellman
1976 als erstes Public-Key-Verfahren vorgestellt, basiert auf dem ElGamal Algorithmus
DSA Digital Signature Algorithm
Reiner Signaturalgorithmus vom NIST und der NSA 1991 entwickelt
DSS Digital Signature Standard
Spezifiziert den Digital Signature Algorithm (DSA)
DTD Document Type Definition
Formale Sprache (nicht in XML-Syntax) zur Festlegung der Struktur eines XML-Dokuments
ECB Electronic Code Book
Symmetrische Blockchiffre - jeder Block Text wird separat verschlüsselt, gleicher Text mit gleichem Schlüssel gibt gleiche Chiffre
IDEA International Data Encryption Algorithm
1990 veröffentlichter, patentierter, symmetrischer Blockverschlüsselungsalgorithmus
IETF Internet Engineering Task Force
Internationale Vereinigung zur Erarbeitung von Standardisierungsvorschlägen für das Internet
KEK Key Encryption Key
Verschlüsselt (symmetrisch und asymmetrisch) nur den Schlüssel (CEK) und keine Nutzdaten
MD2-MD5 Message Digest
Von Ron Rivest entwickelte Hashfunktionen - aktuell MD5, sehr weit verbreitet (Schwächen bekannt)
MIME Multipurpose Internet Mail Extensions
Kodierungsstandard zur Festlegung der Struktur und des Aufbaus von Emails und anderen Internetnachrichten
NIST National Institute of Standards and Technology
US Behörde für technologische Standardisierungsprozesse
OASIS Organisation for the Advancement of Structured Information Standards
Internationales Standardisierungsgremium zur Weiterentwicklung von E-Business- und Web Service Standards
OCSP Online Certificate Status Protocol
Internetprotokoll mit dem Clients den Status von X.509 Zertifikaten abfragen können
OFB Output Feedback
Symmetrische Blockchiffre - Pseudozufallsgenerator zur Erzeugung einer Schlüsselfolge
PBE Password-based Encryption
Der Schlüssel wird aus einem Kennwort generiert
PCBC Propagating Cipher Block Chaining
Symmetrische Blockchiffre ähnlich CBC - der vorige Klartextblock und der vorige Chiffretextblock werden mit dem aktuellen Klartextblock XOR-verknüpft
PKI Public Key Infrastructure
Infrastruktur zur Verteilung öffentlicher Schlüssel
RC2-RC6 Rons Cipher
Verschlüsselungsalgorithmus mit variabler Schlüssellänge, erste Version 1989 von Ron Rivest - aktuell RC6, Vorversionen als unsicher betrachtet (bzw. gebrochen)
RSA Rivest, Shamir, Adleman
1977 von Rivest, Shamir und Adleman vorgestellter Algorithmus - bekannt vor allem durch die Verwendung in PGP zur asymmetrischen Verschlüsselung
SAML Security Assertion Markup Language
XML-basierte Spezifikation zur Definition von sicherheitsrelevanten Informationen zur Authentifizierung, Autorisierung und Anwender-Attributen sowie Berechtigungs-Schemata
SHA Secure Hash Algorithm
Speziell zum Signieren entwickelter Hashalgorithmus mit einem 160 Bit langen Hashwert für DSS
SOAP ursprünglich: Simple Object Access Protocol
Protokoll zum Übermittlung von XML-Nachrichten, SOAP ist seit Version 1.2 kein Akronym mehr
URI Uniform Resource Identifier
Zeichenfolge zur Identifizierung einer abstrakten oder physikalischen Ressource
W3C World Wide Web Consortium
Gremium zur Standardisierung von Techniken rund um das World Wide Web
WSS Web Service Security (auch WS-Security)
Umfangreiche Empfehlungen rund um die Sicherheit von Web Services
XAdES XML Advanced Electronic Signatures
Ergänzung von Cisco mit deren Hilfe die Nicht-Abstreitbarkeit für XML-Signaturen umgesetzt werden kann
XKMS XML Key Management Specification
PKI Funktionen basierend auf XML als Beschreibungssprache für den Nachrichtenaustausch der Teilnehmer
X-KISS XML Key Information Service Specification
Spezifikation zur Suche und Validierung von öffentlichen Schlüsseln
X-KRSS XML Key Registration Service Specification
Spezifikation zur Erstellung, Registrierung und dem Widerruf von Schlüsseln
XML Extensible Markup Language
Erweiterbare Metasprache des W3C zur Dokumentenauszeichnung in maschinen- und menschenlesbarer Form