13.11.2012 Aufrufe

Kommunikation in einem Trustcenter - HRZ - Technische Universität ...

Kommunikation in einem Trustcenter - HRZ - Technische Universität ...

Kommunikation in einem Trustcenter - HRZ - Technische Universität ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!