Kommunikation in einem Trustcenter - HRZ - Technische Universität ...
Kommunikation in einem Trustcenter - HRZ - Technische Universität ...
Kommunikation in einem Trustcenter - HRZ - Technische Universität ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Technische</strong> <strong>Universität</strong> Darmstadt<br />
Fachbereich Informatik<br />
Fachgebiet Kryptographie und Computeralgebra<br />
Prof. Dr. rer. nat. Johannes Buchmann<br />
<strong>Kommunikation</strong> <strong>in</strong> e<strong>in</strong>em <strong>Trustcenter</strong><br />
Intra <strong>Trustcenter</strong> Protocol Version 1.2 Entwurf und Design<br />
Diplomarbeit von Jochen Becker<br />
Betreuer:<br />
Dr.-Ing. Vangelis Karatsiolis<br />
Darmstadt, 20. Juli 2007
Ehrenwörtliche Erklärung<br />
Hiermit versichere ich, die vorliegende Diplomarbeit ohne Hilfe Dritter und nur mit den angegebenen<br />
Quellen und Hilfsmitteln angefertigt zu haben. Alle Stellen, die aus den Quellen<br />
entnommen wurden, s<strong>in</strong>d als solche kenntlich gemacht worden. Diese Arbeit hat <strong>in</strong> gleicher<br />
oder ähnlicher Form noch ke<strong>in</strong>er Prüfungsbehörde vorgelegen.<br />
Darmstadt, am 20. Juli 2007<br />
iii
Kurzdarstellung<br />
E<strong>in</strong> <strong>Trustcenter</strong> besteht aus e<strong>in</strong>zelnen Komponenten die mite<strong>in</strong>ander <strong>in</strong>teragieren. Zw<strong>in</strong>gend<br />
notwendig für diese Interaktion ist die <strong>Kommunikation</strong> der e<strong>in</strong>zelnen Komponenten<br />
untere<strong>in</strong>ander. Dazu wird e<strong>in</strong>e Protokoll benötigt, welches jegliche Art der <strong>Kommunikation</strong><br />
<strong>in</strong> e<strong>in</strong>er <strong>Trustcenter</strong>umgebung erfassen und verarbeiten beziehungsweise weitergeben kann.<br />
Dieses Protokoll muss auch hohe Sicherheitsanforderungen aus dem PKI-Umfeld erfüllen.<br />
In dieser Arbeit werden aktuell e<strong>in</strong>gesetzte Protokolle für die Codierung von Informationen<br />
und <strong>Kommunikation</strong> <strong>in</strong>nerhalb e<strong>in</strong>es <strong>Trustcenter</strong>s vorgestellt.<br />
Im Gegensatz zu den meisten verwendeten Protokollen basiert das Intra <strong>Trustcenter</strong> Protocol<br />
nicht auf dem nur masch<strong>in</strong>enlesbaren Datenformat ASN.1, sondern auf dem sowohl<br />
masch<strong>in</strong>en- wie auch menschenlesbaren Datenformat XML.<br />
Kern der hier vorliegenden Arbeit ist der Entwurf von Intra <strong>Trustcenter</strong> Protocol Version<br />
1.2. Hierbei werden Anforderungsaspekte an e<strong>in</strong> Intra <strong>Trustcenter</strong> Management Protokoll<br />
anhand von Szenarien vorgestellt. Die für die Abdeckung dieser Szenarien notwendigen<br />
Nachrichten sollen modelliert und <strong>in</strong> Form e<strong>in</strong>es XML-Schema implementiert werden. Im<br />
Anschluss soll der Fortschritt gegenüber der Vorgängerversion aufgezeigt und die Neuheiten<br />
nochmal zusammengefasst werden.<br />
Abschließend wird noch e<strong>in</strong> Ausblick auf mögliche Verbesserungen und Erweiterungen von<br />
Intra <strong>Trustcenter</strong> Protocol gegeben.<br />
iv
Inhaltsverzeichnis<br />
Kurzdarstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv<br />
Abbildungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii<br />
Tabellenverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix<br />
Quelltextverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi<br />
1. E<strong>in</strong>leitung 1<br />
2. Public-Key Infrastrukturen 3<br />
2.1. Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
2.2. Bestandteile e<strong>in</strong>er Public Key Infrastruktur . . . . . . . . . . . . . . . . . . 3<br />
2.2.1. Registration Authority . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
2.2.2. Certification Authority . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
2.2.3. Flexiprovider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
3. Codierungsformate 9<br />
3.1. Extensible Markup Language . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
3.2. Abstract Syntax Notation One . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
3.3. Bewertung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
4. <strong>Trustcenter</strong> Management Protokolle 13<br />
4.1. Public Key Cryptography Standard #7 . . . . . . . . . . . . . . . . . . . . 13<br />
4.2. Public Key Cryptography Standard #10 . . . . . . . . . . . . . . . . . . . . 13<br />
4.3. XML Key Management Specification . . . . . . . . . . . . . . . . . . . . . . 14<br />
4.4. Certificate Management Protocol . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
5. Szenarien 17<br />
5.1. Kernvorgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
5.1.1. Beantragung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
5.1.2. Ausstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
5.1.3. Auslieferung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
5.1.4. Aktivierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
5.1.5. Veröffentlichung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
5.1.6. Erneuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
5.1.7. Revokation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
5.2. Weitere Vorgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
5.2.1. Gültigkeitsprüfung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
5.2.2. Externe Schlüsselerzeugung . . . . . . . . . . . . . . . . . . . . . . . 21<br />
5.2.3. Vertrauensanker erneuern . . . . . . . . . . . . . . . . . . . . . . . . 22<br />
5.2.4. Informations- und Fehlerübermittlung . . . . . . . . . . . . . . . . . 23<br />
v
Inhaltsverzeichnis<br />
6. Intra <strong>Trustcenter</strong> Protocol 25<br />
6.1. Designziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />
6.1.1. Intra <strong>Trustcenter</strong> Protocol Version 1.0 . . . . . . . . . . . . . . . . . 27<br />
6.1.2. Intra <strong>Trustcenter</strong> Protocol Version 1.1 . . . . . . . . . . . . . . . . . 28<br />
6.2. Intra <strong>Trustcenter</strong> Protocol Version 1.2 . . . . . . . . . . . . . . . . . . . . . 29<br />
6.2.1. XML-Schema Def<strong>in</strong>ition . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
6.2.2. Informationssicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . 30<br />
6.2.3. Nachrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />
6.2.4. Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />
7. Fazit und Ausblick 41<br />
7.1. Fazit zu Version 1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />
7.2. Ausblick auf Intra <strong>Trustcenter</strong> Protocol Version 2.0 . . . . . . . . . . . . . . 41<br />
A. ITP-Nachrichten Quelltexte 43<br />
B. Intra <strong>Trustcenter</strong> Protocol Version 1.2 Schema 55<br />
C. ITP-Tag Referenz 65<br />
D. Vergleich ITP mit CMP 67<br />
E. Gesetzestexte 69<br />
E.1. Signaturgesetz § 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />
E.2. Signaturgesetz § 10 Absatz 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />
E.3. Signaturverordnung § 5 Absatz 2 Satz 2 . . . . . . . . . . . . . . . . . . . . 70<br />
E.4. Signaturverordnung § 7 Absatz 2 . . . . . . . . . . . . . . . . . . . . . . . . 70<br />
E.5. Signaturverordnung § 15 Absatz 2 Satz 2b) . . . . . . . . . . . . . . . . . . 70<br />
Begriffe 71<br />
Literaturverzeichnis 73<br />
vi
Abbildungsverzeichnis<br />
2.1. Struktur von Flexitrust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
2.2. Komponenten von Flexitrust . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
2.3. Lebenszyklus e<strong>in</strong>es Schlüssels . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
5.1. Zertifizierungsvorgänge <strong>in</strong> e<strong>in</strong>er PKI . . . . . . . . . . . . . . . . . . . . . . 17<br />
5.2. Revokation e<strong>in</strong>es Zertifikats . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
5.3. Ablauf e<strong>in</strong>er OCSP Anfrage nach SigG . . . . . . . . . . . . . . . . . . . . . 22<br />
5.4. Externe Schlüsselerzeugung . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />
5.5. Schlüsselerzeugung auf e<strong>in</strong>er Chipkarte . . . . . . . . . . . . . . . . . . . . . 23<br />
6.1. Übersicht über verschiedene Module <strong>in</strong> der PKI . . . . . . . . . . . . . . . . 27<br />
vii
Abbildungsverzeichnis<br />
viii
Tabellenverzeichnis<br />
3.1. Gegenüberstellung ASN.1 und XML . . . . . . . . . . . . . . . . . . . . . . 11<br />
6.1. Felder des Kopfteils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />
6.2. Felder des Fussteiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />
6.3. ITP Version 1.2 Nachrichtentypen . . . . . . . . . . . . . . . . . . . . . . . 33<br />
6.4. Felder der CertificateRequest-Nachricht . . . . . . . . . . . . . . . . . . . . 34<br />
6.5. Felder der Activation-Nachricht . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />
6.6. Felder der Revocation-Nachricht . . . . . . . . . . . . . . . . . . . . . . . . 35<br />
6.7. Felder der Recovery-Nachricht . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
6.8. Felder der CertificateTransport-Nachricht . . . . . . . . . . . . . . . . . . . 36<br />
6.9. Felder der KeyTransport-Nachricht . . . . . . . . . . . . . . . . . . . . . . . 37<br />
6.10. Felder der Information-Nachricht . . . . . . . . . . . . . . . . . . . . . . . . 37<br />
6.11. Felder der Notify-Nachricht . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />
C.1. ITP Version 1.0 — XML-Tags im Überblick . . . . . . . . . . . . . . . . . . 65<br />
C.2. ITP Version 1.1 — XML-Tags im Überblick . . . . . . . . . . . . . . . . . . 66<br />
ix
Tabellenverzeichnis<br />
x
Quelltexte<br />
A.1. Standardnachricht von ITP Version 1.0 . . . . . . . . . . . . . . . . . . . . 43<br />
A.2. Syntax e<strong>in</strong>er ITP-Nachricht Version 1.0 . . . . . . . . . . . . . . . . . . . . 43<br />
A.3. Syntax e<strong>in</strong>er ITP-Nachricht Version 1.1 . . . . . . . . . . . . . . . . . . . . 44<br />
A.4. Standard CertificateRequest-Nachricht . . . . . . . . . . . . . . . . . . . . . 45<br />
A.5. Standard Activation-Nachricht . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />
A.6. Kürzeste Activation-Nachricht . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />
A.7. Standard CertificateTransport-Nachricht . . . . . . . . . . . . . . . . . . . . 48<br />
A.8. Standard KeyTransport-Nachricht . . . . . . . . . . . . . . . . . . . . . . . 50<br />
A.9. Standard Recovery-Nachricht . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />
A.10.Standard Revocation-Nachricht . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />
B.1. ITP 1.2 Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />
D.1. Aktivierungsnachricht von ITP . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />
D.2. Aktivierungsnachricht <strong>in</strong> CMP . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />
xi
Quelltexte<br />
xii
1. E<strong>in</strong>leitung<br />
In heutigen Zeiten werden immer mehr Prozesse elektronisch abgebildet und durchgeführt.<br />
Da hierzu e<strong>in</strong>e e<strong>in</strong>deutige Identifizierung von der beteiligten Komponenten notwendig ist,<br />
werden digitale Identitäten ausgestellt. Jede Komponente, somit auch jede Person, die<br />
an diesen Prozessen beteiligt ist, besitzt e<strong>in</strong>e eigene e<strong>in</strong>deutige digitale Identität. Zum<br />
Speichern dieser Identitäten wird auf Public-Key-Verfahren zurückgegriffen. Hier erhält<br />
jede Komponente e<strong>in</strong>en privaten Schlüssel, der niemandem weiter bekannt ist, und den<br />
dazugehörige öffentliche Schlüssel. Dieser wird von e<strong>in</strong>er vertrauenswürdigen Instanz zusammen<br />
mit weiteren Informationen <strong>in</strong> e<strong>in</strong>em Zertifikat gespeichert. Diese Zertifikate werden<br />
veröffentlicht, so dass sie für andere Komponenten und Dritte zugänglich s<strong>in</strong>d. E<strong>in</strong>e<br />
Public-Key Infrastruktur (PKI) ist für diese Aufgaben konzipiert. In dieser werden Vertrauensmodelle<br />
abgebildet und e<strong>in</strong> strukturiertes Vertrauen etabliert. Innerhalb e<strong>in</strong>er PKI<br />
gibt es den <strong>Trustcenter</strong> (TC), der die wichtigsten Komponenten bereitstellt. Alle Komponenten<br />
müssen untere<strong>in</strong>ander Kommunizieren, um sich Informationen zu beschaffen und<br />
auszutauschen. Aktuell werden hierfür Protokolle verwendet die direkt an e<strong>in</strong>er streng<br />
hierarchischen PKI Struktur festhalten und Zertifikate nach X.509 verarbeiten. Auch e<strong>in</strong><br />
Verknüpfung von mehreren Protokollen wird zur Erfüllung der Aufgabe der <strong>Kommunikation</strong><br />
<strong>in</strong> e<strong>in</strong>em TC benutzt. E<strong>in</strong> Problem dieser Protokolle ist die Verwendung von Codierungsformaten,<br />
die die Daten als B<strong>in</strong>ärcode übertragen. E<strong>in</strong> direkte Überprüfung dieser<br />
Daten ist durch e<strong>in</strong> re<strong>in</strong>es Betrachten des Paketes nicht möglich.<br />
Die Anforderungen die an e<strong>in</strong>e PKI und vor allem den TC gestellt werden, ergeben sich<br />
aus aus allgeme<strong>in</strong>en Anforderungen an IT-Systeme und den Sicherheitsanforderungen aus<br />
dem PKI-Umfeld. Weiterh<strong>in</strong> können sich Sicherheitsanforderungen aus dem speziellen Anwendungsgebiet<br />
oder auch aus gesetzlichen Vorgaben ergeben.<br />
Für diese Aufgaben wurde das Intra <strong>Trustcenter</strong> Protocol (ITP) entworfen und bereits<br />
e<strong>in</strong>er ersten Revision unterzogen. Die Konzepte und Ideen auf denen diese Arbeit aufbaut,<br />
s<strong>in</strong>d bereits 2004 veröffentlicht worden [28]. Ziel dieser Arbeit ist das Design und der<br />
Entwurf von ITP Version 1.2 und die erstmaligen E<strong>in</strong>führung e<strong>in</strong>er formellen Beschreibung<br />
der Nachrichten. Hierfür soll auf XML-Schema zurückgegriffen werden. Die Struktur und<br />
die e<strong>in</strong>zelnen Elemente des Schema sollen aufgezeigt und erklärt werden. Dieses Schema soll<br />
die bisherigen ”freien” Nachrichten ersetzen und zukünftige Nachrichten ohne Verletzung<br />
der Allgeme<strong>in</strong>heit der Nachrichten vere<strong>in</strong>heitlichen. Es soll e<strong>in</strong> Meilenste<strong>in</strong> auf dem Weg<br />
zur ITP Version 2.0 bilden. Das Schema soll generisch genug angelegt werden, so dass<br />
andere Konzepte und Strukturen von Vertrauensmodellen durch ITP auch erfasst werden<br />
können. Dabei soll auf vorhandene und etablierte Mechanismen zurückgegriffen werden.<br />
Die vorliegende Arbeit ist wie folgt aufgebaut: Nach der E<strong>in</strong>führung <strong>in</strong> Kapitel 1 wird <strong>in</strong><br />
Kapitel 2 e<strong>in</strong>e Überblick über e<strong>in</strong>e PKI gegeben. Die e<strong>in</strong>zelnen Hauptbestandteile e<strong>in</strong>es TC<br />
werden näher erläutert. In Kapitel 3 werden die zwei Codierungsformate XML und ASN.1<br />
vorgestellt und bewertet. Kapitel 4 gibt e<strong>in</strong>en E<strong>in</strong>blick <strong>in</strong> die vier am weitest verbreiteten<br />
1
1. E<strong>in</strong>leitung<br />
Management-Protokolle (PKCS #7, PKCS #10, XMKS und CMP). Die Szenarien die<br />
im PKI Umfeld auftreten und für die Entwicklung von ITP 1.2 zu Grunde liegen werden<br />
<strong>in</strong> Kapitel 5 aufgeführt. Hierbei gibt es e<strong>in</strong>e Trennung <strong>in</strong> die Kernvörgänge und weitere<br />
Operationen <strong>in</strong> e<strong>in</strong>em TC. In Kapitel 6 wird ITP vorgestellt. Zu Beg<strong>in</strong>n werden die Designziele<br />
von ITP aufgeführt und die Versionen 1.0 und 1.1 vorgestellt. Der Abschnitt 6.2<br />
befasst sich mit dem Entwurf von Version 1.2. In diesem werden die e<strong>in</strong>zelnen Nachrichten<br />
spezifiziert und deren Elemente und Attribute vorgestellt. Im Anschluss wird der Fortschritt<br />
gegenüber der direkten Vorgängerversion analysiert. Kapitel 7 bildet das Fazit zu<br />
ITP Version 1.2 und gibt e<strong>in</strong>en Ausblick auf die Version 2.0.<br />
Alle <strong>in</strong> dieser Arbeit verwendeten Quelltexte s<strong>in</strong>d <strong>in</strong> Anhang A abgedruckt. Dort f<strong>in</strong>den<br />
sich Beispiele für die ITP-Nachrichten <strong>in</strong> Version 1.2. Das gesamte Schema von ITP Version<br />
1.2 ist <strong>in</strong> Anhang B abgedruckt. Dies bietet die Möglichkeit e<strong>in</strong>es E<strong>in</strong>blicks <strong>in</strong> die<br />
genaue Spezifikation der Nachrichten. Im Vergleich dazu ist e<strong>in</strong>e TAG-Referenz der beiden<br />
Vorgängerversionen <strong>in</strong> Anhang C gegeben. E<strong>in</strong> direkte Vergleich zwischen ITP und<br />
CMP wird anhand der Aktivierungsnachricht <strong>in</strong> Anhang D geben. Die <strong>in</strong> dieser Arbeit<br />
verwendeten Gesetzesgrundlagen f<strong>in</strong>den sich <strong>in</strong> der aktuell gültigen Fassung <strong>in</strong> Anhang E.<br />
2
2. Public-Key Infrastrukturen<br />
2.1. Überblick<br />
E<strong>in</strong>e Public-Key Infrastruktur (PKI) bietet die Möglichkeit Vertrauen zu etablieren. Jeder<br />
Benutzer und jedes System <strong>in</strong> diesem Umfeld wird mit m<strong>in</strong>destens e<strong>in</strong>er digitalen Identität<br />
ausgestattet. Durch e<strong>in</strong>e hierarchische Struktur ergibt sich e<strong>in</strong> Vertrauensverhältnis,<br />
welches die PKI selbst schützen muss.<br />
Der klassische technische Aufbau besteht aus e<strong>in</strong>er Registration Authority (RA) und e<strong>in</strong>er<br />
Certification Authority (CA) [19]. Es soll möglich se<strong>in</strong> die e<strong>in</strong>zelnen Komponenten<br />
dezentral zu platzieren und gegebenenfalls auch mehrere Instanzen e<strong>in</strong>er Komponente zu<br />
haben. Auch <strong>in</strong> der Wahl der verwendeten Algorithmen wird Flexibilität gefordert. Ohne<br />
großen Aufwand sollte e<strong>in</strong> zu schwacher Algorithmus gegen e<strong>in</strong>en stärkeren Algorithmus<br />
ausgetauscht werden können.<br />
2.2. Bestandteile e<strong>in</strong>er Public Key Infrastruktur<br />
Am Beispiel der PKI von Flexitrust [45] werden <strong>in</strong> diesem Unterabschnitt die wichtigsten<br />
<strong>in</strong> e<strong>in</strong>em <strong>Trustcenter</strong> beteiligten Komponenten aufgeführt und erklärt. Die Abbildung 2.1<br />
zeigt die Struktur der PKI-Software. Flexitrust gliedert sich <strong>in</strong> die drei Hauptkomponenten<br />
Registration Authority, Key Authority und Certificate Management Authority (Abbildung<br />
2.2). Flexitrust unterscheidet sich von der klassischen Aufteilung <strong>in</strong>sofern, dass die Aufgaben<br />
der CA <strong>in</strong> e<strong>in</strong>e Offl<strong>in</strong>e-Komponente (Key Authority) und e<strong>in</strong>e Onl<strong>in</strong>e-Komponente<br />
(Certificate Management Authority) aufgeteilt s<strong>in</strong>d. Die kryptographischen Algorithmen<br />
s<strong>in</strong>d <strong>in</strong> den Flexiprovider ausgelagert.<br />
2.2.1. Registration Authority<br />
Die Aufgabe e<strong>in</strong>er Registration Authority (RA) ist die gesamte verwaltungstechnische<br />
Erfassung der Benutzer beziehungsweise der untergeordneten Instanzen e<strong>in</strong>er PKI, welche<br />
e<strong>in</strong> Zertifikat benötigen. Sie kann dezentral organisiert werden. Somit können mehrere<br />
RA <strong>in</strong>nerhalb e<strong>in</strong>er PKI vorhanden se<strong>in</strong>. Ist dies der Fall, so muss bei der Namensvergabe<br />
darauf geachtet werden, dass die Namen e<strong>in</strong>deutig vergeben werden und e<strong>in</strong>deutig bleiben.<br />
Die Hauptaufgabe der RA ist die e<strong>in</strong>deutige und richtige Zuordnung der Instanz (Sub-CA,<br />
Host, Benutzer), die e<strong>in</strong> Zertifikat erhalten möchten. Diese Kontrolle kann zur Zeit nur<br />
durch e<strong>in</strong>en Menschen erfolgen, da es für e<strong>in</strong> TC anfangs nicht möglich ist, e<strong>in</strong>en Mitarbeiter<br />
direkt erkennen und zuordnen zu können. Hat dieser jedoch <strong>in</strong>nerhalb der PKI e<strong>in</strong>mal<br />
e<strong>in</strong>e Identität erhalten, so kann man den Benutzer anhand dieser Identität identifizieren<br />
und weitere Vorgänge automatisieren. Diese B<strong>in</strong>dung zwischen dem Antragsteller, dessen<br />
3
2. Public-Key Infrastrukturen<br />
Abbildung 2.1.: Struktur von Flexitrust<br />
Antrag und der Bestätigung durch die RA muss durch den ganzen Prozess der Ausstellung<br />
der digitalen Identität nachvollziehbar und geschützt se<strong>in</strong>.<br />
2.2.2. Certification Authority<br />
Die Certification Authority (CA) ist für die gesamte Verwaltung der Zertifikate <strong>in</strong>nerhalb<br />
e<strong>in</strong>er PKI-Umgebung verantwortlich. Es werden Registrierungsanfragen entgegengenommen,<br />
Schlüssel erzeugt, Zertifikate erstellt und diese signiert. Bei Flexitrust ist die CA<br />
<strong>in</strong> Offl<strong>in</strong>e- und Onl<strong>in</strong>e-Komponente unterteilt. Die Offl<strong>in</strong>e-Komponente nimmt hierbei die<br />
sicherheitskritischen Aufgaben wahr. Die Onl<strong>in</strong>e-Komponente ist die direkte Schnittstelle<br />
zu den Benutzern.<br />
Offl<strong>in</strong>e-Komponente - Key Authority<br />
Die Offl<strong>in</strong>e-Komponente, im folgenden Key Authority (KA) genannt, ist für alle Operationen<br />
mit dem Schlüssel <strong>in</strong>nerhalb der PKI verantwortlich [47]. Sie ist das am stärksten zu<br />
schützende Element e<strong>in</strong>er PKI. Hierbei gilt es den gesamten Lebenszyklus e<strong>in</strong>es Schlüssels<br />
zu schützen (Abbildung 2.3). Angefangen mit der sicheren Erzeugung, über die Speicherung<br />
auf e<strong>in</strong>er Chipkarte oder als Soft-Token [40], den geschützten Transport des privaten<br />
Schlüsselteiles zum Benutzer, Verknüpfung des öffentlichen Schlüssels mit den Benutzerdaten<br />
<strong>in</strong> Form e<strong>in</strong>es Zertifikats, Signatur des Benutzerzertifikats und die Bereitstellung des<br />
öffentlichen Zertifikats für den öffentlichen Verzeichnis. H<strong>in</strong>zu kommt, wenn es erforderlich<br />
ist, e<strong>in</strong>e Sicherung und Archivierung des privaten Schlüssel <strong>in</strong>nerhalb der PKI für die<br />
Möglichkeit der Wiederherstellung bei Verlust. Diese letzt genannten Operationen s<strong>in</strong>d<br />
kritische Vorgänge bei denen die Sicherheitsanforderungen meist über das Vier-Augen-<br />
4
2.2. Bestandteile e<strong>in</strong>er Public Key Infrastruktur<br />
Abbildung 2.2.: Komponenten von Flexitrust<br />
Pr<strong>in</strong>zip h<strong>in</strong>ausgehen. Um den Lebenszyklus e<strong>in</strong>es Schlüssels zu komplementieren sei an<br />
dieser Stelle die Benutzung und die Zerstörung nach Ablauf der Gültigkeit oder im Falle<br />
der Revokation erwähnt. Die Revokations<strong>in</strong>formationen werden ebenfalls von der KA<br />
erstellt.<br />
E<strong>in</strong>e KA erstellt und bearbeitet jeden Schlüssel beziehungsweise jedes Zertifikat e<strong>in</strong>er PKI<br />
und daher gilt hier sehr starker Schutz. Deshalb ist die KA e<strong>in</strong>e Offl<strong>in</strong>e Komponente, dass<br />
bedeutet sie ist <strong>in</strong> ke<strong>in</strong>erlei Netzwerk <strong>in</strong>tegriert. Diese zusätzliche Sicherheitsmaßnahme<br />
zieht auch e<strong>in</strong>e Komplexitätssteigerung der Anforderung an e<strong>in</strong> Managementprotokoll nach<br />
sich.<br />
Onl<strong>in</strong>e-Komponente - Certificate Management Authority<br />
Die direkte Benutzer<strong>in</strong>teraktion übernimmt die Onl<strong>in</strong>e-Komponente Certificate Management<br />
Authority (CMA). Sie übernimmt das Management der Zertifikate und verwaltet<br />
die Sperr<strong>in</strong>formationen von Zertifikaten. Sie sorgt für die Verfügbarkeit von Sperr<strong>in</strong>formationen.<br />
Diese kann entweder durch die Veröffentlichung der Certificate Revocation List<br />
(CRL) geschehen oder direkt mittels des Onl<strong>in</strong>e Certificate Status Protocols (OCSP) [36]<br />
5
2. Public-Key Infrastrukturen<br />
Schlüsselerzeugung<br />
H<strong>in</strong>terlegung<br />
Wiederherstellung<br />
Speicherung Transport Benutzung Zerstörung<br />
Abbildung 2.3.: Lebenszyklus e<strong>in</strong>es Schlüssels<br />
verfügbar se<strong>in</strong>. Die gesamte Benutzer<strong>in</strong>teraktion läuft über die CMA ab. Die Aufgaben<br />
hierbei s<strong>in</strong>d der Versand der Zertifikate, die Auslieferung der Tokens, die Erstellung von<br />
P<strong>in</strong>-Briefen und die Annahme sowie Weiterleitung der Sperrung e<strong>in</strong>es Zertifikats.<br />
Ist die Auslieferung e<strong>in</strong>es Zertifikats erfolgt und dieses aktiviert worden, so wird das dazugehörige<br />
öffentliche Zertifikate durch die CMA <strong>in</strong> e<strong>in</strong>em zentralen Verzeichnisdienst [27]<br />
bereitgestellt. Hierzu wird e<strong>in</strong>e geme<strong>in</strong>same Datenbank mit der RA gepflegt.<br />
Externe Schlüsselerzeugungse<strong>in</strong>heit<br />
Aus Sicherheitsgründen kann es notwendig se<strong>in</strong> e<strong>in</strong> Schlüsselpaar nicht <strong>in</strong> der KA sondern<br />
<strong>in</strong> e<strong>in</strong>er externen E<strong>in</strong>heit zu erzeugen. Gründe hierfür können sehr hohe Sicherheitsanforderung<br />
an den Schlüssel se<strong>in</strong> oder dass die Anzahl der zu erzeugenden Schlüsselpaare e<strong>in</strong>er<br />
KA überfordert. Hierbei muss sichergestellt se<strong>in</strong>, dass die generierten Schlüssel, falls der<br />
private Schlüssel transportiert werden müsste, stark geschützt s<strong>in</strong>d. E<strong>in</strong>e Methode kann<br />
der E<strong>in</strong>satz von Chipkarten se<strong>in</strong>. Auf diesen ist meist e<strong>in</strong>e direkte Schlüsselerzeugung<br />
möglich. Damit ist der private Schlüssel durch das Betriebssystem und den Aufbau der<br />
Chipkarte vor dem Auslesen und damit dem Zugriff geschützt. Ist e<strong>in</strong>e direkte Erzeugung<br />
auf der Chipkarte nicht möglich, so wird der private Schlüssel auf die Karte geschrieben<br />
und kann nicht mehr ausgelesen werden.<br />
2.2.3. Flexiprovider<br />
Der Flexiprovider stellt für Flexitrust alle kryptographischen Algorithmen zur Verfügung.<br />
Innerhalb des Flexiproviders können kryptographische Algorithmen zur Verschlüsselung,<br />
Signaturerzeugung und zur Ermittelung von Prüfsummen schnell und sicher implementiert<br />
werden. Flexitrust nutzt diese Schnittstelle um verschiedene Algorithmen e<strong>in</strong>facher<br />
verwenden zu können. Somit ist jeder im Flexiprovider implementierte und geprüfte Algorithmus<br />
unmittelbar für die gesamte PKI von Flexitrust verfügbar. Der Flexiprovider<br />
kann auch als eigenständige Bibliothek für kryptographische Funktionen <strong>in</strong> Anwendungen<br />
6
2.2. Bestandteile e<strong>in</strong>er Public Key Infrastruktur<br />
<strong>in</strong>tegriert werden. Er basiert auf der Java Cryptography Architecture (JCA/JCE) [44] und<br />
ist zu dieser kompatibel.<br />
Die Ausgliederung der Algorithmen sorgt für e<strong>in</strong>e e<strong>in</strong>fachere Evaluation des Quelltexts<br />
und damit e<strong>in</strong>er Erhöhung der Sicherheit <strong>in</strong> der gesamten PKI. S<strong>in</strong>d neue Algorithmen<br />
zu implementieren so erfolgt dies nur an e<strong>in</strong>er Stelle. Die Implementierung muss e<strong>in</strong>malig<br />
evaluiert werden. Dadurch ist es möglich die Sicherheit <strong>in</strong> der PKI trotz neuer Algorithmen<br />
aufrecht zu erhalten.<br />
7
2. Public-Key Infrastrukturen<br />
8
3. Codierungsformate<br />
Die vorhandene Heterogenität der heutigen IT-Systemen im Bereich der Hardware, Betriebssysteme,<br />
Anwendungen und Programmiersprachen sorgt für e<strong>in</strong>e Vielzahl unterschiedliche<br />
verwendeter Datenformate. Die Darstellung von Zeichenketten, Zahlen, Zeitangaben<br />
und anderen Informationen f<strong>in</strong>den sich oft <strong>in</strong> jeweils eigenen Datentypen wieder.<br />
E<strong>in</strong> direkter Austausch zwischen diesen Systemen ist nicht möglich. Die Vernetzung der<br />
IT-Systeme und damit die Möglichkeit der direkten Datenübertragung von e<strong>in</strong>em System<br />
zu e<strong>in</strong>em Anderen br<strong>in</strong>gt die Notwendigkeit für m<strong>in</strong>destens e<strong>in</strong> geme<strong>in</strong>sames Format mit.<br />
Die zwei Codierungsformate Extensible Markup Language und Abstract Syntax Notation<br />
One sorgen für e<strong>in</strong>e vere<strong>in</strong>heitliche Darstellung von Daten. Sie s<strong>in</strong>d beide standardisiert<br />
und somit kann für e<strong>in</strong>e Datenübermittlung auf diese zurückgegriffen werden.<br />
3.1. Extensible Markup Language<br />
Durch die klare Struktur von Extensible Markup Language (XML) [12] ist es möglich<br />
Daten unabhängig von der Darstellung zu strukturieren und zu erfassen. Mit Hilfe der<br />
XML-TAGs [20, 34] kann e<strong>in</strong>e Datendarstellung <strong>in</strong> XML jederzeit e<strong>in</strong>deutig <strong>in</strong>terpretiert<br />
werden, da die zusammengehörigen Elemente klar erkennbar s<strong>in</strong>d. Die Übertragung selbst<br />
erfolgt <strong>in</strong> Form von Text-Zeichen. Somit kann jedes System und jede Plattform ohne großen<br />
Aufwand die Daten e<strong>in</strong>lesen und verarbeiten. Anschließend können die Daten auf verschiedensten<br />
Wegen übermittelt werden. Angefangen mit e<strong>in</strong>fachen Dateien auf Speichersticks,<br />
über Email oder auch e<strong>in</strong>e direkte Netzwerkverb<strong>in</strong>dung s<strong>in</strong>d möglich.<br />
XML ermöglicht die direkte Darstellung der Informationen, die signiert oder verschlüsselt<br />
werden sollen. Dazu kann auf die zwei vorhandenen Standards XML Digital Signature [5]<br />
und XML Encryption [4] zurückgegriffen werden.<br />
XML bietet durch se<strong>in</strong>e Klartextdarstellung die Möglichkeit die Daten direkt vor und nach<br />
der Verarbeitung zu betrachten und zu analysieren. Sollte hierbei e<strong>in</strong> Fehler festgestellt<br />
werden, sei es durch e<strong>in</strong>e masch<strong>in</strong>elle syntaktische Prüfung oder e<strong>in</strong>e semantische Prüfung<br />
durch e<strong>in</strong>e Person, so kann der Fehler unverzüglich korrigiert werden. Diese Korrektur kann<br />
automatisch und auch manuell erfolgen. Am Ende sollte das gesamte veränderte Dokument<br />
erneut überprüft werden. Mit XML-Schema [21] bietet XML selbst e<strong>in</strong>e Schemasprache<br />
an, welche diesen Vorgang durch die Vorgabe e<strong>in</strong>er klaren Struktur ermöglicht.<br />
XML leistet <strong>in</strong> der Kryptographie durch se<strong>in</strong>e e<strong>in</strong>fache und klare Struktur e<strong>in</strong>en bedeutenden<br />
Vorteil im Bereich der Langzeitarchivierung und Darstellung von Informationen. Es<br />
ist e<strong>in</strong> offenes Format und kann somit beliebig erweitert werden. Auch ist bei zukünftigen<br />
Rechnersystemen e<strong>in</strong>e Verarbeitung der Daten ohne großen Aufwand möglich.<br />
9
3. Codierungsformate<br />
3.2. Abstract Syntax Notation One<br />
Die Abstract Syntax Notation One (ASN.1) wurde als geme<strong>in</strong>samer Standard der International<br />
Telecommunication Union – Telecommunication Standardization Sector [2] und<br />
der International Organization for Standardization [8] verabschiedet. Es ist als Protokoll<br />
<strong>in</strong> der Anwendungsschicht angesiedelt und nutzt <strong>in</strong> der darunter liegenden Darstellungsschicht<br />
verschiedene Encod<strong>in</strong>g Rules um Daten für den Transport vorzubereiten. Die meist<br />
verwendeten Encod<strong>in</strong>g Rules s<strong>in</strong>d: Basic Encod<strong>in</strong>g Rule (BER), Canonical Encod<strong>in</strong>g Rule<br />
(CER) und Dist<strong>in</strong>guished Encod<strong>in</strong>g Rule (DER) [3]. Daten werden nach e<strong>in</strong>er diesen<br />
Encod<strong>in</strong>g Rules b<strong>in</strong>är codiert und anschließend übermittelt. BER, CER und DER bieten<br />
<strong>in</strong> der Verarbeitung e<strong>in</strong>e kompaktere Darstellung der Daten und ermöglichen somit e<strong>in</strong>e<br />
schnellere Datenübertragung. Mit der XML Encod<strong>in</strong>g Rule (XER) [1] besteht die Möglichkeit<br />
der Codierung von Daten <strong>in</strong> XML-Syntax. Es ist nach [7] sogar vorgesehene XML<br />
Schema Def<strong>in</strong>itionen <strong>in</strong> ASN.1 zu konvertieren.<br />
Aktuell wird ASN.1 als Standardverfahren für die Codierung und Übertragung von Zertifikaten<br />
oder Revokationslisten verwendet. Jedoch liefert ASN.1 e<strong>in</strong>e recht breite Angriffsfläche,<br />
da die Parser und Interpreter <strong>in</strong> der Verarbeitungssoftware durch die komplexe<br />
Struktur oft fehlerhaft implementiert s<strong>in</strong>d und somit nicht korrekt arbeiten. E<strong>in</strong>e Fehlersuche<br />
ist nur schwer möglich, da durch e<strong>in</strong>e Betrachtung des Datenstroms ke<strong>in</strong> direkter<br />
Zugang zu den Daten vorhanden ist und somit nicht aufgedeckt werden kann, welche Daten<br />
<strong>in</strong> die weiterverarbeitende Software gelangen.<br />
E<strong>in</strong>en tieferen E<strong>in</strong>blick <strong>in</strong> ASN.1 liefern die Werke ASN.1 Complete [32] und ASN.1 Communication<br />
[17].<br />
3.3. Bewertung<br />
Da IT-Systeme Daten <strong>in</strong> e<strong>in</strong>er B<strong>in</strong>ärcodierung verarbeiten ermöglicht ASN.1 durch se<strong>in</strong>e<br />
Darstellung <strong>in</strong> B<strong>in</strong>ärcode e<strong>in</strong> direkte Verarbeitung der Daten. Im Gegensatz zu XML,<br />
welches e<strong>in</strong>en Umwandlungsschritt der Text-Zeichen <strong>in</strong> b<strong>in</strong>ären weiterverarbeitbaren Code<br />
benötigt. Verschiedene Systeme benutzen auch unterschiedliche B<strong>in</strong>ärcodierungen und<br />
somit kann es bei ASN.1 vorkommen, dass Daten falsch <strong>in</strong>terpretiert werden. Durch den<br />
überall notwendigen Zwischenschritt bei XML ist es möglich die Daten für jedes System<br />
zur Verfügung zustellen und vor der Verarbeitung selbst <strong>in</strong> e<strong>in</strong> möglichst effizientes und<br />
auf die Plattform angepasstes Format zu codieren.<br />
Beide Formate können <strong>in</strong> Software implementiert werden. Die Programmierung e<strong>in</strong>es<br />
ASN.1 Parsers ist auf Grund der Komplexität von ASN.1 sehr schwer und e<strong>in</strong>e fehlerhafte<br />
Implementierung kann dazu führen, dass Softwaresysteme abstürzen. Die Ursache<br />
hierfür liegt <strong>in</strong> fehlerhaft <strong>in</strong>terpretierten oder bewusst falsch codierten ASN.1 Nachrichtenpaketen,<br />
die verarbeitet werden sollten. XML hat durch se<strong>in</strong>e klare Darstellung und der<br />
Möglichkeiten sowohl e<strong>in</strong>er syntaktischen als auch e<strong>in</strong>er semantischen Überprüfung vor der<br />
Verarbeitung, Vorteile gegenüber ASN.1. Durch die Anordnung der TAGs und die klare<br />
Vorgabe mittels e<strong>in</strong>er Schema-Def<strong>in</strong>ition kann der Parser die Daten e<strong>in</strong>deutig Interpretieren<br />
und zur Verarbeitung weitergeben. XML unterstützt durch se<strong>in</strong>e Menschenlesbarkeit<br />
e<strong>in</strong>e e<strong>in</strong>fache Fehlersuche, welche <strong>in</strong> ASN.1 durch die B<strong>in</strong>ärcodierung nicht möglich ist.<br />
10
3.3. Bewertung<br />
Der entscheidender Vorteil von XML <strong>in</strong> e<strong>in</strong>em Sicherheitsbereich ist die Menschenlesbarkeit<br />
und e<strong>in</strong>e daraus resultierende Möglichkeit der semantischen Überprüfung. E<strong>in</strong> Anwender<br />
oder Adm<strong>in</strong>istrator kann jedes Datenpaket betrachten und e<strong>in</strong>er semantischen Prüfung<br />
unterziehen. Hierbei kann Punkt für Punkt überprüft werden, ob alle notwendigen Daten<br />
korrekt angegeben wurden oder ke<strong>in</strong>e zusätzliche störende gar schädlichen Information<br />
enthalten s<strong>in</strong>d. Wird e<strong>in</strong> Problem erkannt, so kann unmittelbar darauf reagiert werden. Bei<br />
ASN.1 ist diese semantische Überprüfung nicht e<strong>in</strong>fach möglich. Wählt man die Codierung<br />
nach ASN.1 - DER, so werden die Daten <strong>in</strong> e<strong>in</strong>er langen Reihe von ”Datentyp - Wertlänge<br />
- Wert” (Type Length Value) übermittelt. Dies unübersichtliche Darstellung ist kaum<br />
menschenlesbar.<br />
Durch die Menschenlesbarkeit wird e<strong>in</strong>e Evaluation vere<strong>in</strong>facht und XML unterstützt aktiv<br />
Audit-Prozesse. Diese Prozesse f<strong>in</strong>den sich im Bereich der Qualitätssicherung <strong>in</strong> Form von<br />
Vorgangsbeschreibungen oder Protokollierung wieder.<br />
Die Signatur oder Verschlüsselung von B<strong>in</strong>ärcode ist im Sicherheitsumfeld stark umstritten,<br />
da der Signierer hier nicht sehen kann, was er genau unterschreibt. So besteht die<br />
Möglichkeit bei der Codierung der Daten <strong>in</strong> B<strong>in</strong>ärcode zusätzliche Informationen e<strong>in</strong>zuschleusen,<br />
welche dann unbemerkt mit signiert oder verschlüsselt werden. Dies ist bei<br />
XML nicht möglich, da hier mit Klartext gearbeitet wird. Die Daten s<strong>in</strong>d vor e<strong>in</strong>er Signatur<br />
oder Verschlüsselung lesbar und der Signierer weiß was er signiert beziehungsweise<br />
verschlüsselt hat. Es soll stets gelten ”What you see is, what you sign” [43]. E<strong>in</strong> Ausnahme<br />
bilden verschlüsselte Daten, sowie die Signaturen selbst. Diese können nur als b<strong>in</strong>äre<br />
Daten gespeichert und dem entsprechend übermittelt werden.<br />
XML ist ohne Probleme von jedem IT-System lesbar und auf lange Sicht e<strong>in</strong>e Option<br />
zur Speicherung und Strukturierung von Daten. Im Bereich der Langzeitsicherheit und<br />
Langzeitarchivierung von digitalen oder digitalisierten Daten wird fast ausschließlich mit<br />
XML als Codierungsformat gearbeitet [31].<br />
E<strong>in</strong> abschließenden Überblick über die zwei Codierungsformate <strong>in</strong>klusive e<strong>in</strong>e groben Bewertung<br />
f<strong>in</strong>det sich <strong>in</strong> Tabelle 3.1.<br />
XML ASN.1<br />
masch<strong>in</strong>enlesbar + +<br />
menschenlesbar + -<br />
Softwareimplementierung + 0<br />
Langzeitlesbarkeit + 0<br />
Syntaktische überprüfbar + +<br />
Semantisch überprüfbar + -<br />
Legende: + = Vorteil / 0 = neutral / - = Nachteil<br />
Tabelle 3.1.: Gegenüberstellung ASN.1 und XML<br />
11
3. Codierungsformate<br />
12
4. <strong>Trustcenter</strong> Management Protokolle<br />
In diesem Kapitel werden aktuell verwendete <strong>Trustcenter</strong> Management Protokollen vorgestellt.<br />
Es werden die vier Protokolle Public Key Cryptography Standard #7 und #10,<br />
XML Key Management Specification und Certificate Management Protocol betrachtet.<br />
XML Key Management Specification verwendet, wie der Name schon erahnen lässt, als<br />
Codierungsformat XML die restlichen Protokolle nutzen ASN.1.<br />
Weiterh<strong>in</strong> gibt es die folgende Protokolle, auf die hier im e<strong>in</strong>zelnen nicht e<strong>in</strong>gegangen wird:<br />
Certificate Request Message Format [42], Certificate Message Syntax [24] und Certificate<br />
Management Messages over CMS [37].<br />
4.1. Public Key Cryptography Standard #7<br />
Public Key Cryptography Standard (PKCS) #7 [39] ist e<strong>in</strong> Standard für e<strong>in</strong>e Datenübertragung.<br />
Er stellt vier verschiedene Datentypen bereit <strong>in</strong> die Informationen e<strong>in</strong>gebettet und<br />
übermittelt werden können: Klartext<strong>in</strong>formationen, signierte Informationen, verschlüsselte<br />
Informationen und signierte e<strong>in</strong>gepackte Informationen. Es besteht auch die Möglichkeit<br />
diese Datentypen <strong>in</strong>e<strong>in</strong>ander zu Schachteln. PKCS #7 ist als Conta<strong>in</strong>er zu verstehen, <strong>in</strong><br />
den man beliebige viele Informationen e<strong>in</strong>lagern und diese anschließend dem Empfänger<br />
bei Bedarf signiert und oder verschlüsselt zukommen lassen kann. Es gibt ke<strong>in</strong>e spezifischen<br />
Festlegungen oder Strukturierung der Daten.<br />
E<strong>in</strong> Anwendungsgebiet ist der Datenverkehr via Email. Hier wird e<strong>in</strong>e Absicherung mit<br />
S/MIME [18] vorgenommen. S/MIME selbst benutzt PKCS #7 als Conta<strong>in</strong>er für die<br />
Information. Diese werden e<strong>in</strong>fach e<strong>in</strong>gebettet, übermittelt und auf der Gegenseite wieder<br />
ausgepackt.<br />
4.2. Public Key Cryptography Standard #10<br />
PKCS #10 [41] erfasst nur die Anforderung auf die Signatur e<strong>in</strong>es Zertifikats. Diese Anfrage<br />
muss den e<strong>in</strong>deutigen Namen des Anfragenden, das heißt den öffentlichen Schlüssel,<br />
enthalten. Die gesamten Daten der Anfrage müssen mit dem privaten Schlüssel des Anfragenden<br />
unterzeichnet se<strong>in</strong>. Die Anfrage enthält e<strong>in</strong>en Identifikator des Signaturalgorithmus<br />
und die Signatur des Anfragenden. Optional s<strong>in</strong>d weitere Attribute möglich, welche dann<br />
ebenfalls <strong>in</strong> die Signatur e<strong>in</strong>fließen.<br />
Diese Nachricht wird zur Signatur an die Zertifizierungsstelle geschickt. Die Rücksendung<br />
e<strong>in</strong>es Zertifikats <strong>in</strong> Form e<strong>in</strong>es X.509 Zertifikats [26] ist nicht mehr Bestandteil von PKCS<br />
#10. Hierfür wird auf andere Verfahren, beispielsweise das zuvor erwähnte Protokoll PKCS<br />
#7, zurückgegriffen.<br />
13
4. <strong>Trustcenter</strong> Management Protokolle<br />
Aktuell wird dieser Standard <strong>in</strong> vielen PKI-Umgebungen unter anderem auch Flexitrust<br />
verwendet, um die Zertifikatsanfragen entgegen zunehmen.<br />
4.3. XML Key Management Specification<br />
Extended Key Management System Version 2.0 (XKMS) [23] ist e<strong>in</strong> auf XML-basierendes<br />
Protokoll. XKMS soll als Webservice-Schnittstelle für die Benutzer die komplizierten und<br />
komplexen Vorgänge e<strong>in</strong>er PKI verbergen. Für das Protokoll selbst muss ke<strong>in</strong>e PKI gemäß<br />
X.509 oder PGP [13] vorhanden se<strong>in</strong>. Jedoch ist dieses Protokoll mittels e<strong>in</strong>er API darauf<br />
ausgelegt, solche Infrastrukturen zu unterstützen. XKMS greift für die Verarbeitung auf<br />
die Standards XML Digital Signature und XML Encryption zurück. Es teilt sich <strong>in</strong> zwei<br />
Bereiche XML Key Information Service Specification (X-KISS) und XML Key Registration<br />
Service Specification (X-KRSS).<br />
X-KISS als direkte Benutzerschnittstelle bearbeitet die Informationsauskünfte über Zertifikate.<br />
Es kann die Lokalisierung der Informationen über e<strong>in</strong> Zertifikat oder den verwendeten<br />
Schlüssel vornehmen, sowie <strong>in</strong> e<strong>in</strong>em zweiten Schritt die Informationen überprüfen. Hierbei<br />
kann die Gültigkeit der Zertifikats<strong>in</strong>formationen sowie der eigentlichen Signatur abgefragt<br />
werden. Zusammengefasst kann man sagen, dass X-KISS die Operationen rund um das<br />
XML Digital Signature Element für den Benutzer transparent anbietet.<br />
X-KRSS deckt die Aufgaben der Verwaltung von Zertifikaten ab. Unter anderem s<strong>in</strong>d die<br />
Registrierung von Zertifikaten und die Verknüpfung von Zertifikat mit dem dazugehörigen<br />
Schlüssel angebotene Operationen. Ebenso ist die Neuausstellung, die Revokation und<br />
auch e<strong>in</strong>e Wiederherstellung des privaten Schlüsselteiles <strong>in</strong> der API vorgesehen. Wird<br />
nur e<strong>in</strong>e öffentlicher Schlüssels verarbeitet, so ist auch e<strong>in</strong>e Überprüfung auf den Besitz<br />
des passenden privaten Schlüssels möglich. Das Protokoll kann direkt mit RSA und DSA<br />
Schlüsseln umgehen, darüber h<strong>in</strong>aus bietet es selbst e<strong>in</strong>e Umgebung, die die Anb<strong>in</strong>dung<br />
von weiteren und eventuell neueren Algorithmen ermöglicht.<br />
Aktuell wird XKMS zum Beispiel <strong>in</strong> e<strong>in</strong>em Grid Comput<strong>in</strong>g Projekt verwendet [38].<br />
4.4. Certificate Management Protocol<br />
Das Certificate Management Protocol (CMP) [11] ist im September 2005 e<strong>in</strong>gereicht<br />
worden. Es arbeitet zusammen mit dem Protokoll Certificate Request Message Format<br />
(CRMF) [42], welches zum gleichen Zeitpunkt e<strong>in</strong>gereicht wurde. Mit dieser Veröffentlichung<br />
haben beide Protokolle ihre Vorgänger abgelöst. Die erste Version von CMP und<br />
CRMF [10, 35] kannte ke<strong>in</strong>e optionalen Felder. S<strong>in</strong>d Informationen nicht angegeben worden<br />
und wurden sie für den weiteren Verlauf nicht nötig, so s<strong>in</strong>d diese an sich Pflichtelemente<br />
nicht ausgefüllt. Die Nachfolge Version führte als e<strong>in</strong>e Änderung optionalen Elemente e<strong>in</strong><br />
und somit gab es die Möglichkeit ”legal” Elemente auslassen zu können.<br />
CMP ist entwickelt worden, um die PKI-Struktur sowie den Zertifikateaufbau nach X.509<br />
zu verwalten. Es ermöglicht die <strong>Kommunikation</strong> zwischen den e<strong>in</strong>zelnen Komponenten<br />
e<strong>in</strong>er PKI, sowie e<strong>in</strong>em Clientsystem und der CA. Durch die Vorgabe der Struktur und<br />
der Inhalte der PKI wurde das gesamte Protokoll genau daraufh<strong>in</strong> ausgerichtet. Es werden<br />
sämtliche Elemente <strong>in</strong> den Zertifikaten unterstützt und e<strong>in</strong>e <strong>Kommunikation</strong> ist zwi-<br />
14
4.4. Certificate Management Protocol<br />
schen der RA, CA, e<strong>in</strong>em Verzeichnisdienst sowie Clientsystem möglich. Der Transport<br />
der Nachrichten ist nicht vorgegeben und kann somit auf verschiedene Arten erfolgen. In<br />
vielen Nachrichten ist e<strong>in</strong> Handshake-Verfahren e<strong>in</strong>gebaut, welches nur bei e<strong>in</strong>er direkten<br />
Netzwerkverb<strong>in</strong>dung funktioniert.<br />
Im RFC zu CMP s<strong>in</strong>d verschiedene Szenarien aufgeführt die CMP komplett unterstützt.<br />
CMP behandelt viele verschiedene Situationen mit eigenen Nachrichten und Mechanismen.<br />
Diese vielen vorgegebenen Nachrichten s<strong>in</strong>d e<strong>in</strong>e gute Grundlage für e<strong>in</strong>e Implementierung,<br />
sie ist jedoch sehr speziell und nur mit hohem Aufwand komplett zu bewerkstelligen. Viele<br />
der vorgesehenen Mechanismen s<strong>in</strong>d so spezifisch, dass sie außerhalb des vorgesehenen<br />
Rahmens nur durch spezielle Anpassungsschritte verwendet werden können. Es ist zur<br />
starr, als das es auf anderen PKI-Modellen s<strong>in</strong>nvoll e<strong>in</strong>gesetzt werden könnte.<br />
15
4. <strong>Trustcenter</strong> Management Protokolle<br />
16
5. Szenarien<br />
In diesem Kapitel werden Szenarien aus dem Bereich e<strong>in</strong>er Public-Key Infrastruktur aufgezeigt.<br />
Zur Vere<strong>in</strong>fachung ist die PKI <strong>in</strong> der Struktur Benutzer, RA, CA und Verzeichnisdienst<br />
gegeben. Die <strong>in</strong> Kapitel 2 vorgestellten Komponenten RA und CMA s<strong>in</strong>d <strong>in</strong> der<br />
CA zusammengefasst.<br />
Im Ersten Abschnitt werden die Vorgänge aufgeführt, die unmittelbar mit dem Zertifikat<br />
zusammenhängen oder an dieses geknüpft s<strong>in</strong>d. Hierbei handelt es sich um die Beantragung,<br />
Ausstellung, Auslieferung, Aktivierung, Veröffentlichung des öffentlichen Teiles,<br />
Erneuerung und Revokation des Zertifikats. Der Zweite Abschnitt befasst sich mit den<br />
Verwaltungsoperationen, die von Dritten gegenüber der PKI oder dem Zertifikat erfolgen.<br />
Betrachtet wird die Überprüfung des Zertifikats mittels Certificate Revocation List, Delta<br />
Certificate Revocation List oder Onl<strong>in</strong>e Certificate Status Protokoll und die externe<br />
Schlüsselerzeugung. E<strong>in</strong> weiterer verwaltungstechnischer Vorgang ist die Erneuerung des<br />
Vertrauensankers, welcher zu Ende des Abschnitts erläutert wird.<br />
5.1. Kernvorgänge<br />
In diesem Abschnitt werden die unmittelbaren Vorgänge erläutert, welche vom Erlangen<br />
bis zum Zurückziehen e<strong>in</strong>es Zertifikats notwendig s<strong>in</strong>d. Zur besseren Übersicht s<strong>in</strong>d <strong>in</strong><br />
Abbildung 5.1 alle Vorgänge und beteiligten Komponenten dargestellt.<br />
RA<br />
1. Beantragen 2. Ausstellen<br />
Benutzer<br />
4. Aktivieren<br />
3. Ausliefern<br />
Verzeichnisdienst<br />
CA = KA & CMA<br />
5. Veröffentlichen<br />
Abbildung 5.1.: Zertifizierungsvorgänge <strong>in</strong> e<strong>in</strong>er PKI<br />
17
5. Szenarien<br />
5.1.1. Beantragung<br />
Bei e<strong>in</strong>er Beantragung e<strong>in</strong>es neuen Zertifikats werden die persönlichen Daten des Benutzers<br />
durch die RA geprüft und ihre Echtheit bestätigt. Anhand dieser Daten wird e<strong>in</strong> Zertifikat<br />
für den Benutzer ausgestellt. Es besteht die Möglichkeit, dass der Benutzer nur die<br />
Zertifizierung se<strong>in</strong>es öffentlichen Schlüssels haben möchte. Dieser Schlüssel muss dann bei<br />
Beantragung vorliegen und wird an die CA weitergeleitet. Für e<strong>in</strong>e spätere Überprüfung<br />
auf die Echtheit des Benutzers kann e<strong>in</strong> Transportpasswort verwendet werden. Es besteht<br />
auch die Möglichkeit, dass e<strong>in</strong> Benutzer e<strong>in</strong> Revokationspasswort festlegt, mit dem er später<br />
se<strong>in</strong> Zertifikat revozieren kann und es selbst vor e<strong>in</strong>er nicht autorisierten Revokation<br />
schützt. S<strong>in</strong>d ke<strong>in</strong>e Passwörter angeben, so werden diese meist von der CA erstellt und<br />
nur dem Benutzer zugänglich gemacht.<br />
5.1.2. Ausstellung<br />
Von den validierten Daten des Benutzers werden alle notwendigen Daten für die Erstellung<br />
des Zertifikats an die CA weitergeleitet. Br<strong>in</strong>gt der Benutzer bereits e<strong>in</strong>en öffentlichen<br />
Schlüssel mit, so ist dieser auf dem Weg zur CA gegen e<strong>in</strong>en Austausch und e<strong>in</strong>e Manipulation<br />
zu schützen.<br />
Der bereits vorhandene oder e<strong>in</strong> neu zu erzeugender Schlüssel wird <strong>in</strong> e<strong>in</strong>em Zertifikat mit<br />
der Benutzeridentität verbunden. Dieses Zertifikat wird anschließend von der CA signiert<br />
und ist damit <strong>in</strong> die Hierarchie der PKI e<strong>in</strong>geordnet.<br />
5.1.3. Auslieferung<br />
Bei der Auslieferung wird das fertige Zertifikat dem Benutzer übermittelt. E<strong>in</strong> Schutz bei<br />
der Auslieferung bietet das Transportpasswort. Es besteht die Möglichkeit, dass dieses<br />
von der PKI vorgegeben wird oder der Benutzer es bei der Beantragung bereits h<strong>in</strong>terlegt<br />
hat. Das Zertifikat und der private Schlüssel wird anschließend mit dem Transportpasswort<br />
verschlüsselt und dem Benutzer übermittelt. Dieser kann als e<strong>in</strong>ziger Geheimnisträger<br />
das Zertifikat gültig entschlüsseln. Falls es sich um die Auslieferung e<strong>in</strong>es re<strong>in</strong>en öffentlichen<br />
Zertifikats handelt, der private Schlüssel nicht von der PKI selbst erzeugt wurde,<br />
so ist e<strong>in</strong> Proof-of-Possession-Mechanismus (PoP) nötig. Mittels diesem Verfahren muss<br />
der Benutzer nachweisen, dass er im Besitz des korrespondierendem privaten Schlüssels<br />
ist und somit auch gültiger Empfänger für das Zertifikat. Diese Überprüfung kann auch<br />
bei der Beantragung erfolgen und wäre dann zum Zeitpunkt der Auslieferung nicht mehr<br />
notwendig.<br />
5.1.4. Aktivierung<br />
Im gewöhnlichen PKI Umfeld ist e<strong>in</strong>e Aktivierung e<strong>in</strong>es Zertifikats nicht notwendig. Es<br />
wird davon ausgegangen, dass e<strong>in</strong> Zertifikat mit der Auslieferung als gültig anzusehen<br />
ist. Jedoch ist für die E<strong>in</strong>haltung des deutschen Signaturgesetzes (E.3) e<strong>in</strong>e Aktivierung<br />
zw<strong>in</strong>gend notwendig. Der Benutzer muss das Zertifikat aktivieren und damit nachweisen,<br />
dass er es erhalten hat und verwenden kann. Gegebenenfalls erfolgt <strong>in</strong> diesem Schritt e<strong>in</strong>e<br />
18
5.1. Kernvorgänge<br />
Überprüfung gemäß der Forderung nach PoP. Hierfür könnte das Aktivierungspasswort<br />
mit dem öffentlichen Schlüssel verschlüsselt se<strong>in</strong>.<br />
Für die Aktivierung e<strong>in</strong>es Zertifikats muss dieses e<strong>in</strong>deutig zugeordnet werden können.<br />
Ebenso muss diese Nachricht vom Benutzer bis zur CA unverändert übertragen werden<br />
oder e<strong>in</strong>e Veränderung erkennbar se<strong>in</strong>. Es sollte jedoch dem Benutzer ermöglicht werden,<br />
e<strong>in</strong>e Aktivierung auch zu verweigern. Gründe hierfür wären e<strong>in</strong>e Änderung der Policy,<br />
welche an das Zertifikat geknüpft ist, nicht ausreichende Sicherheitsstandards (Schlüssellänge<br />
zu kurz oder Verwendung e<strong>in</strong>es falschen kryptographischen Verfahrens) oder im<br />
schlimmsten Fall e<strong>in</strong>e nicht aufgeforderte beziehungsweise nicht reguläre Erneuerung des<br />
Zertifikats.<br />
5.1.5. Veröffentlichung<br />
Um Dritten die Möglichkeit der Überprüfung e<strong>in</strong>er Signatur oder die Übermittlung von<br />
verschlüsselten Daten zu geben, s<strong>in</strong>d die öffentlichen Zertifikate <strong>in</strong> e<strong>in</strong>em Verzeichnisdienst<br />
gespeichert. Dritte können das Zertifikat abrufen und die dar<strong>in</strong> enthaltenen Informationen<br />
überprüfen und nutzen. E<strong>in</strong>e Veröffentlichung des Zertifikats kann auch unterbunden<br />
beziehungsweise unterdrückt werden. Diese Verzeichnisdienst ist meist als Lightweight Directory<br />
Access Protocol organisiert [27].<br />
5.1.6. Erneuerung<br />
Wird e<strong>in</strong> Zertifikat verlängert, so muss e<strong>in</strong> Neues mit dem bereits gegebenem öffentlichen<br />
Schlüssel erstellt werden. Die Erneuerung erfolgt <strong>in</strong> den Schritten: Beantragung, Ausstellung,<br />
Auslieferung und Veröffentlichung. E<strong>in</strong>e erneute Überprüfung auf den Besitz des<br />
privaten Schlüssel ist nicht notwendig, da der Benutzer diesen bereits verwendet hatte und<br />
demnach besitzt. Für den Fall, dass e<strong>in</strong> neuer Schlüssel notwendig und verwendet ist, kann<br />
erneut e<strong>in</strong>e Prüfung mittels PoP erfolgen. Ebenso kann bei der Beantragung auf bereits<br />
im abgelaufenen oder ablaufenden Zertifikate enthaltenen Daten zurückgegriffen werden.<br />
Damit ist der gesamte Vorgang voll automatisierbar. Etwaige automatisch erstellte Passwörter<br />
können dem Benutzer unter der zu Zuhilfenahme se<strong>in</strong>es aktuellen Zertifikates sicher<br />
übermittelt werden.<br />
5.1.7. Revokation<br />
Falls e<strong>in</strong> Zertifikat ungültig wird, muss der Benutzer diese Information der CA mitteilen<br />
(Abbildung 5.2). Der Zeitpunkt der Sperrung ist der Zeitpunkt der Bekanntgabe gegenüber<br />
dem TC. Der Benutzer hat e<strong>in</strong> Revokationspasswort erhalten, mit dem er der RA<br />
nachweisen kann, dass er Eigentümer des zu revozierenden Zertifikats ist. Alle Informationen<br />
werden dann von der RA an die CA weitergeleitet. Die CA fügt die Sperr<strong>in</strong>formation,<br />
sofern die Komponenten vorhanden s<strong>in</strong>d, <strong>in</strong> die CRL e<strong>in</strong> und leitet sie an den OCSP-<br />
Provider weiter. Hier s<strong>in</strong>d diese Komponenten <strong>in</strong> Form des Verzeichnisdienstes modelliert.<br />
Wird dann e<strong>in</strong>e Statusanfrage bezüglich des revozierten Zertifikats gestellt, so fällt sie<br />
negativ aus. E<strong>in</strong>e weitergehende Betrachtung der Revokationsanfrage erfolgt <strong>in</strong> Abschnitt<br />
5.2.1.<br />
19
5. Szenarien<br />
RA<br />
1. Meldung 2. Revokation<br />
Benutzer<br />
5.2. Weitere Vorgänge<br />
Verzeichnisdienst<br />
CA = KA & CMA<br />
3. Veröffentlichen<br />
Abbildung 5.2.: Revokation e<strong>in</strong>es Zertifikats<br />
In e<strong>in</strong>er PKI gibt es neben den Kernvorgängen noch weitere Operationen. Hierbei sei die<br />
Überprüfung auf die Gültigkeit e<strong>in</strong>es Zertifikats, die externe Schlüsselerzeugung und die<br />
Erneuerung des Zertifikats der Wurzel<strong>in</strong>stanz genannt.<br />
5.2.1. Gültigkeitsprüfung<br />
In e<strong>in</strong>er PKI ist es wichtig überprüfen zu können, ob e<strong>in</strong> Zertifikat nicht aus anderen<br />
Gründen als dem Ablauf des Gültigkeitszeitraums ungültig geworden ist. Hierfür werden<br />
verschiedene Konzepte verwendet, um diese Informationen auf der e<strong>in</strong>en Seite zu erfassen<br />
und zu verwalten, auf der anderen Seite sie auch für Dritte verfügbar und erreichbar<br />
zu haben. Diese Forderungen f<strong>in</strong>den sich auch <strong>in</strong> der Signaturverordnung §7 Absatz 2<br />
(E.4) wieder. Die zwei großen Vertreter dieser Konzepte s<strong>in</strong>d Certificate Revocation Lists<br />
(CRL) (e<strong>in</strong> als seit langem schon etabliertes und auch offl<strong>in</strong>e verfügbares Verfahren) und<br />
Onl<strong>in</strong>e Certificate Status Protocol (OCSP). OCSP ist, wie der Name schon sagt, e<strong>in</strong> Onl<strong>in</strong>e<br />
Protokoll. Es benötigt e<strong>in</strong>en funktionierenden Internetzugang und e<strong>in</strong>e Verb<strong>in</strong>dung zum<br />
OCSP-Server. Auf diese zwei Verfahren wird im folgenden noch genauer e<strong>in</strong>gegangen.<br />
Weiterh<strong>in</strong> gibt es noch Konzepte und Verfahren wie Novomodo [6]. Bei diesem Verfahren<br />
wird die Revokations<strong>in</strong>formation schon bei der Erstellung <strong>in</strong> das Zertifikat e<strong>in</strong>gebracht<br />
und mit signiert. Hierbei handelt es sich um den Hashwert e<strong>in</strong>es Geheimnisses. Wird das<br />
Geheimnis bekannt, so ist das Zertifikat revoziert.<br />
Die Verfahren haben geme<strong>in</strong>sam, dass sie zur Revozierung e<strong>in</strong>es Zertifikats e<strong>in</strong>e e<strong>in</strong>deutige<br />
Zuordnung der Zertifikats benötigen. Für Systeme nachdem X.509 Standard wird diese<br />
aus dem Aussteller und der Seriennummer gebildet.<br />
(Delta) Certificate Revocation List<br />
E<strong>in</strong>e Certificate Revokation List (CRL) oder auch e<strong>in</strong>e Delta Certificate Revocation List<br />
(dCRL) [25] wird von e<strong>in</strong>er CA erstellt, um alle revozierten Zertifikate zu verwalten. E<strong>in</strong>e<br />
CRL wird zu bestimmten Zeitpunkten erstellt und enthält alle Zertifikate die bis zu diesem<br />
20
5.2. Weitere Vorgänge<br />
Zeitpunkt revoziert worden s<strong>in</strong>d. Da e<strong>in</strong>e CRL e<strong>in</strong> Liste ist die stets wächst, wurde zur<br />
Reduzierung des Datentransfers das Konzept der dCRL e<strong>in</strong>geführt. Hierbei werden immer<br />
<strong>in</strong> Bezug auf e<strong>in</strong>e komplette Liste (BaseCRL) die neu revozierten und noch nicht <strong>in</strong> e<strong>in</strong>er<br />
BaseCRL erfassten Zertifikate gesammelt und bereitgestellt. Die Delta CRL zusammen<br />
mit der referenzierten BaseCRL ergeben die Liste aller zurückgezogenen Zertifikat zum<br />
Zeitpunkt der Erstellung der dCRL.<br />
E<strong>in</strong> Client ruft diese Liste ab und kann danach ohne e<strong>in</strong>e Internetverb<strong>in</strong>dung Zertifikate<br />
auf ihre Gültigkeit h<strong>in</strong> überprüfen. Für e<strong>in</strong> Auffrischung der Informationen muss e<strong>in</strong><br />
Client entweder e<strong>in</strong>e zu se<strong>in</strong>er bereits vorhandenen CRL passende dCRL laden oder e<strong>in</strong>e<br />
komplette neue CRL. Die Aktualität der Information ist immer <strong>in</strong> der Geschw<strong>in</strong>digkeit, <strong>in</strong><br />
der e<strong>in</strong>e CA e<strong>in</strong>e CRL beziehungsweise dCRL bereitgestellt und der Client diese vorliegen<br />
hat.<br />
Onl<strong>in</strong>e Certificate Status Protocol<br />
Das Onl<strong>in</strong>e Certificate Status Protocol (OCSP) [36] ermöglicht e<strong>in</strong>e direkte Überprüfung<br />
e<strong>in</strong>zelner Zertifikate. Somit kann unmittelbar festgestellt werden, ob e<strong>in</strong> Zertifikat zum<br />
Zeitpunkt der Überprüfung noch gültig ist. In Abbildung 5.3 ist e<strong>in</strong> Prüfungsschema <strong>in</strong>nerhalb<br />
des OCSP-Anbieters dargestellt. Es s<strong>in</strong>d folgende drei Antworten möglich: unknown<br />
(der Aussteller ist unbekannt), revoked (das Zertifikate wurde zurückgezogen), good (das<br />
Zertifikat ist nicht revoziert). Die dritte Antwortmöglichkeit muss im Rahmen des deutschen<br />
Signaturgesetzes (E.5) gegeben werden. Hierbei wird geprüft, ob das Zertifikat bekannt<br />
ist und dieses dann anschließend explizit als gültig erklärt.<br />
OCSP bietet gegenüber CRL zwei entscheidende Vorteile. Das erste ist die Echtzeit-<br />
Information über den Status e<strong>in</strong>es Zertifikats. Den zweiten Vorteil bildet die Größe der Anfrage<br />
beziehungsweise der Datenpakete die übermittelt werden. Das Nutzen e<strong>in</strong>es OCSP-<br />
Server kann das übermittelte Datenvolumen auf das notwendigste reduzieren. Weiterh<strong>in</strong><br />
können sich mehrere CA durchaus e<strong>in</strong>en OCSP-Server teilen. Dieser liefert dann die Status-<br />
Informationen über die Zertifikate der angeschlossenen CA <strong>in</strong> Echtzeit aus.<br />
5.2.2. Externe Schlüsselerzeugung<br />
Auf Grund von Sicherheitsanforderungen kann es durchaus möglich se<strong>in</strong>, dass Schlüssel<br />
auf e<strong>in</strong>er sicheren externen E<strong>in</strong>heit erzeugt werden müssen (Abbildung 5.4). Die CA stellt<br />
hierzu e<strong>in</strong>e Anfrage an die externe E<strong>in</strong>heit. Die externe E<strong>in</strong>heit erzeugt den Schlüssel und<br />
dieser muss dann auf sicherem Wege wieder zur CA übermittelt werden. Hierbei ist der<br />
Schutz des privaten Schlüssel als sehr hoch e<strong>in</strong>zustufen. Es besteht auch die Möglichkeit der<br />
Erzeugung des Schlüsselpaares auf e<strong>in</strong>e Chipkarte (Abbildung 5.5) und somit ist der private<br />
Schlüssel vor externem Zugriff geschützt. Die CA muss im Anschluss die Benutzerdaten<br />
mit dem öffentlichen Schlüssel komb<strong>in</strong>ieren, das Zertifikate erstellen und signieren. Dieses<br />
Zertifikat kann auf gewöhnlichem Wege ohne zusätzlichen Schutz an den Benutzer und<br />
den Verzeichnisdienste übermittelt werden. Der private Schlüssel wird auf der Chipkarte<br />
geschützt.<br />
21
5. Szenarien<br />
verify issuer<br />
check CRL<br />
check Certificate<br />
good<br />
Aussteller bekannt<br />
nicht revoziert<br />
Zertifikat bekannt<br />
Aussteller unbekannt<br />
enthalten <strong>in</strong> CRL<br />
Zertifikat unbekannt<br />
unknown<br />
revoked<br />
unknown<br />
Abbildung 5.3.: Ablauf e<strong>in</strong>er OCSP Anfrage nach SigG<br />
5.2.3. Vertrauensanker erneuern<br />
E<strong>in</strong>e Erneuerung des Zertifikats beziehungsweise des Schlüssels der Wurzel<strong>in</strong>stanz e<strong>in</strong>er<br />
PKI ist die kritischste Operation <strong>in</strong> e<strong>in</strong>er PKI. An dieser Stelle muss e<strong>in</strong> Zertifikat verwendet<br />
werden, das selbst signiert ist. Es gibt ke<strong>in</strong>e übergeordnete Instanz die die Authentizität<br />
dieser Wurzel bestätigen kann. Auch ist es der am besten zu schützende Vorgang <strong>in</strong> e<strong>in</strong>er<br />
PKI, da dieses Zertifikat allen anderen Zertifikaten übergeordnet ist und man mit dem<br />
Besitz des dazugehörigen privaten Schlüssels die gesamte PKI kontrollieren kann [14].<br />
Die Vorgänge die hierbei ablaufen s<strong>in</strong>d meist <strong>in</strong>dividuell und müssen für jede e<strong>in</strong>gesetzte<br />
PKI-Software e<strong>in</strong>zeln angepasst werden. Sie s<strong>in</strong>d ähnliche den Vorgängen bei dem erstmaligen<br />
Aufsetzen der PKI (Bootstrap). Daher gibt es im Bereich der <strong>Kommunikation</strong>sprotokolle<br />
ke<strong>in</strong>e großen Anforderungen.<br />
Dieser Prozess kann auch völlig automatisiert ablaufen. In dem die CA mitteilt, dass ihr<br />
Zertifikat abläuft und die entsprechenden Prozesse eigenständig auslöst. Zum Schluss kann<br />
es se<strong>in</strong>, dass den restlichen Komponenten <strong>in</strong>nerhalb der PKI die Erneuerung des Zertifikats<br />
im Vertrauensanker mitgeteilt werden muss E<strong>in</strong>e semiautomatische Reaktion kann auch<br />
erfolgen. Hierbei müssen dann die Systembetreuer auf die Nachricht der CA reagieren und<br />
die Prozesse manuell ausführen.<br />
Bei e<strong>in</strong>er CA, die nicht am Netzwerk angeschlossen ist, müssen alle Zertifikate per Datenträger<br />
zu dieser gebracht werden und anschließend wieder <strong>in</strong> signierter Form zurück<br />
übermittelt werden. Dieses Vorgehen bietet e<strong>in</strong>e maximal Sicherheit für die CA.<br />
22
Benutzer<br />
RA<br />
1. Schlüsselanforderung<br />
Verzeichnisdienst<br />
CA = KA & CMA<br />
Abbildung 5.4.: Externe Schlüsselerzeugung<br />
Benutzer<br />
RA<br />
5.2. Weitere Vorgänge<br />
Schlüsselerzeuger<br />
CA = KA & CMA<br />
2. öffentlichen Schlüssel übermitteln<br />
Verzeichnisdienst<br />
2. Schlüsselübertragung<br />
1. Anforderung zur Schlüsselgenerierung<br />
Chipkarte<br />
Abbildung 5.5.: Schlüsselerzeugung auf e<strong>in</strong>er Chipkarte<br />
5.2.4. Informations- und Fehlerübermittlung<br />
Bei der Verarbeitung von Informationen können Fehler auftreten. Diese müssen gemeldet<br />
werden und Maßnahmen getroffen werden um sie zu beheben. E<strong>in</strong>e falsche Fehlermeldung<br />
kann zu nicht erwünschten Reaktionen führen. Daher müssen Fehlermeldungen korrekt<br />
erstellt und übermittelt werden. Sie s<strong>in</strong>d genauso zu schützen wie normale Nachrichten<br />
<strong>in</strong>nerhalb des TC. E<strong>in</strong> Fehlermeldung sollte von jeder Komponente an jede Komponente<br />
gesendet werden können. Konkrete Mechanismen zur eigentlichen Fehlerbehebung obliegen<br />
der Anwendung.<br />
Gleiches gilt für den allgeme<strong>in</strong>en Informationsaustausch, auch dieser muss geschützt werden.<br />
Nehme man als Beispiel e<strong>in</strong> autonomes voll automatisiertes <strong>Trustcenter</strong>s an, hier darf<br />
ke<strong>in</strong> Fehlverhalten auf Grund von falschen Informationen ausgelöst werden.<br />
23
5. Szenarien<br />
24
6. Intra <strong>Trustcenter</strong> Protocol<br />
Das Intra <strong>Trustcenter</strong> Protocol (ITP) wurde entworfen, um primär die <strong>Kommunikation</strong> <strong>in</strong>nerhalb<br />
e<strong>in</strong>es <strong>Trustcenter</strong>s zu ermöglichen. E<strong>in</strong> großer Teil an Managementaufgaben wird<br />
mit Version 1.2 abgedeckt werden und bis zur fertigen Version 2.0 sollen alle Managementaufgaben<br />
erfasst se<strong>in</strong>. E<strong>in</strong>e direkte Interaktion mit dem Benutzer ist bisher nicht vorgesehen;<br />
das Protokoll ist jedoch generisch genug entwickelt, um dies zu ermöglichen. Aktuell<br />
wird die Aufgabe der direkten Benutzer<strong>in</strong>teraktion durch anderen Protokolle abgedeckt.<br />
6.1. Designziele<br />
Die Grundidee h<strong>in</strong>ter ITP ergeben s<strong>in</strong>d die folgenden sieben Kernanforderungen: Allgeme<strong>in</strong>gültigkeit,<br />
Erweiterbarkeit, Unabhängigkeit, Automatisierbarkeit, Skalierbarkeit,<br />
Nachvollziehbarkeit und Sicherheit. im Folgenden werden diese Punkte e<strong>in</strong>zeln aufgeführt.<br />
Allgeme<strong>in</strong>gültigkeit<br />
Innerhalb e<strong>in</strong>es <strong>Trustcenter</strong>s sollen alle auftretenden Daten verarbeitet werden können. Es<br />
sollte ke<strong>in</strong>e E<strong>in</strong>schränkungen auf bestimmte Datentypen oder Art beziehungsweise Anzahl<br />
der Komponenten geben. Die Daten selbst sollten, soweit als möglich, <strong>in</strong> strukturierter und<br />
lesbarer Form vorliegen. Sie sollten nicht <strong>in</strong> generischen Datenconta<strong>in</strong>er liegen, da diese<br />
ke<strong>in</strong>erlei E<strong>in</strong>blick und Rückschluss auf den Inhalt liefern. Die b<strong>in</strong>ärcodierte Daten sollten<br />
nur im Fall der Signatur oder der Verschlüsselung vorhanden se<strong>in</strong>, an diesen Stellen s<strong>in</strong>d<br />
sie unvermeidlich. Die Strukturierung der Daten bietet auch die Möglichkeit e<strong>in</strong>er gezielten<br />
Absicherung von Teilen des Paketes beziehungsweise die Möglichkeit, nur die notwendigen<br />
Teile zu verschlüsseln.<br />
Erweiterbarkeit<br />
Um die <strong>in</strong> Zukunft wachsenden und sich ändernden Anforderungen weiterh<strong>in</strong> zu unterstützen<br />
muss das Protokoll, sowohl im Bereich der Daten und Datentypen erweiterbar se<strong>in</strong>.<br />
Auch e<strong>in</strong> Veränderung der Komponenten <strong>in</strong>nerhalb der gesamten Infrastruktur gilt es abzudecken.<br />
Es muss die Möglichkeit gegeben se<strong>in</strong>, heute noch nicht benötigte Nachrichten<br />
zu modellieren und erst <strong>in</strong> Zukunft verfügbar beziehungsweise notwendig Infrastrukturkomponenten<br />
zu <strong>in</strong>tegrieren (Hardware Kryptomodule [33]).<br />
Unabhängigkeit<br />
Für e<strong>in</strong> Managementprotokoll sollte auf ke<strong>in</strong>en Fall e<strong>in</strong>e Abhängigkeit von e<strong>in</strong>er starren<br />
Struktur von genau e<strong>in</strong>em <strong>Trustcenter</strong> oder auch <strong>Trustcenter</strong>typ existieren. Auch die Arbeitsabläufe<br />
<strong>in</strong>nerhalb e<strong>in</strong>er PKI s<strong>in</strong>d verschieden und sollten daher nicht starr <strong>in</strong> e<strong>in</strong>em<br />
25
6. Intra <strong>Trustcenter</strong> Protocol<br />
Protokoll abgebildet werden. Ebenso ist e<strong>in</strong>e Unabhängigkeit auch bei der Wahl der Transportmedien<br />
und -arten gegeben: onl<strong>in</strong>e, offl<strong>in</strong>e, USB-Stick, Diskette, EMail.<br />
Automatisierbarkeit<br />
Die Vorgängen <strong>in</strong>nerhalb e<strong>in</strong>es <strong>Trustcenter</strong>s können verschiedene Prozesse automatisiert<br />
werden. Von Seiten des Protokolls muss dafür e<strong>in</strong>e Unterstützung vorhanden se<strong>in</strong>. Vor allem<br />
fällt hier runter das Erstellen und Überprüfen von Signaturen und damit die Wahrung<br />
der Authentizität der Daten und Anfragen. E<strong>in</strong>e vollkommen automatische Ausstellung<br />
und Verteilung von Zertifikaten ist ebenso e<strong>in</strong> denkbarer und möglicher Vorgang. Für die<br />
Automation e<strong>in</strong>es Prozesses ist e<strong>in</strong>e genaue Angabe und Überprüfung der Informationen<br />
notwendig. Auch muss die Möglichkeit gegeben werden auftretende Fehler kenntlich zu<br />
machen und diese an e<strong>in</strong>e entsprechende Stelle übermitteln zu können.<br />
Skalierbarkeit<br />
ITP soll sowohl die <strong>Kommunikation</strong> <strong>in</strong> e<strong>in</strong>em streng hierarchischen <strong>Trustcenter</strong> ermöglichen<br />
als auch <strong>in</strong> e<strong>in</strong>em modularen Umfeld. Da e<strong>in</strong>e hierarchische Topologie e<strong>in</strong>e spezielle<br />
Topologie e<strong>in</strong>es allgeme<strong>in</strong>en modularen Modells ist gilt es, dieses zu erfüllen um damit<br />
beide Möglichkeiten zu erfassen.<br />
E<strong>in</strong>e modulare Topologie erlaubt es, dass Komponenten mehrfach vorhanden s<strong>in</strong>d, sowie<br />
e<strong>in</strong>e nicht im Vorfeld festgelegte Verteilung der Komponenten zu haben. Ebenfalls ist die<br />
<strong>Kommunikation</strong> zwischen allen Komponenten möglich. Hierbei handelt es sich um e<strong>in</strong>e<br />
Peer-2-Peer Topologie.<br />
Durch diese Flexibilität ist es möglich ohne großen Aufwand die PKI auf e<strong>in</strong>e spezielle Anforderung<br />
anzupassen. E<strong>in</strong> möglicher Aufbau e<strong>in</strong>er PKI ist <strong>in</strong> Abbildung 6.1 dargestellt.<br />
Mit e<strong>in</strong>er flexiblen Struktur ist es Möglich e<strong>in</strong>en Rollout von tausenden Karten zu realisieren<br />
und für den laufenden Betrieb die Kosten zu senken. Diese Szenario ist nicht abwegig,<br />
da im Zuge der Gesundheitskarte, des elektronischen Reisepasses oder dem digitalen Personalausweis<br />
sich die Frage stellt, wie man mehrere Millionen Identitäten bestätigt, erfasst<br />
und ihnen e<strong>in</strong>e Chipkarte sowohl erstellt als auch zuordnet. Auf der anderen Seite sollte es<br />
auch möglich se<strong>in</strong>, e<strong>in</strong> <strong>Trustcenter</strong> nach e<strong>in</strong>er solchen massiven Last beim Rollout, zu verkle<strong>in</strong>ern.<br />
Dies bedeutet, dass man Komponenten abschaltet und gegebenenfalls herauslöst.<br />
Diese Reduktion sollte auch vom Protokoll unterstützt se<strong>in</strong>.<br />
Nachvollziehbarkeit<br />
Die Protokollierung geschieht <strong>in</strong>nerhalb der e<strong>in</strong>zelnen Komponenten. Es muss seitens des<br />
Protokolls ermöglicht werden und <strong>in</strong> den Nachrichten alle dazu notwendigen Daten zur<br />
Verfügung zu stellen. Diese Daten sollten, soweit möglich, für den Menschen lesbar se<strong>in</strong>. In<br />
e<strong>in</strong>em Sicherheitsbereich gibt es Prozesse und Vorgänge die e<strong>in</strong>e Protokollierung erfordern.<br />
Dieses geht nur, wenn die Vorgänge <strong>in</strong>nerhalb e<strong>in</strong>er PKI für den Benutzer protokollierbar<br />
und nachvollziehbar ablaufen.<br />
E<strong>in</strong>e Forderung zur Nachvollziehbarkeit der Vorgänge f<strong>in</strong>det sich auch im deutschen Signaturgesetz<br />
Paragraph 10 Absatz 1 (E.2) wieder.<br />
26
Sicherheit<br />
Benutzer 1<br />
Benutzer 2<br />
Status Anfrage<br />
RA 1 RA 2 RA . . .<br />
CMA KA<br />
Schlüsselerzeuger ID 1<br />
Schlüsselerzeuger ID 2<br />
Verzeichnisdienst Revokationsdienst<br />
Abbildung 6.1.: Übersicht über verschiedene Module <strong>in</strong> der PKI<br />
6.1. Designziele<br />
Es ist nicht ausreichend, das Daten nur auf den Speicherplätzen geschützt werden. Die<br />
<strong>Kommunikation</strong>swege s<strong>in</strong>d gleich stark zu schützen, so dass hier ke<strong>in</strong>e Verletzung der<br />
Sicherheitspolicy auftreten kann. Dies bedeutet, dass das Protokoll Signaturen und Verschlüsselung<br />
unterstützen muss, um auf den <strong>Kommunikation</strong>sweg ebenfalls die Integrität<br />
der PKI zu wahren. Problematisch hierbei ist e<strong>in</strong>e gleichzeitigen Verschlüsselung und Signatur<br />
von Daten [16]. Auch sollen die Bereiche die <strong>in</strong> e<strong>in</strong>e Signatur e<strong>in</strong>fließen so erkenntlich<br />
se<strong>in</strong>, als das der Signierer genau sieht, was er unterzeichnen wird oder unterzeichnet<br />
hat (”What you see, is what you sign”). Hierbei ist die Klartextdarstellung von XML-Daten<br />
e<strong>in</strong>e gute Ausgangsbasis.<br />
Für e<strong>in</strong>e sichere Identifikation der Teilnehmer sollte auch e<strong>in</strong>e Unterstützung von Authentifikationsmechanismen<br />
vorhanden se<strong>in</strong>. Auch die Delegation von Aufgaben sollte unterstützt<br />
werden, da es im Vorfeld nicht unbed<strong>in</strong>gt feststeht welche Komponente welche<br />
Teilaufgabe wahrnimmt.<br />
6.1.1. Intra <strong>Trustcenter</strong> Protocol Version 1.0<br />
ITP <strong>in</strong> der Version 1.0 [28] war e<strong>in</strong> re<strong>in</strong>er Entwurf e<strong>in</strong>es neuen Managementprotokolls,<br />
welches die im Vorfeld gestellten Anforderungen erfüllen soll. Die Nachrichten wurden nur<br />
durch XML-TAGs und Beispiele <strong>in</strong> XML spezifiziert. Die Syntax e<strong>in</strong>er Nachricht gibt der<br />
Quelltext <strong>in</strong> Anhang A.2 wieder.<br />
Innerhalb der , die die gesamte Nachricht umhüllt, gibt es die Felder <br />
für den Sender der Nachricht, markiert den Empfänger, <br />
be<strong>in</strong>haltet die Aufgabe und bietet e<strong>in</strong>e Sicherung der gesamten Nachricht<br />
durch e<strong>in</strong>e Signatur. Die enthält zwei Attribute version, für die Versionsnummer<br />
des Nachrichtenprotokolles, und mit id e<strong>in</strong>en e<strong>in</strong>deutigen Identifikator der Nachricht.<br />
E<strong>in</strong>e Nachricht kann mehrere Blöcke des Typs und besitzen.<br />
Der Bereich teilt sich <strong>in</strong> zwei Blöcke auf. Den ersten Block bildet das Profil<br />
mit , den zweiten e<strong>in</strong>e oder mehrere über den Bereich gebildete<br />
27
6. Intra <strong>Trustcenter</strong> Protocol<br />
Signaturen. Die enthält e<strong>in</strong>e Attribut namens id, dass e<strong>in</strong>e e<strong>in</strong>deutige<br />
Identifikation ermöglicht.<br />
Die E<strong>in</strong>deutigkeit soll auch <strong>in</strong> den Profilen gewahrt bleiben, so dass e<strong>in</strong> Profil auch e<strong>in</strong>e<br />
eigene id als Attribut hat. Unter den neun vorgesehen Elementen <strong>in</strong> e<strong>in</strong>em Profil s<strong>in</strong>d<br />
zur Identifikation der Subjekte die TAGs , und vorgesehen.<br />
Das Element ist für die Übermittlung e<strong>in</strong>es Passwortes<br />
vorhanden, hierbei ist ke<strong>in</strong> weiterer Schutz des Passwortes gegeben. Mit dem TAG <br />
ist es möglich e<strong>in</strong> Markierung zu setzen, die die Veröffentlichung e<strong>in</strong>es<br />
Zertifikats unterb<strong>in</strong>den soll. Für den Transport von drei Zertifikaten, welche selbst als b<strong>in</strong>är<br />
Codierung vorliegen, s<strong>in</strong>d die Elemente , und<br />
vorgesehen.<br />
E<strong>in</strong>en Gesamtüberblick über alle def<strong>in</strong>ierten TAGs der Version 1.0 liefert die Tabelle C.1<br />
im Anhang.<br />
6.1.2. Intra <strong>Trustcenter</strong> Protocol Version 1.1<br />
In [29] wurde ITP <strong>in</strong> der Version 1.1 veröffentlicht. Beispiel für e<strong>in</strong>e solche Nachricht<br />
f<strong>in</strong>det sich <strong>in</strong> Anhang A.3. Im Folgenden werden nur die Änderungen gegenüber Version<br />
1.0 vorgestellt.<br />
Das TAG wurde zur Verdeutlichung des Inhaltes der Nachricht zu <br />
umbenannt und das Attributversion hat nun den Wert ”1.1”. Dieid der Profile wurde<br />
als e<strong>in</strong>deutiger Identifikator aufgegeben und als Identifikator für die Aufgaben benutzt.<br />
Konkret wurde für die Aufgabe der Aktivierung e<strong>in</strong>es Zertifikates die id="Activation"<br />
benannt. E<strong>in</strong> Übertragung von mehreren Zertifikaten trägt id="Multicert" als Attribut<br />
im Element . Das Element wird um das Attribut<br />
type="b<strong>in</strong>ary" erweitert, um hier verschlüsselte Passwörter abzulegen.<br />
Die Elemente , und wurden<br />
zu e<strong>in</strong>em Element zusammengefasst. Damit auch weiterh<strong>in</strong> der<br />
Versand von mehreren Zertifikaten <strong>in</strong> e<strong>in</strong>er Nachricht möglich ist wurden jedem Element im<br />
Bereich das Element zugeordnet. Die e<strong>in</strong>zelnen Werte werden durch<br />
das Attribut id <strong>in</strong>nerhalb des Elementes differenziert. E<strong>in</strong> Zertifikat kann somit<br />
jedes TAG <strong>in</strong> diesem Abschnitt besitzen. E<strong>in</strong> Zuordnung für die entsprechenden Zertifikate<br />
erfolgt hierbei über den Identifikator oder über das KeyUsage-Feld <strong>in</strong>nerhalb e<strong>in</strong>es Zertifikats.<br />
Jedes Zertifikat liegt als base64b<strong>in</strong>ary <strong>in</strong>nerhalb e<strong>in</strong>es Bereiches.<br />
Die zwei Signaturbereiche bleiben unverändert. Auch ist ke<strong>in</strong>e Verschlüsselung <strong>in</strong>nerhalb<br />
der Nachrichten h<strong>in</strong>zugekommen.<br />
Diese Version von ITP ist bereits prototypisch für Flexitrust implementiert worden und<br />
kann dort e<strong>in</strong>gesetzt werden.<br />
E<strong>in</strong>e komplette TAG-Referenz gibt es im Anhang die Tabelle C.2.<br />
28
6.2. Intra <strong>Trustcenter</strong> Protocol Version 1.2<br />
6.2. Intra <strong>Trustcenter</strong> Protocol Version 1.2<br />
In allen bisherigen Versionen von ITP bestand das Protokoll nur aus def<strong>in</strong>ierten TAGs und<br />
XML-Dateien. Mit der Version 1.2 wird erstmalig e<strong>in</strong>e Schemadef<strong>in</strong>ition (B.1) e<strong>in</strong>geführt.<br />
Anhand derer kann man die e<strong>in</strong>zelnen ITP-Nachrichten auf ihre Korrektheit prüfen und<br />
korrekt erstellen.<br />
Probleme hierbei s<strong>in</strong>d die Menge der klar zu def<strong>in</strong>ierenden TAGs. Ebenso e<strong>in</strong>e Festlegung<br />
der Attribute und e<strong>in</strong>e Reihenfolge der TAGs <strong>in</strong> den Nachrichten. Zu Beg<strong>in</strong>n dieses Kapitels<br />
werden e<strong>in</strong>ige grundlegende Designentscheidungen für die neue Version von ITP angeführt.<br />
Insgesamt bleibt jedoch die Grundstruktur erhalten, so dass weiterh<strong>in</strong> die Intelligenz <strong>in</strong> den<br />
Anwendungen ist und die Nachrichten nur zum Transport von Informationen dienen. Auch<br />
ist durch die generischen Nachrichten e<strong>in</strong>e hohe Wiederverwendbarkeit des Protokolls für<br />
andere Bereiche gegeben.<br />
Zur Übersichtlichkeit des Abschnittes f<strong>in</strong>den sich alle Quelltexte <strong>in</strong> Anhang A.<br />
6.2.1. XML-Schema Def<strong>in</strong>ition<br />
Beschreibung der ITP XML-Syntax erfolgt <strong>in</strong> e<strong>in</strong>em XML-Schema. E<strong>in</strong>e Schemaerstellung<br />
mit Document Type Def<strong>in</strong>ition (DTD) fällt durch die Verwendung von Namespaces weg.<br />
DTD unterstützt ke<strong>in</strong>e Namespaces. XML-Schema hat durch se<strong>in</strong>e eigene Darstellung <strong>in</strong><br />
XML den Vorteil, dass ke<strong>in</strong>e weitere Beschreibungssprache außer XML verwendet werden<br />
muss. Auch e<strong>in</strong>e Nutzung von XML-Werkzeugen zur automatischen Überprüfung und Verarbeitung<br />
wird damit ermöglicht. E<strong>in</strong>e Zukunftssicherheit ergibt sich aus der Flexibilität<br />
von XML-Schema und der Unterstützung für eigene selbst spezifizierte Datentypen.<br />
Durch die Möglichkeit der automatischen Syntaxüberprüfung ist e<strong>in</strong> Fortschritt bezüglich<br />
der Sicherheit <strong>in</strong> ITP erreicht worden. Das komplette Schema f<strong>in</strong>det sich <strong>in</strong> Anhang B.1.<br />
In diesem Abschnitt werden jeweils die entsprechenden Teile des Schema durch Tabellen<br />
übersichtlicher dargestellt und die enthaltenen Elemente aufgezeigt.<br />
Namensräume<br />
Das Markup-Vokabular <strong>in</strong> XML-Dokumenten ist nicht e<strong>in</strong>deutig. Dadurch kann e<strong>in</strong> TAG<br />
auch mehrfach <strong>in</strong> verschiedenen Kontexten verwendet werden. Dadurch ist die E<strong>in</strong>deutigkeit<br />
nicht mehr gegeben und es besteht die Möglichkeit e<strong>in</strong>er Kollision. Um die E<strong>in</strong>deutigkeit<br />
der TAGs zu wahren, werden Namensräume (Namespaces) benutzt. Somit wird es<br />
für die Verarbeitung immer möglich die zugeordneten TAGs und Attribute e<strong>in</strong>deutig zu<br />
erfassen und auszuwerten.<br />
Der für ITP gewählte Präfix des Namensraum ist itp. Innerhalb der Schemadef<strong>in</strong>ition<br />
wird noch ds für XML Digital Signature und xenc für XML Encryption verwendet. Das<br />
Präfix xsd steht für XML Schema Def<strong>in</strong>ition. In dieser s<strong>in</strong>d die Grundlegenden Datentypen<br />
spezifiziert.<br />
Mehr Informationen zu XML-Namespaces s<strong>in</strong>d unter [9] zu bekommen.<br />
29
6. Intra <strong>Trustcenter</strong> Protocol<br />
Feste Reihenfolge<br />
E<strong>in</strong>e festgelegte Reihenfolge der e<strong>in</strong>zelnen TAGs sorgt für e<strong>in</strong>e strukturierte Leseweise<br />
der Nachricht. Da e<strong>in</strong>e Forderung die Menschenlesbarkeit ist ergibt sich durch e<strong>in</strong>e klare<br />
Reihenfolge, gerade bei vielen optionalen Feldern, e<strong>in</strong> leichteres Auff<strong>in</strong>den der Felder und<br />
damit e<strong>in</strong>e vere<strong>in</strong>fachte Überprüfung. Im Zuge dieser Festlegung wurden auch die Profile<br />
und die Elemente aufgegeben. Es ist nicht mehr nötig e<strong>in</strong> Profil zu<br />
haben. Die dort getroffene Unterscheidung wird jetzt direkt mit der entsprechenden<br />
vorgenommen. Die Notwendigkeit des Elementes ist auch nicht mehr<br />
nötig, da <strong>in</strong>nerhalb der e<strong>in</strong>zelnen Elemente per Index e<strong>in</strong>e Möglichkeit geschaffen wurde,<br />
mehrere Elemente dieser Art auf e<strong>in</strong>mal, ohne e<strong>in</strong>en Verlust der E<strong>in</strong>deutigkeit, zu erfassen.<br />
6.2.2. Informationssicherheit<br />
ITP Nachrichten können auch vertrauliche Informationen enthalten. Dabei kann es sich um<br />
Passwörter oder private Schlüssel<strong>in</strong>formationen handeln. Um diese zu schützen wird auf<br />
XML Digital Signature und XML Encryption zurückgegriffen. Hierbei können beliebige<br />
kryptographische Algorithmen verwendet werden, da diese per Referenz <strong>in</strong> beide Verfahren<br />
<strong>in</strong>tegriert werden.<br />
Signaturen<br />
Jede Nachricht die verschickt wird, ist digital signiert. Für die Übermittlung dieser Signatur<br />
wird XML Digital Signature verwendet. Dieser Standard erfüllt alle notwendigen<br />
Bed<strong>in</strong>gungen um e<strong>in</strong>e berechnete Signatur <strong>in</strong> e<strong>in</strong>e Nachricht zu <strong>in</strong>tegrieren. Jede Nachricht<br />
wird nur noch im Ganzen signiert, von der Signatur nur e<strong>in</strong>es Teilbereichs wurde<br />
Abstand genommen, da dies zusätzlichen Aufwand bedeutet. Die frühere re<strong>in</strong>e Signatur<br />
e<strong>in</strong>er ist nicht s<strong>in</strong>nvoll, da wichtige Informationen aus dem Kopfteil fehlen.<br />
Passwörter<br />
Alle <strong>in</strong> ITP versendeten Passwörter s<strong>in</strong>d vom Typ . Hierbei handelt<br />
es sich um e<strong>in</strong>e gekapselte Form von XML Digital Signature. Damit Passwörter <strong>in</strong>nerhalb<br />
der Nachricht e<strong>in</strong>deutig ihrem Aufgabenbereich zugeordnet werden können, ist e<strong>in</strong> Attribut<br />
use=" " h<strong>in</strong>zugekommen. Mit diesem Attribut wird das gehashte Passwort folgenden<br />
Aufgaben zugeordnet: activation, revocation, recovery und transport.<br />
Vertrauliche Informationen<br />
S<strong>in</strong>d private Schlüssel oder der private Teil e<strong>in</strong>es Zertifikats zu übermitteln, so wird das<br />
entsprechende Element mit Hilfe von XML Encryption verschlüsselt. ITP selbst bietet<br />
ke<strong>in</strong>e Verschlüsselung an, sondern greift auf diesen bewährten und seit langem etablierten<br />
Standard zurück.<br />
30
6.2.3. Nachrichten<br />
6.2. Intra <strong>Trustcenter</strong> Protocol Version 1.2<br />
E<strong>in</strong>e ITP Nachricht ist <strong>in</strong> drei Bereiche aufgeteilt. Den Anfang und das<br />
Ende jeder Nachricht bilden globale Teile. Zwischen diesen globalen und für alle Nachrichtenarten<br />
gleichen Kopf- und Fussbereichen steht die Application. Mit der ITP Version 1.2<br />
werden die <strong>in</strong> Tabelle 6.3 aufgelisteten Nachrichtenarten unterstützt. Im Folgenden wird<br />
auf die e<strong>in</strong>zelnen Bereiche e<strong>in</strong>gegangen.<br />
Globaler Kopfteil<br />
Im Kopfteil e<strong>in</strong>er jeden Nachricht wird mit e<strong>in</strong>em Attribut Id e<strong>in</strong> e<strong>in</strong>deutiger Identifikator<br />
zugeordnet. Dieser Identifikator muss jede Nachricht besitzen. Sie behält ihre Id solange<br />
die Nachricht existiert. Damit ist e<strong>in</strong>e Grundlage für e<strong>in</strong>e sichere und gute Protokollierung<br />
und somit Nachverfolgbarkeit der Nachricht im TC gewährleistet. E<strong>in</strong> weiteres Attribut<br />
mit der Bezeichnung Version dient der besseren Handhabung der e<strong>in</strong>zelnen Nachrichten.<br />
Der Wert dieses Attributs wurde im Schema auf den Standardwert "1.2" gesetzt.<br />
Weiterh<strong>in</strong> gibt es drei Elemente die <strong>in</strong> jeder Nachricht enthalten se<strong>in</strong> müssen: ,<br />
, . Die Information wer e<strong>in</strong>e Nachricht abgeschickt hat und<br />
an wen sie gehen soll s<strong>in</strong>d ohne weiter Erklärung notwendig da es sich um e<strong>in</strong>en Nachrichtenaustausch<br />
handelt. Bei ITP 1.2 ist es möglich mehrere Empfänger e<strong>in</strong>er Nachricht zu<br />
haben. Somit ist senderseitig e<strong>in</strong>e Reduzierung des Datenvolumens möglich, da die selbe<br />
Information gleichzeitig an verschiedene Empfänger gehen kann. Die ist<br />
wichtig um notfalls e<strong>in</strong>en zeitlichen Verlauf von zue<strong>in</strong>andergehörenden Nachrichten darstellen<br />
zu können. Ebenso kann sie für die genau Protokollierung der e<strong>in</strong>zelnen Vorgänge<br />
herangezogen werden. Es ist jedoch zu beachten, dass e<strong>in</strong> zentrale Zeit für alle beteiligten<br />
System zur Verfügung steht.<br />
In manchen Bereichen kann es vorkommen, dass der Verfasser e<strong>in</strong>er Nachricht nicht der<br />
Versender selbst ist, sondern es sich hierbei um e<strong>in</strong>e andere Partei handeln kann. Damit<br />
dieses deutlich <strong>in</strong> der Nachricht mit übermittelt werden kann, gibt es das optionale Element<br />
.<br />
Die drei Elemente , und s<strong>in</strong>d <strong>in</strong> ihrer Struktur nicht<br />
vorgeschrieben und somit ist e<strong>in</strong>e freie Namensnennung (Doma<strong>in</strong>name, Emailadresse oder<br />
Dist<strong>in</strong>guished Names (DN)) möglich. E<strong>in</strong>e detaillierte Übersicht über alle Elemente wird<br />
<strong>in</strong> der Tabelle 6.1 gegeben.<br />
Feld Typ Datentyp req Beschreibung<br />
ID Attribute xsd:ID required E<strong>in</strong>deutiger Identifikator<br />
Version Attribute xsd:str<strong>in</strong>g optional Version des Protokolls<br />
Sender Element xsd:str<strong>in</strong>g required Absender der Nachricht<br />
Recipient Element xsd:str<strong>in</strong>g required Empfänger der Nachricht<br />
CreationTime Element xsd:dateTime required Zeitpunkt der Erstellung<br />
Creator Element xsd:str<strong>in</strong>g optional ”Verfasser” der Nachricht<br />
Tabelle 6.1.: Felder des Kopfteils<br />
31
6. Intra <strong>Trustcenter</strong> Protocol<br />
Globaler Fussteil<br />
Im Fussteil s<strong>in</strong>d die Signaturen e<strong>in</strong>er Nachricht enthalten. Diese s<strong>in</strong>d vom Datentyp Signature,<br />
welcher aus XML Digital Signature stammt. Die Signaturen e<strong>in</strong>er Nachricht können<br />
den Verlauf dieser Nachricht durch das System widerspiegeln, <strong>in</strong> dem immer die nächste<br />
angehängt wird. Somit ergibt sich e<strong>in</strong>e Historie der Signaturen.<br />
Zw<strong>in</strong>gend notwendig ist die erste Signatur, welche vom Absender der ursprünglichen Nachricht<br />
stammt. Ist e<strong>in</strong> Creator angeben, so sollte auch dessen Signatur teil der Nachricht<br />
werden. Der Überblick wird <strong>in</strong> Tabelle 6.2 gegeben.<br />
Feld Typ Datentyp req Beschreibung<br />
Signature Element ds:Signature required Signatur des Senders<br />
Signature Element ds:Signature optional weitere Signaturen der Nachricht<br />
Die Application<br />
Tabelle 6.2.: Felder des Fussteiles<br />
Den Hauptteil e<strong>in</strong>e ITP Nachricht bildet die Application. E<strong>in</strong>e Application enthält die e<strong>in</strong>zelnen<br />
Aufgabe, die <strong>in</strong> dieser Nachricht übermittelt wird. Jede Application enthält genau<br />
e<strong>in</strong>e Aufgabe die übermittelt werden muss. Es ist auch möglich mehrere Application-Blöcke<br />
<strong>in</strong> e<strong>in</strong>er ITP Nachricht zu haben. E<strong>in</strong>e Unterstützung für die Delegation der Aufgaben gibt<br />
es <strong>in</strong> der Weise, als das solche Blöcke direkt von e<strong>in</strong>er Nachricht <strong>in</strong> e<strong>in</strong>e neue Nachricht<br />
kopiert oder bewegt werden können.<br />
Die Kapselung der e<strong>in</strong>zelnen Aufgaben <strong>in</strong> e<strong>in</strong>zelne Blöcke ist s<strong>in</strong>nvoll, da somit bei e<strong>in</strong>em<br />
Datenaustausch zwischen den Komponenten mehrere verschiedene Aufgaben <strong>in</strong> e<strong>in</strong>er<br />
e<strong>in</strong>zigen Nachricht übermittelt werden können. E<strong>in</strong> Szenario hier für ergibt sich bei e<strong>in</strong>er<br />
Offl<strong>in</strong>e CA (Szenario 5.2.3). Hierbei kann für jede Anfrage e<strong>in</strong>e eigene Application erstellt<br />
werden und alle <strong>in</strong> e<strong>in</strong>er großen Message auf e<strong>in</strong>mal übermittelt werden.<br />
Tabelle 6.3 bietet e<strong>in</strong>en Überblick der <strong>in</strong> Version 1.2 vorgesehenen Nachrichten.<br />
Die <strong>in</strong> ITP Version 1.0 und 1.1 vorhandene Signatur e<strong>in</strong>er solchen Application ist nicht<br />
mehr vorhanden, da sich dies durch e<strong>in</strong>e Signatur der gesamten Nachricht ergibt und e<strong>in</strong>e<br />
unnötige Doppelsignierung damit entfällt. S<strong>in</strong>d Prozesse so kritisch, als das sie e<strong>in</strong>zeln<br />
signiert werden müssen, so s<strong>in</strong>d diese auch <strong>in</strong> e<strong>in</strong>zelnen Nachrichten zu versenden.<br />
Zertifikatsanfrage - CertificateRequest<br />
Diese Nachricht wird zur Anfrage nach e<strong>in</strong>em Zertifikat genutzt. Es können gänzlich neue<br />
Zertifikate erstellt werden, vorhanden Schlüssel zertifiziert werden oder Zertifikate verlängert<br />
werden.<br />
Für die gänzliche Neuausstellung e<strong>in</strong>es Zertifikats ist nur das Pflichtfeld anzugeben.<br />
Alle weiteren Informationen werden durch das <strong>Trustcenter</strong> ausgefüllt. Hierbei<br />
könnte auf e<strong>in</strong>e vorhandene Vorlage des <strong>Trustcenter</strong>s zurückgegriffen werden. Die notwendigen<br />
Passwörter, welche verwendet werden s<strong>in</strong>d durch e<strong>in</strong> Hashverfahren geschützt und<br />
32
6.2. Intra <strong>Trustcenter</strong> Protocol Version 1.2<br />
Anfrage Beschreibung<br />
CertificateRequest Anfrage für die Ausstellung oder Verlängerung e<strong>in</strong>es Zertifikats<br />
Activation Aktivierung e<strong>in</strong>es erhaltenen Zertifikats<br />
Revocation Meldung und Übermittlung von Revokationen<br />
Recovery Anfrage auf die Wiederherstellung e<strong>in</strong>es Zertifikats<br />
CertificateTransport Übermittlung von e<strong>in</strong>em oder mehreren Zertifikaten<br />
KeyTransport Übermittlung von e<strong>in</strong>em oder mehreren (öffentlichen und/oder privaten) Schlüsseln<br />
Information Aktueller Status und weiter Informationen über e<strong>in</strong> oder mehrere Zertifikate<br />
Notify E<strong>in</strong>facher Nachrichtenaustausch zwischen den Knoten<br />
Tabelle 6.3.: ITP Version 1.2 Nachrichtentypen<br />
somit s<strong>in</strong>d ke<strong>in</strong>e weiteren vertraulichen Informationen enthalten. Damit bietet die Signatur<br />
am Ende der Nachricht den notwendigen Schutz, um e<strong>in</strong>e Veränderung der Nachricht<br />
erkennen zu können.<br />
Für die re<strong>in</strong>e Signatur muss der öffentliche Schlüssel mit übertragen werden. Hierbei wird<br />
<strong>in</strong> der Application CertificateRequest mit Hilfe der auf den Schlüssel verwiesen.<br />
Dieser kann entweder dem System schon vorliegen oder durch e<strong>in</strong>e weitere Application vom<br />
Typ KeyTransport (siehe weiter unten) <strong>in</strong>nerhalb dieser Nachricht übermittelt werden. Das<br />
<strong>Trustcenter</strong> kann dann den notwendigen Proof-of-Possession (PoP) Mechanismus über das<br />
Aktivierungspasswort realisieren.<br />
Muss e<strong>in</strong> Zertifikat verlängert werden, so wird <strong>in</strong> der Nachricht mit dem Element <br />
auf den entsprechenden Schlüssel verwiesen. Dieser kann gegebenenfalls auch <strong>in</strong> der Application<br />
KeyTransport direkt mitgeliefert werden. Ob hier e<strong>in</strong>e Mechanismus nach PoP<br />
notwendig ist, muss die Policy des entsprechenden <strong>Trustcenter</strong>s selbst regeln. Technisch<br />
notwendig ist dies nicht, da der Schlüssel bereits ausgeliefert wurde und <strong>in</strong> Verwendung ist.<br />
Somit hat der Benutzer bereits e<strong>in</strong>mal nachweisen müssen, dass er im Besitz des privaten<br />
Schlüssels ist.<br />
Wenn e<strong>in</strong> <strong>Trustcenter</strong> nach dem Signaturgesetz arbeitet, gibt es für die Ausstellung e<strong>in</strong>es<br />
Zertifikats Auflagen. Diese notwendigen Inhalte s<strong>in</strong>d <strong>in</strong> SigG § 7 (E.1) festgelegt. ITP<br />
selbst nimmt alle diese Daten als optionale Felder auf. Somit kann ITP auch signaturgesetzkonforme<br />
Zertifikate verarbeiten.<br />
Bei e<strong>in</strong>er CertificateRequest-Nachricht gibt es nur das Element, dass verwendet<br />
werden muss. In diesem Feld muss der Bezeichner für den zukünftigen Inhaber des Zertifikats<br />
stehen. Dieser Bezeichner ist nicht weiter <strong>in</strong> se<strong>in</strong>er Art e<strong>in</strong>geschränkt und somit frei<br />
wählbar und könnte e<strong>in</strong> DN se<strong>in</strong>. Alle weiteren Felder s<strong>in</strong>d optional und können je nach<br />
Gegebenheit verwendet werden. Die sonst zur Identifikation e<strong>in</strong>es Zertifikats dienenden Felder<br />
und s<strong>in</strong>d optional, sie können bei e<strong>in</strong>er Verlängerung der<br />
Zertifikats herangezogen werden. Das Element nimmt den<br />
alternativen Namen des Inhabers des Zertifikates auf. Hier wird oft auf e<strong>in</strong>e Emailadresse<br />
oder den Doma<strong>in</strong>namen zurückgegriffen. Mit den drei Feldern , und<br />
ist es möglich bei der Erstellung E<strong>in</strong>fluss auf den Schlüssel und dessen<br />
Verwendungszwecks zu nehmen. E<strong>in</strong>e Beispiel e<strong>in</strong>er solchen Nachricht f<strong>in</strong>det sich <strong>in</strong> A.4<br />
und die Übersicht aller Elemente <strong>in</strong> Tabelle 6.4.<br />
33
6. Intra <strong>Trustcenter</strong> Protocol<br />
Feld Typ Datentyp req Beschreibung<br />
Subject Element xsd:str<strong>in</strong>g required Identifikator des Zertifikats<br />
SubjectAlternativeName Element xsd:str<strong>in</strong>g optional zum Beispiel e<strong>in</strong>e Emailadresse<br />
Password[Index] Element itp:PasswordType optional Passwörter<br />
Issuer Element xsd:str<strong>in</strong>g optional Aussteller des Zertifikats oder<br />
bei e<strong>in</strong>er Verlängerung zur<br />
Identifizierung des alten Zertifikats<br />
SerialNumber Element xsd:str<strong>in</strong>g optional Seriennummer, bei e<strong>in</strong>er Verlängerung<br />
zur Identifizierung<br />
des alten Zertifikats<br />
KeyId[Index] Element xsd:str<strong>in</strong>g optional Für die gezielte Wahl e<strong>in</strong>e mitgelieferten<br />
oder bereits vorhanden<br />
Schlüssels<br />
KeyUsage[Index] Element itp:KeyUsageType optional Angelehnt an RFC 3280, Vorgaben<br />
für die Verwendung des<br />
Schlüssels<br />
KeyAlgorithmen[Index] Element xsd:str<strong>in</strong>g optional Für die Vorgabe e<strong>in</strong>es Algorithmus<br />
Tabelle 6.4.: Felder der CertificateRequest-Nachricht<br />
Aktivierungsnachrichten - Activation<br />
Um die im Signaturgesetz (E.3) gestellten und im Abschnitt 5.1.4 gezeigten Anforderungen<br />
zu erfüllen, muss <strong>in</strong>nerhalb e<strong>in</strong>er ITP-Nachricht e<strong>in</strong> e<strong>in</strong>deutiger Identifikator des Zertifikats<br />
vorhanden se<strong>in</strong>. Ebenso ist e<strong>in</strong>e optionale Meldung über den Status des Zertifikats s<strong>in</strong>nvoll.<br />
Notwendige TAGs für diese Nachricht s<strong>in</strong>d und . Diese zwei<br />
Felder identifizieren e<strong>in</strong> Zertifikat <strong>in</strong>nerhalb e<strong>in</strong>er PKI e<strong>in</strong>deutig. Die gesamte Nachricht<br />
sollte dann auch von e<strong>in</strong>er Signatur des Eigentümers umschlossen se<strong>in</strong>. E<strong>in</strong> Beispiel für e<strong>in</strong>e<br />
solche Nachricht gibt Quelltext A.6. In Tabelle 6.5 wird e<strong>in</strong>e Übersicht über die Elemente<br />
e<strong>in</strong>er Aktivierungsnachricht gegeben.<br />
Feld Typ Datentyp req Beschreibung<br />
Issuer[Index] Element xsd:str<strong>in</strong>g required Aussteller des Zertifikats<br />
SerialNumber[Index] Element xsd:str<strong>in</strong>g required Seriennummer<br />
Password[Index] Element itp:PasswordType optional Aktivierungspasswort<br />
PublicAvailable[Index] Element xsd:boolean optional Zertifikat soll öffentlich verfügbar<br />
se<strong>in</strong><br />
Activate[Index] Element xsd:boolean optional Zertifikat soll aktiviert werden<br />
CertHash[Index] Element xsd:base64b<strong>in</strong>ary optional Hashwert über das Zertifikat<br />
(Kompatibilität zu CMP)<br />
CertReqId[Index] Element xsd:str<strong>in</strong>g optional Identifikator für die Anfrage<br />
(Kompatibilität zu CMP)<br />
Tabelle 6.5.: Felder der Activation-Nachricht<br />
Bei e<strong>in</strong>er Aktivierung sollte jedoch auch die Möglichkeit der Überprüfung des Eigentümers<br />
durch die CA erreicht werden. Hierzu wird das optionales TAG<br />
34
6.2. Intra <strong>Trustcenter</strong> Protocol Version 1.2<br />
h<strong>in</strong>zugefügt. Hier kann e<strong>in</strong> von der CA erstelltes Passwort <strong>in</strong> die Antwort e<strong>in</strong>fließen. Dieses<br />
Passwortfeld muss während des Transportes geschützt se<strong>in</strong>.<br />
Um e<strong>in</strong>e Ablehung des Zertifkates zu ermöglichen wird das optionale TAG <br />
verwendet. Durch diesen Boolean-Wert kann dem <strong>Trustcenter</strong> mitgeteilt werden, dass der<br />
Benutzer das Zertifikat aktiviert haben möchte oder eben nicht.<br />
E<strong>in</strong>e weiterer Punkt ist das deutsche Signaturgesetz Paragraph 7 (E.1). Zu beachten ist<br />
die Möglichkeit der Steuerung über die Publizierung des Zertifikats. Diese Forderung wird<br />
mit dem optionalen TAG erfüllt. Hier kann e<strong>in</strong>gestellt werden, ob e<strong>in</strong><br />
Zertifikat öffentlich publiziert werden soll oder nicht.<br />
Die zwei Elemente und s<strong>in</strong>d zur Kompatibilität mit CMP h<strong>in</strong>zugekommen.<br />
In diesen wird e<strong>in</strong> Hashwert über das Zertifikat und der Anfrage Identifikator<br />
abgelegt. Diese Werte direkt <strong>in</strong> diese Elemente erfasst werden.<br />
E<strong>in</strong>e vollständige ITP-Aktivierungsnachricht f<strong>in</strong>det sich im Quelltext A.5, dieser zeigt alle<br />
Möglichkeiten von Parametern und Optionen.<br />
Revokationsnachricht - Revocation<br />
Um e<strong>in</strong> erstelltes und ausgeliefertes Zertifikat zurückzuziehen, muss dieses revoziert werden.<br />
Hierfür bietet ITP e<strong>in</strong>en Nachrichtentyp an, der die Information auf allen Ebenen<br />
übermitteln kann. Dieser Vorgang ist vom verwendeten Revokationsmechanismus unabhängig.<br />
Sowohl e<strong>in</strong>e Revokation<strong>in</strong>formationsverwaltung mittels e<strong>in</strong>es Certificate Revokation<br />
List oder über Onl<strong>in</strong>e Certificate Status Protocol wird unterstützt. Die Nachricht selbst<br />
ist so generisch erzeugt, dass sie ke<strong>in</strong>erlei Festlegung oder Beschränkung auf e<strong>in</strong>en dieser<br />
Mechanismen vorsieht.<br />
Feld Typ Datentyp req Beschreibung<br />
Issuer[<strong>in</strong>dex] Element xsd:str<strong>in</strong>g required Aussteller des Zertifikats<br />
SerialNumber[Index] Element xsd:str<strong>in</strong>g required Seriennummer<br />
Password[Index] Element itp:PasswordType optional Revokationspasswort<br />
Reason[Index] Element xsd:str<strong>in</strong>g optional Grund der Revokation<br />
Tabelle 6.6.: Felder der Revocation-Nachricht<br />
Für e<strong>in</strong>e Revokation ist e<strong>in</strong>e e<strong>in</strong>deutige Identifizierung des Zertifikats notwendig. Dazu wird<br />
der Aussteller und die Seriennummer des Zertifikats verwendet. Die <strong>in</strong>nerhalb e<strong>in</strong>er CA<br />
e<strong>in</strong>deutige Seriennummer zusammen mit der Aussteller CA ist e<strong>in</strong> e<strong>in</strong>deutige Identifikator<br />
e<strong>in</strong>es Zertifikats. Werden andere Mechanismen verwendet so ist dieses Feld s<strong>in</strong>ngemäß zu<br />
verwenden. Weiterh<strong>in</strong> kann der Grund der Revokation mit angegeben werden. E<strong>in</strong> Absicherung<br />
dieses Vorganges erfolgt über das Revokationspasswort. Dieses Passwort, welches<br />
bei der Erstellung der Zertifikats festgelegt wurde, muss vom Benutzer e<strong>in</strong>gegeben werden<br />
und wird von der CA überprüft. Ist es korrekt, so kann die Nachricht weitergeleitet werden<br />
und die Revokation vollzogen werden.<br />
E<strong>in</strong> Beispiel für e<strong>in</strong>e solche Nachricht f<strong>in</strong>de sich <strong>in</strong> Anhang A.10 und e<strong>in</strong>en kurzen Überblick<br />
über die Elemente f<strong>in</strong>det sich <strong>in</strong> Tabelle 6.6.<br />
35
6. Intra <strong>Trustcenter</strong> Protocol<br />
Wiederherstellungsnachricht - Recovery<br />
Die Wiederherstellung e<strong>in</strong>es Schlüssels ist e<strong>in</strong> kritischer Vorgang. Daher kann hier aus<br />
sicherheitstechnischen Gründen das 4-Augen-Pr<strong>in</strong>zip gefordert se<strong>in</strong>. Dies wird bei e<strong>in</strong>er<br />
ITP-Nachricht durch das Vorhanden se<strong>in</strong> von m<strong>in</strong>destens zwei gültigen Signaturen an<br />
e<strong>in</strong>er Recovery-Nachricht realisiert. Somit kann die Wiederherstellung e<strong>in</strong>es Zertifikats<br />
angestoßen werden. E<strong>in</strong> Beispiel für e<strong>in</strong>e solche Nachricht f<strong>in</strong>det sich <strong>in</strong> Anhang A.9, die<br />
Elemente s<strong>in</strong>d <strong>in</strong> Tabelle 6.7 aufgeführt. Für die Wiederherstellung kann e<strong>in</strong> Passwort<br />
vergeben worden se<strong>in</strong>, so dass dieses bei der Beauftragung durch das Element mit übermittelt werden kann. Für die e<strong>in</strong>deutige Identifizierung e<strong>in</strong>es<br />
Schlüssel ist das notwendige Element vorhanden.<br />
Es ist auch die Wiederherstellung von mehreren Schlüsseln möglich, da über das Attribut<br />
Index die e<strong>in</strong>deutige Zuordnung der Daten gewahrt bleibt.<br />
Feld Typ Datentyp req Beschreibung<br />
KeyId[<strong>in</strong>dex] Element xsd:str<strong>in</strong>g required Identifikator des Wiederherzustellenden<br />
Schlüssels<br />
Password[Index] Element itp:PasswordType optional Recoverpasswort<br />
Tabelle 6.7.: Felder der Recovery-Nachricht<br />
Zertifikatsübermittlung - CertificateTransport<br />
Für e<strong>in</strong>en Transport von Zertifikaten ist die Application CertificateTransport vorgesehen.<br />
Die Elemente <strong>in</strong> dieser Nachricht teilen sich, wie man <strong>in</strong> Tabelle 6.8 sehen kann, <strong>in</strong> zwei<br />
notwendige und zwei optionale Felder auf. Die notwendigen Felder und <br />
dienen zur e<strong>in</strong>deutigen Identifizierung der transportierten Daten. In den<br />
zwei optionalen Feldern und werden die eigentlichen<br />
Daten enthalten. Das öffentliche Zertifikat muss nicht weiter verborgen werden und<br />
kann somit <strong>in</strong> e<strong>in</strong>em e<strong>in</strong>fachen xsd:base64B<strong>in</strong>ary Feld transportiert werden. Für den zum<br />
Zertifikat passenden privaten Schlüssel ist e<strong>in</strong> verschlüsselter Bereich vorgesehen. Auch bei<br />
dieser Nachricht ist es über e<strong>in</strong>en Index möglich mehrer Zertifikate <strong>in</strong> e<strong>in</strong>er Application<br />
zuverlässig zu transportieren.<br />
Feld Typ Datentyp req Beschreibung<br />
Issuer[Index] Element xsd:str<strong>in</strong>g required Aussteller des Zertifikats<br />
SerialNumber[Index] Element xsd:str<strong>in</strong>g required Seriennummer<br />
PublicCertificate[Index] Element xsd:base64B<strong>in</strong>ary optional Öffentliches Zertifikat<br />
PrivateKey[Index] Element xenc:EncryptedType optional Privater Schlüssel<br />
36<br />
Tabelle 6.8.: Felder der CertificateTransport-Nachricht
Schlüsselübermittlung - KeyTransport<br />
6.2. Intra <strong>Trustcenter</strong> Protocol Version 1.2<br />
Für die Übertragung von re<strong>in</strong>en Schlüsseln wird die Application KeyTransport verwendet.<br />
Der b<strong>in</strong>ärcodierte Schlüssel wird hierbei über se<strong>in</strong>e e<strong>in</strong>deutige zugeordnet.<br />
Für den öffentlichen Teil wird, wie man <strong>in</strong> Tabelle 6.9 schon erahnen kann, das Element<br />
mit dem Datentyp xsd:base64B<strong>in</strong>ary benutzt. Der zu schützende private<br />
Schlüssel wird <strong>in</strong> e<strong>in</strong>em verschlüsselten Feld übermittelt. Für die Übertragung<br />
von mehr als e<strong>in</strong>em Schlüsselpaar ist jedem Feld das Attribut Index zugewiesen um<br />
somit den e<strong>in</strong>deutigen Identifikator des Schlüssels mit den b<strong>in</strong>ären Schlüsseldaten zuverlässig<br />
zu verknüpfen. E<strong>in</strong> Beispiel für e<strong>in</strong>e solche Nachricht f<strong>in</strong>det sich <strong>in</strong> A.8.<br />
Feld Typ Datentyp req Beschreibung<br />
KeyId[Index] Element xsd:str<strong>in</strong>g required E<strong>in</strong>deutiger Schlüsselidentifikator<br />
PublicKey[Index] Element xsd:base64B<strong>in</strong>ary optional Öffentlicher Schlüssel<br />
SecretKey[Index] Element xenc:EncryptedType optional Privater Schlüssel<br />
Informationsnachricht - Information<br />
Tabelle 6.9.: Felder der KeyTransport-Nachricht<br />
Für die Übermittlung von Status<strong>in</strong>formationen e<strong>in</strong>es Zertifikates ist die Informationsnachricht<br />
vorgesehen. Sie enthält, wie <strong>in</strong> Tabelle 6.10 gezeigt, neben den Elementen <br />
und für die e<strong>in</strong>deutige Zuordnung die optionalen Elemente und<br />
. Mit kann der aktuelle Status e<strong>in</strong>e Zertifikats übermittelt werden.<br />
ermöglicht e<strong>in</strong>en weiteren Informationsaustausch. Über das Attribut Index ist<br />
es bei dieser Nachricht auch möglich mehrere Zertifikate gleichzeitig zu verarbeiten.<br />
Feld Typ Datentyp req Beschreibung<br />
Issuer[<strong>in</strong>dex] Element xsd:str<strong>in</strong>g required Aussteller des Zertifikats<br />
SerialNumber[Index] Element xsd:str<strong>in</strong>g required Seriennummer<br />
Status[Index] Element xsd:str<strong>in</strong>g optional Aktueller Status über e<strong>in</strong> Zertifikat<br />
KeyInfo[Index] Element ds:KeyInfoType optional Weitere Informationen<br />
Allgeme<strong>in</strong>e Nachricht - Notify<br />
Tabelle 6.10.: Felder der Information-Nachricht<br />
Die Notify-Nachricht ist für alle möglichen Informationsaustausche zwischen den Komponenten<br />
vorgesehen. Ihr Inhalt ist, wie Tabelle 6.11 bereits aufgeschlüsselt, dreigeteilt.<br />
Somit ist die Übertragung von re<strong>in</strong>em, und oder e<strong>in</strong>e<br />
Komb<strong>in</strong>ation dieser Daten möglich. Durch die Signatur, welche der Fussteil e<strong>in</strong>er Nachricht<br />
liefert, ist es möglich sicher Daten zwischen den Komponenten auszutauschen. Diese<br />
Nachricht bildet somit e<strong>in</strong>en universellen Conta<strong>in</strong>er für alle sonstigen Nachrichten. Jedoch<br />
muss beachtet werden, dass diese Nachricht ke<strong>in</strong>e spezifischen Informationen bezüglich ihrer<br />
enthaltenen Daten liefern kann und somit e<strong>in</strong>e Protokollierung nur schwer möglich ist.<br />
37
6. Intra <strong>Trustcenter</strong> Protocol<br />
Um e<strong>in</strong>er Protokollierung entgegen zu kommen ist das Element e<strong>in</strong> notwendiges<br />
Feld. Bei der Übertragung von re<strong>in</strong>en B<strong>in</strong>ärdaten kann <strong>in</strong> diesem Element e<strong>in</strong>e H<strong>in</strong>weis<br />
auf die enthaltenen Daten gegeben werden. E<strong>in</strong> Zuordnung erfolgt hier über e<strong>in</strong>e Attribut<br />
namens Index, was die Übertragung von mehreren Sequenzen <strong>in</strong>nerhalb e<strong>in</strong>es Application<br />
zuverlässig und weiterh<strong>in</strong> e<strong>in</strong>deutig ermöglicht.<br />
Das Attribut Error vom Datentyp xsd:boolean ist für die Markierung e<strong>in</strong>es Fehlernachricht<br />
gedacht. Somit können diese zuverlässig und schnell erkannt werden. Die Fehlermeldung<br />
selbst ist dann im Element enthalten und es ist möglich B<strong>in</strong>ärdaten, die<br />
zum Beheben des Fehler notwendig se<strong>in</strong> könnten mit zu übertragen. Über den Index ist<br />
auch das Übermitteln von mehreren gleichzeitg auftretenden Fehlern möglich.<br />
Der Bezeichner Notify ist bewusst für diese Nachricht gewählt, um die Unterordnung<br />
dieser Nachricht gegenüber anderen klar darzustellen und die Häufigkeit der Verwendung<br />
zu reduzieren. Diese Nachricht soll nicht als Ersatz für bereits vorhandene und spezifischer<br />
Nachrichten <strong>in</strong> ITP dienen, ist aber der bereitgestellte Mechanismus für die Übermittlung<br />
von Fehlermeldungen.<br />
Feld Typ Datentyp req Beschreibung<br />
Text[Index] Element xsd:str<strong>in</strong>g required E<strong>in</strong>fache Text<strong>in</strong>formationen<br />
B<strong>in</strong>aryData[Index] Element xsd:base64B<strong>in</strong>ary optional B<strong>in</strong>är Daten<br />
SecretData[Index] Element xenc:EncryptedType optional Vertrauliche Daten<br />
Error Attribut xsd:boolean optional / False Markierung für e<strong>in</strong>e Fehlermeldung<br />
Tabelle 6.11.: Felder der Notify-Nachricht<br />
Die Notify-Nachricht wird wie im Szenario 5.2.3 beschrieben und bei der Erneuern des<br />
Vertrauensankers e<strong>in</strong>gesetzt. Da dieser Vorgang zu den kritischsten Vorgängen <strong>in</strong>nerhalb<br />
e<strong>in</strong>er PKI gehört, f<strong>in</strong>det <strong>in</strong> der Regel auch ke<strong>in</strong>e große <strong>Kommunikation</strong> <strong>in</strong>nerhalb des<br />
<strong>Trustcenter</strong>s statt. Mit e<strong>in</strong>er Notify-Nachricht besteht die Möglichkeit der CA das TC<br />
über den Ablauf se<strong>in</strong>es Zertifikats selbst zu <strong>in</strong>formieren und mit e<strong>in</strong>er weiteren Komponenten<br />
zu <strong>in</strong>formieren, die über e<strong>in</strong>e Update des Vertrauensankers <strong>in</strong>formiert se<strong>in</strong> müssen.<br />
E<strong>in</strong>e Übermittlung der neuen Zertifikate, kann durch e<strong>in</strong>e CertificateTransport-Nachricht<br />
erfolgen. Hier können <strong>in</strong> e<strong>in</strong>em Rutsch alle drei neuen Zertifikate sicher übermittelt werden.<br />
E<strong>in</strong>e weitere Überprüfung der Daten erfolgt <strong>in</strong> den Komponenten selbst und somit<br />
gibt es für das Managementprotokoll <strong>in</strong> diesem Punkt ke<strong>in</strong>e weitere Aufgaben.<br />
6.2.4. Analyse<br />
Die e<strong>in</strong>zelnen Szenarien aus Kapitel 5 s<strong>in</strong>d mit ITP 1.2 abgedeckt und können verarbeitet<br />
werden. Die Designziele aus 6.1 werden erfüllt.<br />
E<strong>in</strong>e Allgeme<strong>in</strong>gültigkeit und Unabhängigkeit der Nachrichten ist durch generische Namen<br />
und die Kapselung von e<strong>in</strong>zelnen Aufgaben vorhanden. Das Design ist jedoch an dem<br />
aktuell verwendeten PKI Konzept mit Zertifikaten nach X.509 angelehnt. E<strong>in</strong>e Skalierbarkeit<br />
ergibt sich durch die Zusendung von Paketen an beliebige Komponenten. Dadurch<br />
können Aufgaben e<strong>in</strong>fach verteilt werden. In Komb<strong>in</strong>ation mit der Erweiterung um be-<br />
38
6.2. Intra <strong>Trustcenter</strong> Protocol Version 1.2<br />
liebigen Komponenten ergeben sich für die Skalierung weitere Möglichkeiten. Wird e<strong>in</strong>e<br />
neue Komponente <strong>in</strong> die PKI e<strong>in</strong>geführt, so muss sie nur den zuständigen Stellen bekannt<br />
gemacht werden. Der Versand der Nachrichten bleibt weitestgehend unberührt. Die Forderung<br />
nach Automatisierbarkeit und Nachvollziehbarkeit ist erfüllt. Durch das Schema<br />
können Nachrichten konform erstellt werden und auf diese Überprüft werden. Die feste<br />
Vorgabe von Elementen, die zur Identifizierung der Nachrichten und Aufgaben vorhanden<br />
s<strong>in</strong>d, ist für die Protokollierung optimal, da hier nur die entsprechenden Stellen betrachtet<br />
beziehungsweise gespeichert werden müssen. Soweit es geht s<strong>in</strong>d die Nachrichten im<br />
Klartext formuliert und bieten damit e<strong>in</strong>en direkten E<strong>in</strong>blick auf deren Inhalt. Die Verarbeitung<br />
von Fehlermeldungen <strong>in</strong>nerhalb von ITP ermöglicht es, dass der selbe Mechanismus<br />
zum Speichern und Protokollieren der Prozesse verwendet werden kann um auch die<br />
Fehlermeldungen zu verarbeiten.<br />
Der größten Fortschritt wurde <strong>in</strong> der Sicherheit gemacht. So werden nur noch strukturierte<br />
überprüfbare Daten versendet. Jegliche vertrauliche Information muss verschlüsselt versendet<br />
werden. Verschlüsselte Bereiche gab es zuvor nicht. Auch auf die Signaturen wurden<br />
eher marg<strong>in</strong>al h<strong>in</strong>gewiesen. Mit Version 1.2 müssen sie verwendet werden und nach den<br />
Vorgaben vorhanden se<strong>in</strong>.<br />
39
6. Intra <strong>Trustcenter</strong> Protocol<br />
40
7. Fazit und Ausblick<br />
7.1. Fazit zu Version 1.2<br />
Mit dem Erreichen der Version 1.2 ist ITP e<strong>in</strong>e großen Schritt <strong>in</strong> Richtung des produktiven<br />
E<strong>in</strong>satzes vorangekommen. Das e<strong>in</strong>geführte Schema ermöglicht es Nachrichten nach<br />
festgelegten Regeln zu erstellen und zu verarbeitende Nachrichten auf Korrektheit zu überprüfen.<br />
Die <strong>in</strong> Kapitel 5 vorgestellten Szenarien werden alle durch ITP 1.2 abgedeckt.<br />
Mit der Schemadef<strong>in</strong>ition <strong>in</strong> Version 1.2 wird e<strong>in</strong>e Struktur vorgeben, die e<strong>in</strong>zuhalten ist.<br />
Die Gradwanderung zwischen Flexibilität, Generalität und Struktur galt es zu begehen.<br />
Daher s<strong>in</strong>d die Nachrichten so gestaltet worden, dass sie auf ke<strong>in</strong>e spezifische PKI festgelegt<br />
s<strong>in</strong>d. Auch ist das zu verarbeitende Zertifikat <strong>in</strong> se<strong>in</strong>er Art nicht festgelegt. E<strong>in</strong><br />
unvermeidbarer Anlehnung an den aktuell vorherrschenden Standard X.509 ist jedoch zu<br />
erkennen. Die Elemente <strong>in</strong> den Nachrichten wurden auch im H<strong>in</strong>blick auf das deutsche<br />
Signaturgesetz und die Signaturverordnung entwickelt. So das der E<strong>in</strong>satz im Bereich der<br />
qualifizierten Signaturen möglich ist.<br />
E<strong>in</strong> weiterer Fortschritt ist die E<strong>in</strong>führung der Möglichkeit Fehlermeldungen zwischen den<br />
Komponenten zu versenden. Die Notify-Nachricht bietet auch die Möglichkeit notwendige<br />
Informationen zur Analyse und Behebung mit zu senden. Es kann somit jede <strong>in</strong> der Anwendung<br />
auftretende Fehlermeldungen <strong>in</strong>klusive etwaiger Daten zur Behebung übermittelt<br />
werden.<br />
Gegenüber den Vorgängerversionen werden vertrauliche Daten <strong>in</strong> verschlüsselter Form<br />
übermittelt. Hierbei ist es unerheblich, ob es sich um Passwörter oder private Schlüssel<br />
handelt. Mit der Verwendung von XML Digital Signature und XML Encryption <strong>in</strong> diesem<br />
Bereich ist auf Standards zurückgegriffen worden, die bereits bekannt s<strong>in</strong>d und sich etabliert<br />
haben. E<strong>in</strong>e Neuentwicklung <strong>in</strong> diesem Bereich war nicht notwendig. Dies entlastet<br />
die Entwickler und sorgt für e<strong>in</strong>e höhere Kompatibilität zu anderen Anwendungen.<br />
Das entwickelte Schema sorgt für e<strong>in</strong>e Steigerung der Sicherheit und e<strong>in</strong>e Vere<strong>in</strong>fachung<br />
im E<strong>in</strong>satz von ITP, somit kann dieses Protokoll auch E<strong>in</strong>zug <strong>in</strong> produktiven Bereichen<br />
erhalten. E<strong>in</strong> Umdenken im Bereich der Kapselung von Aktionen ist erforderlich, da zum<br />
Beispiel <strong>in</strong> den Applications selbst ke<strong>in</strong>e Zertifikate mehr übermittelt werden, sondern<br />
diese <strong>in</strong> nur noch <strong>in</strong> der Application CertificateTransport übertragen werden. Die kann <strong>in</strong><br />
der selben Nachricht erfolgen.<br />
7.2. Ausblick auf Intra <strong>Trustcenter</strong> Protocol Version 2.0<br />
Die <strong>in</strong> Version 1.2 entworfene XML-Schema-Def<strong>in</strong>ition müsste dah<strong>in</strong>gehende ausgebaut<br />
werden, dass weitere Nachrichten und Methoden die im Bereich e<strong>in</strong>e PGP Infrastruktur<br />
vorliegen <strong>in</strong>tegriert werden. Das Protokoll ist so entwickelt, dass es e<strong>in</strong>e Peer-2-Peer Struk-<br />
41
7. Fazit und Ausblick<br />
tur unterstützt und <strong>in</strong> dieser verwendet werden kann. In diesem Bereich gibt es Probleme<br />
die noch <strong>in</strong> den Nachrichten und der Struktur nicht erfasst s<strong>in</strong>d. Es müsste Möglichkeiten<br />
geben um Zeitsyncronität, globale Zustände und die Zuständigkeiten von Aufträgen zu<br />
übermitteln und erfüllen.<br />
E<strong>in</strong>e Verfe<strong>in</strong>erung der rudimentären Fehlermeldungen ist denkbar. Hier gibt es noch Potential<br />
für e<strong>in</strong>e Verbesserung <strong>in</strong> Richtung def<strong>in</strong>ierter Fehlercodes und Meldungen. Zu bedenken<br />
ist die Forderung nach der Generalität. Die Meldungen dürfen nicht zu spezifisch werden<br />
und es sollte auch nicht für jede Eventualität <strong>in</strong> jedem Modell e<strong>in</strong> Meldung existieren, da<br />
dieses nur noch unübersichtlich wäre.<br />
Weiterh<strong>in</strong> ist die E<strong>in</strong>führung von e<strong>in</strong>em Attribut das kritische Nachrichten markiert denkbar.<br />
Bei dieser Markierung muss jedoch der komplette Prozess beachtet werden. Falls an<br />
e<strong>in</strong>er Stelle <strong>in</strong> e<strong>in</strong>em Prozessablauf e<strong>in</strong> Fehler <strong>in</strong> e<strong>in</strong>er kritischen Nachricht auftritt so muss<br />
der gesamte Prozess nochmals kontrolliert werden. Da diese Prozesse und der Prozessablauf<br />
jedoch für jede PKI-Anwendung <strong>in</strong>dividuell ist, können Korrekturmechanismen auch<br />
nur <strong>in</strong> der Anwendung selbst vorhanden se<strong>in</strong>. Eventuell ist es hier denkbar e<strong>in</strong>e Prozessbeschreibung<br />
<strong>in</strong> die ITP Nachrichten zu <strong>in</strong>tegrieren.<br />
Als Ziel soll ITP beim World Wide Web Consortium (W3C) im Herbst 2007 zur Standardisierung<br />
e<strong>in</strong>gereicht werden.<br />
42
A. ITP-Nachrichten Quelltexte<br />
1 <br />
2 Registration<br />
3 Certification<br />
4 <br />
5 <br />
6 <br />
7 value<br />
8 <br />
9 <br />
10 value<br />
11 <br />
12 <br />
13 <br />
14 <br />
15 <br />
16 <br />
17 <br />
18 <br />
19 <br />
20 <br />
21 <br />
22 <br />
23 <br />
24 <br />
Quelltext A.1: Standardnachricht von ITP Version 1.0<br />
1 <br />
2 [Cleartext | Sender of the Message]<br />
3 [Cleartext | Recipient of the Message]<br />
4 <br />
5 <br />
6 <br />
7 [Cleartext]<br />
8 <br />
9 <br />
10 [Cleartext]<br />
11 <br />
12 <br />
13 [Cleartext]<br />
14 <br />
15 <br />
16 [b<strong>in</strong>ary | Certificate for encryption]<br />
17 <br />
18 <br />
19 [b<strong>in</strong>ary | Certificate for sign<strong>in</strong>g]<br />
20 <br />
43
A. ITP-Nachrichten Quelltexte<br />
21 <br />
22 [b<strong>in</strong>ary | Certificate for ]<br />
23 <br />
24 <br />
25 [Cleartext | Password for Revocation]<br />
26 <br />
27 <br />
28 [true|false]<br />
29 <br />
30 <br />
31 <br />
32 [XML digital Signature | Signature about the profile]<br />
33 <br />
34 [possibility of more signatures]<br />
35 <br />
36 [possibility of more applications]<br />
37 <br />
38 [XML digital Signature | Signature about the message]<br />
39 <br />
40 [possibility of more signatures]<br />
41 <br />
Quelltext A.2: Syntax e<strong>in</strong>er ITP-Nachricht Version 1.0<br />
1 <br />
2 [Cleartext | Sender of the Message]<br />
3 [Cleartext | Recipient of the Message]<br />
4 <br />
5 <br />
6 <br />
7 <br />
8 [Cleartext]<br />
9 <br />
10 <br />
11 <br />
12 <br />
13 [Cleartext]<br />
14 <br />
15 <br />
16 <br />
17 <br />
18 [Cleartext]<br />
19 <br />
20 <br />
21 <br />
22 <br />
23 [b<strong>in</strong>ary | Certificate for encryption]<br />
24 <br />
25 <br />
26 <br />
27 <br />
28 [Cleartext | Password for Revocation]<br />
29 <br />
30 <br />
31 <br />
32 <br />
44
33 [true|false]<br />
34 <br />
35 <br />
36 <br />
37 <br />
38 [XML digital Signature | Signature about the profile]<br />
39 <br />
40 [possibility of more signatures]<br />
41 <br />
42 [possibility of more applications]<br />
43 <br />
44 [XML digital Signature | Signature about the message]<br />
45 <br />
46 [possibility of more signatures]<br />
47 <br />
Quelltext A.3: Syntax e<strong>in</strong>er ITP-Nachricht Version 1.1<br />
1 <br />
7 Sender0<br />
8 Recipient0<br />
9 2006-05-04T18:13:51.0Z<br />
10 <br />
11 <br />
12 <br />
13 CN=Jochen,OU=OrgUnitName,O=OrgName,C=DE<br />
14 <br />
15 <br />
16 becker@cdc.<strong>in</strong>formatik.tu-darmstadt.de<br />
17 <br />
18 <br />
19 CN=MyCA,OU=OrgUnitName,O=OrgName,C=DE<br />
20 <br />
21 <br />
22 1234<br />
23 <br />
24 <br />
25 a123<br />
26 <br />
27 <br />
28 RSA<br />
29 <br />
30 <br />
31 digitalSignature<br />
32 <br />
33 <br />
34 <br />
35 <br />
36 <br />
37 <br />
45
A. ITP-Nachrichten Quelltexte<br />
38 <br />
39 <br />
40 <br />
41 <br />
42 <br />
43 <br />
44 ZGVmYXVsdA==<br />
45 <br />
46 <br />
47 ZGVmYXVsdA==<br />
48 <br />
49 <br />
50 <br />
51 <br />
Quelltext A.4: Standard CertificateRequest-Nachricht<br />
1 <br />
7 Sender0<br />
8 Recipient0<br />
9 2006-05-04T18:13:51.0Z<br />
10<br />
11 <br />
12 <br />
13 <br />
14 CN=MyCA,OU=OrgUnitName,O=OrgName,C=DE<br />
15 <br />
16 <br />
17 10245<br />
18 <br />
19 <br />
20 <br />
21 60NvZvtdTB+7UnlLp/H24p7h4bs=<br />
22 <br />
23 <br />
24 <br />
25 60NvZvtdTB+7UnlLp/H24p7h4bs=<br />
26 <br />
27 <br />
28 true<br />
29 <br />
30 <br />
31 true<br />
32 <br />
33 <br />
34 ZGVmYXVsdA==<br />
35 <br />
36 <br />
46
37 IDABX1<br />
38 <br />
39 <br />
40 <br />
41 <br />
42 <br />
43 <br />
44 <br />
45 <br />
46 <br />
47 <br />
48 <br />
49 <br />
50 ZGVmYXVsdA==<br />
51 <br />
52 <br />
53 ZGVmYXVsdA==<br />
54 <br />
55 <br />
56 <br />
57 <br />
Quelltext A.5: Standard Activation-Nachricht<br />
1 <br />
7 Sender0<br />
8 Recipient0<br />
9 2006-05-04T18:13:51.0Z<br />
10<br />
11 <br />
12 <br />
13 <br />
14 CN=MyCA,OU=OrgUnitName,O=OrgName,C=DE<br />
15 <br />
16 <br />
17 10245<br />
18 <br />
19 <br />
20 <br />
21 60NvZvtdTB+7UnlLp/H24p7h4bs=<br />
22 <br />
23 <br />
24 <br />
25 60NvZvtdTB+7UnlLp/H24p7h4bs=<br />
26 <br />
27 <br />
28 true<br />
29 <br />
47
A. ITP-Nachrichten Quelltexte<br />
30 <br />
31 true<br />
32 <br />
33 <br />
34 ZGVmYXVsdA==<br />
35 <br />
36 <br />
37 IDABX1<br />
38 <br />
39 <br />
40 <br />
41 <br />
42 <br />
43 <br />
44 <br />
45 <br />
46 <br />
47 <br />
48 <br />
49 <br />
50 ZGVmYXVsdA==<br />
51 <br />
52 <br />
53 ZGVmYXVsdA==<br />
54 <br />
55 <br />
56 <br />
57 <br />
Quelltext A.6: Kürzeste Activation-Nachricht<br />
1 <br />
6 Sender0<br />
7 Recipient0<br />
8 2006-05-04T18:13:51.0Z<br />
9 <br />
10 <br />
11 CN=ABC<br />
12 121331<br />
13 <br />
14 <br />
15 256<br />
16 9lWu3Q==<br />
17 <br />
18 <br />
19 <br />
20 Jochen<br />
21
22 Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey"/><br />
23 <br />
24 <br />
26 <br />
27 qZk+NkcGgWq6PiVxeFDCbJzQ2J0=<br />
28 <br />
29 <br />
30 <br />
31 <br />
32 <br />
33 <br />
34 <br />
35 Zm9v<br />
36 <br />
37 <br />
38 <br />
39 <br />
40 cafebabe<br />
41 cafebabe<br />
42 <br />
43 <br />
44 <br />
45 <br />
46 <br />
47 <br />
48 cafebabe<br />
49 cafebabe<br />
50 <br />
51 <br />
52 <br />
53 <br />
54 <br />
55 <br />
56 <br />
57 <br />
58 <br />
59 <br />
60 <br />
61 <br />
62 <br />
63 <br />
64 This XML document<br />
tests the schema<br />
65 for ambigous content.<br />
66 <br />
67 <br />
68 <br />
69 <br />
70 <br />
71 <br />
49
A. ITP-Nachrichten Quelltexte<br />
72 <br />
73 <br />
74 <br />
75 <br />
76 <br />
77 ZGVmYXVsdA==<br />
78 <br />
79 <br />
80 ZGVmYXVsdA==<br />
81 <br />
82 <br />
83 <br />
Quelltext A.7: Standard CertificateTransport-Nachricht<br />
1 <br />
6 Sender0<br />
7 Recipient0<br />
8 2006-05-04T18:13:51.0Z<br />
9 <br />
10 <br />
11 CN=ABC<br />
12 121331<br />
13 <br />
14 <br />
15 256<br />
16 9lWu3Q==<br />
17 <br />
18 <br />
19 <br />
20 Jochen<br />
21 <br />
23 <br />
24 <br />
26 <br />
27 qZk+NkcGgWq6PiVxeFDCbJzQ2J0=<br />
28 <br />
29 <br />
30 <br />
31 <br />
32 <br />
33 <br />
34 <br />
50
35 Zm9v<br />
36 <br />
37 <br />
38 <br />
39 <br />
40 cafebabe<br />
41 cafebabe<br />
42 <br />
43 <br />
44 <br />
45 <br />
46 <br />
47 <br />
48 cafebabe<br />
49 cafebabe<br />
50 <br />
51 <br />
52 <br />
53 <br />
54 <br />
55 <br />
56 <br />
57 <br />
58 <br />
59 <br />
60 <br />
61 <br />
62 <br />
63 <br />
64 This XML document<br />
tests the schema<br />
65 for ambigous content.<br />
66 <br />
67 <br />
68 <br />
69 <br />
70 <br />
71 <br />
72 <br />
73 <br />
74 <br />
75 <br />
76 <br />
77 ZGVmYXVsdA==<br />
78 <br />
79 <br />
80 ZGVmYXVsdA==<br />
81 <br />
82 <br />
83 <br />
Quelltext A.8: Standard KeyTransport-Nachricht<br />
51
A. ITP-Nachrichten Quelltexte<br />
1 <br />
7 Sender<br />
8 Recipient<br />
9 2006-05-04T18:13:51.0Z<br />
10 <br />
11 <br />
12 <br />
13 CN=MyCA,OU=OrgUnitName,O=OrgName,C=DE<br />
14 <br />
15 <br />
16 0815<br />
17 <br />
18 <br />
19 <br />
20 <br />
21 <br />
22 <br />
23 <br />
24 <br />
25 <br />
26 <br />
27 <br />
28 <br />
29 ZGVmYXVsdA==<br />
30 <br />
31 <br />
32 ZGVmYXVsdA==<br />
33 <br />
34 <br />
35 <br />
36 <br />
37 <br />
38 <br />
39 <br />
40 <br />
41 <br />
42 <br />
43 AhbcZUHBNBba<br />
44 <br />
45 <br />
46 AhbcZUHBNBba<br />
47 <br />
52
48 <br />
Quelltext A.9: Standard Recovery-Nachricht<br />
1 <br />
7 Owner of all keys<br />
8 Trust Center<br />
9 2006-05-04T18:13:51.0Z<br />
10 <br />
11 <br />
12 CN=MyCA1,OU=OrgUnitName,O=OrgName,C=DE<br />
13 CN=MyCA2,OU=OrgUnitName,O=OrgName,C=DE<br />
14 CN=MyCA2,OU=OrgUnitName,O=OrgName,C=DE<br />
15 08151a<br />
16 08152a<br />
17 08152b<br />
18 <br />
19 <br />
20 <br />
21 <br />
22 ZGVmYXVsdA==<br />
23 <br />
24 <br />
25 Revoked<br />
26 Compromissed<br />
27 Root CA - compromissed<br />
28 <br />
29 <br />
30 <br />
31 <br />
32 <br />
33 <br />
34 <br />
35 <br />
36 <br />
37 <br />
38 <br />
39 ZGVmYXVsdA==<br />
40 <br />
41 <br />
42 ZGVmYXVsdA==<br />
43 <br />
44 Owner of all Revoked Key<br />
53
A. ITP-Nachrichten Quelltexte<br />
45 <br />
46 <br />
47 <br />
54<br />
Quelltext A.10: Standard Revocation-Nachricht
B. Intra <strong>Trustcenter</strong> Protocol Version 1.2<br />
Schema<br />
1 <br />
2 <br />
5<br />
6 <br />
12<br />
13 <br />
15 <br />
17<br />
18 <br />
19<br />
20 <br />
21 <br />
22 <br />
23<br />
24 <br />
25 <br />
26 <br />
27 <br />
28 <br />
29 <br />
30 <br />
31 <br />
33 <br />
34 <br />
35 <br />
36 <br />
37 <br />
38 <br />
39 <br />
41 <br />
42 <br />
55
B. Intra <strong>Trustcenter</strong> Protocol Version 1.2 Schema<br />
43 <br />
44 <br />
45 <br />
46 <br />
47 <br />
48 <br />
49<br />
50 <br />
52<br />
53 <br />
55 <br />
57<br />
58 <br />
59 <br />
60 <br />
62<br />
63 <br />
64 <br />
65 Standard Message Format<br />
66 <br />
67<br />
68 <br />
69 <br />
70 <br />
72 <br />
73 <br />
74 <br />
75 <br />
77 <br />
79 <br />
80 <br />
81 <br />
82 <br />
83 <br />
84<br />
85 <br />
86 <br />
87 <br />
89 <br />
91 <br />
93 <br />
95 <br />
97
98 maxOccurs="unbounded"><br />
99 <br />
100 <br />
101 <br />
102 <br />
104 <br />
105 <br />
106 <br />
107 <br />
108 <br />
110 <br />
111 <br />
112 <br />
113 <br />
115 <br />
116 <br />
117 <br />
118 <br />
119 <br />
121 <br />
122 <br />
123 <br />
124 <br />
126 <br />
127 <br />
128 <br />
129 <br />
130 <br />
131 <br />
132 <br />
133<br />
134 <br />
135 <br />
136 <br />
138 <br />
139 <br />
140 <br />
141 <br />
143 <br />
144 <br />
145 <br />
146 <br />
147 <br />
149 <br />
150 <br />
151 <br />
152
B. Intra <strong>Trustcenter</strong> Protocol Version 1.2 Schema<br />
153 type="xsd:nonNegativeInteger" use="required" /><br />
154 <br />
155 <br />
156 <br />
157 <br />
158 <br />
160 <br />
161 <br />
162 <br />
163 <br />
165 <br />
166 <br />
167 <br />
168 <br />
169 <br />
171 <br />
172 <br />
173 <br />
174 <br />
176 <br />
177 <br />
178 <br />
179 <br />
180 <br />
182 <br />
183 <br />
184 <br />
185 <br />
187 <br />
188 <br />
189 <br />
190 <br />
191 <br />
193 <br />
194 <br />
195 <br />
196 <br />
198 <br />
199 <br />
200 <br />
201 <br />
202 <br />
204 <br />
205 <br />
206 <br />
207
208 type="xsd:nonNegativeInteger" use="required" /><br />
209 <br />
210 <br />
211 <br />
212 <br />
213 <br />
214 <br />
215<br />
216 <br />
217 <br />
218 <br />
220 <br />
221 <br />
222 <br />
223 <br />
225 <br />
226 <br />
227 <br />
228 <br />
229 <br />
231 <br />
232 <br />
233 <br />
234 <br />
236 <br />
237 <br />
238 <br />
239 <br />
240 <br />
242 <br />
243 <br />
244 <br />
245 <br />
247 <br />
248 <br />
249 <br />
250 <br />
251 <br />
253 <br />
254 <br />
255 <br />
256 <br />
258 <br />
259 <br />
260 <br />
261 <br />
262 <br />
59
B. Intra <strong>Trustcenter</strong> Protocol Version 1.2 Schema<br />
263 <br />
264<br />
265 <br />
266 <br />
267 <br />
269 <br />
270 <br />
271 <br />
272 <br />
274 <br />
275 <br />
276 <br />
277 <br />
278 <br />
280 <br />
281 <br />
282 <br />
283 <br />
285 <br />
286 <br />
287 <br />
288 <br />
289 <br />
290 <br />
291<br />
292 <br />
293 <br />
294 <br />
296 <br />
297 <br />
298 <br />
299 <br />
301 <br />
302 <br />
303 <br />
304 <br />
305 <br />
307 <br />
308 <br />
309 <br />
310 <br />
312 <br />
313 <br />
314 <br />
315 <br />
316 <br />
60
318 <br />
319 <br />
320 <br />
321 <br />
323 <br />
324 <br />
325 <br />
326 <br />
327 <br />
328 <br />
329<br />
330 <br />
331 <br />
332 <br />
334 <br />
335 <br />
336 <br />
337 <br />
339 <br />
340 <br />
341 <br />
342 <br />
343 <br />
345 <br />
346 <br />
347 <br />
348 <br />
350 <br />
351 <br />
352 <br />
353 <br />
354 <br />
356 <br />
357 <br />
358 <br />
359 <br />
361 <br />
362 <br />
363 <br />
364 <br />
365 <br />
367 <br />
368 <br />
369 <br />
370 <br />
372 <br />
61
B. Intra <strong>Trustcenter</strong> Protocol Version 1.2 Schema<br />
373 <br />
374 <br />
375 <br />
376 <br />
377 <br />
378<br />
379 <br />
380 <br />
381 <br />
383 <br />
384 <br />
385 <br />
386 <br />
388 <br />
389 <br />
390 <br />
391 <br />
392 <br />
394 <br />
395 <br />
396 <br />
397 <br />
399 <br />
400 <br />
401 <br />
402 <br />
403 <br />
405 <br />
406 <br />
407 <br />
408 <br />
410 <br />
411 <br />
412 <br />
413 <br />
414 <br />
416 <br />
417 <br />
418 <br />
419 <br />
421 <br />
422 <br />
423 <br />
424 <br />
425 <br />
426 <br />
427<br />
62
428 <br />
429 <br />
430 <br />
432 <br />
433 <br />
434 <br />
435 <br />
437 <br />
438 <br />
439 <br />
440 <br />
441 <br />
443 <br />
444 <br />
445 <br />
446 <br />
448 <br />
449 <br />
450 <br />
451 <br />
452 <br />
454 <br />
455 <br />
456 <br />
457 <br />
459 <br />
460 <br />
461 <br />
462 <br />
463 <br />
464 <br />
466 <br />
467<br />
468 <br />
469 <br />
470 <br />
471 <br />
472 <br />
473 <br />
475 <br />
476<br />
477 <br />
478 <br />
479 <br />
480 <br />
481 <br />
482 <br />
63
B. Intra <strong>Trustcenter</strong> Protocol Version 1.2 Schema<br />
483 <br />
484 <br />
485 <br />
486 <br />
487 <br />
488 <br />
489 <br />
490 <br />
491 <br />
492 <br />
493 <br />
494 <br />
495 <br />
496 <br />
497 <br />
498 <br />
499<br />
500 <br />
64<br />
Quelltext B.1: ITP 1.2 Schema
C. ITP-Tag Referenz<br />
Dieser Abschnitt liefert e<strong>in</strong>e TAG-Referenz für ITP <strong>in</strong> Versionen 1.0 und 1.1. Für Version<br />
1.2 sei auf den Abschnitt 6.2 verwiesen. Innerhalb dieses Abschnittes werden die e<strong>in</strong>zelnen<br />
Elemente aufgeführt und <strong>in</strong> Abhängigkeit ihres E<strong>in</strong>satzes erklärt. Ebenso kann man für<br />
e<strong>in</strong>e Referenz <strong>in</strong> die Schema-Def<strong>in</strong>ition <strong>in</strong> Anhang B schauen.<br />
XML-Tag notwendig/optional<br />
notwendig<br />
notwendig<br />
notwendig<br />
optional mehrfach<br />
optional mehrfach<br />
optional<br />
optional<br />
optional<br />
optional<br />
optional<br />
optional<br />
optional<br />
optional mehrfach<br />
Tabelle C.1.: ITP Version 1.0 — XML-Tags im Überblick<br />
65
C. ITP-Tag Referenz<br />
66<br />
XML-Tag notwendig/optional Vorgänger<br />
notwendig <br />
notwendig<br />
notwendig<br />
optional mehrfach<br />
optional mehrfach<br />
optional<br />
optional<br />
optional <br />
optional <br />
optional <br />
optional<br />
optional<br />
optional<br />
optional mehrfach<br />
Tabelle C.2.: ITP Version 1.1 — XML-Tags im Überblick
D. Vergleich ITP mit CMP<br />
Am Beispiel der Aktivierungsnachricht wird e<strong>in</strong> Vergleich zwischen CMP und ITP Version<br />
1.2 vorgenommen. Die Aktivierungsnachricht wurde gewählt, da sie im Grunde e<strong>in</strong>e recht<br />
e<strong>in</strong>fache Nachricht ist, sich jedoch beliebig verkomplizieren lässt.<br />
Im Quelltext D.1 wird e<strong>in</strong>e auf die wesentlichen Bestandteile gekürzte Aktivierungsnachricht<br />
im ITP Format gezeigt. Der Quelltext D.2 gibt die Def<strong>in</strong>ition e<strong>in</strong>er CMP Aktivierungsnachricht<br />
wieder. Die Def<strong>in</strong>ition wurde an dieser Stelle gewählt, da sie übersichtlicher<br />
ist die ASN.1 Codierung e<strong>in</strong>er Nachricht. Die e<strong>in</strong>zelnen Elemente s<strong>in</strong>d ebenfalls auf die<br />
Wesentlichen reduziert.<br />
1 <br />
2 xsd:str<strong>in</strong>g <br />
3 xsd:str<strong>in</strong>g <br />
4 xsd:date <br />
5 <br />
6 <br />
7 <br />
8 xsd:str<strong>in</strong>g<br />
9 <br />
10 <br />
11 xsd:str<strong>in</strong>g<br />
12 <br />
13 <br />
14 xsd:boolean<br />
15 <br />
16 <br />
17 xsd:base64b<strong>in</strong>ary<br />
18 <br />
19 <br />
20 xsd:<strong>in</strong>teger<br />
21 <br />
22 <br />
23 <br />
24 <br />
25 [Signatur]<br />
26 <br />
27 <br />
Quelltext D.1: Aktivierungsnachricht von ITP<br />
1 PKIMessage ::= SEQUENCE {<br />
2 header PKIHeader ::= SEQUENCE {<br />
3 pvno INTEGER,<br />
4 sender GeneralName,<br />
5 recipient GeneralName,<br />
6 },<br />
7 body CertConfirmContent ::= SEQUENCE OF {<br />
67
D. Vergleich ITP mit CMP<br />
8 CertStatus ::= SEQUENCE {<br />
9 certHash OCTET STRING,<br />
10 certReqId INTEGER,<br />
11 statusInfo PKIStatusInfo OPTIONAL<br />
12 },<br />
13 },<br />
14 protection [0] PKIProtection OPTIONAL ,<br />
15 extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate OPTIONAL,<br />
16 }<br />
Quelltext D.2: Aktivierungsnachricht <strong>in</strong> CMP<br />
Beide Nachrichten teilen sich <strong>in</strong> verschiedene Blöcke auf. Die ITP-Nachricht enthält den<br />
Kopfteil mit Sender, Empfänger, Zeitpunkt und e<strong>in</strong>en e<strong>in</strong>deutigen Identifikator der Nachricht.<br />
Auf diesen Block folgt die Application mit dem Auftrag e<strong>in</strong>er Activation. Zum<br />
Schluss ist noch e<strong>in</strong>e notwendige Signatur über die Nachricht angehängt. Innerhalb der<br />
Activation wird das zu aktivierende Zertifikat e<strong>in</strong>deutig anhand des Aussteller und der<br />
Seriennummer identifiziert. Für die Übermittlung von mehreren Zertifikaten <strong>in</strong> e<strong>in</strong>er Activation-Nachricht<br />
ist das Attribut Index vorhanden.<br />
CMP Identifiziert im Kopfteil die Nachricht mit Hilfe e<strong>in</strong>er Nummer (pvno) e<strong>in</strong>deutig.<br />
Ebenso wird dort der Sender und Empfänger der Nachricht benannt. Daran angeschlossen<br />
kommt im allgeme<strong>in</strong>en Nachrichtenbereich der CertConfirmContent-Block, der selbst nur<br />
e<strong>in</strong>e Sequenz von CertStatus-Blöcken ist. Innerhalb e<strong>in</strong>es CertStatus-Blocks wird das<br />
Zertifikat über den Hashwert (certHash) identifiziert. Mit statusInfo wird der Status<br />
über das Zertifikat gesetzt.<br />
In beiden Nachrichten ist es möglich die Aktivierung e<strong>in</strong>es Zertifikates zu unterb<strong>in</strong>den. Bei<br />
ITP wird das Element auf false gesetzt. Bei CMP übernimmt diese Aufgabe<br />
das Element statusInfo, das auf den Wert status = rejection gesetzt wird.<br />
Beide Nachrichten bieten e<strong>in</strong>e Absicherung der Nachricht an. Bei ITP ist diese notwendig,<br />
<strong>in</strong>nerhalb von CMP ist die Signatur im PKIProtection-Bereich optional. CMP sieht im<br />
optionalen Bereich noch die Übermittlung von beteiligten Zertifikaten vor, dies ist <strong>in</strong> ITP<br />
mit e<strong>in</strong>er weiteren Application <strong>in</strong> der Nachricht möglich.<br />
Beide Nachrichten s<strong>in</strong>d von ihrem Umfang bisher gleich und bieten e<strong>in</strong>e Basis für weitere<br />
Funktionalität. Die Verschachtelung von Information <strong>in</strong> e<strong>in</strong>er CMP Nachricht wirkt sich<br />
erheblich auf die Lesbarkeit aus. So ist es nicht durch e<strong>in</strong>e schnelles Überprüfen <strong>in</strong> der<br />
Nachricht möglich zu erkennen welche Zertifikate angefragt werden. Die Identifikation<br />
e<strong>in</strong>es Zertifikates durch den Hashwert dieses ist an dieser Stelle ungeschickt gewählt. E<strong>in</strong><br />
Mensch hat bei diesen Aufgaben Probleme.<br />
ITP bietet darüber h<strong>in</strong>aus, wie man <strong>in</strong> Abschnitt 6.2.3 sehen kann erheblich mehr direkt<br />
zugängliche Funktionen. Alle Informationen s<strong>in</strong>d auf e<strong>in</strong>en Blick erkennbar und können somit<br />
auch für e<strong>in</strong>e Protokollierung schnell erfasst werden. Dies ergibt sich vor allem durch<br />
die Verwendung von XML anstelle von ASN.1 als Codierungsformat. Diese Übersichtlichkeit<br />
ist gerade bei e<strong>in</strong>e semantischen Prüfung der Informationen notwendig, da der<br />
Mensch <strong>in</strong> se<strong>in</strong>en Möglichkeiten der Informationswahrnehmung gegenüber dem Computer<br />
im Nachteil ist.<br />
Weitere sich auf alle CMP Nachrichten beziehende Probleme f<strong>in</strong>den sich unter anderem <strong>in</strong><br />
”A PKI your mother can use” [22].<br />
68
E. Gesetzestexte<br />
Auszüge aus dem deutschen Signaturgesetz und der deutschen Signaturverordnung <strong>in</strong> der<br />
aktuell gültigen Fassung von 2001.<br />
E.1. Signaturgesetz § 7<br />
(1) E<strong>in</strong> qualifiziertes Zertifikat muss folgende Angaben enthalten und e<strong>in</strong>e qualifizierte<br />
elektronische Signatur tragen:<br />
1. den Namen des Signaturschlüssel-Inhabers, der im Falle e<strong>in</strong>er Verwechslungsmöglichkeit<br />
mit e<strong>in</strong>em Zusatz zu versehen ist, oder e<strong>in</strong> dem Signaturschlüssel-<br />
Inhaber zugeordnetes unverwechselbares Pseudonym, das als solches kenntlich<br />
se<strong>in</strong> muss,<br />
2. den zugeordneten Signaturprüfschlüssel,<br />
3. die Bezeichnung der Algorithmen, mit denen der Signaturprüfschlüssel des<br />
Signaturschlüssel-Inhabers sowie der Signaturprüfschlüssel des Zertifizierungsdiensteanbieters<br />
benutzt werden kann,<br />
4. die laufende Nummer des Zertifikats,<br />
5. Beg<strong>in</strong>n und Ende der Gültigkeit des Zertifikats,<br />
6. den Namen des Zertifizierungsdiensteanbieters und des Staates, <strong>in</strong> dem er<br />
niedergelassen ist,<br />
7. Angaben darüber, ob die Nutzung des Signaturschlüssels auf bestimmte<br />
Anwendungen nach Art oder Umfang beschränkt ist,<br />
8. Angaben, dass es sich um e<strong>in</strong> qualifiziertes Zertifikat handelt, und<br />
9. nach Bedarf Attribute des Signaturschlüssel-Inhabers.<br />
(2) Attribute können auch <strong>in</strong> e<strong>in</strong> gesondertes qualifiziertes Zertifikat (qualifiziertes<br />
Attribut-Zertifikat) aufgenommen werden. Bei e<strong>in</strong>em qualifizierten<br />
Attribut-Zertifikat können die Angaben nach Absatz 1 durch e<strong>in</strong>deutige Referenzdaten<br />
des qualifizierten Zertifikats, auf das sie Bezug nehmen, ersetzt<br />
werden, soweit sie nicht für die Nutzung des qualifizierten Attribut-Zertifikats<br />
benötigt werden.<br />
E.2. Signaturgesetz § 10 Absatz 1<br />
Der Zertifizierungsdiensteanbieter hat die Sicherheitsmaßnahmen zur E<strong>in</strong>haltung<br />
dieses Gesetzes und der Rechtsverordnung nach § 24 Nr. 1, 3 und 4 sowie<br />
69
E. Gesetzestexte<br />
die ausgestellten qualifizierten Zertifikate nach Maßgabe des Satzes 2 so zu dokumentieren,<br />
dass die Daten und ihre Unverfälschtheit jederzeit nachprüfbar<br />
s<strong>in</strong>d. Die Dokumentation muss unverzüglich so erfolgen, dass sie nachträglich<br />
nicht unbemerkt verändert werden kann. Dies gilt <strong>in</strong>sbesondere für die Ausstellung<br />
und Sperrung von qualifizierten Zertifikaten.<br />
E.3. Signaturverordnung § 5 Absatz 2 Satz 2<br />
Erst nachdem der Signaturschlüssel-Inhaber den Erhalt der sicheren Signaturerstellungse<strong>in</strong>heit<br />
gegenüber dem Zertifizierungsdiensteanbieter bestätigt hat,<br />
darf das zugehörige qualifizierte Zertifikat nach § 5 Absatz 1 Satz 2 und 3 des<br />
Signaturgesetzes nachprüfbar und, soweit vere<strong>in</strong>bart, abrufbar gehalten werden.<br />
E.4. Signaturverordnung § 7 Absatz 2<br />
Der Zertifizierungsdiensteanbieter hat sich vor Sperrung auf geeignete Weise<br />
von der Identität des zur Sperrung Berechtigten zu überzeugen. Die Sperrung<br />
von qualifizierten Zertifikaten ist mit Angabe des Datums und der zu diesem<br />
Zeitpunkt gültigen gesetzlichen Zeit im Zertifikatsverzeichnis nach § 4 e<strong>in</strong>deutig<br />
kenntlich zu machen.<br />
E.5. Signaturverordnung § 15 Absatz 2 Satz 2b)<br />
70<br />
Signaturanwendungskomponenten nach § 17 Absatz 2 des Signaturgesetzes<br />
müssen gewährleisten, dass [...] bei der Prüfung e<strong>in</strong>er qualifizierten elektronischen<br />
Signatur [...] e<strong>in</strong>deutig erkennbar wird, ob die nachgeprüften qualifizierten<br />
Zertifikate im jeweiligen Zertifikat-Verzeichnis zum angegebenen Zeitpunkt<br />
vorhanden und nicht gesperrt waren.
Begriffe<br />
4-Augen-Pr<strong>in</strong>zip Für e<strong>in</strong>en Vorgang werden m<strong>in</strong>destens 4-Augen im S<strong>in</strong>ne von mehreren<br />
Personen benötigt. (Stichwort: Multi-person Control [15])<br />
Benutzer Anwender e<strong>in</strong>er Software, hier: Inhaber des Zertifikats<br />
Dist<strong>in</strong>guished Name (DN) Namensgebung nach [30], [46]<br />
Hashwert E<strong>in</strong> Wert der mit Hilfe e<strong>in</strong>e Hashfunktion berechnet wird und als Repräsentant<br />
für e<strong>in</strong>e Menge Daten steht. Aus diesem Hashwert ist es nicht möglich auf die Daten<br />
zuschließen.<br />
Hashfunktion E<strong>in</strong>e E<strong>in</strong>wegfunktion, die e<strong>in</strong>en Menge von Daten auf e<strong>in</strong>en repräsentativen<br />
Hashwert konstanter Länge abbildet. Vertreter e<strong>in</strong>er Hashfunktion s<strong>in</strong>d beispielsweise<br />
MD5, SHA-1 und SHA-160.<br />
ID - Identifier e<strong>in</strong>deutiger Identifikator für e<strong>in</strong> Objekt<br />
Name Name für e<strong>in</strong>e Komponente. Hier bei kann es sich beispielsweise um e<strong>in</strong>en symbolischen<br />
Namen, e<strong>in</strong>en Dist<strong>in</strong>guished Name oder e<strong>in</strong>e Internetprotokolladresse handeln.<br />
PoP - Proof-of-Possession Der Nachweis, dass der Empfänger e<strong>in</strong>es Zertifikats im Besitz<br />
des dazugehörigen privaten Schlüssels ist.<br />
Revokationspasswort E<strong>in</strong> Passwort das den Eigentümer e<strong>in</strong>es Zertifikats so schützt, dass<br />
Dritte nicht se<strong>in</strong> Zertifikat revozieren können. Der Eigentümer weißt den Besitz dieses<br />
Passworts bei e<strong>in</strong>er Revokation nach.<br />
Transportpasswort E<strong>in</strong> Passwort das als symmetrisches Geheimnis für die Verschlüsselung<br />
des Zertifikats genutzt wird. Nur der Sender und der Empfänger kennen dieses<br />
Passwort. Damit ist der im Zertifikat enthaltene private Schlüssel auf den Transportwegen<br />
zum Benutzer geschützt.<br />
71
Begriffe<br />
72
Literaturverzeichnis<br />
[1] ASN.1 encod<strong>in</strong>g rules: XML Encod<strong>in</strong>g Rules.<br />
http://www.itu.<strong>in</strong>t/rec/T-REC-X.693/en (letzter Zugriff 18.07.2007), December<br />
2001<br />
[2] Abstract Syntax Notation One (ASN.1): Specification of basic notation.<br />
http://www.itu.<strong>in</strong>t/rec/T-REC-X.680/en (letzter Zugriff 18.07.2007), July<br />
2002<br />
[3] ASN.1 encod<strong>in</strong>g rules: Specification of Basic Encod<strong>in</strong>g Rules (BER), Canonical<br />
Encod<strong>in</strong>g Rules (CER) and Dist<strong>in</strong>guished Encod<strong>in</strong>g Rules (DER).<br />
http://www.itu.<strong>in</strong>t/rec/T-REC-X.690/en (letzter Zugriff 18.07.2007), July 2002<br />
[4] XML Encryption Syntax and Process<strong>in</strong>g. http://www.w3.org/TR/xmlenc-core/<br />
(letzter Zugriff 18.07.2007), December 2002<br />
[5] XML-Signature Syntax and Process<strong>in</strong>g. http://www.w3.org/TR/xmldsig-core/<br />
(letzter Zugriff 18.07.2007), Februray 2002<br />
[6] Scalable Certificate Validation and Simplified PKI Management. 2003 . – EP Patent<br />
1,371,171<br />
[7] ASN.1 encod<strong>in</strong>g rules: Mapp<strong>in</strong>g W3C XML schema def<strong>in</strong>itions <strong>in</strong>to ASN.1.<br />
http://www.itu.<strong>in</strong>t/rec/T-REC-X.694/en (letzter Zugriff 18.07.2007), January<br />
2004<br />
[8] Information technology - Abstract Syntax Notation One (ASN.1): Specification of<br />
basic notation. http://www.iso.org/iso/en/<br />
CatalogueDetailPage.CatalogueDetail?CSNUMBER=35684 (letzter Zugriff<br />
18.07.2007), June 2006<br />
[9] Namespaces <strong>in</strong> XML 1.0. http://www.w3.org/TR/REC-xml-names/ (letzter Zugriff<br />
18.07.2007), August 2006<br />
[10] Adams, C. ; Farell, S.: Internet X.509 Public Key Infrastructure Certificate Management<br />
Protocols. In: IETF Request For Comments 2510 (1999), March<br />
[11] Adams, C. ; Farell, S. ; Kause, T. ; Mononen, T.: Internet X.509 Public Key<br />
Infrastructure Certificate Management Protocol (CMP). In: IETF Request For Comments<br />
4210 (2005), September<br />
[12] Bray, T. ; Paoli, J. ; Sperberg-McQueen, C.M. ; Maler, E.: Extensible Markup<br />
Language (XML). http://www.w3.org/XML/ (letzter Zugriff 18.07.2007),<br />
73
Literaturverzeichnis<br />
[13] Callas, J. ; Donnerhacke, L. ; F<strong>in</strong>ney, H. ; Thayer, R.: OpenPGP Message<br />
Format. In: IETF Request For Comments 2440 (1998), November<br />
[14] Camphausen, I. ; Petersen, H. ; Stark, C.: Root CA Zertifikatswechsel Secorvo<br />
White Paper. (2002), September<br />
[15] Chokhani, S. ; Ford, W. ; Sabett, R. ; Merrill, C. ; Wu, S.: Internet X.509<br />
Public Key Infrastructure - Certificate Policy and Certification Practices Framework.<br />
In: IETF Request For Comments 3647 (2003), November<br />
[16] Davis, D.: Defective Sign & Encrypt <strong>in</strong> S/MIME, PKCS# 7, MOSS, PEM, PGP,<br />
and XML. In: Proc. 2001 USENIX Technical Conference (2001), S. 65–78<br />
[17] Dubuisson, Olivier: ASN.1 - Communication between Heterogeneous Systems. Morgan<br />
Kaufmann, 2000<br />
[18] Dusse, S. ; Hoffman, P. ; Ramsdell, B. ; We<strong>in</strong>ste<strong>in</strong>, J.: S/MIME Version 2<br />
Certificate Handl<strong>in</strong>g. In: IETF Request For Comments 2312 (1998), March<br />
[19] Eckert, C.: IT-Sicherheit, Konzepte - Verfahren - Protokolle, Kapitel 9.1.3. 3.<br />
Oldenbourg Wissenschaftsverlag GmbH, 2004<br />
[20] Eckste<strong>in</strong>, R. ; Casabianca, M.: XML Pocket Reference. Second Edition. O’Reilly,<br />
2001 (ISBN:0596001339)<br />
[21] Group, XML Schema W.: XML Schema. http://www.w3.org/2001/XMLSchema<br />
(letzter Zugriff 18.07.2007), October 2004<br />
[22] Gutmann, P.: Plug-and-Play PKI: A PKI your Mother Can Use. In: Proceed<strong>in</strong>gs of<br />
the 12th USENIX Security Symposium, 2003, S. 45–58<br />
[23] Hallam-Baker, Phillip ; Mysore, Shivaram H.: XML Key Management Specification<br />
Version 2.0 (XKMS 2.0). http://www.w3.org/TR/2005/REC-xkms2-20050628/<br />
(letzter Zugriff 18.07.2007), 06 2005<br />
[24] Housley, R.: Cryptographic Message Syntax. In: IETF Request For Comments 2630<br />
(1999), June<br />
[25] Housley, R. ; Polk, W. ; Ford, W. ; Solo, D.: Internet X.509 Public Key Infrastructure<br />
Certificate and Certificate Revocation List Profile. In: IETF Request For<br />
Comments 3280 (2002), April<br />
[26] ITU: The Directory: Public-key and attribute certificate frameworks / International<br />
Telecommunication Union - TELECOMMUNICATION STANDARDIZATION<br />
SECTOR. 2005. – Forschungsbericht<br />
[27] Karatsiolis, V. ; Lippert, M. ; Wiesmaier, A.: Us<strong>in</strong>g LDAP Directories for Management<br />
of PKI Processes. In: Proceed<strong>in</strong>gs of Public Key Infrastructure: First European<br />
PKI Workshop: Research and Applications, EuroPKI 2004 Bd. 3093, 2004, S. 126–134<br />
74
Literaturverzeichnis<br />
[28] Karatsiolis, V. ; Lippert, M. ; Wiesmaier, A. ; Pitaev, A. ; Ruppert, M. ;<br />
Buchmann, J.: Towards a Flexible Intra-<strong>Trustcenter</strong> Management Protocol. In: The<br />
Third International Workshop for Applied PKI, IWAP 2004, 2004<br />
[29] Karatsiolis, Vangelis: Flexible Certificate Management <strong>in</strong> Public Key Infrastructures.<br />
2007<br />
[30] Kille, S.: A Str<strong>in</strong>g Representation of Dist<strong>in</strong>guished Names. In: IETF Request For<br />
Comments 1779 (1995), March. http://www.ietf.org/rfc/rfc1779.txt<br />
[31] Kunz, T. (Hrsg.) ; Okunick, S. (Hrsg.) ; Viebeg, U. (Hrsg.): Long-term security<br />
for signed documents: services, protocols, and data structures. 2006<br />
[32] Larmouth, J.: ASN.1 Complete. Open Systems Solutions, 1999<br />
[33] Laue, Ralf ; Huss, Sor<strong>in</strong> A.: Perfomanter Krypto-CoProzessor für unterschiedliche<br />
Verfahren. In: Stamer, Heiko (Hrsg.): 5. Krypto-Tag - Workshop über Kryptographie.<br />
<strong>Universität</strong> Kassel, 2006 (Mathematische Schriften Kassel 06), S. 3. – (<strong>in</strong> German)<br />
[34] McLaughl<strong>in</strong>, Brett: Java & XML. Second Edition. O’Reilly, 2001 (ISBN: 0-596-<br />
00197-5)<br />
[35] Myers, M. ; Adams, C. ; Solo, D. ; Kemp, D.: Internet X.509 Certificate Request<br />
Message Format. In: IETF Request For Comments 2511 (1999), March.<br />
http://www.ietf.org/rfc/rfc2511.txt<br />
[36] Myers, M. ; Ankney, R. ; Malpani, A. ; Galper<strong>in</strong>, S. ; Adams, C.: X.509 Internet<br />
Public Key Infrastructure Onl<strong>in</strong>e Certificate Status Protocol. In: IETF Request For<br />
Comments 2560 (1999), June. http://www.ietf.org/rfc/rfc2560.txt<br />
[37] Myers, M. ; Liu, X. ; Schaad, J. ; We<strong>in</strong>ste<strong>in</strong>, J.: Certificate Management<br />
Messages over CMS. In: IETF Request For Comments 2797 (2000), April.<br />
http://www.ietf.org/rfc/rfc2797.txt<br />
[38] Park, Namje ; Moon, Kiyoung ; Sohn, Sungwon: Certificate validation service<br />
us<strong>in</strong>g XKMS for computational grid. In: XMLSEC ’03: Proceed<strong>in</strong>gs of the 2003 ACM<br />
workshop on XML security. New York, NY, USA : ACM Press, 2003. – ISBN 1–<br />
58113–777–X, S. 112–120<br />
[39] RSA, Laboratories: PKCS#7 v1.5: Cryptographic Message Syntax Standard.<br />
http://www.rsasecurity.com/rsalabs/pkcs/ (letzter Zugriff 18.07.2007), November<br />
1993<br />
[40] RSA, Laboratories: PKCS#12 v1.0: Personal Information Exchange Syntax Standard.<br />
http://www.rsasecurity.com/rsalabs/node.asp?id=2138 (letzter Zugriff<br />
18.07.2007), June 1999<br />
[41] RSA, Laboratories: PKCS#10 v1.7: Certification Request Syntax Standard.<br />
http://www.rsasecurity.com/rsalabs/pkcs/ (letzter Zugriff 18.07.2007), May<br />
2000<br />
75
Literaturverzeichnis<br />
[42] Schaad, J.: Internet X.509 Public Key Infrastructure Certificate Request Message<br />
Format (CRMF). In: IETF Request For Comments 4211 (2005), September.<br />
http://www.ietf.org/rfc/rfc4211.txt<br />
[43] Scheibelhofer, Karl: What You See Is What You Sign - Trustworthy Display of<br />
XML Documents for Sign<strong>in</strong>g and Verification. In: Proceed<strong>in</strong>gs of the IFIP TC6/TC11<br />
International Conference on Communications and Multimedia Security Issues of the<br />
New Century. Deventer, The Netherlands, The Netherlands : Kluwer, B.V., 2001. –<br />
ISBN 0–7923–7365–0, S. 35<br />
[44] Sun Microsystems, Inc.: JavaTM Cryptography Extension (JCE) Reference<br />
Guide for the Java (TM) 2 Platform Standard Edition Development Kit (JDK) 5.0.<br />
http://java.sun.com/j2se/1.5.0/docs/guide/security/jce/JCERefGuide.html<br />
(letzter Zugriff 18.07.2007), 01 2004<br />
[45] <strong>Technische</strong> <strong>Universität</strong> Darmstadt, Theoretische Informatik Kryptographie<br />
und C.: FlexiTRUST - A flexible and secure Truscenter application.<br />
http://www.cdc.<strong>in</strong>formatik.tu-darmstadt.de/research/pki.html (letzter Zugriff<br />
18.07.2007),<br />
[46] Wahl, M. ; Kille, S. ; Howes, T.: Lightweight Directory Access Protocol (v3): UTF-<br />
8 Str<strong>in</strong>g Representation of Dist<strong>in</strong>guished Names. In: IETF Request For Comments<br />
2253 (1997), December<br />
[47] Wiesmaier, A. ; Lippert, M. ; Karatsiolis, V.: The Key Authority – Secure<br />
Key Management <strong>in</strong> Hierarchical Public Key Infrastructures. In: Proceed<strong>in</strong>gs of the<br />
International Conference on Security and Management, SAM ’04, 2004, S. 89–93<br />
76