Entwurf und Strategie der Einführung einer fachbereichsweiten
Transcription
Entwurf und Strategie der Einführung einer fachbereichsweiten
Fachhochschule Wiesbaden Fachbereich Design Informatik Medien Studiengang Allgemeine Informatik Diplomarbeit zur Erlangung des akademischen Grades Diplom-Informatiker (FH) Entwurf und Strategie der Einführung einer fachbereichsweiten Public Key Infrastruktur vorgelegt von: Hans-Georg Winkler am: 22.06.06 Referent: Prof. Dr. Gergeleit Koreferent: Prof. Dr. Kröger II Eidesstattliche Erklärung Hiermit erkläre ich an Eides statt, daß ich die vorliegende Diplomarbeit selbständig und nur unter Verwendung der angegebenen Hilfsmittel und Literaturquellen verfaßt habe. Ort, Datum Unterschrift Diplomand Erklärung zur Verbreitungsform Hiermit erkläre ich mein Einverständnis mit den im Folgenden aufgeführten Verbreitungsformen dieser Diplomarbeit: Verbreitungsform ja nein Einstellung der Arbeit in die Bibliothek der FHW X Veröffentlichung des Titels der Arbeit im Internet X Veröffentlichung der Arbeit im Internet X Ort, Datum Unterschrift Diplomand III IV Vorwort Die hier vorliegende Arbeit wurde am Fachbereich Design Informatik Medien (DCSM) der Fachhochschule Wiesbaden geschrieben und ist im Rahmen der Überlegungen zur Einführung einer fachbereichweiten Public Key Infrastruktur die erste Arbeit in diese Richtung. Dabei werden in diesem Dokument Ansätze entwickelt und eine erste praktische Anwendung zur Umsetzung gebracht. Danksagung Mein Dank gilt an erster Stelle Jesus Christus der mich mit Gott versöhnt und mir ein neuen Leben geschenkt hat. Ohne Ihn und seine Führung wäre ich nicht sehr weit gekommen. Dank auch an meine Eltern die mir dieses Studium ermöglicht und mich dazu ermutigt haben. Weiter möchte ich mich bei meinen beiden betreuenden Professoren Herrn Dr.Gergeleit und Herrn Dr.Kröger für die Unterstützung und Zeit bedanken die sie mir zur Verfügung gestellt haben. Das Diplomarbeitsthema hat mir bei der Bearbeitung ganz neue Perspektiven, auch für meinen weiteren Werdegang aufgezeigt. Vielen Dank für die Unterstützung bei technischen Fragen an die Labor-Ingenieure Carlos Henriques dos Santos, Daniel Kloos und Bent Ahrens. Bedanken möchte ich mich in ganz besonderer Weise bei den Entwicklern von OpenCA und der Open-SourceCommunity. In diesem Zusammenhang möchte ich mich auch bei Oliver Welter bedanken der mir in den Anfängerproblemen bei OpenCA und schwierigeren Fragestellungen mit viel Geduld weiter geholfen hat. Auch möchte ich mich bei den Mitgliedern der Mailinglist von OpenCA bedanken, da hier, bei schwierigeren Problemen schnell geholfen wurde. Bedanken möchte ich mich bei meiner Schwester Franziska, meinen Cousins Leonhard und Sebastian Boitz, weiter danke ich Rainer Schölles, Karsten Berthold und Heinrich Hintenberger. All denn eben genannten sei nochmals mein Dank für ihre Zeit und Mühen ausgesprochen, meine Diplomarbeit gegen gelesen zu haben, um diese von den vielen Rechtschreibfehler und umgangssprachlichen Floskeln zu reinigen. Des Weite- V ren noch einmal vielen Dank an Heinrich Hintenberger und ”JoHi Webservices” für das Drucken dieser Diplomarbeit. Weiter möchte ich mich bei den Professoren des Fachbereichs bedanken. Die Zeit meines Studiums war zwar schwer und oft war ich gefordert jedoch konnte ich in dieser Zeit sehr viel Neues lernen. Vielen Dank! Abschließend möchte ich mich bei den Entwicklern von LATEX für dieses System und die geniale Integration in Mac OS X bedanken. Ohne diese Entwicklung wäre meine Diplomarbeit in dieser Form nicht möglich gewesen. Vielen Dank an alle :) Mainz der 21. Juni 2006 Hans-Georg Winkler, [email protected] VI Inhaltsverzeichnis 1. Einleitung 1 1.1. Ziel der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2. Kapitel Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Grundlagen 5 2.1. Situation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2. Eigenschaften von Schlüsseln . . . . . . . . . . . . . . . . . . . . 7 2.3. Symmetrische Verschlüsselung . . . . . . . . . . . . . . . . . . . 10 2.4. Asymmetrische Verschlüsselung . . . . . . . . . . . . . . . . . . 12 2.5. Hybridverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.6. Einführung digitaler Signaturen . . . . . . . . . . . . . . . . . . 17 2.7. Einführung digitaler Zertifikate und der PKI . . . . . . . . . . . 20 2.8. Grundlagen und Begriffserklärung zur PKI . . . . . . . . . . . . 21 2.8.1. Zertifizierungsstelle - CA . . . . . . . . . . . . . . . . . . 23 2.8.2. PKI zugelassene Anwendungen - PKA . . . . . . . . . . 25 2.8.3. Persönliche Sicherheitsumgebung - PSE . . . . . . . . . . 26 2.9. Prozesse innerhalb der PKI . . . . . . . . . . . . . . . . . . . . 26 2.9.1. Erstellung von Zertifikaten . . . . . . . . . . . . . . . . . 26 2.9.2. Verifizieren von Zertifikaten . . . . . . . . . . . . . . . . 28 2.9.3. Signieren . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.9.4. Verschlüsseln . . . . . . . . . . . . . . . . . . . . . . . . 32 2.10. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . 33 VII 3. Analyse 35 3.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.1.1. Teilnehmer der Zertifizierungsinfrastruktur . . . . . . . . 37 3.1.2. Oberste Zertifizierungsstelle (PCA) . . . . . . . . . . . . 38 3.1.3. Zertifizierungsstellen (CA) . . . . . . . . . . . . . . . . . 39 3.1.4. Registrierungsstellen (RA) . . . . . . . . . . . . . . . . . 40 3.1.5. Zertifikatnehmer - CP . . . . . . . . . . . . . . . . . . . 41 3.1.6. Zertifikatantragprüfer - CP . . . . . . . . . . . . . . . . 42 3.1.7. Weitere Teilnehmer - CP . . . . . . . . . . . . . . . . . . 42 3.2. Anwendungsbereich - CP . . . . . . . . . . . . . . . . . . . . . . 43 3.2.1. Geeignete Zertifikatnutzung . . . . . . . . . . . . . . . . 43 3.2.2. Untersagte Zertifikatnutzung . . . . . . . . . . . . . . . . 43 3.3. Verwaltung der Richtlinien - CP . . . . . . . . . . . . . . . . . . 44 3.4. Veröffentlichungen und Verzeichnisdienst . . . . . . . . . . . . . 44 3.4.1. Veröffentlichung von Informationen . . . . . . . . . . . . 44 3.4.2. Aktualisierung der Informationen . . . . . . . . . . . . . 46 3.4.3. Zugang zu den Informationsdiensten . . . . . . . . . . . 46 3.5. Identifizierung und Authentifizierung . . . . . . . . . . . . . . . 47 3.5.1. Namen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.5.2. Identitätsüberprüfung bei Neuantrag - CP . . . . . . . . 51 3.5.3. Authentifizierung einer natürlichen Person . . . . . . . . 52 3.5.4. Identifizierung und Authentifizierung bei einer Zertifikaterneuerung - CP . . . . . . . . . . . . . . . . . . . . . . 53 3.5.5. Identifizierung und Authentifizierung bei einem Widerruf 53 3.6. Ablauforganisation . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.6.1. Ablauf der Zertifizierung . . . . . . . . . . . . . . . . . . 55 3.6.2. Zertifikatantrag . . . . . . . . . . . . . . . . . . . . . . . 58 3.6.3. Bearbeitung von Zertifikatanträgen - CP . . . . . . . . . 60 3.6.4. Zertifikatausstellung . . . . . . . . . . . . . . . . . . . . 61 3.6.5. Zertifikatakzeptanz . . . . . . . . . . . . . . . . . . . . . 61 VIII 3.6.6. Verwendung des Schlüsselpaares und des Zertifikats - CP 62 3.6.7. Zertifikaterneuerung / Re-Zertifizierung - CP . . . . . . 63 3.6.8. Zertifikaterneuerung / Re-Key - CP . . . . . . . . . . . . 65 3.6.9. Zertifikatmodifizierung - CP . . . . . . . . . . . . . . . . 66 3.6.10. Widerruf und Suspendierung von Zertifikaten . . . . . . 66 3.6.11. Gründe für einen Widerruf - CP . . . . . . . . . . . . . . 67 3.6.12. Wer kann widerrufen - CP . . . . . . . . . . . . . . . . . 67 3.6.13. Beendigung des Vertragsverhältnisses durch den Zertifikatnehmer - CP . . . . . . . . . . . . . . . . . . . . . . . 68 3.7. Infrastrukturelle, organisatorische und personelle Sicherheitsmaßnahmen - CPS . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.7.1. Infrastrukturelle Sicherheitsmaßnahmen . . . . . . . . . 69 3.7.2. Organisatorische Sicherheitsmaßnahmen . . . . . . . . . 70 3.7.3. Personelle Sicherheitsmaßnahmen . . . . . . . . . . . . . 74 3.7.4. Kompromittierung und Wiederherstellung . . . . . . . . 75 3.7.5. Reguläre Einstellung des Betriebs . . . . . . . . . . . . . 76 3.8. Technische Sicherheitsmaßnahmen - CPS . . . . . . . . . . . . . 77 3.8.1. Schlüsselerzeugung und Installation . . . . . . . . . . . . 77 3.8.2. Schutz des privaten Schlüssels . . . . . . . . . . . . . . . 78 3.8.3. Weitere Aspekte des Schlüsselmanagements . . . . . . . 79 3.9. Konformitätsprüfung - CP . . . . . . . . . . . . . . . . . . . . . 80 3.10. Rahmenvorschriften - CP . . . . . . . . . . . . . . . . . . . . . . 81 3.11. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . 81 4. Praktische Umsetzung 83 4.1. Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.2. Eigenschaften von OpenCA . . . . . . . . . . . . . . . . . . . . 84 4.2.1. Funktionsübersicht . . . . . . . . . . . . . . . . . . . . . 84 4.2.2. Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . 85 4.2.3. Aufbau von OpenCA . . . . . . . . . . . . . . . . . . . . 86 IX 4.3. Planung einer Zertifizierungsstelle . . . . . . . . . . . . . . . . . 89 4.3.1. Komponenten . . . . . . . . . . . . . . . . . . . . . . . . 89 4.3.2. Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.4. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 4.4.1. Configure . . . . . . . . . . . . . . . . . . . . . . . . . . 94 4.4.2. make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.4.3. Die config.xml-Datei . . . . . . . . . . . . . . . . . . . . 101 4.4.4. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . 102 4.5. Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.5.1. CSRs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.5.2. PKCS#10 Requests . . . . . . . . . . . . . . . . . . . . . 107 4.5.3. OpenSSL . . . . . . . . . . . . . . . . . . . . . . . . . . 108 4.5.4. Datenaustausch . . . . . . . . . . . . . . . . . . . . . . . 109 4.5.5. Zugriffskontrolle . . . . . . . . . . . . . . . . . . . . . . . 111 4.5.6. Rollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 4.5.7. LOA (Level of Assurance) . . . . . . . . . . . . . . . . . 113 4.6. LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 4.6.1. Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . 116 4.6.2. OpenLDAP . . . . . . . . . . . . . . . . . . . . . . . . . 116 4.6.3. OpenCA . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 4.6.4. Anpassungen . . . . . . . . . . . . . . . . . . . . . . . . 120 4.7. Batch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 4.7.1. Vorbemerkung . . . . . . . . . . . . . . . . . . . . . . . . 125 4.7.2. Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 4.7.3. Datenimport . . . . . . . . . . . . . . . . . . . . . . . . 126 4.7.4. Quickimport . . . . . . . . . . . . . . . . . . . . . . . . . 126 4.7.5. Konfiguration der Import-/Export-Funktion . . . . . . . 128 4.7.6. Durchführen des Batch-Prozesses . . . . . . . . . . . . . 129 4.7.7. Automatische Generierung des Batch-Import . . . . . . . 130 4.8. Benachrichtigung der Nutzer . . . . . . . . . . . . . . . . . . . . 132 X 4.8.1. Probleme mit der PIN . . . . . . . . . . . . . . . . . . . 132 4.8.2. Probleme mit der CRIN . . . . . . . . . . . . . . . . . . 133 4.8.3. E-Mail Benachrichtigung . . . . . . . . . . . . . . . . . . 135 4.9. Shell Skripte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 4.9.1. Datenaustausch zwischen verschiedenen Ebenen der Zertifizierungsstelle . . . . . . . . . . . . . . . . . . . . . . . 136 4.9.2. Automatisierung der Erstellung eines Batch-Imports zur automatischen Erstellung neuer Studentenzertifikate . . . 137 4.9.3. Automatische Verarbeitung der durch den Batch-Prozess erstellten PKCS#12-Dateien . . . . . . . . . . . . . . . . 138 4.9.4. CSR Handhabung . . . . . . . . . . . . . . . . . . . . . . 139 4.10. Anwendungsszenarien . . . . . . . . . . . . . . . . . . . . . . . . 142 4.10.1. Erstinitialisierung der CA . . . . . . . . . . . . . . . . . 142 4.10.2. Erstinitialisierung der RA . . . . . . . . . . . . . . . . . 145 4.10.3. Datenaustausch CA zu RA . . . . . . . . . . . . . . . . . 145 4.10.4. Reguläre Zertifikatbeantragung . . . . . . . . . . . . . . 148 4.10.5. Sperren von Zertifikaten . . . . . . . . . . . . . . . . . . 156 4.10.6. Verlängern von Zertifikaten . . . . . . . . . . . . . . . . 158 4.11. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . 163 5. Erfahrungen mit Client Software 165 5.1. Mozilla (Thunderbird) . . . . . . . . . . . . . . . . . . . . . . . 166 5.1.1. Adressbuch . . . . . . . . . . . . . . . . . . . . . . . . . 166 5.1.2. Import/Export von Zertifikaten und CRLs . . . . . . . . 167 5.2. KMail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 5.2.1. Adressbuch . . . . . . . . . . . . . . . . . . . . . . . . . 170 5.2.2. Import/Export von Zertifikaten und CRLs . . . . . . . . 174 5.3. Microsoft Outlook Express . . . . . . . . . . . . . . . . . . . . . 174 5.3.1. Import/Export von Zertifikaten und CRLs . . . . . . . . 177 5.4. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . 177 XI 6. Zusammenfassung und Ausblick 179 6.1. Entwicklung von OpenCA . . . . . . . . . . . . . . . . . . . . . 181 A. Technischer Anhang 183 A.1. config.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 A.1.1. Generelle Einstellungen . . . . . . . . . . . . . . . . . . . 183 A.1.2. Webserver Konfiguration . . . . . . . . . . . . . . . . . . 185 A.1.3. LDAP-Server Konfiguration . . . . . . . . . . . . . . . . 186 A.1.4. Datenbank Konfiguration . . . . . . . . . . . . . . . . . . 187 A.1.5. Module Konfiguration . . . . . . . . . . . . . . . . . . . 189 A.1.6. Konfiguration der relativen und absoluten Pfade . . . . . 189 A.1.7. Datenaustausch Konfiguration . . . . . . . . . . . . . . . 190 A.2. Anpassung Apache . . . . . . . . . . . . . . . . . . . . . . . . . 191 A.2.1. Symbolische Links . . . . . . . . . . . . . . . . . . . . . 191 A.2.2. HTTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 A.3. Wichtige Konfigurationsdateien . . . . . . . . . . . . . . . . . . 193 A.4. OpenCA Konfiguration . . . . . . . . . . . . . . . . . . . . . . . 194 A.4.1. Zusätzliche Attribute bei CSRs . . . . . . . . . . . . . . 194 A.4.2. Channel verification . . . . . . . . . . . . . . . . . . . . 195 A.4.3. Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 A.4.4. ACLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 A.4.5. Datenaustausch Konfiguration . . . . . . . . . . . . . . . 198 A.5. LDAP Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . 200 A.5.1. OpenCA-Teil . . . . . . . . . . . . . . . . . . . . . . . . 200 A.5.2. LDAP Teil . . . . . . . . . . . . . . . . . . . . . . . . . . 201 A.6. Batchimport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 A.6.1. Batch-System Import New User Format . . . . . . . . . 203 A.6.2. Batch-System Import New Process Format . . . . . . . . 204 A.6.3. Batch-System Import New Process Format . . . . . . . . 204 A.7. Batch Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 XII A.7.1. Anpassen des Batch-Prozessors . . . . . . . . . . . . . . 206 B. Organisatorischer Anhang 211 B.1. Inhalt der DVD . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 B.2. Inbetriebnahme des Prototypen . . . . . . . . . . . . . . . . . . 211 B.2.1. Verzeichnisstruktur . . . . . . . . . . . . . . . . . . . . . 213 B.2.2. Vergebene Passwörter . . . . . . . . . . . . . . . . . . . . 214 B.3. Benutzeranleitung OpenCA . . . . . . . . . . . . . . . . . . . . 214 B.3.1. PUB Interface . . . . . . . . . . . . . . . . . . . . . . . . 215 B.3.2. RA-Interface . . . . . . . . . . . . . . . . . . . . . . . . 220 B.3.3. CA-Interface . . . . . . . . . . . . . . . . . . . . . . . . . 223 B.3.4. NODE-Interface . . . . . . . . . . . . . . . . . . . . . . . 225 B.3.5. LDAP-Interface . . . . . . . . . . . . . . . . . . . . . . . 229 B.3.6. Handhabung der Zertifikate . . . . . . . . . . . . . . . . 231 B.4. Erstinitialisierung der CA . . . . . . . . . . . . . . . . . . . . . 233 B.4.1. Erstellen des ersten Administrators . . . . . . . . . . . . 233 B.4.2. Erstellen des ersten RA-Zertifikates . . . . . . . . . . . . 234 Abbildungsverzeichnis 236 Tabellenverzeichnis 239 Listings 241 Abkürzungsverzeichnis 245 Literaturverzeichnis 250 Internetquellen 253 Index 255 XIII 1. Einleitung Heute, am Anfang des 21sten Jahrhunderts, besteht in den Industrienationen eine fast flächendeckende IT-Vernetzung mit Internet-Anbindung. Immer mehr kritische Daten werden in Computer-Netzen wie dem Internet übertragen, verarbeitet und gespeichert. Parallel zu dieser Entwicklung nimmt das Internet im Alltag vieler Menschen eine immer wichtiger Rolle ein. Hierbei zeigt eine aktuelle Studie der ”Arbeitsgemeinschaft Online Forschung”1 zur Internetbenutzung innerhalb Deutschlands, dass 57,8 Prozent der Deutschen ab 14 Jahren das Internet regelmäßig nutzen. Dies entspricht einer Zahl von ca. 37,51 Millionen Nutzern in Deutschland [AGO06]. Durch die wachsende Nutzung des Internet wird das Thema der E-Security, der sicheren Übertragung und Speicherung von Daten, ein immer wichtigeres Thema im Umgang mit dem Medium Internet. Dabei stützen sich viele Strategien in diesem Gebiet auf einen effizienten Einsatz kryptographischer Verfahren. In diesem Zusammenhang steht auch die hier vorgelegte Diplomarbeit. Darin geht es in erster Linie um das Thema der Gewährleistung sicheren Datenübertragung. Der Schlüssel hierzu ist die Public-/Private-Key Kryptographie. Dabei stellt das darauf basierende Konzept der Public Key Infrastruktur, kurz als PKI bezeichnet, die eigentliche Herausforderung und den Fokus dieser Arbeit dar. In diesem Zusammenhang sollen die auftretenden Fragen nach den angewandten Technologien, Verfahren, Konzepten und Regelungen näher betrachtet und ausgewertet werden, um am Ende auch praktische Lösungsansätze bieten zu können. Im 1 http://www.agof.de/ 1 1.1. Ziel der Arbeit Kapitel 1. Einleitung Folgenden wird in diesem Kapitel kurz auf die Ziele dieser Arbeit eingegangen, um anschließend eine Übersicht für den inhaltlichen Rahmen aufzuzeigen. 1.1. Ziel der Arbeit Gegenstand der Diplomarbeit ist die Analyse und Umsetzung einer Public Key Infrastruktur für den Fachbereich Design-Infomatik-Medien (DCSM) mit Blick auf eine Erweiterung für die gesamte Fachhochschule Wiesbaden. Es sollen zunächst die zugrunde liegenden Techniken in der Theorie betrachtet und auf Basis dieser Informationen anschließend die Analyse anhand der RFC 3647 [OSSIVCGL+ 03] erarbeitet werden, worin die PKI in ihrem Aufbau und Regelungen näher erläutert wird. Schwerpunktmäßig sollen, für die spätere praktische Umsetzung, brauchbare Vorschläge und Empfehlungen sowie mögliche Lösungskonzepte für den Aufbau einer effektiven Infrastruktur geliefert werden. Dabei wird die Analyse den möglichen Aufbau einer fachbereichsweiten PKI betrachten. Die daraus gewonnenen Erfahrungen werden anschließend im praktischen Teil dieser Arbeit ausgewertet und in die Errichtung eines funktionsfähige Prototypen einer Zertifizierungsstelle mit einfließen. 1.2. Kapitel Übersicht In diesem Abschnitt wird ein Überblick über die Inhalte der nachfolgenden Kapitel gegeben. In Kapitel 2 wird dem Leser ein grundlegender Einstieg in das Thema gegeben und Grundwissen vermittelt, auf das in den späteren Kapiteln aufgebaut wird. Dabei wird die Notwendigkeit der Einführung einer Public Key Infrastruktur aufgezeigt. Kapitel 3 beschäftigt sich mit der Analyse einer möglichen Umsetzung. Hierbei wird als Grundlage die RFC 3647 verwendet, welche als eine Empfehlung und Regelwerk für die Umsetzung eine PKI gesehen werden kann. 2 Kapitel 1. Einleitung 1.2. Kapitel Übersicht Kapitel 4 beschäftigt sich mit der praktischen Umsetzung der in der Analyse gemachten Aussagen. Dabei geht es um die Planung und Einrichtung eines Prototypen für eine Zertifizierungsstelle. Besondere Aufmerksamkeit wurde auf die detailgenaue Darstellung von Vorgehensweisen und Anpassungen gelegt um ein späteres Nachvollziehen für Außenstehende so einfach wie möglich zu halten. Kapitel 5 gibt einen Überblick über mögliche Anwendungsszenarien um die Einbindung der PKI in bestehende Applikationen zu prüfen. Kapitel 6 fasst die gewonnenen Erfahrungen zusammen und gibt einen Ausblick auf die weitere Entwicklung. Der Anhang gliedert sich in die drei Teile technischer-, organisatorischer- und sonstiger-Anhang. Im technischen Anhang werden wichtige zusätzliche Detailinformationen zur Konfiguration des Prototypen geliefert. Im organisatorischen Anhang befindet sich eine Auflistung der auf der DVD enthaltenen Dateien, eine Anleitung zur Inbetriebnahme der virtuellen Maschinen sowie weitere Details zum Umgang mit den Interfaces des Prototypen. Im sonstigen Anhang ist ein Abbildungs- und Abkürzungsverzeichnis sowie eine Tabellen- und Listingübersicht aufgeführt. Zwei getrennte Verzeichnisse für Bücher und Internetquellen sowie ein Index befinden sich ganz am Ende dieses Dokumentes. 3 4 2. Grundlagen Dieses Kapitel gibt eine Einführung in die Thematik und Hintergrundinformationen. Dabei wird sich nicht mit der komplexen Mathematik beschäftigt, die sich hinter jedem Verschlüsselungsalgorithmus verbirgt. Vielmehr wird auf die Grundsätze und -bausteine sowie Funktionsweisen und Zusammenhänge der Kryptographie eingegangen. 2.1. Situation Was ist Kryptographie? Kryptographie (aus dem griechischen kryptós, ”verborgen”, und gráphein, ”schreiben”) ist ”die Wissenschaft der Ver- und Entschlüsselung von Informationen zum Zweck der Geheimhaltung gegenüber Dritten” [Cla03].Damit macht sie es möglich, die Aufbewahrung von Information in einer Form zu gewährleisten, die es erlaubt, diese Information nur denjenigen zu offenbaren, die sie erfahren sollen, während sie für alle anderen unerreichbar bleibt [URL1]. Dabei verfolgt die moderne Kryptographie wesentlich die im Folgenden angeführten vier Hauptziele [NDJB02], die in ihren Aussagen den Schutzzielen der Computersicherheit sehr ähneln [Cla03]. • Vertraulichkeit der Nachricht: Nur der gewünschte Empfänger soll in der Lage sein, den Inhalt einer verschlüsselten Nachricht zu lesen. Weiterhin soll es nicht möglich sein, Information über den Nachrichteninhalt zu erlangen1 . 1 Beispielsweise eine statistische Verteilung bestimmter Zeichen. 5 2.1. Situation Kapitel 2. Grundlagen • Datenintegrität der Nachricht: Der Empfänger soll in der Lage sein, festzustellen ob die Nachricht bei ihrer Übertragung verändert wurde. • Authentifizierung: Der Empfänger soll den Absender eindeutig identifizieren können. Weiterhin soll überprüfbar sein, ob die Nachricht tatsächlich von diesem Absender stammt. • Verbindlichkeit: Der Absender soll nicht in der Lage sein, zu bestreiten dass er die Nachricht gesendet hat. Kryptographie wandelt Klartext in Chiffretext2 um. Dabei bleibt dem Nutzer die Möglichkeit erhalten, den ursprünglichen Klartext aus dem Chiffretext wieder herzustellen. Diese Wiederherstellung ist jedoch nur durch den Besitz eines gemeinsamen ”Geheimnisses” zwischen Sender und Empfänger möglich [Bra02]. Heutzutage gibt es für die Verschlüsselung von Informationen zwei wesentliche kryptographische Verfahren, das symmetrische und das asymmetrische. Beide besitzen individuelle Stärken und Schwächen. Aus diesem Grund benutzen alle modernen kryptographischen Systeme beide Typen, um die Nachteile des einen Verfahrens durch die Vorteile des anderen zu kompensieren. Im Folgenden wird die symmetrische und asymmetrische Verschlüsselung näher betrachtet, des Weiteren wird auf Hybridmethoden eingegangen. Diese Überlegungen sollen im Ganzen zu der Notwendigkeit der Einführung einer Public Key Infrastruktur (kurz PKI) hinführen. 2 Der Verschlüsselte Klartext. 6 Kapitel 2. Grundlagen 2.2. Eigenschaften von Schlüsseln 2.2. Eigenschaften von Schlüsseln Bevor auf die eigentlichen kryptographischen Verfahren eingegangen wird, soll der Schlüssel, der den wesentlichen Bestandteil bei einer Verschlüsselung darstellt, einer näheren Betrachtung unterzogen werden. Dabei soll der folgende Abschnitt zur Erklärung dienen [BP01]. Eine Verschlüsselung nimmt Klartext und erzeugt mit Hilfe eines kryptographischen Schlüssels eine verschlüsselte Version des Klartextes, den Chiffretext. Dabei ist der kryptographische Schlüssel vergleichbar einem physikalischen Schlüssel, z.B. einem Haustürschlüssel. Dieser besitzt gewisse Eigenschaften die ihn als ”Haustürschlüssel” einzigartig machen. Das sind z.B. die Form des Schlüssels, die Art der Fräsung der Rillen oder seine Länge. Dabei kann es sein, dass der Schlüssel in verschiedene Schlösser passt. Aber nur in einem kann auch geschlossen und geöffnet werden. Kryptographische Schlüssel ähneln in vielerlei Hinsicht ihren physikalischen Vorbildern. So müssen die Schlüssel für die Verwendung mit einem kryptographischen Algorithmus z.B. die richtige Länge besitzen. Man kann den Algorithmus mit den verschiedensten Schlüsseln füttern, ähnlich dem Probieren von physischen Schlüsseln in einem Haustürschloss. Doch nur der Schlüssel mit dem richtigen Bitmuster bringt das gewünschte Ergebnis der Entschlüsselung des Geheimnisses. Der erste Punkt, der die Güte eines Schlüssels ausmacht, ist die Wahl eines guten Zufallszahlengenerators. Grund dafür ist die Erzeugung der symmetrische wie asymmetrische kryptographische Schlüssel, die auf Basis einer Quelle von Zufälligkeit generiert werden. Bei der symmetrischen Verschlüsselung ist dies die Wahl einer Zufallszahl der richtigen Länge, bei der asymmetrischen Schlüsslgenerierung ist dieser Vorgang ungleich komplexer, da zwei Schlüssel erzeugt werden müssen. Jedoch ist auch hier eine ”gute” Quelle der Zufälligkeit Voraussetzung für die Schlüsselgenerierung. Dabei versteht man unter ”gut”, dass in den gewählten Zufallszahlen nicht irgendein Muster nachgewiesen werden kann, nach welchem die Zahlen ausgewählt wurden. 7 2.2. Eigenschaften von Schlüsseln Kapitel 2. Grundlagen Soll nun ein solcher kryptographischer Schlüssel geknackt werden, ist das in etwa damit zu vergleichen, einen Schlüssel für ein physisches Schloss ohne die Kenntnis des inneren Aufbaus herzustellen. Ist diese Information nicht verfügbar, bleibt nichts anderes übrig, als eine Unzahl verschiedener Schlüssel herzustellen, um sie in dem fraglichen Schloss auszuprobieren. Ähnlich ist die Herangehensweise bei kryptographischen Schlüsseln. Allerdings übersteigt dort die Anzahl der möglichen Variationen, je nach verwendeter Schlüssellänge, die eines physischen Schlüssels bei weitem. Bei solch einem Versuch3 muss, statistisch gesehen, die Hälfte aller möglichen Schlüssel innerhalb des Schlüsselraums durchprobiert werden, um den richtigen Schlüssel zu ermitteln. Je länger dieser Schlüssel ist um so mehr vergrößert sich der Schlüsselraum und damit die Anzahl der möglichen Kombinationen die durchprobiert werden müssen. Deshalb ist die verwendete Schlüssellänge auch von entscheidender Bedeutung für die Güte des Schlüssels. Die Länge muss so gewählt werden, dass selbst das Durchprobieren der Hälfte aller möglichen Schlüssel für einen Angreifer unpraktikabel wäre [NDJB02]. Eine weiterer wichtiger Punkt in der Frage nach der Sicherheit eines Schlüssels ist die Wahl des kryptographischen Algorithmus. Dabei kann dieser Punkt nicht pauschal beantwortet werden, da die Ergebnisse, je nachdem in welcher Kombination Schlüssellängen und Algorithmen verwendet werden, stark variieren können. Der folgende tabellarische Überblick 2.1 verdeutlicht dies. In dieser Tabelle [URL2] werden verschiedener Schlüssellängen in Bezug zu den verwendeten kryptographischen Algorithmen gesetzt. Dabei werden verwendete Schlüssellängen symmetrischer Algorithmen zwei asymmetrischen Verfahren (dem ECC und RSA) gegenübergestellt4 . In dieser Tabelle aus dem Jahr 2000 wird davon ausgegangen, dass für die Beschaffung von Computerhardware $10 Millionen zur Verfügung stehen und ein 3 4 Zum Beispiel ein Brute-Force-Angriff. RSA Laboratorien Bulletin Nr.13 http://www.rsasecurity.com 8 Kapitel 2. Grundlagen Sym Key ECC Key 2.2. Eigenschaften von Schlüsseln RSA Key Zeit zur Mani- Rechner Speicher pulation 56 bit 112 bit 430 bit weniger als 5 Mi- 105 Trivial nuten 80 bit 160 bit 760 bit 600 Monate 4300 4GB 96 bit 192 bit 1020 bit 3 Millionen Jah- 114 170GB 0,16 120TB re 128 bit 256 bit 1620 bit 1016 Jahre Tabelle 2.1.: Schlüssellängen im Vergleich zur Sicherheit Megabyte Speicher jeweils $0,5 kostet. Diese Hardware wiederum soll für den Brute-Force-Angriff auf entsprechende Schlüssellängen und kryptographische Algorithmen eingesetzt werden. Wie man in Zeile vier sieht, können bei symmetrischer Verschlüsselung und einer Schlüssellänge von 128 bit mit $10 Millionen nur 16% der benötigten Rechnerkapazität erbracht werden. Hochgerechnet würden bei einer Verfügbarkeit von 100% trotzdem 100.000.000.000.000.000 Jahre (100 Billiarden) zum Knacken des Schlüssels benötigt werden. Mit anderen Worten: Eine Verschlüsselung bei einer symmetrischen Schlüssellänge von 128 Bit und einer asymmetrischen Schlüssellänge jenseits der 1024 bit ist zur Zeit unknackbar. Ähnlich verhält sich dies für eine Schlüssellänge von 96/1020 Bit für symmetrische/asymmetrische Verschlüsselung, wobei im besten Fall immer noch 3.000.000 Jahre darauf verwendet werden müssten, um zum Ziel zu gelangen. Alle anderen Schlüssellängen sollten für heutige sicherheitsrelevante Anwendungen nicht mehr in Betracht gezogen werden, da diese in einem überschaubaren Zeitraum mit entsprechenden technischen Aufwand geknackt werden können. 9 2.3. Symmetrische Verschlüsselung Kapitel 2. Grundlagen 2.3. Symmetrische Verschlüsselung Symmetrische Algorithmen existieren in zwei verschiedenen Typen. Zum einen als Block- und zum anderen als Datenstromalgorithmen. Blockalgorithmen verschlüsseln ihre Daten in kleinen Blöcken fester Länge, die typischerweise meist eine Länge von 8 oder 16 Byte haben. Die bekanntesten Vertreter sind Digital Encryption Standard (DES)5 , RC2, RC5 und RC6 (RC = Ron’s Code). Datenstromalgorithmen werden im Gegensatz zu Blockalgorithmen nicht auf Datenblöcke fester, sondern auf solche beliebiger Länge angewandt. Zu den bekanntesten Vertretern dieser Art gehört unter anderen der RC4-Algorithmus. Steht ein symmetrischer Algorithmus sowie ein gemeinsamer Schlüssel zur Verfügung, ist der Vorgang der Ver- und Entschlüsselung in der Abbildung 2.1 einfach zu erklären. Geheimnis symmetrische Verschlüsselung Geheimnis (verschlüsselt) symmetrischer Schlüssel Abbildung 2.1.: Vorgang der symmetrischen Verschlüsselung Der Klartext wird mit Hilfe eines Schlüssels symmetrisch verschlüsselt, wobei sich dieser Vorgang mit dem gleichen Schlüssel und Algorithmus jederzeit wieder umkehren lässt. Dieses Konzept besteht schon seit einiger Zeit6 . Dabei sind heutzutage verwendeten symmetrischen Algorithmen sicher und vor allem schnell. Weiterhin erzeugen symmetrischen Algorithmen einen kompakten 5 6 Erweitert auf 3-DES. Schon Caesar benutzte zur Verschlüsselung wichtiger Botschaften, einen eigens von ihm entworfenen Algorithmus, der auch als ”Caesar-Chiffre” [URL3] in die Geschichte eingegangen ist. 10 Kapitel 2. Grundlagen 2.3. Symmetrische Verschlüsselung Chiffretext, was bedeutet das die verschlüsselte Nachricht in etwa die gleiche Größe aufweist wie das Original. Diese Eigenschaft wiederum ermöglicht die Verschlüsselung großer Datenmengen in relativer kurzer Zeit. Deswegen eignen sich symmetrischen Algorithmen besonders für die sichere Übertragung einer hohen Anzahl von Daten. Jedoch gibt es ein schwerwiegendes Problem: Ein Einbrecher darf auf keinen Fall in den Besitz des symmetrischen Schlüssels gelangen. Diese Gefahr ist vor allem dann gegeben, wenn der Schlüssel für die Entschlüsselung über ein unsicheres Medium zum Ziel übertragen wird. Des Weiteren gibt es das Problem der Schlüsselverteilung innerhalb einer Gruppe. Gäbe es z.B. in einer Gruppe 10 Mitglieder, so müsste jeder der Gruppenmitglieder jeweils den symmetrischem Schlüssel des anderen besitzen. Das heißt, jeder müsste 9 Schlüssel zur Ver- und Entschlüsselung verwenden. Das sind 10x(10-1) Schlüssel für eine Gruppe von 10 Mitgliedern. Dabei steigt der Bedarf an Schlüsseln ca. dem Quadrat der Anzahl der Mitglieder der Gruppe. Daraus ergibt sich ein komplexes, unüberschaubares und dadurch nicht tragbares Schlüsselmanagement [NDJB02]. Einerseits sind also die symmetrischen Algorithmen zur Verschlüsselung großer Datenmengen gut geeignet, andererseits ist die Schlüsselverwaltung und Übermittlung als äußerst sicherheitskritisch zu betrachten. Folglich müsste man bei einer symmetrischen Verschlüsselung den Schlüssel nur einmal verwenden, was wiederum das Schlüsselmanagement um ein Vielfaches verkomplizieren würde. Im Folgenden sollen nun noch einmal kurz die eben besprochenen Vor und Nachteile aufgezeigt werden [NDJB02]: Vorteile • schnell • sicher • die verschlüsselten Daten sind im Vergleich zum Original in etwa genau so groß Nachteile 11 2.4. Asymmetrische Verschlüsselung Kapitel 2. Grundlagen • gleicher Schlüssel für Ver- und Entschlüsselung • komplexes Schlüssel-Management • sichere Übertragung des gemeinsamen Schlüssels notwendig 2.4. Asymmetrische Verschlüsselung Die asymmetrischen Algorithmen unterscheiden sich von den symmetrischen Algorithmen in einem wichtigen Punkt. Asymmetrische Verfahren verwenden für die Ver- und Entschlüsselung zwei Schlüssel die gleichzeitig generiert werden jedoch unabhängig voneinander existieren (je nach Verwendung zur Verbzw. Entschlüsselung). Dabei gelten für die Güte einer asymmetrische Verschlüsselung die gleichen Kriterien wie auch für die symmetrische, dass z.B. eine gute Quelle der Zufälligkeit verwendet wird. Bei symmetrischen Verfahren wird der Schlüssel durch eine Zufallszahl fester Länge generiert. Bei der asymmetrischen Schlüsselgenerierung ist dieser Vorgang komplexer, da zwei Schlüssel generiert werden. Auch hier stellt eine Quelle guter Zufälligkeiten die Basis für eine sichere Schlüsselgenerierung dar [BP01]. Einer der bekanntesten und erfolgreichsten asymmetrischen Verschlüsselungsalgorithmen ist der RSA-Algorithmus. Dieser wird typischerweise mit einer Schlüssellänge von 1024 Bit eingesetzt, was in etwa der Sicherheit einer symmetrischen Verschlüsselung von 128 Bit entspricht. Wie man sieht ist also für die Erreichung eines etwa gleichen Sicherheitsniveaus wie bei einer symmetrischen Verschlüsselung im Allgemeinen ein längerer Schlüssel erforderlich7 . Die zwei generierten Schlüssel sind völlig unabhängig voneinander, jedoch mathematisch verwandt [NDJB02]. Ist der Prozess der Schlüsselgenerierung abgeschlossen, stehen zwei Schlüssel zur Verfügung: öffentlicher Schlüssel (Public Key) und persönlicher Schlüssel (Private Key). Der öffentliche Schlüssel muss für alle zugänglich sein, der persönliche Schlüssel unter Verschluss gehalten 7 Siehe Abschnitt 2.2 ”Eigenschaften von Schlüsseln”. 12 Kapitel 2. Grundlagen 2.4. Asymmetrische Verschlüsselung werden. Soll nun eine Nachricht verschlüsselt werden kommt es zu folgenden Ablauf in Abbildung 2.2: Geheimnis Öffentlicher Schlüssel Bob Alice asymmetrische Verschlüsselung Geheimnis asymmetrische Verschlüsselung Privater Schlüssel Geheimnis Geheimnis (verschlüsselt) (verschlüsselt) Abbildung 2.2.: Vorgang der asymmetrische Verschlüsselung In diesem Szenario verschlüsselt Bob mit Hilfe des öffentlichen Schlüssels von Alice eine wichtige Nachricht, die nur Alice lesen darf8 . Nach der Verschlüsselung der Nachricht ist einzig Alice dazu fähig, mithilfe ihres privaten Schlüssels die Nachricht von Bob wieder zu entschlüsseln. Soweit ist dieses System sicher, doch ergibt sich bei näherer Betrachtung ein Problem. Für einen Angreifer ist es unter Verwendung des öffentlichen Schlüssels möglich, Alice eine Nachricht mit verändertem Inhalt, im Namen von Bob zu senden. Damit ist die Integrität und Authentizität der Nachricht nicht mehr gewährleistet. Aus diesem Grund wird ein Verfahren erforderlich, mit dem sich die Authentizität der Nachricht überprüfen lässt. 8 Anmerkung: Alice und Bob sind Synonyme für typische Personen, die verwendet werden, um Erklärungen auf den Gebieten der Kryptographie zu vereinfachen. 13 2.4. Asymmetrische Verschlüsselung Kapitel 2. Grundlagen Durch die Natur der asymmetrischen Verschlüsselung (mit ”public” verschlüsseln mit ”private” entschlüsseln) besteht kein Problem des Schlüsselmanagements, welches unter der symmetrischen Verschlüsselung auftritt. Jeder Teilnehmer einer Gruppe muss nur seinen öffentlichen Schlüssel zentral veröffentlichen. Daraus resultiert, dass eine Gruppe von 10 Personen jeweils nur 10 statt 90 Schlüssel austauschen muss. Dadurch wird der Aufwand des Schlüsselmanagements wesentlich vereinfacht. Da für den Absender nur die Kenntnis des öffentlichen Schlüssels nötig ist, der von einer für alle zugänglichen Stelle bezogen werden kann, ist es ohne weiteres möglich, ohne vorherigen Kontakt oder Schlüsselaustausch zwischen zwei Personen einen verschlüsselten Kontakt aufzubauen. Jedoch sind der asymmetrischen Verschlüsselung auch Grenzen gesetzt. Zum einen ist dies eine vergleichsweise langsame Verschlüsselung (ca. 10 bis 100mal langsamer als vergleichbare symmetrische Verfahren), welche die asymmetrischen Verfahren für die Verschlüsselung großer Datenmengen unbrauchbar macht. Zum anderen ist es eine Eigenschaft asymmetrischer Verschlüsselung, dass die verschlüsselte Datenmenge ungleich größer ist als das unverschlüsselte Original. Wie man sieht, gibt es auch bei den asymmetrischen Verfahren entscheidende Vor- und Nachteile, die sich folgendermaßen zusammenfassen lassen [Cla03]: Vorteile • keine Übertragung von geheimen Schlüsseln nötig • sicher • keine direkte Kontaktaufnahme notwendig • geringe Anzahl von Schlüsseln beim Schlüsselmanagement, dadurch vergleichsweise geringer Aufwand. Nachteile • langsam • verschlüsselte Nachricht größer als das Original 14 Kapitel 2. Grundlagen 2.5. Hybridverfahren 2.5. Hybridverfahren In den letzten beiden Abschnitten wurden die symmetrischen sowie asymmetrischen Verschlüsselungsverfahren mit ihren Eigenschaften betrachtet. In diesem Abschnitt sollen die Hybridverfahren vorgestellt werden. Vergleicht man die Listen der oben genannten Vor- und Nachteile, kann man etwas Interessantes feststellen. In jedem Bereich, in dem das eine Verfahren seine Stärken hat, hat das andere Verfahren seine Schwächen. Daraus ergibt sich die einzigartige Möglichkeit einer Kombination beider Technologien. Dabei kommen auf den ersten Blick folgende neue Eigenschaften zum Tragen [NDJB02]: • die Lösung ist sicher • die Verschlüsselung ist schnell • die verschlüsselten Daten sind kompakt • die Lösung lässt sich auf eine große Gruppe anwenden • es gibt keine unsichere Übertragung von Schlüsseln • eine vorherige Kontaktaufnahme ist nicht nötig Die nachstehende Abbildung 2.3 stellt die Funktionsweise von Hybridverfahren dar. Der Vorgang der Übertragung des Geheimnisses von Bob zu Alice beginnt mit der symmetrischen Verschlüsselung des Geheimnisses durch einen zufällig genierten Schlüssel, der nur für die Ver- und Entschlüsselung dieser einen Nachricht verwendet wird (auch Session Key genannt). Danach wird dieser Schlüssel mit dem öffentlichen Schlüssel von Alice über einen asymmetrischen Algorithmus verschlüsselt, so dass nur Alice zur Reproduktion in der Lage ist, da sie den dazugehörigen privaten Schlüssel besitzt. Anschließend werden nun 15 2.5. Hybridverfahren Geheimnis Kapitel 2. Grundlagen 1.1 symmetrische Verschlüsselung 1.3 Geheimnis (verschlüsselt) 1.2 3.1 Zufälliger Sym. Schlüssel Bob Nachricht 3.2 2.2 Öffentlicher Schlüssel Geheimnis 2.1 3.3 asymmetrische Verschlüsselung symmetrische Verschlüsselung 2.3 Sym. Schlüssel (verschlüsselt) 3.1 Geheimnis (verschlüsselt) 3.2 1.1 entschlüsselter Sym. Schlüssel Alice Nachricht 2.3 Privater Schlüssel 2.2 asymmetrische Verschlüsselung 1.2 2.1 Sym. Schlüssel (verschlüsselt) Abbildung 2.3.: Vorgang der Hybriden Verschlüsselung die beiden verschlüsselten Teile9 zusammen an Alice verschickt. Diese packt die beiden Teile‚ aus und entschlüsselt mithilfe ihres privaten Schlüssels den Session Key10 . Ist dieser entschlüsselt, kann über diesen die Nachricht in Klartext zurückgewandelt werden. Anschließend wird der symmetrische Schlüssel 9 10 Das symmetrisch verschlüsselte Geheimnis und der asymmetrisch verschlüsselte symmetrische Schlüssel. Der gemeinsame symmetrische Schlüssel zum Ver- und Entschlüsseln der Nachricht. 16 Kapitel 2. Grundlagen 2.6. Einführung digitaler Signaturen verworfen, da dieser nicht mehr gebraucht wird. Durch diese Kombination der Verfahren ergibt sich folgende Arbeitsteilung innerhalb der Hybridverfahren: Die symmetrische Verschlüsselung bringt Geschwindigkeit und kompakte Daten, die asymmetrische sorgt für Skalierbarkeit des Schlüsselmanagements sowie Widerstandsfähigkeit gegen Angriffe auf die Schlüssel. Darüber hinaus erweitert die Verwendung der asymmetrischen Verschlüsselung die Hybridverfahren um die Möglichkeit der digitalen Signaturen und damit der Nichtabstreitbarkeit einer Verschlüsselung11 [PB04]. Soweit ist dieses Verfahren äußerst effektiv und skalierbar. Der symmetrische Schlüssel ist geschützt und eine vorherige Kontaktaufnahme ist nicht nötig, da der öffentliche Schlüssel von einer öffentlichen Stelle bezogen werden kann. Jedoch wurde ein entscheidender Nachteil der asymmetrischen Verschlüsselung an die Hybridverfahren vererbt. Weiterhin besteht die Möglichkeit für einen Angreifer, den Prozess, den Bob für die Verschlüsselung des Geheimnisses vollzieht, auch für die Verschlüsselung einer falschen Nachricht nachzuvollziehen. Fängt der Angreifer dann anschließend die Nachricht ab, die Bob an Alice schickt, kann er seine eigene verfälschte Nachricht an Alice weiterleiten, ohne dass diese die Manipulation feststellen kann. Um solch eine Art von Manipulation zu verhindern, muss eine neue Art von Sicherung eingeführt werden. Diese Sicherung wird über das Verfahren der digitalen Signatur umgesetzt. 2.6. Einführung digitaler Signaturen Bevor auf das Verfahren der digitaler Signatur näher eingegangen werden kann, muss an dieser Stelle ein Einschub zum Thema Hashing stattfinden. Hashing: Das Hash-Verfahren ist entscheidend für den Einsatz digitaler Signaturen und soll an dieser Stelle kurz etwas genauer beleuchtet werden, um das Verständnis für dessen Einsatz innerhalb von digitalen Signaturen zu erleich11 Siehe Abschnitt 2.6 ”Einführung digitaler Signaturen”. 17 2.6. Einführung digitaler Signaturen Kapitel 2. Grundlagen tern. Ein Hashalgorithmus nimmt einen großen Datenblock und komprimiert diesen in den so genannten Fingerabdruck12 . Dieser Fingerabdruck hat die Eigenschaft, dass er absolut eindeutig ist. Das heißt, jeder durch einen Hash komprimierte Datenblock besitzt einen eigenen Fingerabdruck. Dieser ändert sich, sobald auch nur ein Bit das Datenblocks verändert wurde. Weiterhin ist ein Hashalgorithmus eine mathematische Einwegfunktion. Es ist also unmöglich, durch Umkehrung der Hashfunktion den Klartext oder Rückschlüsse auf die ursprüngliche Art des Inhaltes zu ermitteln [PB04]. Verwendet wird dieses Verfahren z.B. auch, um Klartext-Passwörter in einer Konfigurationsdatei zu verschlüsseln. Bekannteste Vertreter dieses Verfahrens sind u.a. der SHA1(secure Hash Algorithm) oder der MD5- Algorithmus (Message Digest Algorithm). Digitale Signaturen sind das digitale Gegenstück für analoge Unterschriften auf Papier. Ihr Einsatz hat zum Ziel, das oben beschriebene Problem des Unterschiebens falscher Informationen durch Dritte zu verhindern13 . Bevor nun auf das Verfahren der digitalen Signatur eingegangen wird, soll Abbildung 2.3 die Anschaulichkeit des Prozesses verdeutlichen. Wie man in dieser Abbildung sehen kann, wird mit der Hybridverschlüsselung zunächst die Nachricht für andere unlesbar gemacht. Danach beginnt erst der eigentliche Vorgang der Signierung. Als Erstes wird aus der ursprüngliche Nachricht durch einen Hashalgorithmus ein Fingerabdruck erzeugt. Dieser Fingerabdruck ist, wie der Name schon andeutet, eine eindeutige Prüfsumme, die nur mit der unveränderten Nachricht in Kombination mit dem Hashalgorithmus erzeugt werden kann. Wenn sich also nur ein Bit der Nachricht ändert, ändert sich auch die durch den Hash erzeugte Prüfsumme. Diese Prüfsumme wird nun mit dem privaten Schlüssel von Bob verschlüsselt und an die Nachricht angehängt. Somit ist die Signatur abgeschlossen. Nachdem Alice die 12 13 Fingerprint oder auch Digest genannt. Anmerkung: Aus der Sicht des Autors sind digitale Unterschriften bei richtiger Umsetzung und Anwendung ungleich schwieriger zu manipulieren als eine analoge Unterschrift. 18 Kapitel 2. Grundlagen Geheimnis 2.6. Einführung digitaler Signaturen 1.1 Hybrid Verschlüsselung Privater Schlüssel von Bob Hash 2.2 Geheimnis Nachricht Bob 2.1 Digest (Prüfsumme) 1.2 4 3.2 3.1 1.2 asymmetrische Verschlüsselung Hybrid Verschlüsselung 3.3 Digest (verschlüsselt) 1.1 Nachricht 2.1 Alice 3.1 Digest (verschlüsselt) 2.2 Hash Öffentlicher Schlüssel von Bob 3.2 2.3 asymmetrische Verschlüsselung 2.4 Aktueller Digest 4.1 =? 4.2 entschlüsselter Digest Abbildung 2.4.: Vorgang der digitalen Signierung Nachricht empfangen hat, trennt sie diese in den verschlüsselten Nutzteil und die Signatur14 auf und entschlüsselt als Erstes mit Hilfe des Hybridverfahrens die Nachricht von Bob. Um nun sicherzugehen, dass diese Nachricht nicht unterwegs verändert wurde, erzeugt sich Alice durch die Verwendung desselben Hashalgorithmus wie Bob eine aktuelle Prüfsumme aus der entschlüsselten Nachricht. Ist dieser Vorgang abgeschlossen, nimmt Alice die von Bob mit sei14 Die mit dem privaten Schlüssel von Bob verschlüsselte Prüfsumme. 19 2.7. Einführung digitaler Zertifikate und der PKI Kapitel 2. Grundlagen nem privaten Schlüssel verschlüsselte Prüfsumme und entschlüsselt diese mit dem öffentlich verfügbaren Schlüssel von Bob. Nach diesem Vorgang besitzt Alice zwei Prüfsummen. Die aktuell selbst erzeugte und die durch Bob erzeugte Prüfsumme. Vergleicht Alice diese Prüfsummen, bekommt sie zwei mögliche Situationen. Erstens, die Prüfsummen sind gleich: dies bedeutet, die Nachricht ist unverändert. Zweitens, die Prüfsummen sind ungleich: es muss von einer Manipulation ausgegangen werden. Soweit ist dieses System ”wasserdicht”. Bis auf eine kleine Schwachstelle, die es möglich macht, das System zu unterwandern. Diese Schwachstelle ist der öffentliche Schlüssel. Ist es einem Angreifer möglich, auf dem Server einzudringen, auf dem z.B. die öffentlichen Schlüssel einer ganzen Gruppe abgelegt sind, ist es möglich, diese durch eigene öffentliche Schlüssel zu ersetzen. Ist dies gelungen, kann der Angreifer seine eigenen Nachrichten als die von Bob ausgeben und so den gesamten verschlüsselten Datenverkehr manipulieren [NDJB02]. Diese offensichtliche Schwachstelle macht es nötig, einen zusätzlichen Mechanismus einzuführen, um die Integrität der öffentlichen Schlüssel zu gewährleisten. An diesem Punkt kommt die Technik der digitalen Zertifikate zum Tragen. 2.7. Einführung digitaler Zertifikate und der PKI Das digitale Zertifikat stellt eine Verknüpfung zwischen einer Identität und einem Schlüsselpaar her. Mit anderen Worten besagt ein digitales Zertifikat im einfachsten Falle nichts anderes, als ”dass garantiert wird, dass dieser öffentliche Schlüssel der des Nutzers XY ist!” [NDJB02] In der simpelsten Form listet dabei das Zertifikat den Besitzer auf und enthält zusätzlich dessen öffentlichen Schlüssel. Das Ganze wiederum macht keinen Sinn, wenn die Zertifikate nicht Verwaltet werden, da so kein Vertrauen aufgebaut werden kann. Vertrauen aber stellt die Basis für sichere Kommunikation dar. Der Begriff ”Vertrauen” wird in der 2000er Version von X.509 [URL4] folgendermaßen definiert: ”Im Allgemeinen 20 Kapitel 2. Grundlagen 2.8. Grundlagen und Begriffserklärung zur PKI kann man davon ausgehen, dass ein Teilnehmer einem anderen Teilnehmer vertraut, wenn der erste Teilnehmer annimmt, das sich der zweite Teilnehmer genauso verhalten wird, wie der erste Teilnehmer es erwartet”15 [NDJB02]. Um dieses Vetrauen zu gewährleisten, muss es zentrale, für alle Teilnehmer vertrauenswürdige Instanzen geben, die die Zertifikate signieren, um ihre Unverfälschtheit garantieren zu können. Weiterhin müssen diese Zertifikate von dieser Stelle auch verwaltet und deren Integrität garantiert werden. Die Notwendigkeit der Verwaltung und der Aufbau gewisser Vertrauensketten zieht nun die Einführung einer effektiven Architektur nach sich. Diese Architektur wurde in dem Standard X.509 (der Network Working Group) für die Form von digitalen Zertifikaten konkretisiert [RLNVC02]. X.509 wurde erstmals im Jahre 1988 veröffentlicht. Dabei stand im Zusammenhang mit dessen anfänglicher Entwicklung die Verbindung mit dem X.500Standard16 . Diese Anlehnung schlug sich am Ende in einem strikten hierarchischen System nieder, in dem vertrauenswürdige Zertifizierungsstellen die ihnen anvertrauten Zertifikate verwalten. Diese Infrastruktur auf Basis der X.509 Zertifikate wird auch als Public Key Infrastruktur, oder kurz PKI, bezeichnet. Wenn im Folgenden die Begriffe PKI oder Public Key Infrastruktur verwendet werden, ist damit immer die gleiche Infrastruktur auf Basis des X.509 Standards gemeint. Dieser Standard und die damit implementierbare Infrastruktur soll im folgenden Abschnitt in ihren Grundbausteinen näher betrachtet werden. 2.8. Grundlagen und Begriffserklärung zur PKI Mit dem X.509 Standard werden Zertifikatformate, -felder, Verteilungsprozesse und Vorschriften zur Verteilung der Zertifikate beschrieben [BP01]. Um diese Zertifikate zu verwalten, kommt das Konzept der PKI zum Tragen. Dabei 15 16 ITU-T Empfehlung X.509 Beschreibt den Aufbau eines Verzeichnisdienstes [URL5]. 21 2.8. Grundlagen und Begriffserklärung zur PKI Kapitel 2. Grundlagen ist die primäre Rolle der Implementierung einer PKI der Aufbau von digital vertrauenswürdigen Identitäten. Das Problem der Erzeugung einer vertrauenswürdigen Identität besteht nun in der Tatsache, eine Instanz zu finden, die eine ausreichende Vertrauenswürdigkeit für eine Gruppe von Nutzern aufweist, um Identitäten zu bestätigen. Diese Aufgabe übernimmt in der richtigen Welt z.B. eine Behörde, um etwa einer natürlichen Person einen Ausweis auszustellen, der sie als Staatsangehörigen eines bestimmten Landes mit Namen, Adresse, Geburtstag usw. ausweist. In der digitalen Welt übernimmt diese Rolle die Zertifizierungsstelle (Certification Authority oder CA). Diese ist innerhalb einer PKI die vertrauenswürdige Autorität, die digitale Identitäten ausstellt. Basis dafür ist ein absolutes Vertrauen der Nutzer auf die Integrität der Zertifizierungsstelle. Ohne dieses Vertrauen ist das ganze Konzept hinfällig! Das Schaubild 2.5 gibt einen Überblick über die Prozesse und Interaktionen innerhalb einer PKI [PB04]. Bei zertifikatsbasierten Systemen, wie einer PKI, erhält jeder Benutzer ein digitales Zertifikat, welches seine Identität bestätigt und den öffentlichen Schlüssel enthält. Jedes dieser Zertifikate ist von einer ausgebenden Zertifizierungsstelle beglaubigt, die ihrerseits wieder von höheren Stellen autorisiert sein kann. Dabei ist das Vertrauenssystem streng hierarchisch aufgebaut. Die gemeinsame Vertrauensbasis bildet hierbei das so genannte Wurzelzertifikat (Root Certificate), dass von jeder Zertifizierungsstelle extra veröffentlicht wird. Durch dieses Wurzelzertifikat wird es möglich, die durch die Zertifizierungsstelle veröffentlichten Zertifikate auf ihre Integrität zu prüfen. Bevor nun weiter die einzelnen Prozesse innerhalb einer PKI besprochen werden, soll an dieser Stelle auf die einzelnen Komponenten näher eingegangen werden. 22 Kapitel 2. Grundlagen Antrag genehmigt 2.8. Grundlagen und Begriffserklärung zur PKI SignaturServer CA Signierung Veröffentlichung RA Public Zertifikatspeicher Zertifizierungsantrag von Alice Zertifizierungsantrag von Bob Bob Zertifikate Anfragen PSE Gültigkeit der Zertifikate prüfen SecurityMechanismus Applikation z.B. E-Mail-Client Alice PSE SecurityMechanismus Kommunikation Applikation z.B. E-Mail-Client PKA PKA Abbildung 2.5.: Grundlegender Aufbau einer PKI 2.8.1. Zertifizierungsstelle - CA Die CA (Certification Authority) besteht aus mehreren untergeordneten Komponenten oder Diensten, die in den folgenden Abschnitten besprochen werden. Dabei vergibt die CA eindeutige Identitäten und verwaltet für jeden Teilnehmer ein oder mehrere Zertifikate. Jedes durch die CA erzeugte Zertifikat verbindet den öffentlichen Schlüssel des Teilnehmers mit dessen Namen und wei- 23 2.8. Grundlagen und Begriffserklärung zur PKI Kapitel 2. Grundlagen teren Daten, wie Gültigkeitsdatum und Seriennummer. Durch die Verwaltung der Zertifikate können die öffentlichen Attribute der Teilnehmer, wie Position, Namen, Rechte usw. einfach verifiziert werden. Darüber hinaus legt die CA Prozeduren, Richtlinien und Regeln innerhalb ihres Geltungsbereichs fest, mit deren Hilfe Nutzer und Antragsteller sichergehen können, dass die durch die CA ausgestellten Identitäten für das angestrebte Sicherheitsniveau ausreichend sind. Diese Regeln werden in der sogenannten Certification Policy (CP) und dem dazugehörigen Certification Practice Statement (CPS) festgelegt. Nähere Informationen dazu liefert das Kapitel 3 ”Analyse”. Registrierungsstelle - RA Die RA (Registration Authority) bildet die Schnittstelle zwischen den Teilnehmern bzw. Antragstellern und der CA, an die sie die Anträge weiterleitet. Dabei kann die Aufgabe der RA von einem menschlichen Operator erfüllt werden. Hauptaufgabe ist es, die Anträge auf Zertifizierung zu erfassen, die Identität der Antragsteller entsprechend den eigenen Richtlinien zu prüfen sowie anschließend die Anträge anhand der Richtlinien abzulehnen oder anzunehmen. Wird ein Antrag angenommen, wird dieser zum digitalen Unterschreiben an die entsprechende Stelle der CA weitergeleitet. Zertifizierungsserver Der Zertifizierungsserver ist die Komponente, die innerhalb der CA für die Herausgabe von Zertifikaten auf Basis der durch die RA erhobenen Daten zuständig ist. Hier wird der öffentliche Schlüssel des Antragstellers von der CA digital signiert. Zertifikatsspeicher Ausgestellte Zertifikate müssen, bevor sie benutzt werden, von der CA veröffentlicht werden. Hierfür stehen verschiedene Möglichkeiten zur Verfügung. Zum einen können die Zertifikate in einer internen Datenbank abgelegt und 24 Kapitel 2. Grundlagen 2.8. Grundlagen und Begriffserklärung zur PKI über ein Webinterface veröffentlicht werden. Zum anderen kann die Verwaltung einer CA einen eigenen Directory Service betreiben. Hier werden die als gültig zertifizierten öffentlichen Schlüssel der Teilnehmer über einen LDAP-Zugriff (Lightweight Directory Access Protocol) durch entsprechende Applikationen, die dies unterstützen (wie z.B. E-Mail und Adressprogramme), zum Abruf bereitgehalten. Es können auch zurückgezogene oder gesperrte Schlüssel in einer Sperrliste veröffentlicht werden. Public Interface Unter einem Public Interface versteht man eine zentrale Instanz innerhalb einer CA, die dem Nutzer alle nötigen Informationen zur Nutzung der PKI zur Verfügung stellt. Dabei werden über das Public Interface nicht nur Zertifikate veröffentlicht. Weiter können darüber die CP und CPS sowie die das RootZertifikat der CA herausgegeben werden. Günstig erscheint auch, über diese Schnittstelle das Beantragen und Sperren von Zertifikaten abzuwickeln. Die Einsatzmöglichkeiten sind vielfältig und ändern sich je nach Einsatzgebiet der CA. 2.8.2. PKI zugelassene Anwendungen - PKA Als PKA (PKI-enabled Application) wird eine Anwendung bezeichnet, die auf der Grundlage der von der PKI zur Verfügung gestellten Dienste (Zertifikate, LDAP etc.) eine entsprechende vertrauenswürdige Nutzung ermöglicht17 . Dabei bildet eine PKI die Sicherheitsgrundlage für die vertrauenswürdige Nutzung von Anwendungen wie z.B. • E-Mail • Dokumentenverschlüsselung • Transaktionen im Bankbereich 17 Beispiel für eine PKA ist z.B. ein SSL-fähiger Browser. 25 2.9. Prozesse innerhalb der PKI Kapitel 2. Grundlagen • SSL (Secure Sockets Layer) Kommunikation • VPN (Virtual Private Network) Kommunikation • Identifikation und Authentisierungsprozesse 2.8.3. Persönliche Sicherheitsumgebung - PSE PSE (Personal Security Environment) ist in der realen Welt mit einem großen Schlüsselbund vergleichbar. In der digitalen Welt ist dies die Ansammlung aller sicherheitsrelevanten Daten eines Teilnehmers der PKI. Dazu gehören unter anderen private Schlüssel, Zertifikate der Kommunikationspartner und die öffentlichen Schlüssel der CA18 . 2.9. Prozesse innerhalb der PKI In diesem Abschnitt sollen die grundlegenden Prozesse, die die Funktionsweise einer PKI ausmachen, näher betrachtet werden. Dazu gehören u.a. Erstellung und Abgleich von Zertifikaten sowie Signieren und Verschlüsseln von Nachrichten auf Basis der, von der PKI zur Verfügung gestellten Dienste. 2.9.1. Erstellung von Zertifikaten Den ersten Schritt in diesem Szenario unternimmt der Nutzer, indem er sich selbst ein Schlüsselpaar generiert. Ist dies geschehen, erzeugt er sich einen digitalen Antrag (Certification Request CSR), in dem notwendige Informationen für die RA sowie der eigene öffentliche Schlüssel abgelegt werden. Dieser Antrag wird an die RA der Zertifizierungsstelle geschickt, durch die zertifiziert werden soll. Nach Erhalt dieses Antrages prüft die RA die Angaben im Antrag auf Richtigkeit. Sind diese Angaben nach den festgelegten Regeln der CA verifiziert, wird der Antrag an den Zertifizierungsserver weitergereicht, der diesen 18 Ein Beispiel für die Anwendung wäre z.B. der Keystore eines Browsers oder der Schlüsselbund unter Mac OS X. 26 Kapitel 2. Grundlagen 2.9. Prozesse innerhalb der PKI digital signiert. Dadurch wird nach der Signierung durch den Zertifizierungsserver aus dem Antrag ein Zertifikat. Im Folgenden sollen die Schritte der Signierung eines Antrages genauer erläutert werden. 1. Der Zertifizierungsserver nimmt das nicht unterschriebene Zertifikat, also den Antrag, und generiert daraus mit einer Hashfunktion eine eindeutige kryptographische Prüfsumme. 2. Anschließend wird diese kryptographische Prüfsumme mit dem privaten Schlüssel der CA verschlüsselt. 3. Um das Zertifikat zu unterschreiben, wird die oben verschlüsselte Prüfsumme im Antrag hinterlegt. Damit wird aus dem Antrag ein Zertifikat Das Zertifikat enthält nach der Signierung folgende Basisinformationen: 1. die Kennung der Zertifizierungsstelle, die das Zertifikat erstellt hat, 2. die Kennung des Nutzers, für den das Zertifikat erstellt wurde, 3. seinen öffentlichen Schlüssel, 4. die Gültigkeitsdauer des Zertifikats. Nachstehende Abbildung 2.6 verdeutlicht den eben beschriebenen Vorgang. Prinzip einer Zertifizierung: Das Zertifikat wird von der Zertifizierungsinstanz, die es erstellt hat, digital signiert. Jeder Nutzer, der den öffentlichen Schlüssel der Zertifizierungsinstanz besitzt, kann damit überprüfen, ob der öffentliche Schlüssel des Nutzers19 wirklich von der Zertifizierungsinstanz ausgegeben wurde. Die Zertifizierungsinstanz veröffentlicht Zertifikate mit öffentlichen Schlüsseln von Nutzern, die deren Zugehörigkeit zur PKI bestätigen. Ist die Zertifizierungsinstanz vertrauenswürdig, ist auch ein von ihr zertifizierter öffentlicher Schlüssel und der damit verbundene Nutzer vertrauenswürdig. Die daraus entstehenden Beziehungen nennt man auch Vetrauenskette. 19 Hinterlegt im Zertifikat. 27 2.9. Prozesse innerhalb der PKI Alice Kapitel 2. Grundlagen 1) Alice erzeugt sich ein Schlüsselpaar, anschließend einen CSR und schickt diesen an die RA der PKI Signiertes Zertifikat Signatur des Zertifikates Kennung der Zertifizierungsinstanz Kennung des Benutzers Gültigkeitsdauer des Zertifikates Public Key des Inhabers Zertifikatsantrag (CSR) Hash 2) nach der Prüfung und Freigabe durch die RA signiert die CA den Antrag. 2.1) Hashfunktion auf CSR anwenden Public Key Verfahren z.B. RSA Prüfsumme 2.1) Prüfsumme mit Private Key der CA verschlüsseln Private Key der CA Signieren des CRS Abbildung 2.6.: Erstellung eines Zertifikates 2.9.2. Verifizieren von Zertifikaten Nach dem Erhalt eines Zertifikates muss als Erstes geprüft werden, ob dieses Zertifikat vertrauenswürdig ist. Dazu werden folgende Schritte, wie in Abbildung 2.7, vom Sicherheitssystem, z.B. eines E-Mail-Clienten, durchgeführt. 28 Kapitel 2. Grundlagen 2.9. Prozesse innerhalb der PKI Signiertes Zertifikat Signatur des Zertifikates Kennung der Zertifizierungsinstanz Kennung des Benutzers Gültigkeitsdauer des Zertifikates Public Key des Inhabers Zertifikatsantrag (CSR) 1) Hashfunktion anwenden Hash Public Key der CA Public Key Verfahren z.B. RSA 2) Prüfsumme entschlüsseln Aktuelle Prüfsumme 3) Prüfsumme auf Gleichheit prüfen Ursprüngliche Prüfsumme Vergleich ? Gleichheit = an der CA zugelassen und sicher Ungleich = nicht zugelassen oder kompromittiert Abbildung 2.7.: Prüfung eines Zertifikates 1. Es wird die aktuelle kryptographische Prüfsumme durch Einsatz einer Hashfunktion über das Zertifikat berechnet. 29 2.9. Prozesse innerhalb der PKI Kapitel 2. Grundlagen 2. Aus dem Zertifikat wird die Signatur extrahiert und mit dem öffentlichen Schlüssel der CA unter Anwendung des Public Keys in die ursprüngliche kryptographische Prüfsumme zurückberechnet. 3. Stimmen die Prüfsummen überein, wird damit die Zugehörigkeit des Nutzers zu der CA bestätigt und die Unversehrtheit und Echtheit des im Zertifikat enthaltenen öffentlichen Schlüssels garantiert. Mit anderen Worten: der öffentliche Schlüssel des Nutzers, mit dem man in Verbindung treten möchte, ist auch der, für den er sich ausgibt, so dass E-Mails, die mit diesen Schlüssel verschlüsselt oder signiert werden, nicht durch Dritte verändert werden können. 2.9.3. Signieren Im folgenden Abschnitt wird näher auf den praktischen Nutzen der oben beschriebenen Verfahren eingegangen und das digitale Signieren einer Nachricht genauer betrachtet. Zuerst wird dazu ein grober Überblick über den Prozess der E-Mail-Signierung gegeben. Es soll verdeutlicht werden, inwieweit, wo und wie auf die Komponenten der PKI zugegriffen und mit diesen interagiert wird. Ziel ist es dabei einen Überblick über die Abläufe innerhalb der PKI zu geben. Anschließend wird detailliert jeder Schritt der Signierung und Verschlüsselung aufgezeigt. Betrachtet man dabei den Ablauf der E-Mail-Signierung, ergibt sich folgendes Bild in Abbildung 2.8: Will Bob eine signierte Nachricht an Alice schicken, signiert er diese mit seinem, von der CA ”XY” zugelassenen privaten Schlüssel und überträgt die Nachricht an Alice. Bekommt Alice diese Nachricht, muss sie, will sie der Nachricht vertrauen, als Erstes mit Hilfe der von der CA veröffentlichten Zertifikate prüfen, ob die digitale Signatur von Bob stammt. Dazu wird zunächst das Zertifikat von Bob und der darin enthaltene Schlüssel unter Anwendung des Wurzelzertifkates der zuständigen CA auf seine Integrität geprüft. Ist dieser Test erfolgreich, kann Alice auf Basis 30 Kapitel 2. Grundlagen 2.9. Prozesse innerhalb der PKI des Zertifikates von Bob die Signatur der Nachricht auf Manipulationen hin prüfen. Dieser Prozess stellt sich im Detail folgendermaßen dar: 1) über den Inhalt der E-Mail eine kryptographische Prüfsumme berechnen E-Mail Hash PKI 2) mit Private Key Verschlüsseln Public Key Verfahren z.B. RSA Prüfsumme Private Key von Bob Signatur Bob 5) Zrt. von Bob aus der PKI beziehen und auf Gültigkeit prüfen E-Mail (in Klartext) 3) Signatur an E-Mail anhängen Signatur 4) E-Mail an Alice verschicken 6) Signatur mit Public Key von Bob entschlüsseln Public Key von Bob Ungleich = E-Mail wurde kompromittiert =? ursprüngliche Prüfsumme 8) auf Gleichheit prüfen Gleich = E-Mail OK Public Key Verfahren z.B. RSA Alice Signatur 7) mit gleicher Hashfunktion wie Bob über den Inhalt der E-Mail eine kryptographische Prüfsumme berechnen aktuelle Prüfsumme Hash Abbildung 2.8.: Signierung einer E-Mail 31 E-Mail 2.9. Prozesse innerhalb der PKI Kapitel 2. Grundlagen 1. Bob berechnet über den Inhalt der E-Mail einen Hashwert und bildet damit einen eindeutigen Fingerabdruck. 2. Bob verschlüsselt den Hashwert mit Hilfe seines geheimen Schlüssels und bildet damit die elektronische Signatur. 3. Bob verschickt die Nutzdatei und die Signaturdatei zusammen. 4. Alice erhält die Nachricht und die Signaturdatei. 5. Alice entschlüsselt die Signatur mit Hilfe des öffentlichen Schlüssels von Bob (aus dem vorher mit dem Wurzelzertifikat der CA verifizierten Zertifikat) und erhält damit den von Bob erzeugten Hashwert. 6. Alice berechnet den Hashwert über den Inhalt der E-Mail erneut und bekommt damit einen aktuellen Fingerabdruck. 7. Alice vergleicht die beiden Hashwerte20 : sind diese identisch, dann wurde die Datei vom richtigen Absender verschickt (Authentifizierung, Authentizität) und nicht verändert (Integrität). Dies wiederum setzt voraus, dass nur der gewünschte Absender im Besitz des geheimen Schlüssels ist21 . 2.9.4. Verschlüsseln Abschließend zu den praktischen Grundlagen einer PKI soll hier die Verschlüsselung von Nachrichten betrachtet werden. Dabei ist diese eigentlich nur noch ein Aufsatz, der nach dem Signieren der Nachricht vollzogen wird. Zum einen ist, im Unterschied zur Signierung, die Information nach dem Verschlüsseln nicht mehr für Dritte einsehbar, zum anderen braucht der Absender (Bob) vor 20 21 Aktueller Fingerabdruck gegen den entschlüsselten Fingerabdruck von Bob. Hinweis: Der Inhalt einer Datei wird durch eine Signatur nicht verschlüsselt. Die signierte Datei ist weiter lesbar und auch veränderbar. Eine elektronische Signatur, zumindest wenn dafür entsprechende Verfahren wie asymmetrische Verschlüsselung eingesetzt werden, dient lediglich zur Erkennung, ob die Datei nach der Signierung verändert wurde. 32 Kapitel 2. Grundlagen 2.10. Zusammenfassung dem Verschlüsseln der E-Mail den Public Key des Empfängers (Alice). Bob muss sich also vor dem Verschlüsseln das Zertifikat von Alice bei der PKI besorgen und dieses verifizieren. Ist das geschehen, kann nach dem Signieren die Nachricht für Alice mit deren Public Key verschlüsselt werden. Alice wiederum benutzt ihren Privat Key um die Nachricht zu entschlüsseln. Zusätzlich dazu wird die Nachricht danach, wie oben schon beschrieben, auf Änderungen geprüft. Ist diese negativ, kann man von einer absolut sicheren Übertragung ausgehen. 2.10. Zusammenfassung In diesem Kapitel wurden Vorüberlegungen zu den Entwicklungen der Verschlüsselungstechnologien hin zur Einführung einer Public Key Infrastruktur vermittelt. Dabei wurden grundlegende Prinzipien und Vorgänge der einzelnen Verfahren erläutert, um auf Basis dieses Wissens die Notwendigkeit der Einführung einer PKI zu verdeutlichen. In einem weiteren Schritt wurden die Grundbausteine, Prinzipien und Prozesse innerhalb einer PKI veranschaulicht. 33 34 3. Analyse Dieses Kapitel dokumentiert die Erarbeitung von Regelungen, Abläufen und Vorgaben innerhalb der fachbereichsweiten Public Key Infrastruktur. 3.1. Einleitung Im Rahmen dieser Diplomarbeit geht es im Folgenden um die Analyse der geplanten Public Key Infrastruktur. Dabei wird sich in erster Linie an der RFC 3647 [OSSIVCGL+ 03] orientiert. Diese RFC gibt dem Entwickler der PKI ein Gerüst von Überschriften, Themen-Gebieten und Problemstellungen, die in der Planung einer PKI Berücksichtigung finden sollen. Dabei entsteht, hält man sich an die Vorgaben, ein aussagekräftiges Dokument, welches alle nötigen Informationen über die PKI beinhaltet. Dieser Abschnitt, der auch als Policy bezeichnet wird, stellt die Grundlage für fast alle Aktionen der Zertifizierungsstelle (Certification Authority - CA) dar und legt darüber hinaus Richtlinien fest, die von den unterhalb der CA zertifizierten SubCAs und Benutzern einzuhalten sind. Damit dient sie auch gleichzeitig der Kontrolle der Anwender über die Qualität der erteilten Zertifikate. Mit anderen Worten: Mit der Qualität und Einhaltung der Policy steht und fällt die Vertrauenswürdigkeit einer CA und die daraus resultierende PKI. Normalerweise wird die Policy und die darin enthaltene ”Zertifizierungsrichtlinie” (Certification Policy - CP) und ”Erklärung zum Zertifizierungsbetrieb” (Certificate Practice Statements - CPS) in zwei getrennten Dokumenten von der CA auf einem für die Öffentlichkeit erreichbaren Platz bereitgestellt. Da 35 3.1. Einleitung Kapitel 3. Analyse diese Praxis (die Teilung des Dokumentes) jedoch die Lesbarkeit der Arbeit unnötig verkomplizieren würde, wird die CP und CPS zusammen in allen nötigen Einzelheiten in diesem Kapitel abgehandelt. Dabei wird der Fokus in erster Linie auf eine Studie für die Umsetzung einer möglichen PKI an dem Fachbereich Design Informatik Medien (DCSM)1 gelegt. Eine mögliche Ausweitung auf die gesamte Fachhochschule Wiesbaden im Speziellen wird ebenfalls bei der Betrachtung mit berücksichtigt. Um die Trennung der Dokumente CP und CPS trotzdem weitgehend zu verdeutlichen, wird durch entsprechende Überschriften und Kommentare auf die Zugehörigkeit einzelner Abschnitte hingewiesen. Innerhalb der FB-PKI können verschiedene Zertifizierungsstellen existieren, die Zertifikate für verschiedene Sicherheitsniveaus ausstellen. Die dabei angewandten Verfahren können dabei unterschiedlich sein, wenn sie der Zertifizierungsrichtlinie und der Erklärung zum Zertifizierungsbetrieb der FB-PKI entsprechen. Ein möglicher Aufbau der FB-PKI ist in Abbildung 3.1 dargestellt. Die hier vorgelegte CP und CPS ist, wie anfänglich erwähnt, auf Basis der Anforderungen der RFC 3647 entworfen. Außerdem wurde sich an der CP-Classic [DFN05b] und CPS-Classic [DFN05a] der Public Key Infrastruktur des deutschen Forschungsnetzes orientiert2 . Es wird darauf hingewiesen, dass die hier gemachten Aussagen keinen Anspruch auf Vollständigkeit erheben. Die hier vorgetragenen Punkte sollten vor dem Einsatz in einer produktiven PKI nochmals überprüft und gegebenenfalls angepasst werden. In der CP und CPS sind die Bedingungen für die Ausstellung von Zertifikaten entsprechend der internationalen Norm X.509 [RLNVC02] festgelegt. Dabei beschreibt diese Analyse die Eigenschaften der ausgestellten Zertifikate und geltenden Sicherheitsvorgaben (CP-Teil), die Vorgänge innerhalb der PKI sowie detaillierte Informationen über Spezifikationen, die Prozesse der Zertifi- 1 2 FB-PKI http://www.dfn-cert.de/ 36 Kapitel 3. Analyse 3.1. Einleitung zierungsstellen und die Sicherheitsmaßnahmen (CPS-Teil). Es ist möglich für die gesamte PKI Zertifikate auf Basis dieser Dokumente zu erstellen. Dabei sind die darin gemachten Aussagen für alle Teilnehmer bindend3 . Die an dieser Stelle dargelegte CP/CPS kann als RootCP/CPS der FB-PKI Verwendung finden und damit an die in der FB-PKI existierenden untergeordneten Zertifizierungsstellen (SubCAs) vererbt werden. Dabei kann das hier definierte Niveau von diesen untergeordneten Zertifizierungsstellen modifiziert werden. Es ist jedoch darauf zu achten, dass folgende Einschränkungen gelten: Es dürfen weder technische, organisatorische, infrastrukturelle noch personelle Maßnahmen negativ verändert werden. Das heißt, die eben genannten Teile sind als Standard anzusehen, um Qualität und Wirksamkeit zu wahren. Ändert eine Zertifizierungsstelle die CP/CPS im Rahmen ihrer Möglichkeiten, muss sie die Änderungen dabei gesondert veröffentlichen. 3.1.1. Teilnehmer der Zertifizierungsinfrastruktur Im Folgenden geht es um den grundlegenden Aufbau und die Teilnehmer der FB-PKI, dabei vermittelt die Abbildung 3.1 eine Übersicht über deren Aufbau. FB RootCA Externe CA ExtMitar.A ExtMitar.B User CA User.A User.B Technische CA VPN WebServer Abbildung 3.1.: Aufbau der Fachbereich-PKI 3 Wenn sie den geltenden Gesetzen entsprechen. 37 3.1. Einleitung Kapitel 3. Analyse An dieser Stelle der Studie soll darauf eingegangen werden, wie die PKI auf die gesamte Fachhochschule angewendet werden kann. Die Abbildung 3.2 soll dabei zur Konkretisierung dienen. FH RootCA Studenten CA StudentA StudentB Mitarbeiter CA Mitarb.A Mitarb.B Technische CA VPN WebServer Abbildung 3.2.: Aufbau der Fachhochschul-PKI 3.1.2. Oberste Zertifizierungsstelle (PCA) CP Die Policy Certification Authority (PCA - RootCA) ist die oberste Instanz der PKI und besitzt ein selbstsignierendes Zertifikat (Root Zertifikat). Alle Nutzer der PKI können sich dieses Zertifikat öffentlich herunterladen, um so die Integrität der durch die PCA zertifizierten Zertifizierungsstellen zu verifizieren. Dabei ist zu beachten, dass die PCA nur unmittelbar untergeordnete Zertifizierungsstellen zertifizieren darf. Anmerkung: Gilt die hier dargelegte CP/CPS für alle durch die PCA ausgestellten Zertifikate, so ist sie ebenfalls gültig für alle davon abgeleiteten Zertifikate innerhalb der PKI. Somit gibt die CP/CPS der RootCA den Rahmen und die Mindestanforderungen für das Sicherheitsniveau der gesamten PKI vor. Dabei kann die CP und das dazugehörige CPS, wie oben schon erwähnt, durch untergeordnete Zertifizierungsstellen entsprechenden Bedürfnissen angepasst werden. Dabei darf sich jedoch auf keinen Fall das Sicherheitsniveau 38 Kapitel 3. Analyse 3.1. Einleitung durch die gemachten Änderungen abschwächen. CPS Die RootCA besitzt ein selbstsigniertes Zertifikat (Root-Zertifikat), das den öffentlichen Schlüssel der RootCA enthält. Mit diesem Zertifikat ist es den Teilnehmern der FB-PKI/FH-PKI möglich, die Authentizität und Gültigkeit der unterhalb dieses Root-Zertifikates ausgestellten Zertifikate zu überprüfen. Dabei ist darauf zu achten, dass die PCA ausschließlich Zertifikate von unmittelbar untergeordneten Zertifizierungsstellen zertifiziert. 3.1.3. Zertifizierungsstellen (CA) CP Die Zertifizierungsstellen innerhalb der FB-PKI/FH-PKI, die unterhalb der PCA angesiedelt und durch diese zertifiziert worden sind, können Zertifikate für natürliche Personen und Serverdienste ausstellen. Wobei eine klare Unterscheidung zwischen den technischen und personellen CAs getroffen werden muss. Bei Ausweitung der Organisationsstruktur sollte es möglich sein, weitere untergeordnete Zertifizierungsstellen zu etablieren. CPS Unterhalb der PCA werden folgende Zertifizierungsstellen betrieben: Fachbereichsweite Anwendung • User CA: Zertifizierungsstelle, unter der die Mitglieder des Fachbereichs verwaltet werden. Dabei muss der Standort und die Zuständigkeit für die CA vom Fachbereich festgelegt werden. • Externe CA: Zertifizierungsstelle für die externen Mitarbeiter des Fachbereichs. Dabei müssen der Standort und die Zuständigkeit für die CA vom Fachbereich festgelegt werden. • Technische CA: Zertifizierungsstelle für die Datenverarbeitungssysteme des Fachbereichs. Dabei müssen der Standort und die Zuständigkeit 39 3.1. Einleitung Kapitel 3. Analyse für die CA von dem jeweils zuständigen Mitarbeitern des Fachbereichs festgelegt werden. Fachhochschulweite Anwendung • Studenten CA: Zertifizierungsstelle, unter der die Studenten der Fachhochschule verwaltet werden. • Mitarbeiter CA: Zertifizierungsstelle für die Mitarbeiter und Professoren der Fachhochschule. • Technische CA: Zertifizierungsstelle für die Datenverarbeitungssysteme der Fachhochschule. Anmerkung: Die Standorte der Hardware der jeweiligen CAs und deren Zuständigkeitsbereiche müssen von der Fachhochschule oder der jeweils betreuenden Stelle festgelegt und verwaltet werden. Dabei können Zertifikate für nachgeordnete Zertifizierungsstellen vergeben werden. 3.1.4. Registrierungsstellen (RA) CP Die Zertifizierungsstellen innerhalb der FB-PKI/FH-PKI haben die Möglichkeit, beliebig viele Registrierungsstellen für die Prüfung der Identität und Authentizität der Zertifikatnehmer zu betreiben. Diese Registrierungsstellen dürfen wiederum auch direkt untergeordnete Zertifizierungsstellen registrieren und durch die zur RA zugehörigen Zertifizierungsstelle zertifizieren lassen. CPS Folgende Registrierungsstellen sind vorgesehen: Fachbereichsweite Anwendung • User RA: Für die Prüfung von Anträgen der Mitglieder des Fachbereichs muss eine entsprechende Stelle eingerichtet werden. 40 Kapitel 3. Analyse 3.1. Einleitung • Externe RA: Für die Prüfung von Anträgen fachbereichexterner Mitarbeiter sollte eine entsprechende Stelle eingerichtet werden. Es ist möglich diese mit der zuständigen Stelle der User RA zusammenzulegen. • Technische RA: Für die Prüfung von Anträgen auf die Zertifizierung der Datenverarbeitungssysteme sollte ein vertrauenswürdiger Mitarbeiter innerhalb des Fachbereichs zuständig sein. Fachhochschulweite Anwendung • Studenten RA: Für die erstmalige Beantragung und Prüfung ist das Studentensekretariat bei der Immatrikulation zuständig. Für einen nachträglichen Antrag sollte eine in der Fachhochschule oder dem jeweiligen Fachbereich zuständige Stelle eingerichtet werden. • Mitarbeiter RA: Für die Prüfung der Anträge der Mitarbeiter benötigt jeder Fachbereich eine entsprechende Stelle. • Technische RA: Für die Prüfung von Anträgen auf die Zertifizierung von Datenverarbeitungssystemen ist eine spezielle Stelle innerhalb der Fachhochschule zuständig. 3.1.5. Zertifikatnehmer - CP Dieser Abschnitt soll genauere Aussagen über die Nutzer machen, die innerhalb der FB-PKI/FH-PKI ein Zertifikat erhalten dürfen. Fachbereichsweite Anwendung Zum Erhalt eines FB-Zertifikates sind alle natürlichen Personen innerhalb des Fachbereichs Design Informatik Medien berechtigt. Die Gruppe der Zertifikatnehmer gliedert sich in drei Gruppen. Zum einen die Mitglieder des Fachbereichs: Studenten, Mitarbeiter und Professoren. Sie werden zusammen unter der User CA verwaltet. Zum anderen ist es möglich, Zertifikate an technische Systeme (Server und Dienste) zu vergeben. Sie werden unter der zweiten 41 3.1. Einleitung Kapitel 3. Analyse Gruppe der technischen CA verwaltet. Die dritte Gruppe rekrutiert sich ausschließlich aus externen Mitarbeitern, die in einer gesonderten CA verwaltet werden. Außerdem ist vorgesehen, die FB-PKI um weitere Organisationseinheiten (RA, CA) erweitern zu können. Zu diesem Zweck ist es den entsprechenden übergeordneten CAs erlaubt, Zertifikate zu vergeben. Fachhochschulweite Anwendung Alle natürlichen Personen innerhalb der Fachhochschule Wiesbaden sind berechtigt zum Erhalt eines FH-Zertifikates. Die Gruppe der Zertifikatnehmer gliedert sich wieder in drei Gruppen auf. Zum einen die Studenten der Fachbereiche, zum anderen die Mitarbeiter. Innerhalb der dritten Gruppe ist es möglich, Zertifikate an technische Systeme (Server und Dienste) zu vergeben. Weiterhin ist vorgesehen, die FH-PKI um weitere Organisationseinheiten (RA, CA) zu erweitern. Zu diesem Zweck können von den entsprechenden übergeordneten CAs Zertifikate vergeben werden. 3.1.6. Zertifikatantragprüfer - CP Ein Antragprüfer ist eine natürliche Person, die für diesen Zweck von dem Fachbereich bzw. der Fachhochschule bestimmt wird, um die Identität eines Zertifikatnehmers zu überprüfen. Zu diesem Zweck ist der Antragprüfer berechtigt, vom Zertifikatnehmer Informationen entgegenzunehmen oder ihm zukommen zu lassen. Es muss hierbei darauf geachtet werden, dass der Mitarbeiter nach den Kriterien der Zuverlässigkeit, Verschwiegenheit und Kompetenz ausgewählt wird. Ein Zertifikatprüfer kann, muss aber nicht Teilnehmer der FB-PKI/FH-PKI sein. 3.1.7. Weitere Teilnehmer - CP Dieser Abschnitt soll konkretisieren welche Nutzer außerhalb des Fachbereich bzw. der Fachhochschule ein Zertifikat erhalten dürfen. 42 Kapitel 3. Analyse 3.2. Anwendungsbereich - CP Fachbereichsweite Anwendung Externe Teilnehmer der FB-PKI sind nur dann zugelassen, wenn sie für den Fachbereich wichtige Dienstleistungen anbieten, die eine gesicherte Kommunikation rechtfertigen; z.B. das Studentensekretariat zur Übermittlung der Studentenlisten oder die Übermittlung der Notenlisten an höhere Stellen innerhalb der Fachhochschule. Diese externen Teilnehmer sollten unter einer eigenen CA verwaltet werden da so eine klare Trennung zwischen internen und externen Nutzern getroffen werden kann. Fachhochschulweite Anwendung Externe Teilnehmer der FH-PKI sind in der momentanen Planungsphase bis auf weiteres nicht vorgesehen. 3.2. Anwendungsbereich - CP Dieser Abschnitt soll einen Überblick über die geplanten Anwendungsbereiche der Zertifikate geben. 3.2.1. Geeignete Zertifikatnutzung Die im Rahmen dieser CP und der darauf basierenden PKI erstellten Zertifikate können für E-Mail-Verschlüsselung und -Signierung sowie für -Authentifizierung verwendet werden. Die Zertifikatnehmer sind dabei für das Einbinden und die Prüfung der Zertifikate in der Anwendungssoftware selbst zuständig. 3.2.2. Untersagte Zertifikatnutzung Jede Zertifikatnutzung ist erlaubt. Allerdings ist darauf zu achten, dass keine weiteren untergeordneten Zertifizierungsstellen durch ein ausgestelltes FB/FHZertifikat zertifiziert werden. Dies ist den offiziellen Zertifizierungsstellen der FB-PKI/FH-PKI vorbehalten. 43 3.3. Verwaltung der Richtlinien - CP Kapitel 3. Analyse 3.3. Verwaltung der Richtlinien - CP Unter diesem Abschnitt sollten Basisinformationen in der CP wie Postanschrift, Telefon, E-Mail und entsprechende URLs angegeben werden, die dem Nutzer über die zuständigen Stellen informieren, an die er sich beispielsweise im Falle eines kompromittierten Schlüssels wenden kann. Zusätzlich sollten jeweils in der CP und CPS die Kontaktinformationen für die zuständige Stelle angegeben werden, die die jeweilige Policy verwaltet. Im Normalfall ist das direkt die Zertifizierungsstelle, z.B. die User CA. 3.4. Veröffentlichungen und Verzeichnisdienst In diesem Abschnitt geht es in erster Linie um die Fragen, wie und an welcher Stelle der Nutzer auf Informationen innerhalb der PKI zugreifen kann. Dabei sollte darauf geachtet werden, eine Implementierung des öffentlichen Teiles für den Nutzer so transparent wie möglich zu gestalten. Das bedeutet, dass dem Nutzer der PKI so weit wie möglich Abläufe, die ein spezielles Vorwissen erfordern, abgenommen werden, um so eine breite Akzeptanz zu erreichen. 3.4.1. Veröffentlichung von Informationen CP Jede Zertifizierungsstelle innerhalb der FB-PKI/FH-PKI muss dafür sorgen, dass Informationen zur Überprüfung der Gültigkeit von Zertifikaten bereitgestellt werden. Deshalb ist darauf zu achten, dass ein Dienst angeboten wird, der außerhalb wie innerhalb des FB-/FH-Netzes die Möglichkeit der Abrufbarkeit der oben genannten Informationen4 anbietet. Zusätzlich sollte jede Zertifizierungsstelle innerhalb der FB-PKI/FH-PKI folgende Informationen zur Verfügung stellen: • das Root Zertifikat der FB-PKI/FH-PKI (PCA) 4 Siehe Abschnitt 3.3 ”Verwaltung der Richtlinien - CP”. 44 Kapitel 3. Analyse 3.4. Veröffentlichungen und Verzeichnisdienst • das Root Zertifikat der Zertifizierungsstelle und, wenn vorhanden, die Zertifikate der dazugehörigen Registrierungsstellen • die CP und CPS, die der Zertifizierungsstelle zugrunde liegen CPS Jede Zertifizierungsstelle sollte ihr eigenes Online-Portal besitzen. Auf ihm sollten unter anderem, wenn vorhanden, die Zertifikate der übergeordneten CAs5 , die eigene CP und CPS, das eigene Zertifikat, die gültigen ausgestellten Zertifikate sowie entsprechende CRLs zum Download bereitstehen. Am Beispiel der RootCA wird an dieser Stelle verdeutlicht, welche Informationen auf jeden Fall abrufbar sein müssen6 . Folgende Informationen sollten an dieser Stelle durch die RootCA veröffentlicht werden: • Online Adresse, an welcher Stelle das Zertifikat der RootCA bezogen werden kann. • Online Adresse, an welcher Stelle die zertifizierten Zertifikate der RootCA bezogen werden können. • Online Adresse, an welcher Stelle die CRL der RootCA bezogen werden kann. • Online Adresse, an welcher Stelle CP und CPS der RootCA bezogen werden können. • Online Adresse einer Liste aller untergeordneten Zertifizierungsstellen. 5 6 Um die Vertrauenskette zu prüfen. Das Beispiel lässt sich auch auf die SubCAs der RootCA übertragen. 45 3.4. Veröffentlichungen und Verzeichnisdienst Kapitel 3. Analyse 3.4.2. Aktualisierung der Informationen CP Die Aktualisierung der Informationen zur Prüfung der Gültigkeit von Zertifikaten muss regelmäßig erfolgen. Zum Abstand, der zwischen zwei Aktualisierungen liegen sollte, wird auf die CPS verwiesen. CPS Folgende Abstände sind für die Veröffentlichung von Informationen vorgesehen: • Zertifikate: umgehend nach ihrer Ausstellung • Widerrufslisten: mindestens einmal pro Monat • Richtlinien: nach Bedarf • Weitere Informationen: nach Bedarf 3.4.3. Zugang zu den Informationsdiensten CP Der lesende Zugriff auf alle in den obigen Abschnitten angeführten Informationen darf keiner Zugangskontrolle unterliegen. Dagegen darf der schreibende Zugriff nur berechtigten Personen gewährt werden. Weitere Informationen sind der CPS zu entnehmen. CPS Der lesende Zugriff auf die Verzeichnisdienste sowie die Online-Ressourcen der Zertifizierungsstellen unterliegt keinerlei Einschränkungen. Der schreibende Zugriff erfolgt nur durch die berechtigten Zertifizierungsstellen und deren Mitarbeiter. 46 Kapitel 3. Analyse 3.5. Identifizierung und Authentifizierung 3.5. Identifizierung und Authentifizierung Dieser Abschnitt beschreibt die Vorgehensweise, die von der CA und RA verwendet wird um Zertifikat-Antragsteller zu authentifizieren. Dabei wird die Frage der Namensgebung behandelt. Außerdem soll auf das Thema der Neuund Wiederzertifizierung näher eingegangen werden. 3.5.1. Namen Im Folgenden wird es um die Regelungen zur Art der Namensgebung von Zertifikatnehmern gehen. Es ist dabei zu beachten, dass diese Regelungen konsequent angewendet werden sollten, um die Konsistenz der PKI zu gewährleisten. Namensform CP Es wird eine einheitliche Namenshierarchie verwendet. Die in der FB-PKI/FHPKI erstellten Zertifikate beinhalten einen eindeutigen Namen (Distinguished Name - DN) entsprechend dem Namensschema X.500 [ICSbCfNRI+ 93]. Dieses bildet die Basis für die Vergabe von voll qualifizierten Namen für Zertifikatinhaber und -aussteller. Dadurch wird es möglich, Informationen innerhalb des Zertifikates zu speichern, die eine eindeutige Zuordnung des Zertifikatinhabers in eine bestimmte Hierarchie7 der FB-PKI/FH-PKI ermöglichen. Es ist darauf zu achten, dass jede Zertifizierungsstelle nur innerhalb ihres eindeutig definierten Namensraumes Zertifikate ausstellt. Dabei liegt die Verantwortlichkeit der Eindeutigkeit der Namen innerhalb der ausstellenden Zertifizierungsstelle8 . CPS Fachbereichsweite Anwendung Der Distinguished Name (DN) eines jeden Zertifikatnehmers unterhalb der RootCA des Fachbereichs wird nach folgendem Schema vergeben: 7 8 Rollen basierte Identifizierung [NDJB02] Seite 118. Beispielsweise bei der RA. 47 3.5. Identifizierung und Authentifizierung Kapitel 3. Analyse C = de L = Fachhochschule - Wiesbaden , O = < Fachbereich > , O = < Zertifizierungsstelle > , OU = < User > , CN = < Eindeutiger Name des Zertifikatinhabers > , Listing 3.1: DN für Mitarbeiter, Professoren, Studenten und externe Mitarbeiter C = de L = Fachhochschule - Wiesbaden , O = < Fachbereich > , O = < Zertifizierungsstelle > , OU = < Dienst > CN = < URL des Servers > , Listing 3.2: DN für Datenverarbeitungssysteme Anmerkung: Die hier gemachten Vorschläge werden in der Umsetzung des Prototypen wegen dem momentan andersartigen Aufbau des fachbereichsinternen LDAP-Server nicht 1:1 wiedergegeben. Die Frage stellt sich dabei, ob die Daten der CAs im selben Baum wie der Nutzerverwaltung oder besser in einem separaten Teil des LDAP-Server abgelegt werden sollten. Da der Prototyp in erster Linie als Vorgabe zu der Implementierung einer Zertifizierungsstelle innerhalb der aktuellen Infrastruktur des Fachbereichs dienen soll, wurde er teilweise an die aktuellen Gegebenheiten angepasst9 . Für spätere Betrachtungen ist diese Änderung nicht ausschlaggebend, sollte aber an dieser Stelle zumindest erwähnt werden. Fachhochschulweite Anwendung Der Distinguished Name (DN) eines jeden Zertifikatnehmers unterhalb der RootCA der Fachhochschule wird nach folgendem Schema vergeben: 9 Für nähere Informationen siehe dazu Kapitel 4 ”Praktische Umsetzung”. 48 Kapitel 3. Analyse 3.5. Identifizierung und Authentifizierung C = de L = Fachhochschule - Wiesbaden , O = < Zertifizierungsstelle > , OU = < User > , CN = < Eindeutiger Name des Zertifikatinhabers > , Listing 3.3: DN für Mitarbeiter, Professoren und Studenten C = de L = Fachhochschule - Wiesbaden , O = < Zertifizierungsstelle > , OU = < Dienst > CN = < URL des Servers > , Listing 3.4: DN für Datenverarbeitungssysteme Aussagekraft von Namen CP Der Distinguished Name (DN) muss einen Zertifikatnehmer eindeutig identifizieren. Bei der Namensvergabe gelten folgende Regeln: Die Zertifikate dürfen nur auf einen zulässigen Namen des Zertifikatnehmers ausgestellt werden. Dabei müssen Zertifikate für technische Systeme erkennbar sein. Weiter ist darauf zu achten, dass bei der Vergabe von Namen für Organisationseinheiten und technische Systeme eine Verwechslung mit natürlichen Personen ausgeschlossen werden kann und bei der Vergabe von Zertifikaten für technische Systeme für den Namen grundsätzlich der voll qualifizierte Domain-Name verwendet wird. Abschließend sollte jedem Zertifikat eine Seriennummer zugeteilt werden, die den Zertifikatnehmer und das Zertifikat eindeutig identifiziert. CPS Namen müssen den Zertifikatnehmer eindeutig identifizieren und in einer verständlichen Form vorliegen. Dabei gelten folgende Regelungen: • Datenverarbeitungssysteme: der CN (Common Name) ist der voll qualifizierte Domain-Name. 49 3.5. Identifizierung und Authentifizierung Kapitel 3. Analyse • Natürliche Personen: Namen werden in der im Fachbereich üblichen Namenskennung (z.B. Hans-Georg Winkler -> hwink001) abgespeichert. • Organisationseinheiten: Hier sollte im CN mit einer Endung auf die Art der Organisationseinheiten hingewiesen werden (z.B. -RA, -CA). Pseudonyme - CP Pseudonyme bzw. Fantasienamen sind bei natürlichen Personen nicht erlaubt. Bei technischen Systemen und Organisationseinheiten sind Pseudonyme bzw. Fantasienamen nur erlaubt, wenn sie in der ursprünglichen Bezeichnung vorkommen. Eindeutigkeit von Namen CPS Vor einer Zertifizierung durch die Zertifizierungsstelle muss die Korrektheit und Eindeutigkeit des im Antrag angegebenen Namens durch die Registrierungsstelle überprüft werden. Es ist zu beachten, dass der DN eines Zertifikatnehmers eindeutig ist und nicht bereits an andere Zertifikatnehmer vergeben wurde. Kommt es zu einer Namensdoppelung, wird der erste Antrag bedient. Um Probleme mit verschiedenen Zeichen-Codierungen zu vermeiden ist für die Vergabe der Namen darauf zu achten, dass Umlaute vermieden werden. CPS Es ist darauf zu achten, dass der Account-Name und der vergebene DN innerhalb der CN übereinstimmt10 . Das ist wichtig insofern die Verwaltung der Zertifikate innerhalb desselben Baumes wie die Nutzerverwaltung betrieben wird. Für die Vergabe der Studenten-CNs gelten dabei besondere Bestimmungen. Diese sollen an dieser Stelle näher betrachtet werden. Namen für Studenten werden nach folgender Praxis gebildet: 10 Siehe Abschnitt 3.5.1 ”Namensform”. 50 Kapitel 3. Analyse 3.5. Identifizierung und Authentifizierung • 1. Zeichen: 1. Buchstabe Vorname • 2-5. Zeichen: 2.-5. Buchstabe Nachname • 6-8. Zeichen: Die Ziffer, die den Namen eindeutig macht, wird im Verhältnis zu dem zuletzt bei gleichen Zeichen (1-5) gewählten Zahlencode um eins erhöht. Beispiel: hwink001 existiert, Hans Winkelmann erhält deshalb den Namen hwink002, da hwink001 durch Hans-Georg Winkler belegt ist. Anmerkung: Die Vergabe der Studenten-Namen nach diesem Konzept ist notwendig, da die gesamte Account-Verwaltung der Studenten des Fachbereichs so funktioniert. Sollen die Zertifikate und die Nutzerverwaltung auf einem LDAP-Server in ein und dem selben Baum abgelegt werden, müssen die Namen in den Zertifikaten denen in der Nutzerverwaltung entsprechen (siehe dazu auch Kapitel 4 Abschnitt 4.6 ”LDAP”). 3.5.2. Identitätsüberprüfung bei Neuantrag - CP Es gelten für die Identitätsüberprüfung eines Zertifikatnehmers die folgenden Regeln: Natürliche Personen: Damit die Angaben in einem Antrag durch eine Zertifizierungsstelle beglaubigt werden können, muss die Identität und Authentizität einer natürlichen Person mittels geeigneter Verfahren durch die zuständige Registrierungsstelle überprüft werden. Weitere Details werden im Abschnitt 3.5.3 ”Authentifizierung einer natürlichen Person” abgehandelt. Technische Systeme: Die Angaben zur Vergabe eines Zertifikates werden durch die zuständige Registrierungsstelle geprüft und an die entsprechende Zertifizierungsstelle weitergeleitet. Überdies gelten die gleichen Regelungen wie in Abschnitt 3.5.3 51 3.5. Identifizierung und Authentifizierung Kapitel 3. Analyse ”Authentifizierung einer natürlichen Person”. Die natürliche Person wird in dem Falle durch den Administrator des technischen Systems dargestellt. Organisationseinheiten: Die Angaben über die Vergabe eines Zertifikates für eine neue CA oder RA wird innerhalb der PKI geregelt. Dabei wird der Antrag der zuständigen Registrierungsstelle vorgelegt und auf die Richtigkeit der angegeben Daten geprüft. Ist diese Prüfung erfolgreich, wird der Antrag an die entsprechende Zertifizierungsstelle weitergeleitet. Sie fungiert dann als Wurzel der neuen Organisationseineit. Außerdem gelten die gleichen Regelungen wie in Abschnitt 3.5.3 ”Authentifizierung einer natürlichen Person”. Wobei die natürliche Person in dem Falle durch den Administrator der neuen Organisationseinheit (z.B. einer CA/RA) dargestellt wird. 3.5.3. Authentifizierung einer natürlichen Person CP Für die Identitätsprüfung einer natürlichen Person sind folgende Vorgehensweisen erlaubt: Der Zertifikatnehmer muss persönlich bei der ausstellenden Zertifizierungsstelle oder der zuständigen Registrierungsstelle erscheinen. Dabei wird durch einen Mitarbeiter der CA oder RA die Identität anhand eines amtlichen Nachweises wie ein Personalausweis, Pass oder Führerschein nachgeprüft. Des Weiteren kann die Authentifizierung einer natürlichen Person durch eine geeignete externe Stelle11 durchgeführt werden. CPS Die Verfahren der Identitätsprüfung einer natürlichen Person sind der entsprechenden CP zu entnehmen. Dabei sind mindestens folgende Informationen für 11 Studentensekretariat oder die Verwaltung der Fachhochschule. 52 Kapitel 3. Analyse 3.5. Identifizierung und Authentifizierung einen erfolgreichen Antrag von der RA einzuholen: Name und Vorname des Antragstellers sowie zur Ausstellung eines Zertifikats die E-Mail Adresse.12 3.5.4. Identifizierung und Authentifizierung bei einer Zertifikaterneuerung - CP In diesem Abschnitt wird näher auf die Möglichkeiten der Zertifikaterneuerung eingegangen. Routinemäßige Zertifikaterneuerung - CP Die Zertifikaterneuerung eines abgelaufenen Zertifikates setzt voraus, dass der Zertifikatnehmer über ein gültiges Zertifikat der zuständigen Zertifizierungsstelle verfügt. Bei einer routinemäßigen Erneuerung braucht der Zertifikatnehmer keine Nachweise zu erbringen. Er muss allerdings auf die Zertifikaterneuerung hingewiesen werden, um die Gültigkeit der Angaben innerhalb des Zertifikates zu bestätigen. Überdies sollte der Zertifikatnehmer bei einer außerplanmäßigen Erneuerung gegenüber der zuständigen Zertifizierungsstelle vor der Ausstellung eines neuen Zertifikats die Gültigkeit der Angaben im Zertifikat bestätigen. Zertifikaterneuerung nach dem Widerruf - CP Bei einem Widerruf des Zertifikats erfolgt keine Zertifikaterneuerung. Das heißt, es ist ein neues Zertifikat nach den geltenden Regeln zu beantragen. 3.5.5. Identifizierung und Authentifizierung bei einem Widerruf CPS Für den Widerruf eines Zertifikates muss die ausstellende Zertifizierungsstelle 12 Autorisierungsinformation zum Sperren des Zertifikats und Verwendungszweck des Zertifikats werden von der CA vergeben. 53 3.5. Identifizierung und Authentifizierung Kapitel 3. Analyse oder die zuständige Registrierungsstelle ein Verfahren zur Verfügung stellen, um es dem Zertifikatnehmer zu ermöglichen, schnell und unkompliziert sein Zertifikat zu widerrufen. CPS Für den Widerruf eines Zertifikates ist immer die Registrierungsstelle zuständig, bei der das Zertifikat beantragt wurde. Ein Widerruf kann folgendermaßen ablaufen: Übergabe eines unterzeichneten Sperrantrags mit Angabe der Autorisierungsinformation bzw. einer Identitätsprüfung13 . Übersendung eines unterzeichneten Sperrantrags per Post mit Angabe der Autorisierungsinformation, einer digital signierten formlosen E-Mail oder einer nicht digital signierten formlosen E-Mail mit Angabe der Autorisierungsinformation. Weiter sollte es möglich sein, dass der Nutzer über einen telefonischen Anruf mit Angabe der Autorisierungsinformation das Zertifikat sperren lassen kann. Weiterhin kann eine Möglichkeit zum Sperren eines Zertifikates über das Online Interface der RA realisiert werden14 . 13 14 Siehe Abschnitt 3.5.2 ”Identitätsüberprüfung bei Neuantrag - CP”. Dies ist die auf dem Prototypen angewandte Methode. 54 Kapitel 3. Analyse 3.6. Ablauforganisation 3.6. Ablauforganisation In diesem Abschnitt werden die Abläufe und Prozesse innerhalb der PKI einer näheren Betrachtung unterzogen. 3.6.1. Ablauf der Zertifizierung An dieser Stelle wird ein Gesamtüberblick über den Ablauf der verschiedenen Zertifizierungsprozesse gegeben, die in der FB-PKI möglich sind. In den darauf folgenden Abschnitten wird detaillierter auf die Einzelheiten der gezeigten Prozesse eingegangen. Student 1) Immatrikulation des Studenten Studenten Sekretariat (RA) 2) Weiterleitung der notwendigen Daten aller immatrikulierten Studenten an die zuständige Instanz innerhalb des Fachbereichs Technische Instanz 3) Übergabe der Daten an einen Batch-Prozess Batch 4) Automatische Erzeugung der Anträge und Zertifikate User CA Home Verzeichnisse Erstellung Zertifikat und Private Key 5) Ablage des Zertifikat und Private Key in verschlüsselter Form als PKCS12 LDAP Veröffentlichung 6) Veröffentlichung der Zertifikate auf dem internen LDAP-Server und auf einem Webinterface Webinterface Abbildung 3.3.: Automatischen Zertifikaterstellung bei Studenten 55 3.6. Ablauforganisation Kapitel 3. Analyse Die automatische Zertifikaterstellung, wie in Abbildung 3.3 gezeigt, wird nur für neu immatrikulierte Studenten angewandt. Dabei fungiert das Studentensekretariat, das die Studenten während ihrer Erstimmatrikulation betreut und alle nötigen Daten aufnimmt, als Registrierungsstelle der User CA des Fachbereichs. Nach der Immatrikulation bekommt der Fachbereich eine Liste der immatrikulierten Studenten. Diese Liste wird unter anderem dazu verwendet, für die neuen Studenten entsprechende Accounts einzurichten. Unter der User CA wird dieselbe Liste dazu verwendet, um eine Konfigurationsdatei für den Batch-Prozessor der User CA zu erzeugen. Mit ihm wird anschließend für die neuen Studenten ein Schlüsselpaar und ein Zertifikat erzeugt. Das Zertifikat wird im LDAP-Server und dem öffentlichen Teil der User CA veröffentlicht und der private Schlüssel mit dem öffentlichen signierten Schlüssel zusammen in einer PKCS#12 Datei15 , geschützt durch das Masterpasswort, in dem jeweiligen Home-Verzeichnis des Studenten abgelegt. Dabei wird im Kapitel 4 ”Praktische Umsetzung” weiter auf den Batch-Prozess eingegangen. Das nächste Szenario in Abbildung 3.4 gilt für alle Professoren, Mitarbeiter und nachträglich zu zertifizierende Studenten. Dabei stellt der Nutzer über das öffentlichen Portal der User CA einen Antrag auf Zertifizierung. So kann das Schlüsselpaar Client- oder Server-seitig erzeugt werden. Ist die Schlüsselerzeugung erfolgreich abgeschlossen, wird der Zertifikatsantrag (Certificate Signing Request - CSR) an die Registrierungsstelle der User CA geschickt. Sie prüft die Angaben innerhalb des Antrages auf Richtigkeit und verifiziert diese anhand der in der Policy festgelegten Regelungen. Ist der Antrag genehmigt, wird er von der User CA digital signiert und im LDAP-Server sowie dem öffentlichen Portal veröffentlicht. Wurde eine Server-seitige Schlüsselerzeugung initiiert, kann der private Schlüssel unter Angabe des im Antrags-Formular angegebenen Passwortes heruntergeladen werden. Nähere Informationen sind 15 PKCS#12 definiert ein Dateiformat, das benutzt wird, um den privaten Schlüssel zusammen mit dem zugehörigen Zertifikat passwortgeschützt in einem Container zu speichern. 56 Kapitel 3. Analyse 3.6. Ablauforganisation Mitglied des FB 1) Besuchen des Public Interfaces der User CA Public 2) Erzeugen des Schlüsselpaares und Abschicken des Elektronischen Antrages an die Registrierungsstelle der User CA User RA 3) Prüfen auf Richtigkeit der Angaben; eventuell persönliche Vorstellung um die Daten zu verifizieren Erstellung Zertifikat User CA 4) Signieren des Antrages durch die User CA LDAP Benachrichtigung der Antragstellers Veröffentlichung 5) Benachrichtigung des Antragstellers und Veröffentlichung der Zertifikate auf dem internen LDAP-Server und auf einem Webinterface Webinterface Abbildung 3.4.: Reguläre Zertifikaterstellung für Professoren, Mitarbeiter und Studenten bitte dem Kapitel 4 ”Praktische Umsetzung” zu entnehmen.16 In Abbildung 3.5 ist der Ablauf einer Zertifizierung eines Datenverarbeitungssystem zu sehen. Dabei muss zunächst der Administrator selbst das Schlüsselpaar und den Antrag erzeugen. Anschließend wird im öffentlichen Portal der Antrag importiert und an die technische Registrierungsstelle geschickt. Sie prüft die Angaben innerhalb des Antrages auf Richtigkeit und verifiziert sie anhand der in der Policy festgelegten Regelungen. Ist der Antrag genehmigt, 16 Das oben beschriebene Szenario gilt in gleicher Weise für externe Mitarbeiter. Der einzige Unterschied: Für die externen Nutzer ist die ”Externe CA” zuständig ist. 57 3.6. Ablauforganisation Kapitel 3. Analyse 1) Selbständige Erstellung der Schlüssel durch den Administrator des Datenverarbeitungssystems. Admin 2) Besuchen des Public Interfaces der Technischen CA Public 3) Abschicken des elektronischen Antrages an die Registrierungsstelle der technischen CA technische RA 4) Prüfen auf Richtigkeit der Angaben, eventuell persönliche Vorstellung des Administrators, um Daten zu verifizieren Erstellung Zertifikat technische CA 5) Signieren des Antrages durch die CA LDAP Benachrichtigung der Antragstellers Veröffentlichung 6) Benachrichtigung des Antragstellers und Veröffentlichung der Zertifikate auf dem internen LDAP-Server und auf einem Webinterface Webinterface Abbildung 3.5.: Zertifikaterstellung für Datenverarbeitungssysteme wird er von der technischen CA digital signiert und im LDAP-Server sowie dem öffentlichen Portal veröffentlicht. 3.6.2. Zertifikatantrag In diesem Anschnitt werden allgemeine Regelungen bezüglich eines CSR behandelt. Wer ein Zertifikat beantragen kann - CP Innerhalb der FH-PKI können Zertifikate an alle Zertifikatnehmer ausgestellt werden, die im Abschnitt 3.1.5 ”Zertifikatnehmer - CP” aufgeführt werden. 58 Kapitel 3. Analyse 3.6. Ablauforganisation Überdies können der PCA untergeordnete Zertifizierungsstellen den Umfang der berechtigten Zertifikatnehmer weiter eingrenzen. Registrierungsprozess CP Ein Zertifikat kann durch eine Zertifizierungsstelle nur signiert werden, wenn der entsprechende Registrierungsprozess bei der zuständigen Registrierung erfolgreich abgeschlossen wurde. CPS Es gibt zwei Arten der Registrierung: Automatische Registrierung: Diese Art der Registrierung kommt zur Anwendung, wenn ein Student erstmalig an der Fachhochschule immatrikuliert wird. Dabei fungiert das Studentensekretariat als RA und prüft die Angaben des Studenten. Nach erfolgreicher Immatrikulation kann von der entsprechenden Stelle innerhalb des Fachbereichs automatisch ein Schlüsselpaar und ein dazugehöriges Zertifikat für den Studenten erzeugt werden. Reguläre Registrierung: Die reguläre Registrierung kommt zur Anwendung, wenn ein Professor oder ein Mitarbeiter (intern und extern) ein Zertifikat benötigt, ein Zertifikat widerrufen wurde, ein Datenverarbeitungssystem ein Zertifikat benötigt oder eine neue untergeordnete Organistationseinheit erstellt werden soll. Dabei müssen folgende Schritte durchlaufen werden: 1. Prüfung der Dokumente und der CSRs hinsichtlich Vollständigkeit und Korrektheit. 2. Prüfung der Eindeutigkeit des DN im CSR. 3. Übermittlung der für die Zertifizierung notwendigen Informationen an die zuständige Zertifizierungsstelle. 59 3.6. Ablauforganisation Kapitel 3. Analyse 3.6.3. Bearbeitung von Zertifikatanträgen - CP In diesem Abschnitt wird die Abarbeitung der CSRs durch die entsprechenden Stellen näher betrachtet. Durchführung der Identifikation und Authentifizierung Die zuständige Registrierungsstelle führt die Identifikation und Authentifizierung des Zertifikatnehmers nach dem im Abschnitt 3.5.2 ”Identitätsüberprüfung bei Neuantrag - CP” genannten Verfahren durch. Annahme oder Abweisung von Zertifikatanträgen Ein Zertifizierungsantrag wird erst von der zuständigen Registrierungsstelle angenommen, wenn die Vorlage der notwendigen Dokumente17 erfolgreich nachgeprüft wurden. Nach der Durchführung der Identifikation und Authentifizierung wird der Zertifizierungsantrag durch die ausstellende Zertifizierungsstelle weiter bearbeitet und signiert. Sollte eine Prüfung der gerade genannten Kriterien oder die Identifikation und Authentifizierung eines Zertifikatnehmers nicht erfolgreich sein, wird der Zertifizierungsantrag nicht weiter bearbeitet und der Status umgehend dem Zertifikatnehmer unter Angaben von Gründen mitgeteilt Bearbeitungsdauer Um die Akzeptanz der PKI bei den Nutzern zu erhöhen soll die Dauer der Bearbeitung, nach Annahme der Daten, nicht länger als eine Woche betragen. 17 Siehe Unterabschnitt ”Registrierungsprozess” im Abschnitt 3.6.2 ”Wer ein Zertifikat beantragen kann - CP”. 60 Kapitel 3. Analyse 3.6. Ablauforganisation 3.6.4. Zertifikatausstellung Nach erfolgreicher Prüfung eines Zertifizierungsantrags wird umgehend durch die Zertifizierungsstelle ein Zertifikat ausgestellt und der Zertifikatnehmer über diesen Vorgang informiert. Benachrichtigung des Antragstellers CP Nach der Zertifikatausstellung wird der Zertifikatnehmer darüber informiert, dass der Antrag durch die Zertifizierungsstelle ausgestellt wurde. Dabei ist darauf zu achten, dass die in der Übertragung enthaltenen persönlichen Angaben oder Autorisierungsinformationen angemessen geschützt werden. CPS Das Zertifikat wird je nachdem, welche Registrierung durchgeführt wurde, verschieden an den Zertifikatnehmer ausgeliefert. • Automatisch: Der Zertifikatnehmer bekommt das Zertifikat und den privaten Schlüssel, gesichert durch sein Masterpasswort, als PKCS#12 Datei in sein Home-Verzeichnis abgelegt. • Regulär: Der Zertifikatnehmer kann bei Client-seitiger Generierung der Schlüssel sein Zertifikat im PEM-, TXT- oder CRT-Format und bei Server-seitiger Generierung der Schlüssel sein Zertifikat im PKCS#12 Format (geschützt mit einem Passwort) von dem öffentlichen Portal der entsprechenden Zertifizierungsstelle herunterladen. 3.6.5. Zertifikatakzeptanz Bei der Ausstellung eines Zertifikates durch eine Zertifizierungsstelle ist der Zertifikatnehmer verpflichtet, nach Erhalt des eigenen Zertifikats sowie auch des Zertifikates der ausstellenden Zertifizierungsstelle alles auf Richtigkeit der Daten zu prüfen. 61 3.6. Ablauforganisation Kapitel 3. Analyse Annahme des Zertifikats CP Zertifikate werden durch den Zertifikatnehmer angenommen, wenn folgende Punkte erfüllt sind: • Das Zertifikat wird/wurde verwendet. • Innerhalb eines in der CPS festgelegten Zeitraums wird kein Widerspruch gegen das Zertifikat eingelegt. CPS Das Zertifikat wird akzeptiert, wenn es angewendet wird oder nach 14 Tagen kein Widerspruch erfolgte. Dabei ist darauf zu achten, dass gemeldete fehlerhafte Zertifikate umgehend von der zuständigen Zertifizierungsstelle zu sperren sind. Veröffentlichung des Zertifikats Hier gelten die Regelungen die in Abschnitt 3.4 ”Veröffentlichungen und Verzeichnisdienst” aufgeführt wurden. 3.6.6. Verwendung des Schlüsselpaares und des Zertifikats CP Anwendungsbereiche der Schlüssel auf Basis dieser CP sind dem Abschnitt 3.2 ”Anwendungsbereich - CP” zu entnehmen. Nutzung des privaten Schlüssels und des Zertifikats Durch die Annahme eines Zertifikats der FB-PKI/FH-PKI versichert der Zertifikatnehmer den Teilnehmern der FB-PKI/FH-PKI, die sich auf die Vertrauenswürdigkeit der Informationen innerhalb des Zertifikates verlassen, • dass ein grundlegendes Verständnis der Anwendung und des Einsatzes von Zertifikaten besteht, 62 Kapitel 3. Analyse 3.6. Ablauforganisation • dass sämtliche Angaben und Erklärungen im Bezug auf die im Zertifikat enthaltenden Informationen vollständig der Wahrheit entsprechen, • dass der private Schlüssel in jedem Fall geschützt aufbewahrt wird, • dass kein unbefugter Dritter Zugang zu dem privaten Schlüssel gewährt wird, • dass das Zertifikat ausschließlich in Übereinstimmung mit dieser CP eingesetzt wird, • dass das Zertifikat sofort widerrufen wird, wenn die Angaben im Zertifikat nicht mehr zutreffen oder der private Schlüssel verloren, kompromittiert oder gestohlen wurde und • dass die Zertifizierung weiterer Zertifikate nur durch die entsprechende Zertifizierungsstelle durchgeführt wird. Nutzung von öffentlichen Schlüsseln und Zertifikaten Jeder Person der ein Zertifikat innerhalb der FB-PKI/FH-PKI ausgestellt wurde und, jede Person die Zertifikate sowie öffentliche Schlüssel zur Überprüfung einer Signatur oder für die Zwecke der Authentifizierung oder Verschlüsselung verwendet, sollte ein grundlegendes Verständnis der Anwendung und des Einsatzes von Zertifikaten aufweisen, sowie vor der Nutzung eines Zertifikats dieses auf seine Gültigkeit prüfen. Des Weiteren ist das Zertifikat nur für autorisierte und legale Zwecke in Übereinstimmung mit dieser CP einzusetzen. 3.6.7. Zertifikaterneuerung / Re-Zertifizierung - CP Bei einer Re-Zertifizierung wird dem Zertifikatnehmer ein neues Zertifikat unter Beibehaltung des alten Schlüsselpaars ausgestellt. Diese Regelung18 gilt nur, wenn kein Verdacht auf Kompromittierung des privaten Schlüssels vorliegt, die im Zertifikat enthaltenen Informationen unverändert bleiben und die 18 Beibehaltung der Schlüssel. 63 3.6. Ablauforganisation Kapitel 3. Analyse kryptographischen Verfahren zum Zeitpunkt der Erstellung der Schlüssel noch ausreichen. Dabei sollten bei einer Zertifikaterneuerung bzw. Re-Zertifizierung folgende Fragen und Punkte Beachtung finden: • Gründe für eine Zertifikaterneuerung Eine Erneuerung kann nur erfolgen, wenn das alte Zertifikat abgelaufen ist. • Wer kann eine Zertifikaterneuerung beantragen Alle Zertifikatnehmer, die ein Zertifikat durch die FB-PKI/FH-PKI ausgestellt bekommen haben können eine Zertifikaterneuerung bzw. ReZertifizierung beantragen. Dabei kann die Beantragung explizit direkt durch den Zertifikatnehmer erfolgen oder implizit durch eine entsprechende automatische Erneuerung. • Ablauf der Zertifikaterneuerung Der Vorgang einer Zertifikaterneuerung entspricht den Regelungen im Abschnitt 3.6.4 ”Zertifikatausstellung”. Für eine Identifizierung und Authentifizierung gelten die Regelungen im Abschnitt 3.5.4 ”Routinemäßige Zertifikaterneuerung - CP”. • Benachrichtigung des Zertifkatnehmers Der Zertifikatnehmer muss über die Erneuerung seines Zertifikates in Kenntnis gesetzt werden.19 • Annahme einer Zertifikaterneuerung Es gelten die Regelungen wie im Abschnitt 3.6.5 ”Annahme des Zertifikats”. • Veröffentlichung einer Zertifikaterneuerung Es gelten die Regelungen des Abschnitt 3.6.5 ”Veröffentlichung des Zertifikats”. 19 Siehe Abschnitt 3.6.4 ”Benachrichtigung des Antragstellers”. 64 Kapitel 3. Analyse 3.6. Ablauforganisation In der Abbildung 3.7 soll der Prozess der Vorgehensweise einer Zertifikaterneuerung aufgezeigt werden: In diesem Szenario20 muss der Zertifikatinhaber Zertifikatinhaber Antrag um Verlängerung des Zertifikates RA Prüfen des Antrages CA Neusignierung LDAP Benachrichtigung der Zertifikatnehmers Veröffentlichung Webinterface Abbildung 3.6.: Zertifikaterneuerung selbst die Initiative ergreifen und vor Ablauf des Zertifikates einen Antrag auf Zertifikaterneuerung an die jeweils zuständige RA stellen. Nach der Antragstellung wird dieser auf seine Zulässigkeit geprüft und an die Zertifizierungsstelle weitergeleitet. Diese signiert neu, informiert den Antragsteller und veröffentlicht das neue Zertifikat anstelle des alten. 21 3.6.8. Zertifikaterneuerung / Re-Key - CP Es gelten die gleichen Regelungen wie im Abschnitt 3.6.7 ”Zertifikaterneuerung / Re-Zertifizierung - CP” mit dem Unterschied, dass neue Schlüssel er20 21 Das für Zertifikate der FB-PKI gilt. Anmerkung: Da eine ständige Erneuerung der Zertifikate bei den Studenten einen unnötig großen Aufwand verursachen würde, sollten die Zertifikate der Studenten schon am Anfang mit einer geeigneten Gültigkeitsdauer veröffentlicht werden. 65 3.6. Ablauforganisation Kapitel 3. Analyse zeugt und verwendet werden. Darüber hinaus sollten auch folgende Punkte hier Beachtung finden: • Benachrichtigung des Zertifkatnehmers Es gelten die Regelungen wie im Abschnitt 3.6.4 ”Benachrichtigung des Antragstellers”. • Annahme einer Zertifikaterneuerung Es gelten die Regelungen wie im Abschnitt 3.6.5 ”Annahme des Zertifikats”. • Veröffentlichung einer Zertifikaterneuerung Es gelten die Regelungen wie im Abschnitt 3.6.5 ”Veröffentlichung des Zertifikats”. 3.6.9. Zertifikatmodifizierung - CP Ein Zertifikat wird nur verändert, wenn Angaben innerhalb des Zertifikats nicht mehr der Wahrheit entsprechen. Dabei ist darauf zu achten, dass bei der Änderung der Identität des Inhabers (z.B. Änderung des Nachnamens) ein Neuantrag auf Zertifizierung gestellt wird. Betreffen die Änderungen nicht die Identität des Zertifikatinhabers, so wird wie in Abschnitt 3.6.7 ”Zertifikaterneuerung / Re-Zertifizierung - CP” und 3.6.8 ”Zertifikaterneuerung / Re-Key - CP” verfahren. 3.6.10. Widerruf und Suspendierung von Zertifikaten An dieser Stelle wird näher auf die Möglichkeit des Widerrufs von Zertifikaten eingegangen. Bei der Suspendierung22 von Zertifikaten ist im Moment keine weitere Behandlung des Themas vorgesehen. Das heißt, es ist nicht möglich einmal widerrufene Zertifikate zu erneuern oder zu verlängern. Stattdessen werden sie nur neu beantragt. 22 Eine zeitliche Aussetzung des Zertifikats. 66 Kapitel 3. Analyse 3.6. Ablauforganisation Für die Certificate Revocation List (CRL) gilt die Regelung, dass die Veröffentlichung von CRLs mindestens einmal pro Monat geschehen muss. Dabei sollte bei einer Veränderung der CRL diese unverzüglich veröffentlicht werden23 . 3.6.11. Gründe für einen Widerruf - CP Zertifikate werden lediglich von der zuständigen Zertifizierungsstelle widerrufen. Dabei muss für den Widerruf mindestens einer der folgenden Gründe bekannt sein: • Das Zertifikat enthält Angaben, die nicht mehr gültig sind. • Der private Schlüssel des Zertifikatnehmers wurde geändert, verloren, gestohlen, offen gelegt oder anderweitig kompromittiert bzw. missbraucht. • Der Zertifikatnehmer hat seine Berechtigungsgrundlage für die Nutzung des Zertifikates verloren24 . • Der Zertifikatnehmer hält sich nachweislich nicht an die innerhalb der CP und CPS geltenden Regeln. • Die zuständige Zertifizierungsstelle bzw. eine Registrierungsstelle hält sich nachweislich nicht an die innerhalb der CP und CPS geltenden Regeln. • Der Zertifikatnehmer benötigt kein Zertifikat mehr. • Der Zertifizierungsbetrieb wird eingestellt. 3.6.12. Wer kann widerrufen - CP Zertifikate werden ausschließlich von der ausstellenden Zertifizierungsstelle widerrufen. Dabei kann jeder Zertifikatnehmer von der Zertifizierungsstelle, die 23 24 Quellenangaben der CRLs für die Prüfung des Status von Zertifikaten stehen unter dem Abschnitt 3.4 ”Veröffentlichungen und Verzeichnisdienst” zur Verfügung. Siehe Abschnitt 3.1.5 ”Zertifikatnehmer - CP”. 67 3.6. Ablauforganisation Kapitel 3. Analyse sein Zertifikat erstellt hat, unter Angaben von Gründen25 verlangen, dass das für ihn ausgestellte Zertifikat widerrufen wird. Voraussetzung für einen erfolgreichen Widerruf ist eine erfolgreiche Identifizierung und Authentifizierung des Zertifikatnehmers entsprechend dem Abschnitt 3.5.5 ”Identifizierung und Authentifizierung bei einem Widerruf”. 3.6.13. Beendigung des Vertragsverhältnisses durch den Zertifikatnehmer - CP Die Dauer eines Vertragsverhältnisses ergibt sich durch die im Zertifkat angegebene Gültigkeitsdauer. Die Aufbewahrungsdauer von Zertifikaten und Dokumenten des Zertifikatnehmers ist abhängig von den Regelungen innerhalb des Fachbereiches, der Fachhochschule bzw. den datenschutzrechtlichen Bestimmungen des Landes Hessen. 25 Siehe Abschnitt 3.6.11 ”Gründe für einen Widerruf - CP”. 68 3.7. Infrastrukturelle, organisatorische und personelle Sicherheitsmaßnahmen Kapitel 3. Analyse - CPS 3.7. Infrastrukturelle, organisatorische und personelle Sicherheitsmaßnahmen - CPS Sicherheitstechnische Anforderungen an die infrastrukturellen, organisatorischen und personellen Sicherheitsmaßnahmen einer Zertifizierungs- und Registrierungsstelle sind durch die Vorgaben der RootCA bestimmt. Diese Regelungen, die an die untergeordneten SubCAs vererbt werden, können angepasst, jedoch niemals abgeschwächt werden. 3.7.1. Infrastrukturelle Sicherheitsmaßnahmen Im folgenden Abschnitt wird auf die Regeln zu den Sicherheitsmaßnahmen bezüglich der Sicherheit der CA-Infrastruktur eingegangen26 . Dabei handelt es sich hierbei um Empfehlungen, die im Laufe dieser Studie erarbeitet wurden. Die hier vorgestellten Maßnahmen orientieren sich an den Möglichkeiten des Fachbereichs Informatik und an den existierenden Regelungen für die vorhandenen Server und Räumlichkeiten. Für die Entwicklung der CPS einer laufenden PKI im produktiven Einsatz sollte auf jeden Fall noch eine Anpassung der Regeln in Erwägung gezogen werden. Die Betrachtung soll mit dem Standort der Hardware beginnen. Die Hardware sollte in den Server-Räumen des Fachbereichs Informatik der FH-Wiesbaden aufgestellt und gewartet werden. Diese Räume bieten die entsprechende Infrastruktur und Sicherheit zum Betrieb von Servern. Dabei ist der Zutritt zu den Serverräumen des Fachbereichs Informatik nur Mitarbeitern gestattet, die für den Umgang mit den Server vom Fachbereich autorisiert worden sind. Die Stromversorgung entspricht den erforderlichen Normen für den Betrieb von Servern und eine Klimatisierung der Räume für die technische Infrastruktur 26 Anmerkung: Von dem Umgang und der Umsetzung der Sicherheitsregeln einer CA hängt die Vertraulichkeit der Dienstleistungen einer CA bzw. der gesamten PKI ab. 69 3.7. Infrastrukturelle, organisatorische und personelle Sicherheitsmaßnahmen - CPS Kapitel 3. Analyse ist vorhanden. Die Datenträger werden in geschlossenen Schränken und Sensible Datenträger in einem Tresor aufbewahrt. 3.7.2. Organisatorische Sicherheitsmaßnahmen Dieser Abschnitt behandelt die Frage der Verteilung von sicherheitsrelevanten Aufgaben innerhalb einer Zertifizierungsstelle. Weiter werden verschiedene Szenarien der Kompromittierung dargestellt sowie die Vorgehensweise besprochen, wie bei der Einstellung des Betriebes einer CA verfahren werden soll. Sicherheitsrelevante Rollen Um einen ordnungsgemäßen Betrieb einer Zertifizierungsstelle zu realisieren, ist eine entsprechende Aufgabenverteilung und Funktionstrennung vorzunehmen. Aus diesem Grunde werden die Gruppen der sicherheitsrelevanten Rollen definiert, die im Rahmen des Zertifizierungsprozesses erforderlich sind. Jede Rolle ist einer bestimmten Tätigkeiten zugeordnet. • Registrierungsdienst (RD) Der Registrierungsdienst ist die Schnittstelle zum Zertifikatnehmer und wird durch die RA implementiert. Dabei erfüllt dieser Dienst folgende Aufgaben: Entgegennahme von Zertifikatanträgen; Identifizierung, Authentifizierung und Prüfung der Autorisierung der Zertifikatnehmer, Prüfung des Zertifikatantrags auf Vollständigkeit und Korrektheit, Archivierung von Dokumenten, wenn erforderlich; Entgegennahme von Sperranträgen; Freigabe und Übermittlung von Zertifikatanträgen und Sperrbzw. Widerrufsanträgen an die zuständige Zertifizierungsstelle. • Zertifizierungsdienst (ZD) Der Zertifizierungsdienst wird durch die CA implementiert und erfüllt folgende Aufgaben innerhalb der PKI: Ausstellen von Zertifikaten und Widerrufslisten; Erzeugung und Verwahrung der CA-Schlüssel. 70 3.7. Infrastrukturelle, organisatorische und personelle Sicherheitsmaßnahmen Kapitel 3. Analyse - CPS • Systemadministrator (SA) Der Systemadministrator ist für den laufenden Betrieb der Systeme verantwortlich und für die Installation, Konfiguration, Administration und Wartung zuständig. Dabei verfügt er ausschließlich über die AdministratorPasswörter der Systeme. • Systemoperator (SO) Der Systemoperator ist für die Betreuung der Anwendungen zuständig. Darüber hinaus hat er Zugriff auf die kryptographischen Schlüssel und deren Passwörter für Zertifizierungsprozesse und dem Zertifikat- und Sperrmanagement der CA. Anmerkung: Die Rolle des Systemadministrators und des Systemoperators sollten nicht von einer Person eingenommen werden. Eine Trennung der Aufgaben wird empfohlen. • Sicherheitsbeauftragter (SB) Der Sicherheitsbeauftragte ist für die Definition und Einhaltung der Sicherheitsbestimmungen zuständig, Er überprüft die Mitarbeiter der PKI und vergibt die Berechtigungen. Des Weiteren ist er erster Ansprechpartner für sicherheitsrelevante Fragen, die die PKI betreffen. Involvierte Mitarbeiter pro Arbeitsschritt An dieser Stelle werden die oben eingeführten Rollen den vorhandenen Tätigkeiten der PKI zugeordnet27 . Dies soll in der Tabelle 3.1 konkretisiert werden. 27 Es wird noch einmal darauf hingewiesen, dass diese Ausführungen eine Empfehlung sind, die im Rahmen dieser Arbeit aufgestellt wurden. 71 3.7. Infrastrukturelle, organisatorische und personelle Sicherheitsmaßnahmen - CPS Kapitel 3. Analyse Aufgabe Rolle Annahme von Zertifikatsanträgen RD Identifizierung und Authentifizierung von Zertifikatnehmern RD Prüfung der Autorisierung von Zertifikatnehmern RD Verifikation von Dokumenten RD Belehrung der Zertifikatnehmer RD Prüfung des DN (Distinguish Name) RD Annahme und Prüfung von Sperranträgen RD Prüfung der Anträge hinsichtlich Vollständigkeit und Korrektheit RD Archivierung von Dokumenten (wenn erforderlich) RD Freigabe und Übermittlung von Zertifikat- und Sperranträgen an RD die zuständige Zertifizierungsstelle Starten von Prozessen zur Erzeugung von Schlüsselpaaren für Zer- ZD tifikatnehmer Starten von Prozessen zum Ausstellen von Zertifikaten und Wider- ZD rufslisten Übertragen von Zertifikatanträgen zum Zertifizierungsrechner RD Veröffentlichen von Zertifikaten und Widerrufslisten ZD Schlüsselhinterlegung von privaten CA-Schlüsseln der CAs SO Kenntnis von Administrator Passwörtern SA Starten und Stoppen von Prozessen (z.B. Web-Server, Datensiche- SA rung) Austauschen von Soft- und Hardwarekomponenten für Zertifizie- SA rungssysteme Austauschen von Soft- und Hardwarekomponenten für andere Sys- SA teme der PKI Überprüfen von Protokolldateien SA/SO Vergabe von physikalischen Berechtigungen an PKI Rechnern Vergabe von Systemberechtigungen an PKI Rechnern 72 SB SB/SA 3.7. Infrastrukturelle, organisatorische und personelle Sicherheitsmaßnahmen Kapitel 3. Analyse - CPS Fortschreiben des Betriebs- bzw. Sicherheitskonzepts SB Vorbereiten des Batch-Prozesses SO Ausführen des Batch-Prozesses ZD Tabelle 3.1.: Sicherheitsrelevante Rollen und ihre Aufgaben Trennung von Aufgaben An dieser Stelle (Tabelle 3.2) wird ausgeführt, welche Rollen miteinander verträglich und welche unverträglich sind. Die Verträglichkeit ist eine ”Kann”Bestimmung. Um ein ausreichendes Sicherheitsniveau zu erreichen, ist es in erster Linie wichtig, darauf zu achten, dass bei der Aufteilung der Rollen der jeweiligen Person keine miteinander unverträglichen Rollen zugewiesen werden. Rolle verträglich unverträglich Registrierungsdienst (RD) ZD, SO SB, SA Zertifizierungsdienst (ZD) RD, SO SB, SA Systemadministrator (SA) SO RD, ZD, SB Systemoperator (SO) - SO, RD, SB, SA Sicherheitsbeauftragter (SB) - RD, ZD, SA, SO Tabelle 3.2.: Sicherheitsrelevante Rollen und ihre Verträglichkeiten In der folgenden Abbildung 3.7 soll die eben beschriebene Rollenverteilung noch einmal zum besseren Verständnis visuell dargestellt werden. Anmerkung zur Abbildung: Die Pfeilquelle besitzt eine höhere Priorität bzw. Vertrauensstufe als das Ziel. Beispielsweise kann nur eine Person die die 73 3.7. Infrastrukturelle, organisatorische und personelle Sicherheitsmaßnahmen - CPS Kapitel 3. Analyse Sicherheitsbeauftragter Zertifizierungsdienst Registrierungsdienst System Administrator System Operator Abbildung 3.7.: Rollenmodell Stufe der Vertauenswürdigkeit des ZD erreicht hat auch die Aufgaben des SO einnehmen, aber nicht umgekehrt28 . 3.7.3. Personelle Sicherheitsmaßnahmen In diesem Abschnitt wird auf Regelungen, in Bezug auf das Personal, näher eingegangen. Anforderungen an die Mitarbeiter Mitarbeiter der FB-PKI/FH-PKI müssen alle Anforderungen hinsichtlich Vertrauenswürdigkeit, Integrität, Zuverlässigkeit und Fachkundigkeit erfüllen. Die Mitarbeiter sollten neben der allgemeinen Ausbildung in Informatik über angemessene Fachkenntnisse in ihren zugeteilten Rollen verfügen. Dokumente für die Mitarbeiter Den Mitarbeitern der FB-PKI/FH-PKI sollten folgende Dokumente zur Verfügung stehen. Die Zertifizierungsrichtlinie (CP), die Erklärung zum Zertifizierungsbetrieb (CPS), die Prozessbeschreibungen und die Formulare für den 28 ZD ist beispielsweise in erster Linie ZD und dann erst SO. 74 3.7. Infrastrukturelle, organisatorische und personelle Sicherheitsmaßnahmen Kapitel 3. Analyse - CPS regulären Betrieb, die Verfahrensanweisungen für den Notfall und die Dokumentation der IT-Systeme. Sicherheitsüberwachung In diesem Abschnitt soll es um die Umsetzung einer ständigen Sicherheitsüberwachung gehen, die einen nachträglichen Schutz vor der unbemerkten Kompromittierung bieten soll. Dabei sollte eine Überprüfung der Protokolldaten regelmäßig stattfinden und das zu einem festgelegten Zeitpunkt (z.B. jeden 1. eines Monats). Die Protokolldaten müssen dabei mit geeigneten Mitteln gegen Zugriff, Löschung und Manipulation geschützt werden, wobei eine Schwachstellenuntersuchung regelmäßig durch die Administratoren der entsprechenden Instanzen selbst durchgeführt wird. Kommt es zu schwerwiegenden sicherheitstechnischen Ereignissen, wird unverzüglich der Sicherheitsbeauftragte informiert. Bei schwerwiegenden technischen Ereignissen wird der System-Administrator informiert. 3.7.4. Kompromittierung und Wiederherstellung In diesem Abschnitt wird die Vorgehensweise bei Kompromittierung und Wiederherstellung behandelt. Prozeduren bei IT-Systemen Werden innerhalb der Zertifizierungsstelle fehlerhafte oder manipulierte Rechner festgestellt, die Auswirkungen auf die Prozesse der Zertifizierungsstelle haben, wird der Betrieb des entsprechenden Systems sofort eingestellt. Nach der Einstellung des Betriebes der betroffenen Komponente muss diese umgehend ersetzt werden. Außerdem sollte das fehlerhafte System auf die Möglichkeit einer vorsätzlichen Handlung geprüft werden, um eventuell entsprechende Schritte einzuleiten. 75 3.7. Infrastrukturelle, organisatorische und personelle Sicherheitsmaßnahmen - CPS Kapitel 3. Analyse Kompromittierung von privaten Schlüsseln der Zertifizierungsstelle Wenn der private Schlüssel der Zertifizierungsstelle nachweislich kompromittiert wurde oder ein begründeter Verdacht auf eine Kompromittierung besteht, muss sofort der Sicherheitsbeauftragte der Zertifizierungsstelle informiert werden. Er sollte umgehend die festgestellte Kompromittierung oder den Verdacht prüfen und, wenn nötig den Widerruf der betroffenen Zertifikate in die Wege leiten. Ist dieses ”Worst Case Scenario” eingetreten, müssen folgende Maßnahmen ergriffen werden: • Die direkt betroffenen Zertifikatnehmer werden unverzüglich informiert. • Das Zertifikat der Zertifizierungsstelle und alle Zertifikate, die zertifiziert wurden sind zu widerrufen. • Um inkorrekte oder ungültige Aussagen durch die Dienste zu verhindern, kann eine Abschaltung der Verzeichnisdienste und der damit verbundenen öffentlichen Dienste (z.B. das Online-Portal der Zertifizierungsstelle) in Erwägung gezogen werden. • Erstellen eines neuen Schlüsselpaars und eines Zertifikats für die Zertifizierungsstelle. • Veröffentlichen des Zertifikats der Zertifizierungsstelle. • Ausstellen neuer Zertifikate für die Zertifikatnehmer. 3.7.5. Reguläre Einstellung des Betriebs Wenn es zur regulären Einstellung des Zertifizierungsbetriebs kommt, werden folgende Maßnahmen ergriffen: Alle Zertifikatnehmer und Registrierungsstellen der betroffenen Instanz werden informiert. Dabei ist ein angemessener Zeitraum für die Information der Teilnehmer zu wählen (z.B. drei Monate vor Einstellung der Tätigkeit). Weiter müssen alle Zertifikate rechtzeitig widerrufen und die privaten Schlüssel der Zertifizierungsstelle zerstört werden. 76 Kapitel 3. Analyse 3.8. Technische Sicherheitsmaßnahmen - CPS 3.8. Technische Sicherheitsmaßnahmen - CPS Dieser Abschnitt beschreibt die Sicherheitsmaßnamen für den Schutz des privaten Schlüssel. Des Weiteren wird auf den Umgang und die Auslieferung der Schlüsselpaare eingegangen sowie Gültigkeitszeiträume für die Nutzung der Zertifikate festgelegt. 3.8.1. Schlüsselerzeugung und Installation Dieser Abschnitt wird die Erzeugung des Schlüsselpaares und deren Installation sowie den Umgang mit den privaten Schlüsseln näher betrachten. Schlüsselerzeugung Die Erzeugung der Schüsselpaare der RootCA und der Zertifizierungsstellen wie auch der für die PKI eingesetzten Datenverarbeitungssysteme sollte auf Systemen durchgeführt werden, die über keinen Netzwerkzugang verfügen. Übermittlung des privaten Schlüssels an den Zertifikatnehmer Die Übermittlung der Zertifikate und der privaten Schlüssel wird in zwei Fällen gestattet. Für die automatische Zertifikaterzeugung: Dabei wird dem Zertifikatnehmer das Zertifikat und der private Schlüssel in einem mit dem Masterpasswort gesicherten PKCS#12 Container zugestellt. Die Zustellung erfolgt entweder mit der Ablage des Containers im jeweiligen Home-Verzeichnis des Zertifikatnehmers oder mit dem Versand des Containers per signierter E-Mail. Für die Server-seitige Schlüsselgenerierung: Dabei wird dem Zertifikatnehmer das Zertifikat und der private Schlüssel in 77 3.8. Technische Sicherheitsmaßnahmen - CPS Kapitel 3. Analyse einem PKCS#12 Container im öffentlichen Portal der jeweiligen Zertifizierungsstelle bereitgestellt29 . Auslieferung des öffentlichen Schlüssels an den Zertifikataussteller Der Zertifizierungsantrag des Zertifikatnehmers wird durch die zuständige Registrierungsstelle der Zertifizierungsstelle übermittelt. Dabei können Übertragungsmedien wie Wechseldatenträger (CDROM, USB Stick etc.) oder eine gesicherte Netzwerkverbindung (SSH, SSL, VPN) verwendet werden. Auslieferung des öffentlichen CA-Schlüssels Die Teilnehmer der FB-PKI/FH-PKI können die öffentlichen Schlüssel, eingebettet in ein entsprechendes Zertifikat, von allen Instanzen (inklusive der RootCA) über die im Abschnitt 3.4 ”Veröffentlichungen und Verzeichnisdienst” angegeben Quellen beziehen. Schlüssellängen Als Signaturverfahren wird der RSA-Algorithmus verwendet. Die Schlüssellänge sollte bei Zertifizierungsstellen mind. 2048 Bit und bei den restlichen Schlüsseln mindestens 1024 Bit betragen. 3.8.2. Schutz des privaten Schlüssels Wird der private Schlüssel der Zertifizierungsstelle auf einem vernetzen System eingesetzt, so muss dieser Schlüssel für nicht autorisierte Personen unlesbar im Dateisystem abgelegt werden. Eine Teilung des privaten Schlüssels zwischen der RootCA und den untergeordneten Zertifizierungsstellen ist nicht erlaubt. 29 Der PKCS#12 Container ist durch ein Passwort gesichert das bei der Antragstellung angegeben wurde. 78 Kapitel 3. Analyse 3.8. Technische Sicherheitsmaßnahmen - CPS Aktivierung der privaten Schlüssel Private Schlüssel werden durch eine PIN gesichert. Die Aktivierung des privaten Schlüssels erfolgt erst durch die Eingabe des PIN. Um eine zusätzliche Sicherheit zu erlangen, kann bei privaten Schlüsseln, die über die RA ausgeliefert werden, ein zusätzlicher PIN vor dem herunterladen abgefragt werden. 3.8.3. Weitere Aspekte des Schlüsselmanagements In diesem Abschnitt werden weitere Themen in Bezug auf das Schlüsselmanagement näher betrachtet. Archivierung öffentlicher Schlüssel Öffentliche Schlüssel müssen im Verzeichnisdienst und auf den Onlineportalen regelmäßig für die Datensicherung archiviert werden. Dafür zuständig sind die jeweiligen Systemadministratoren der Instanzen der PKI. Gültigkeit von Zertifikaten und Schlüsselpaaren Die RootCA und deren untergeordnete Zertifizierungsstellen und ausgestellten Zertifikate sind für folgenden Gültigkeitszeiträumen vorgesehen: • Wurzel-Zertifikat der RootCA: max. 13 Jahre • Zertifikate für untergeordnete Zertifizierungsstellen: max. 7 Jahre • alle anderen Zertifikate außer den der Studenten: max. 2 Jahre • die Gültigkeitsdauer der Studenten-Zertifikate: die Regelstudienzeit plus 4 Semester (6 + 4 Semester = 5 Jahre). Hinweis: Da es nicht möglich ist, ein Zertifikat auszustellen, das mit der eigenen Lebensdauer die der Zertifizierungsstelle überschreitet, ergibt sich folgendes Bild für die Re-Zertifzierung, will man die maximale Lebensdauer der 79 3.9. Konformitätsprüfung - CP Kapitel 3. Analyse ausgestellten Zertifikate ausschöpfen. Die RootCA muss nach 6 Jahren und untergeordnete Zertifizierungsstellen nach 2 Jahre erneuert werden. Aktivierungsdaten Für die Passwörter bzw. PINs zur Aktivierung von privaten Schlüsseln sollten keine einfachen Kombinationen aus alphanumerischen Zeichen und Sonderzeichen gewählt werden. Die Länge muss mindestens 8 Zeichen betragen30 . Nähere Informationen zu dem Thema PIN siehe Kapitel 4 ”Praktische Umsetzung”. 3.9. Konformitätsprüfung - CP Konformität bedeutet, dass jede Zertifizierungsstelle innerhalb der FB-PKI/FHPKI in allen Abläufen den Regeln der CP und CPS entsprechen muss. Die Frequenz und die Umstände der Überprüfung wird durch die zuständigen Zertifizierungsstellen geregelt. Darüber hinaus kann eine Zertifizierungsstelle die untergeordneten Zertifizierungs- und Registrierungsstellen auf die Einhaltung der von ihr vorgegebenen Regeln prüfen. Das heißt, sie kann den Prüfer selbst stellen oder von einem Dritten anfordern31 . Dies liegt ganz im Ermessen der jeweiligen Zertifizierungsstelle. Des Weiteren sollten die zu überprüfenden Bereiche von der Zertifizierungsstelle festgelegt werden, wobei kritische Bereiche regelmäßig einer Prüfung unterzogen werden sollten. Dabei auftretende Mängel müssen in Übereinstimmung mit der zuständigen Stelle umgehend beseitigt werden. Die Prüfung der RootCA wird durch eine, noch festzulegende, Instanz des Fachbereichs bzw. der Fachhochschule durchgeführt. 30 Anmerkung: Für die PINs der RootCA und der untergeordneten Zertifizierungsstellen muss bei der Vergabe besondere Umsicht walten. Empfohlen wird eine Länge von min- 31 destens 10 Zeichen. Eine Selbstprüfung ist nicht erlaubt. 80 Kapitel 3. Analyse 3.10. Rahmenvorschriften - CP 3.10. Rahmenvorschriften - CP In den Rahmenvorschriften geht es in erster Linie um rechtliche Fragen und Verpflichtungen, die von der herausgebenden Zertifizierungsstelle garantiert werden. Dies gehört in den Bereich der Rechtswissenschaft und wird deshalb in dieser Arbeit nicht weiter behandelt. 3.11. Zusammenfassung In dem zurückliegenden Kapitel 3 ”Analyse” wurden Regelungen und Fragen besprochen die in der Planung einer produktiven Public Key Infrastruktur mit einfließen sollten. Dabei wurden Aussagen über den Aufbau, und die Anwendungsbereiche der PKI sowie über die Identifizierung, Authentifizierung und Veröffentlichung von Zertifikaten gemacht. Weiter wurde näher auf eine mögliche Ablauforganisation und das Thema der Sicherheitsmaßnamen eingegangen. Betrachtet man diese Themen als Ganzes, ergibt sich ein Gesamtbild für die Umsetzung einer PKI. Dabei soll an dieser Stelle angemerkt werden, dass Aufgrund der Komplexität und Umfang dieses Themas nicht alle Teile, die in der RFC vorgegeben wurden, in letzter Konsequenz behandelt werden konnten32 . Darunter fiel unter anderen eine genauere Prüfung der sicherheitstechnischen Maßnahmen und die Festlegung von Regelungen in Bezug auf das Personal sowie die Verantwortlichkeiten innerhalb der PKI oder die Fragen nach einer Archivierung der Daten und Logdateien. Des Weiteren wurde das Thema der möglichen Vorgaben und Erweiterungen innerhalb der Zertifikate und CRLs ausgeblendet (Certificate and CRL Profile) und die Fragen nach einer Konformitätsprüfung sowie die Rahmenvorschriften nur am Rande behandelt. Wie schon weiter oben mehrmals erwähnt, müssen demzufolge für die Umsetzung einer produktiven PKI innerhalb des Fachbereichs oder der gesamten Fachhochschule, die in diesem Kapitel gemachten Aussagen einer weiteren 32 Nicht alle Themen waren in der momentanen Planungsphase relevant. 81 3.11. Zusammenfassung Kapitel 3. Analyse Kontrolle unterzogen und für das jeweilige Anwendungsfeld weiter verfeinert und erweitert werden. 82 4. Praktische Umsetzung Dieses Kapitel dokumentiert die Arbeiten am Prototypen einer Zertifizierungsstelle. Für die Entwicklung wird ein Laborrechner verwendet. Dieser ist mit einer Intel Pentium 4 CPU 2,6GHz Taktfrequenz sowie 1GByte Hauptspeicher und 80GByte Festplattenspeicher ausgestattet. Weiter ist als Betriebssystem Windows XP Professional (Version 2002) mit Service Pack 2 installiert. Auf Basis dieser Ausstattung ist VMWare 4.5 mit einer 365-Tage-Lizenz aufgespielt welches für die Umsetzung des Prototypen, verteilt auf mehreren virtuellen Maschinen, eingesetzt wird. In jeder virtuellen Maschine läuft eine SuSE Linux Version 9.31 . 4.1. Einführung In einem ersten Schritt wurden verschiedene Lösungsansätze im Open SourceBereich betrachtet, die sich mit der Umsetzung und Handhabung der Prozesse in einer PKI beschäftigen. Dabei wurden TinyCA und XCA getestet, die jeweils ein Interface für OpenSSL implementieren. Bei vertiefenden Tests der beiden Lösungen auf ihre Anwendbarkeit in größeren Infrastrukturen wurde jedoch festgestellt, dass sie für den beabsichtigten Zweck völlig ungeeignet sind. Grund dafür waren die nicht vorhandene LDAP-Unterstützung, aber auch der offensichtlich fehlende Ansatz einer Philosophie des Einsatzes in großflächigen Infrastrukturen. Die nun folgenden Ausführungen beziehen sich auf 1 Für weitere Informationen zu den Voraussetzungen bitte den Abschnitt 4.2.2 ”Voraussetzungen” einsehen 83 4.2. Eigenschaften von OpenCA Kapitel 4. Praktische Umsetzung die Umsetzung des Prototypen einer Zertifizierungsstelle unter Verwendung von OpenCA. Dieses Projekt bietet den bisher einzigen ernst zu nehmenden Ansatz für die Implementierung großer Public Key Infrastrukturen im Open Source-Bereich. 4.2. Eigenschaften von OpenCA Das OpenCA-Projekt wird seit 1999 vorangetrieben und ist seit der Version 0.9.02 im produktiven Einsatz. Ziel der Entwicklung ist das Erreichen eines Maximums an Flexibilität, um große Organisationen wie eine Universität, öffentliche Einrichtungen oder Firmen zu unterstützen. Das System wird bereits produktiv eingesetzt, z.B. an der T.U. München3 , an der Fakultät Elektrotechnik und Informationstechnik der Humboldt Universität Berlin4 und der City of Sunderland / UK5 . 4.2.1. Funktionsübersicht In erster Linie ist OpenCA webbasiert. Dies gibt dem System im Netzwerk die nötige Flexibilität, um dezentral in eine existente Infrastruktur eingebettet zu werden. Diese Flexibilität ist auch eine der größten Stärken der Anwendung. Es besteht die Möglichkeit, alle Interfaces, Datenbanken und den LDAP-Server auf einer Maschine zu betreiben. Man kann aber auch jedes Interface auf einem eigenen Server mit eigenen Datenbanken und LDAP betreiben. Mit anderen Worten: Das System ist äußerst skalierbar und somit für kleine wie auch große Netzwerke einsetzbar. Im Folgenden werden kurz ein paar der wichtigsten Features aufgeführt. 2 3 4 5 Veröffentlicht im Jahr 2002, zur Zeit dieser Arbeit befindet sich die Entwicklung beim Stand 0.9.2.5. http://www.ldv.ei.tum.de http://ca.hu-berlin.de/ http://www.diginus.co.uk/ 84 Kapitel 4. Praktische Umsetzung 4.2. Eigenschaften von OpenCA • PUBLIC-Interface • LDAP-Interface • RA-Interface • CA-Interface • SCEP-Unterstützung • OCSP-Unterstützung • IP-Filter für Interfaces • Passwort-basierendes Login • Zertifikat-basierendes Login • Rollen-basierte Zugriffskontrolle • Unterstützung für alle gängigen Browser • Client-seitige Schlüsselerzeugung • Server-seitige Schlüsselerzeugung 4.2.2. Voraussetzungen OpenCA ist auf jedem Unix/Linux basierenden Betriebssystem lauffähig, wenn folgende Systemvoraussetzungen gegeben sind: Grundsätzliche Software-Voraussetzungen:6 • Apache • mod_ssl • OpenSSL + OpenSSL devel + PerlOpenSSL 6 Aus [CB05] entnommen. 85 4.2. Eigenschaften von OpenCA Kapitel 4. Praktische Umsetzung • OpenLDAP • MySQL • Perl Die folgenden Ausführungen zu den Softwarevoraussetzungen beziehen sich speziell auf die SuSE Distribution7 , unter der der Prototyp aufgesetzt wurde: Installierte Paketgruppen unter SuSE: • Compiler-Werkzeuge • einfacher Webserver mit Apache • LDAP-Server und Werkzeuge • Netzwerkserver Zusätzlich: • Grafisches Grundsystem • phpMyAdmin 4.2.3. Aufbau von OpenCA OpenCA ist modular aufgebaut und bietet so die Möglichkeit der dynamischen Verteilung der einzelnen Komponenten in eine schon existierende Infrastruktur. Dieser Abschnitt soll dazu dienen, dem Leser einen Überblick über den Aufbau der einzelnen Komponenten und deren Zusammenhänge innerhalb von OpenCA zu geben. Dabei soll die Abbildung 4.1 als Basis für die weiteren Betrachtungen dienen.8 7 8 Gilt für die SuSE 9.3. Für weitere Information der Möglichkeiten der Interfaces von OpenCA wird auf den organisatorischen Anhang Abschnitt B.3 ”Benutzeranleitung OpenCA” hingewiesen. 86 Kapitel 4. Praktische Umsetzung CA 4.2. Eigenschaften von OpenCA Nutzerdaten PKCS#12 CA Batch Zertifikate manuell ausstellen, zurückrufen,CRLs erstellen Zertifikate automatisch ausstellen und zurückrufen Zertifikate CRLs Node Daten export/import von und zur RA/CA RA LDAP Zertifikate CRLs Zertifikate CRLs RA Anträge annehmen und freigeben. PUB SCEP eigene Zertifikate verwalten fremde Zertifikate suchen CA Informationen abrufen Zertifikate beantragen und herunterladen sowie CRLs beziehen. Zertifikate CRLs, Keys CRT CRLs CRTs Abbildung 4.1.: Interner Aufbau von OpenCA PUB Das PUBLIC-Interface ist die zentrale Anlaufstelle für alle Zertifikatnehmer der Zertifizierungsstelle. Dabei stellt es dem Nutzer alle wichtigen Dienstleistungen zur Verfügung, z.B. das Beantragen eine Zertifikates, das Einsehen aller gültigen und verworfenen Zertifikate der Zertifizierungsstelle, das Herunterladen von CRLs und den Wurzelzertifikaten sowie das Einsehen der Policy. SCEP Der SCEP-Dienst (Cisco Simple Certificate Enrollment Protocol) dient zum automatischen Abrufen von Zertifikaten und Zertifikat-Sperrlisten (CRLs) durch 87 4.2. Eigenschaften von OpenCA Kapitel 4. Praktische Umsetzung Netzwerkkomponenten, die das SCEP-Protokoll9 unterstützen. RA Das RA-Interface stellt alle wichtigen Dienste für den Betrieb einer Registration Authority (RA) innerhalb der Zertifizierungsstelle zur Verfügung und ist sozusagen die Schnittstelle für die Annahme von Anträgen und die Veröffentlichung der Zertifikate. NODE Die Node ist zum einen ein Interface, von dem aus man alle anderen Schnittstellen der Zertifizierungsstelle erreichen kann. Zum anderen kann man darüber den Datenaustausch zwischen verschiedenen Ebenen der Hierarchie einer Zertifizierungsstelle abwickeln. Eine weitere wichtige Aufgabe besteht in administrativen Zwecken wie Initialisierung der Datenbank oder auch Backup- und Wiederherstellungsfunktionen. CA Das CA-Interface stellt alle wichtigen Dienste für den Betrieb einer Certification Authority (CA) innerhalb der Zertifizierungsstelle zur Verfügung und ist sozusagen die Schnittstelle für das Signieren und Sperren der Zertifikate sowie das Erstellen entsprechender CRLs. BATCH Die Batch ist eine Status-Maschine zum vollautomatischen Generieren von Schlüsselpaaren inklusive Zertifkaten. Weiterhin existiert ein BATCH-Interface, mit dem man die Aktionen des Batch-Prozessors steuern kann. 9 Ist ein von Cisco und VeriSign entwickeltes Protokoll zur Verteilung von Zertifikaten. 88 Kapitel 4. Praktische Umsetzung 4.3. Planung einer Zertifizierungsstelle 4.3. Planung einer Zertifizierungsstelle In diesem Abschnitt wird am Beispiel der User CA die interne Infrastruktur einer einzelnen Zertifizierungsstelle auf Basis einer Umsetzung mit OpenCA behandelt. Zunächst wird dabei auf die verfügbaren Komponenten eingegangen und danach auf den eigentlichen Aufbau der internen Struktur. 4.3.1. Komponenten Die interne Infrastruktur einer Zertifizierungsstelle gliedert sich in folgende Komponenten: • CA (Zertifizierungsstelle) Manuelles ausstellen und zurückrufen von Zertifikaten sowie erstellen der CRLs. • BATCH Automatisches ausstellen der Zertifikate. • RA (Registrierungsstelle) Annehmen und freigeben von Anträgen sowie weiterleiten dieser an die CA. • PUB (Public-Interface) Verwalten der eigenen Zertifikate, suchen fremder Zertifikate, abrufen der CA-Informationen, einsehen der Policy, erstellen von Anträge etc. • LDAP Ablage für Zertifikate und CRLs in einem zentralen LDAP-Server. • NODE Schnittstelle zwischen den verschiedenen Ebenen der Hierarchie bei Offline/ Onlinetrennung. • MYSQL-Datenbank Zentraler Speicher für Zertifikate, CSRs, CRRs und CRLs. 89 4.3. Planung einer Zertifizierungsstelle Kapitel 4. Praktische Umsetzung 4.3.2. Aufbau Bei der Vorstellung einer praktikablen Lösung des Aufbaus einer Zertifizierungsstelle sollen in erster Linie die Darstellung der Zusammenhänge Abbildung 4.2 und die Verteilung der einzelnen Komponenten innerhalb der Zertifizierungsstelle Abbildung 4.3 verdeutlicht werden. Online RA Zugriff von Extern: Anträge, CRLs etc. IP = *.*.*.*1 DNS = melchior Export/Import der der CRLs, CRTs, CRRs, CSRs über das Node. Medium = Diskette, USB-Stick oder SCP Offline CA IP = *.*.*.*0 DNS = kaspar Interface: PUB, RA, LDAP, SCEP, NODE Interface: CA, BATCH, NODE Dienste MYSQL Dienste MYSQL Zertifizierungsstelle EXTERN Veröffentlichung aus RA der Zertifikate und CRLs in internen LDAP des FAchbereiches IP = *.*.*.*2 DNS = balthasar Dienste: DNS LDAP Abbildung 4.2.: Aufbau der Zertifizierungsstelle In diesem Szenario wird von einem hohen Sicherheitsniveau ausgegangen. Die CA ist als eine Offline-CA implementiert und verfügt über keinerlei Netzwerkanbindung10 . Ist der Rechner, auf dem sich die CA befindet, auch in einem Bereich aufgestellt, der strengen Kontrollen unterworfen ist, kann man von einem hohen Grad an Sicherheit ausgehen, da wirklich nur autorisierte Personen Zugriff auf diesen Teil der Infrastruktur bekommen. Weiterhin sind die Datenbanken der einzelnen Hierarchien strikt voneinander getrennt und können 10 Alternativ können die Netzwerkverbindungen bei Bedarf (z.B. Import/Export) automatisch gestartet und wieder gestoppt werden Ähnlich dem Öffnen und Schließen einer Zugbrücke. 90 Kapitel 4. Praktische Umsetzung 4.3. Planung einer Zertifizierungsstelle nur über einen manuellen Import und Export von Daten mittels eines physikalischen Mediums (Diskette/ USB-Stick; oder wie beim Prototypen der Fall SSH/SCP) abgeglichen werden. Anmerkung: Das PUBLIC-Interface sollte auf dem RA-Server laufen, kann aber aus Gründen der Sicherheit (Kompromittierung des RA-Servers) auf einen eigenen Server, der von außen erreichbar ist, ausgelagert werden. Dabei ist jedoch zu beachten, dass diese öffentliche Instanz über eine eigenen Datenbank verfügen müsste, die wiederum mit der Datenbank des RA-Servers abgeglichen werden muss, um zugelassene Zertifikate, CSRs und CRLs zu veröffentlichen. Was wiederum einen zusätzlichen Aufwand bedeuten würde. Um nun die internen Details der einzelnen Prozesse innerhalb der Zertifizierungsstelle aufzuzeigen, soll im Folgenden der Gegebene Aufbau in Abbildung 4.3 konkretisiert werden. Online-RA Die Online-RA ist die Schnittstelle zwischen den Nutzern der Zertifizierungsstelle und der Offline-CA. Der Austausch von Informationen z.B. Zertifikate, CRLs, Policy etc., erfolgt ausschließlich über das PUBLIC-Interface. Dieses wiederum bezieht seine Daten aus der lokalen Datenbank (Zertifikate, CRLs) und dem /OPENCADIR/var/ Verzeichnis (Policy und Root Zertifikate). Die im PUBLIC-Interface gestellten Zertifikatsanträge oder Anträge auf Sperrung werden in der lokalen Datenbank der RA abgespeichert. Durch das RA-Interface, hat der RA-Operator die Möglichkeit, die eingegangen Anträge zu prüfen und gegebenenfalls anzupassen. Ist anschließend der Antrag genehmigt, wird dies in der Datenbank vermerkt11 . Sollen nun die Daten an die Offline-CA weitergereicht werden, geschieht das über das NODE-Interface. Mit diesem Interface kann der RA-Operator alle relevanten Daten (im Speziellen die Zertifikatanträge) an die Offline-CA exportieren (Export in eine 11 Dieser Vermerk wird erst für die CA wieder interessant. 91 4.3. Planung einer Zertifizierungsstelle Kapitel 4. Praktische Umsetzung Online-RA Zugriff von Extern: Anträge, CRLs, Zertifikate Policy, Root Zert. etc. Download CAZert. und CRLs PUB Veröfentlichung und Download der Zertifikate IP = *.*.*.*1 DNS = melchior /var Import von CA CSRs, CRRs usw. NODE Import/Export von/zu CA MYSQL Zulassen der CSRs und CRRs RA Veröffentlichen derZertifikate und CRLs LDAP Import der Batch Konfiguration BATCH PKCS#12 Rollout /var Export zu RA Ablage der erstellten Zertifikate NODE Import/Export von/zu RA CA MYSQL Signieren der CSRs, erstellen der CRLs Offline-CA IP = *.*.*.*0 DNS = kaspar EXTERN IP = *.*.*.*2 DNS = balthasar Dienste: DNS LDAP Zertifizierungsinstanz der interne LDAP-Server des Fachbereichs Abbildung 4.3.: Interner Aufbau der Zertifizierungsstelle höhere Ebene der Hierarchie). Dazu bezieht der Exportprozess die benötigten Daten aus der lokalen Datenbank und erzeugt daraus ein Archiv. Ist dieser Prozess abgeschlossen, muss das Archiv anschließend an die Offline-CA übertragen werden. Weiterhin gibt das auf der Online-RA laufende LDAP-Interface 92 Kapitel 4. Praktische Umsetzung 4.3. Planung einer Zertifizierungsstelle dem RA-Operator die Möglichkeit, alle in der lokalen Datenbank befindlichen Zertifikate und CRLs auf einem LDAP-Server zu veröffentlichen. Offline-CA Die Offline-CA ist der zentrale Bereich der Zertifizierungsstelle, der nur von autorisierten Personen erreicht werden darf12 . Dabei stellt das NODE-Interface die Schnittstelle zur Außenwelt dar. Über dieses finden die Importe/Exporte von/zur RA statt. Kommt es zu einem Import so werden die Daten (z.B. CSRs oder CRRs) aus dem Archiv extrahiert und in die lokale Datenbank übertragen. Anschließend können nun z.B. die neuen Anträge vom CA-Operator im CA-Interface eingesehen und signiert werden wobei die signierten Zertifikate wiederum in der lokalen Datenbank abgelegt werden13 . Sollen die von der CA signierten Zertifikate veröffentlicht werden, muss wieder im NODE-Interface ein Export an eine niedrigere Ebene der Hierarchie ausgelöst werden. Das daraus entstandene Archiv wird daraufhin zur Veröffentlichung an die Online-RA übertragen, die dieses in ihrem eigenen NODE-Interface wiederum importiert. Damit werden durch diesen Prozess die Daten in die eigene lokale Datenbank der Online-RA eingespielt und somit für die Öffentlichkeit über das PUBLICInterface erreichbar. EXTERN Der EXTERN-Host stellt externe Dienste zur Verfügung, welche die Zertifizierungsstelle in Anspruch nimmt. In erster Linie ist dies ein Verzeichnisdienst, der den zentralen LDAP-Server innerhalb des Fachbeichs darstellt. Dieser wird über OpenLDAP realisiert und besitzt als Wurzel DC=fh-wiesbaden, DC=de. Weiter wird der Baum für die Nutzung an der Zertifizierungsstelle folgendermaßen aufgespannt: OU=Users, DC=cs, DC=fh-wiesbaden, DC=de. 12 13 Je nach Sicherheitsniveau kann sich dabei die CA innerhalb eines Netzwerkes befinden. Wird ein Batch-Prozess angestoßen so werden die dabei erzeugten Zertifikate auch in der Datenbank abgelegt. 93 4.4. Installation Kapitel 4. Praktische Umsetzung 4.4. Installation Die folgenden Abschnitte behandeln die Arbeiten an dem Prototypen und dessen praktischer Umsetzung. Als erstes wird auf die Installation von OpenCA eingegangen. Die erstmalige Installation und Konfiguration von OpenCA stellte sich als eine sehr langwierige und aufwendige Arbeit heraus. Aus diesem Grund sollen in diesem und den folgenden Abschnitten die gewonnenen Erkenntnisse und Erfahrungen erläutert werden, um so das spätere Nachvollziehen der Installation und Konfiguration so einfach wie möglich zu gestalten. Da es jedoch keine deutschsprachige Beschreibung des Installations-Prozesses gibt, stützen sich die Ausführungen hauptsächlich auf die englischen Dokumentationen von OpenCA14 [CB05]. Zu Beginn sind die aktuellen Sources von OpenCA unter www.openca.org zu beziehen15 . Nach dem Herunterladen und Entpacken des Paketes müssen die drei üblichen Schritte configure ,make und make install durchgeführt werden. Da aber einige Eigenheiten und Optionen zu beachten sind, soll in den folgenden Unterabschnitten näher auf die Details eingegangen werden. 4.4.1. Configure In diesem Abschnitt wird auf die Beschreibung der Optionen eingegangen, die configure mit übergeben werden können, um die Installation auf die Gegebenheiten des Systems, auf dem OpenCA aufgesetzt werden soll, anzupassen. –with-openssl-prefix=DIR Als Parameter wird die Pfadangabe von OpenSSL angegeben16 . Wenn der Pfad von OpenSSL in die globalen Pfade eingetragen ist, ist diese Angabe notwendig. 14 15 16 Diese ist in vielen Punkten nicht aktuell oder unvollständig. Zur Zeit der Erstellung dieses Dokumentes ist die aktuelle Version 0.9.2.5. Bei SuSE ist OpenSSL unter /usr/bin/ zu finden. 94 Kapitel 4. Praktische Umsetzung 4.4. Installation –with-language=LANGUAGE Hier kann eine spezielle Sprache angegeben werden, in der OpenCA installiert werden soll. Folgende Übersetzungen stehen zur Verfügung17 : • de_DE = Deutsch • es_ES = Spanisch • fr_FR = Französisch • it_IT = Italienisch –with-openca-user=ARG / -group=ARG OpenCA installiert eine Reihe von Dateien, die nicht vom Webserver her zugänglich sein sollten. Normalerweise werden diese für den User Root und die Gruppe Root installiert. Wenn dies nicht der Fall sein soll und z.B. ein spezieller User oder eine spezielle Gruppe für OpenCA existiert, kann hier der User (-user=ARG) und die Gruppe (-group=ARG) angegeben werden, welchem/welcher der Zugriff gestattet werden soll. Dateisystem Pfade –with-module-prefix=DIR Dieser Parameter ist eine Pfadangabe für den Installationsort der Perlmodule, die von OpenCA verwendet werden sollen. Diese Angabe ist insbesonders nützlich, wenn OpenCA zu einem späteren Zeitpunkt wieder entfernt oder auf einem System mehrere Versionen von OpenCA installieren werden sollen18 . –with-openca-prefix=DIR OpenCA enthält eine Verzeichnisstruktur, die alle Daten an einem zentralen Ort speichert. Dieser Ort kann durch die Angabe von –with-openca-prefix=DIR spezifiziert werden. Weiterhin kann man, wenn dies gewünscht ist, durch die 17 18 Ohne die Angabe einer Sprache wird OpenCA Standardmäßig in Englischer Sprache installiert. Ohne die Angabe des module-prefix werden alle Module unter /usr/lib/perl5/ installiert. 95 4.4. Installation Kapitel 4. Praktische Umsetzung Prefixe –with-etc-prefix=DIR, –with-lib-prefix=DIR und –with-var-prefix=DIR die Pfade für die Verzeichnisse /etc, /lib und /var auf die verwendete Distribution anpassen. Werden diese Schalter nicht verwendet, werden die für die /etc, /lib und /var vorgesehenen Dateien in das Heimatverzeichnis, das mit –with-openca-prefix angegeben wurde, abgelegt. Um Übersichtlichkeit und eine saubere Deinstallation von OpenCA zu gewährleisten wird vom Autor empfohlen, alle Dateien für OpenCA in einem einzigen Verzeichnis zu halten. Angabe der IDs für die Module Mit den folgenden Optionen kann man den Zahlenraum und die ID der einzelnen Module vorgeben, die unter OpenCA verwendet werden sollen. Wird diese Option nicht verwendet, werden den Modulen Standard-IDs zugewiesen. Näher darauf eingegangen wird im technischen Anhang Abschnitt A.1.5 ”Module Konfiguration”. • –with-module-shift=INT Hier wird der Zahlenraum angegeben, in dem die IDs für die Module vergeben werden sollen. • –with-ra-module-id=INT Hier wird eine ID für das RA-Modul im oben angegeben Zahlenraum angegeben. • –with-pub-module-id=INT Hier wird eine ID für das PUB-Modul im oben angegeben Zahlenraum angegeben. Anmerkung: Es ist möglich, die ID noch nachträglich in der config.xml abzuändern. Weitere Informationen zu diesem Thema können im technischen Anhang Abschnitt A.1 ”config.xml” entnommen werden. 96 Kapitel 4. Praktische Umsetzung 4.4. Installation Spezielle Webserver Optionen Die Webserver-Konfiguration besitzt für die Konfiguration eines normalen Webservers vier Basisoptionen. Will man OpenCA in ein schon vorhandenes Portal eingliedern, stehen zusätzlich auch Optionen zur Verfügung, um die Installation detailliert an das vorhandene System anzupassen. Server-Informationen Jeder Webserver benötigt Basisinformationen wie den Hostnamen oder Angaben über die Gruppe oder den User, welche/welcher auf dem System den Webserver ausführen dürfen. Diese Optionen werden im Folgenden näher behandelt. • –with-web-host=HOST Hostname des Webservers, auf dem OpenCA betrieben werden soll. • –with-httpd-user=USER User, mit dem der Webserver Server-seitig z.B. PHP-Scripte ausführen darf oder auf Bereiche des Filesystems lesend und schreibend zugreift. • –with-httpd-group=GROUP Gruppe, mit der der Webserver Server-seitig z.B. PHP-Scripte ausführen darf oder auf Bereiche des Filesystems lesend und schreibend zugreift. • –with-httpd-fs-prefix=DIR Pfadangabe, in welchem sich Apache innerhalb des Filesystems befindet. Filesystem-Pfade In den Optionen für die Pfade innerhalb des Filesystems kann angegeben werden, wohin der Inhalt der verschiedenen Interfaces und Module eingespielt werden soll. Dabei stehen folgende Hauptoptionen zur Verfügung: • –with-cgi-fs-prefix=DIR Angabe des durch den Webserver verwendeten CGI-Verzeichnisses. 97 4.4. Installation Kapitel 4. Praktische Umsetzung • –with-htdocs-fs-prefix=DIR Angabe des durch den Webserver verwendeten HTDOCS-Verzeichnisses. Anmerkung: ohne die Angabe der Präfixe werden die Daten in /usr/local/apache/ gespeichert. Angepasste Installation OpenCA ist für den Einsatz in großen Organisationen entwickelt. Diese haben gewöhnlich Online-Portale für ihre Mitarbeiter und Kunden. Wenn vorgesehen ist, OpenCA in ein solches Portal zu integrieren, ist es ist nicht nötig, Pfade und Links per Hand zu setzen. Der Ort für die CGI- und HTDOCS-Verzeichnisse für jedes Interface von OpenCA können separat angegeben werden. Die Option - –with- ca-|ra-|ldap-|pub-|node-|scep- - cgi-|htdocs- - fs-prefix stellt dies zur Verfügung. Dadurch bekommt man die Flexibilität, zu entscheiden, an welche Stelle in der eigenen Infrastruktur Teile von OpenCA abgelegt werden. Somit wird eine bestmögliche Integration in schon bestehende OnlinePortale gewährleistet. Verwendete Optionen bei der Installation des Prototypen In diesem Abschnitt werden die für die Erstinstallation des Prototypen verwendeten Optionen dokumentiert. Der Aufruf19 von configure ist im Listing 4.1 aufgeführt. 19 Achtung: bei den Pfadangaben kein ”/” am Ende angeben da es sonst mit der Konfiguration von OpenCA Probleme gibt. 98 Kapitel 4. Praktische Umsetzung 4.4. Installation ./ configure -- with - language = de \ _DE -- with - module - prefix =/ srv / openca / modules -- with - openca - prefix =/ srv / openca -- with - httpd - user = wwwrun -- with - httpd - group = www -- with - cgi - fs - prefix =/ srv / www / cgi - bin -- with - htdocs - fs - prefix =/ srv / www / htdocs Listing 4.1: Aufruf von ./configure für den Prototypen Zur näheren Erklärung werden nun die Komponenten des Aufrufs einzeln betrachtet: • –with-language=de_DE OpenCA wird in Deutsch installiert. • –with-module-prefix=/srv/openca/modules Die Module werden in das Basisverzeichnis /srv/openca von OpenCA abgelegt. • –with-openca-prefix=/srv/openca Das Basisverzeichnis für alle Module. • –with-httpd-user=wwwrun Unter SuSE wird Apache mit dem User ”wwwrun” ausgeführt. • –with-httpd-group=www Unter SuSE wird Apache unter der Gruppe ”www” ausgeführt. • –with-cgi-fs-prefix=/srv/www/cgi-bin Angabe des zentralen CGI-Verzeichnisses, in dem alle Module abgelegt werden. • –with-htdocs-fs-prefix=/srv/www/htdocs Angabe des zentralen HTDOCS-Verzeichnisses, in dem alle Interfaces abgelegt werden. 99 4.4. Installation Kapitel 4. Praktische Umsetzung 4.4.2. make Nachdem mit configure die Vorbereitung für den eigentlichen Kompiliervorgang abgeschlossen ist, kann dieser mit dem Befehl make ausgelöst werden. Ist der Kompiliervorgang erfolgreich durchlaufen, können anschließend die einzelnen OpenCA-Komponenten an ihren vorgesehenen Ort installiert werden. Dazu stehen folgende Optionen zur Verfügung: • make install-ca installiert nur die CA. • make install-ext hat die gleiche Bedeutung wie install-online. Diese Option hat den Status deprecated. • make install-ldap installiert nur das LDAP-Interface. • make install-node installiert nur die NODE. • make install-offline installiert CA, BATCH und NODE. • make install-online installiert RA, LDAP, PUB, SCEP und NODE. • make install-pub installiert nur das PUBLIC-Interface. • make install-ra installiert nur die RA. • make install-scep installiert nur SCEP. 100 Kapitel 4. Praktische Umsetzung 4.4. Installation • make install-doc installiert nur die Dokumentation. Nach der Installation befindet sich das Basisverzeichnis, wenn nicht unter – with-openca-prefix geändert, unter /usr/local/openca. 4.4.3. Die config.xml-Datei Nach der Installation sind alle notwendigen Dateien installiert und korrekt im Dateisystem abgelegt. OpenCA ist jedoch in diesem Zustand noch nicht lauffähig, da die Anpassung der Konfigurationsdateien erst abgeschlossen werden muss. Es gibt Hunderte von Dateien mit der Endung *.template. Diese Dateien sind jedoch nur Platzhalter für die richtigen Konfigurationsdateien, welche erst durch das Konfigurieren der /OPENCADIR/etc/config.xml und das anschließende Ausführen des Skriptes /OPENCADIR/etc/configure_etc.sh erzeugt werden müssen. Dabei benutzt das Skript configure_etc.sh die config.xml als Eingabedatei, wertet diese aus und erstellt mit den erhaltenen Daten die richtigen Konfigurationsdateien. Dabei ist anzumerken, dass die in der config.xml festgelegten Einstellungen für die Erstinstallation von zentraler Bedeutung sind. Jedoch müssen dabei nicht alle Felder bindend ausgefüllt werden. Die Hauptaufgabe der config.xml und configure_etc.sh besteht darin, erstmalig alle Konfigurationsdateien mit sinnvollen Werten zu füllen, um so dem Nutzer unnötigen Aufwand bei der Erstinstallation zu ersparen. Eine nachträgliche Änderung und Anpassung der Konfiguration von OpenCA ist nötig20 . Anmerkung: Es sollte darauf geachtet werden, dass bei jeder neuen Ausführung des configure_etc.sh Skriptes alle Konfigurationsdateien und auch die darin von Hand vorgenommenen Änderungen überschrieben werden. Deshalb sollte von einem nachträglichen Durchlauf von configure_etc.sh abgesehen werden, will man die von Hand gemachten Änderungen nicht verlieren. 20 Die wichtigsten, durch configure_etc.sh, erzeugten Konfigurationsdateien werden im technischen Anhang Abschnitt A.3 behandelt. 101 4.4. Installation Kapitel 4. Praktische Umsetzung Zur näheren Information über die Inhalte der config.xml Datei wird an dieser Stelle auf den technischen Anhang Abschnitt A.1 ”config.xml” verwiesen. Anmerkung zur Installation unter SuSE 9.3 Durch einen Fehler im Installationsprozess fehlen Skripte in /usr/local/bin die zur Ausführung von configure_etc.sh benötigt werden. Diese müssen von Hand aus dem OpenCA-Source unter src/scripts/ in /usr/local/bin/ umkopiert werden. Zusätzlich sollte vor dem Umkopieren darauf geachtet werden, die Scripte auch ausführbar zu machen. Dies erreicht man mit dem Aufruf chmod -R 755, der auf das gesamte Skriptverzeichnis angewendet werden sollte. 4.4.4. Zusammenfassung In den letzten Abschnitten wurden die einzelnen Optionen, das Kompilieren und Installieren von OpenCA sowie die anschließende Erst-Konfiguration besprochen. Um den Überblick zu bewahren, soll dem Leser in diesem Abschnitt noch einmal ein Überblick über den gesamten Prozess der Installation gegeben werden. Dieser kann auf jeden Teil von OpenCA (ob nun Offline- oder Online-Teil) angewendet werden. Allgemeine Vorbereitung 1. Installieren der nötigen Pakete (siehe 4.2.2 ”Voraussetzungen”) 2. Starten der Dienste Apache und MySQL 3. Erstellen einer leeren Datenbank für OpenCA 4. Erstellen eines OpenCA Datenbank-Users Quick Installation 1. Entpacken des OpenCA Archives 2. ./configure + Optionen 102 Kapitel 4. Praktische Umsetzung 4.5. Konfiguration 3. make 4. make install-offline|online... 5. Anpassen der config.xml 6. Ausführen des configure_etc.sh Skriptes 7. Starten des OpenCA Servers mit /OPENCADIR/etc/openca_rc start 21 4.5. Konfiguration OpenCA lässt sich über die durch das configure_etc.sh Skript erzeugten *.conf Dateien nachträglich anpassen und konfigurieren. Dabei kann in diesem Abschnitt das volle Spektrum der gebotenen Möglichkeiten unmöglich abgehandelt werden. Jedoch soll exemplarisch am Beispiel wichtiger, zu konfigurierender Elemente die grundsätzliche Konfiguration von OpenCA dem Leser näher gebracht werden22 . 4.5.1. CSRs Über einen CSR (Certificate Signing Request) wird an eine Zertifizierungsstelle von einem User der Antrag auf die Erteilung eines Zertifikates gestellt. Dieser Teil wird bei OpenCA über das PUBLIC-Interface abgewickelt. Der nun folgenden Abschnitt soll sich um die Konfiguration der Felder innerhalb eines Antrages beschäftigen. 21 22 Stoppen/Neustart des Servers mit openca_rc stop/restart. Für weitere Detailinformationen sei auf die Dokumentation [CB05], die Onlineresourcen unter [URL6] und dir sehr hilfreiche Mailinglist unter http://www.mailarchive.com/[email protected]/ und den technischen Anhang verwiesen. 103 4.5. Konfiguration Kapitel 4. Praktische Umsetzung Zertifikatsanträge werden in erster Linie aus dem PUBLIC-Interface an die RA bzw. CA gestellt. Dabei ist unter anderem der Inhalt, der bei einer Antragstellung abgefragt wird, auch entscheidend für das spätere Einpflegen der Zertifikate in einen LDAP-Server. Die zentrale Konfiguration der unter dem PUBLICInterface verwendeten Zertifikatsanträge befindet sich unter /OPENCADIR/etc /server/ in der Konfigurationsdatei pub.conf Diese Datei wird nun etwas näher betrachtet23 . Im Listing 4.2 ist der für die Erstellung der verschiedenen Antragsarten zuständige Ausschnitt aus der pub.conf aufgeführt. Basic_CSR_Keysizes " 1024 " " 2048 " " 4096 " " 512 " " 768 " DN_TYPES " BASIC " " SPKAC " " IE " ## = = = = = = = = = = == = = = = = = [ DN_TYPE ::= BASIC ] = = = = = = = = = = = = = = = = = = = = = DN_TYPE_BASIC_BODY " YES " D N _ T Y P E _ B A S I C _ K E Y G E N_ M O D E DN_TYPE_BASIC_BASE " SERVER " " OU " " DC " " DC " " DC " DN _T YP E_ BAS IC _E LE MEN TS " emailAddress " " UID " DN_TYPE_BASIC_NAME " Basic User Request " DN_TYPE_BASIC_BASE_1 " Users " DN_TYPE_BASIC_BASE_3 " cs " DN_TYPE_BASIC_BASE_4 " fh - wiesbaden " DN_TYPE_BASIC_BASE_5 " de " "E - Mail " D N_ T YP E _B AS I C_ E LE M EN T_ 1 DN_TYPE_BASIC_ELEMENT_1_MINIMUM_LENGTH 7 DN_TYPE_BASIC_ELEMENT_1_REQUIRED " YES " DN_TYPE_BASIC_ELEMENT_1_CHARACTERSET " EMAIL " D N_ T YP E _B AS I C_ E LE M EN T_ 2 " Nutzer Name " DN_TYPE_BASIC_ELEMENT_2_MINIMUM_LENGTH 3 DN_TYPE_BASIC_ELEMENT_2_REQUIRED " YES " DN_TYPE_BASIC_ELEMENT_2_CHARACTERSET " _LETTERS " DN_TYPE_BASIC_SUBJECTALTNAMES 23 " email " " IP " " DNS " " DNS " In der Datei ca.conf finden sich ähnliche Teile der Konfiguration, da bei der Initialisierungsphase der CA Anträge für die Zertifizierung der ersten Nutzer über das CA-Interface erstellt werden können. 104 Kapitel 4. Praktische Umsetzung DN_TYPE_BASIC_SUBJECTALTNAME_1 4.5. Konfiguration " alternative email " DN_TYPE_BASIC_SUBJECTALTNAME_1_MINIMUM_LENGTH 3 DN_TYPE_BASIC_SUBJECTALTNAME_1_REQUIRED " NO " ... ## = = = = = = = = = = = == = = = = = [ DN_TYPE ::= SPKAC ] = = = = = = = = = = = = = = = = = = = = = DN_TYPE_SPKAC_BODY " YES " D N _ T Y P E _ S P K A C _ K E Y GE N _ M O D E " SPKAC " ... ## = = = = = = = = = = = == = = = = = [ DN_TYPE ::= IE ] = = = = = = = = = = = = = = = = = = = = = DN_TYPE_IE_BODY " YES " DN _T YP E_ IE _KE YG EN _M ODE " IE " ... Listing 4.2: Exemplarischer Ausschnitt der pub.conf • Basic_CSR_Keysizes Der Basic_CSR_Keysizes definiert die verfügbaren Schlüssellängen. • DN_TYPES Der DN_TYPES gibt an, welche Arten von Anträgen im Pub zur Verfügung gestellt werden sollen. • DN_TYPE_* DN_TYPE_* Der DN_TYPE_* DN_TYPE_* spezifiziert die Namensräume, an denen die einzelnen Antragsarten mit ihren Optionen erkannt werden. Bspw. DN_TYPES ”BASIC” gibt an, dass ein Basisantrag im Pub zur Verfügung gestellt wird. Die im Basisantrag verfügbaren Eingabefelder werden in DN_TYPE_BASIC_* definiert. • DN_TYPE_BASIC_KEYGEN_MODE Der DN_TYPE_BASIC_KEYGEN_MODE spezifiziert, wo der CSR generiert werden soll (Client- oder Server-seitig). Folgende Browser werden für die Client-seitige Schlüsselerzeugung unterstützt: Opera, Mozilla, Netscape und Internet Explorer. Dabei gilt SPKAC für die Benutzung 105 4.5. Konfiguration Kapitel 4. Praktische Umsetzung von Opera, Mozilla und Netscape, IE für Internet Explorer und SERVER für alle anderen Situationen24 . • DN_TYPE_BASIC_BASE Der BASE-Teil gibt an, welche Elemente durch den Nutzer nicht verändert werden können und in den Antrag übernommen werden. Durch die Angabe von ”OU” ”DC” ”DC” ”DC” wird festgelegt, dass drei Objekte vom Typ ”Domain” und ein Objekt vom Typ ”Organisation Unit” die Basis definieren. • DN_TYPE_BASIC_BASE_* Die BASE_numbers gehören zum BASE-Teil und definieren die Werte für die Elemente, die in dem nicht veränderbaren Teil verwendet werden sollen. Im obigen Beispiel wird der Antrag immer mit der Basis-DN OU=Users, DC=cs, DC=fh-wiesbaden, DC=de erzeugt. Dies sollte auf jeden Fall beachtet werden, will man später die aus dem Antrag erzeugten Zertifikate auf einen LDAP-Server übertragen. In diesem Fall sollten die hier definierten Pfade mit denen des LDAP-Server übereinstimmen. • DN_TYPE_BASIC_ELEMENTS Der ELEMENTS-Teil ist der Bereich, dessen Inhalte der Nutzer durch den Antrag beeinflussen kann. Durch die Angabe von emailAddress UID wird festgelegt, dass ein Objekt vom Typ ”UID” mit einem Attribut ”emailAddress” angelegt wird. Die korrekte Angabe der Elemente wird besonders bei der Verwendung eines LDAP-Server sehr wichtig, da die Reihenfolge den Pfad auf dem LDAP-Server beschreibt, wo die Zertifikate abgelegt werden. • DN_TYPE_BASIC_ELEMENT_* Die ELEMENT_numbers gehören mit zum ELEMENTS-Teil und definieren die Werte für die Elemente im veränderbaren Teil. Sie erscheinen 24 Details zu den Antragsarten sind dem Abschnitt 4.9.4 ”CSR Handhabung” zu entnehmen. 106 Kapitel 4. Praktische Umsetzung 4.5. Konfiguration im Antragsformular und werden vom Nutzer bei der Antragsstellung mit ausgefüllt. • DN_TYPE_BASIC_SUBJECTALTNAMES Die SUBJECTALTNAMES sind Teile des Antrages, die nicht ausgefüllt werden müssen, aber optional vom Nutzer ausgefüllt werden können. • DN_TYPE_BASIC_SUBJECTALTNAME_* SUBJECTALTNAME_numbers haben genau die gleiche Aufgabe wie ELEMENT_numbers. 4.5.2. PKCS#10 Requests Systeme, die PKCS#10 Zertifikate verwenden, sind z.B. Apache, OpenLDAP, IMAPD, POPD und SMTPD. Diese Systeme generieren den privaten Schlüssel selbst. Das heißt, der Administrator generiert den Schlüssel und anschließend den PKCS#10 Antrag25 . Hat der Administrator den PKCS#10 Antrag erzeugt, wendet er sich damit an die RA. Die entsprechende Konfiguration in der pub.conf und der Prozess, der nach Empfang des Antrages stattfindet, wird nun an dieser Stelle beschrieben. Dabei dient Listing 4.3 als Konfigurations-Beispiel für die Behandlung von PKCS#10 Anträgen im PUBLIC-Interface der RA. D N _ T Y P E _ P K C S 1 0 _ R E Q U I R E D _ E L E M E N T S " CN " " OU " " O " " C " DN_TYPE_PKCS10_BASE "O" "C" DN_ TYPE _PKC S10_ BASE_ 1 " FH - Wiesbaden " DN_ TYPE _PKC S10_ BASE_ 2 " de " Listing 4.3: Exemplarischer Ausschnitt der Konfiguration für PKCS#10 • DN_TYPE_PKCS10_REQUIRED_ELEMENTS Definition der Struktur des Subjektes des Antrages. 25 Bei diesem Prozess findet keine Interaktion mit CA oder RA statt. 107 4.5. Konfiguration Kapitel 4. Praktische Umsetzung • DN_TYPE_PKCS10_BASE Definition des Suffix des Zertifikates, das durch das Interface akzeptiert wird. So kann verhindert werden, dass fehlerhaft ausgestellte Anträge (z.B. mit fehlerhaftem Suffix) in das System gelangen. • DN_TYPE_PKCS10_BASE_* Definition des Inhaltes des Suffix Hat der Administrator den PKCS#10-Request nach den Vorgaben der RA erstellt, lädt er diesen mithilfe des vorgesehenen Online-Formulars am PUBLICInterface der zuständigen RA hoch. Ist dieser Vorgang abgeschlossen, prüft OpenCA anhand des oben gegebenen Konfigurationssauschnittes die Richtigkeit der im PKCS#10 Request angegebenen Daten. Ist der Test erfolgreich, wird der Request in der Datenbank der RA abgelegt. Somit kann der RAOperator bei der nächsten Einsicht in das RA-Interface den Antrag nach dessen Genehmigung zum Signieren an die CA weiter senden. 4.5.3. OpenSSL In OpenCA existieren drei Möglichkeiten für OpenSSL-Einstellungen. 1. Unter /OPENCADIR/etc/openssl/ in der Datei openssl.cnf werden die Einstellungen für die CA vorgenommen. Diese Datei wird für die Generierung des Initial CA-CSR, dem selbstsignierenden Zertifikat (wenn eine RootCA betrieben wird) und den CRLs verwendet. Des Weiteren können hier globale Einstellungen zu Attributen wie Gültigkeitsdauer von Zertifikaten, Standard-Länge der Schlüssel und Zertifikat-Erweiterungen wie z.B. Verwendungszweck und CRL Bezugsquellen (crlDistributionsPoints) angegeben werden. 2. Das Verzeichnis /OPENCADIR/etc/openssl/openssl/ beinhaltet die verschiedenen Konfigurationen für die verwendeten Rollen innerhalb von OpenCA die im Zertifikatantrag gewählt werden können. Darin werden 108 Kapitel 4. Praktische Umsetzung 4.5. Konfiguration spezifisch zu den Rollen ähnliche Punkte wie in der openssl.conf abgehandelt. Dabei ist zu beachten, dass die relevanten Dinge, wie z.B. die Laufzeit der Zertifikate oder der Algorithmus, der für das Signieren der Zertifikate verwendet wird, mit der Policy verglichen und gegebenenfalls angepasst werden sollten. 3. Die im Verzeichnis /OPENCADIR/etc/openssl/extfiles/ abgelegten Konfigurationsdateien definierte entsprechende Zertifikat-Erweiterungen, die in den Rollen unter OpenCA Verwendung finden. 4.5.4. Datenaustausch Wird eine PKI mit OpenCA umgesetzt und wird eine klare Trennung zwischen den verschiedenen Ebenen (Offline/Online Instanzen) von OpenCA betrieben, so sieht man aus Sicht der Datenbank, dass OpenCA wie ein Baum organisiert ist. Jeder Knoten stellt eine eigenständige Datenbank mit den entsprechenden Interfaces dar. Um nun den Datenaustausch zwischen diesen getrennten Knoten zu ermöglichen, wurde das NODE-Interface entwickelt. Das NODEInterface kann Daten von einer höheren Ebene zu den niedrigeren Ebenen der Hierarchie und umgekehrt, exportieren bzw. importieren. Exportiert man Daten zu einem höheren Level der Hierarchie (Export RA zu CA), dann nennt man dies UPLOAD (Hochladen) von Daten. Werden Daten von einer höheren Ebene importiert (Import CA zu RA), so wird dies als DOWNLOAD (Herunterladen) von Daten bezeichnet. Bei einem Import aus einem niedrigeren Level (Import RA zu CA) bezeichnet man dies als RECEIVE (Empfangen) von Daten, beim Export zu einem niedrigeren Level (Export CA zu RA) als ENROLL (Ausrollen). Dabei wird während des Datenaustausches das Überschreiben von existierenden Objekten nur bei einem DOWNLOAD (Import von CA zu RA) von CA-Zertifikaten, CRLs, CSRs und CRRs erlaubt. In allen anderen Situationen ist dies verboten. Im Folgenden soll durch ein Beispiel ein Überblick über die Möglichkeiten der 109 4.5. Konfiguration Kapitel 4. Praktische Umsetzung sehr flexiblen Datenaustausch-Konfigurationsmöglichkeiten von OpenCA gegeben werden26 . Export-/Import-Konfiguration (Export/Import zu/von einem niedrigeren Level der Hierarchie CA <-> RA) Die ”dataexchange-section” innerhalb der node.conf ist der zentrale Teil der Export-/Import-Funktion der CA/RA. Darin wird festgelegt, wohin zu exportierende Daten transportiert bzw. woher zu importierende Daten bezogen werden. Im Listing 4.4 ist ein Beispiel aus dem Prototypen und dem Datenaustausch von CA zu RA aufgeführt. ## dataexchange with a lower level of the hierarchy E X P O R T _ I M P O R T _ D O W N _ DE V I C E " openca . tar " # Das Archiv , in dem die exportierten Daten abgelegt werden . E X PO R T _ IM P O R T _D O W N _S T A R T "" E XP O RT _ IM PO R T_ D OW N _S TO P "" # Hier können je nach Bedarf Laufwerke an - oder abgemeldet werden . E X P O R T _ I M P O R T _ D O W N _ EX P O R T " / bin / tar - cvpf / srv / openca / var / tmp / @__DEVICE__@ -C @__SRC__@ . " " mv / srv / openca / var / tmp / @__DEVICE__@ / srv / openca / datenaustausch / " E X P O R T _ I M P O R T _ D O W N _ IM P O R T " / bin / tar - xvf / srv / openca / var / tmp / @__DEVICE__@ -C @__DEST__@ " E XP O RT _ IM PO R T_ D OW N _T ES T " / bin / tar - tvf / srv / openca / var / tmp / @__DEVICE__@ " Listing 4.4: Exemplarischer Ausschnitt für Export/Import zu/von einem niedrigeren Level Die Export-/Import-Technologie selbst ist ein wichtiger Aspekt von OpenCA. Es ist möglich, OpenCA für verschiedene Methoden des Datenaustausches mit höheren und niedrigeren Leveln zu konfigurieren. Daher gibt es verschiedene Optionen für die Vor- und Nachbereitung von I/O Operationen. Dies ist nötig, will man für Ex- oder Import spezielle Netzwerkinterfaces oder Laufwerke anbzw. nach der Operation wieder abmelden. Weiter gibt es Optionen für den 26 Die Konfigurationsdatei des oder der /OPENCADIR/etc/servers/node.conf. 110 NODE-Interfaces findet man unter Kapitel 4. Praktische Umsetzung 4.5. Konfiguration EXPORT und IMPORT der Daten und eine Option zum Testen des Ergebnisses der entsprechenden Operation. Des Weiteren kann EXPORT, IMPORT, START und STOP mehr als ein Argument übergeben werden. Kommt es zur Abarbeitung der Argumente, wird dabei jedes separat ausgeführt.Die Parameter @__SRC__@ und @__DEST__@ sind Bezeichner für die zu exportierenden bzw. importierenden Daten und sollten als solche unverändert verwendet werden. Der Parameter @__DEVICE__@ wird durch den String ersetzt, der unter der Variablen EXPORT_IMPORT_DOWN_DEVICE angegeben wurde. In dem Listing 4.5 wird nun beim Export durch den Befehl / bin / tar - cvpf / srv / openca / var / tmp / @__DEVICE__@ -C @__SRC__@ . Listing 4.5: Exemplarischer Ausschnitt für den Export-Befehl die Daten aus @__SRC__@ in das, in @__DEVICE__@ angegebene, Archiv openca.tar gespeichert und anschließend aus dem temporären Verzeichnis nach /srv/openca/datenaustausch/ verschoben. Beim Import wiederum werden die Daten mit dem Befehl / bin / tar - xvf / srv / openca / var / tmp / @__DEVICE__@ -C @__DEST__@ Listing 4.6: Exemplarischer Ausschnitt für den Import-Befehl aus dem openca.tar Archiv extrahiert und an entsprechender Stelle durch die Import-Funktionen von OpenCA in das System eingespielt. 4.5.5. Zugriffskontrolle OpenCA beinhaltet seit Version 0.9.2a eine sehr leistungsstarke Zugriffskontrolle. Die Konfiguration dieser ist komplett XML-basierend. Das Root-Element des XML-Dokumentes ist das openca-Element. Die komplette Konfiguration der Zugriffskontrolle befindet sich im access_control-Element. Jedes Interface besitzt dabei seine eigene Konfiguration für die Zugriffskontrolle. Zu finden sind 111 4.5. Konfiguration Kapitel 4. Praktische Umsetzung die jeweiligen Konfigurationsdateien unter /OPENCADIR/etc/access_control/. Nachfolgend soll Listing 4.7 zur Erklärung dienen. < openca > < access_control > Die komplette Zugriffskontroll - Konfiguration wird hier abgelegt . </ access_control > </ openca > Listing 4.7: Exemplarischer Ausschnitt für den Aufbau einer ACL Die Konfiguration der Zugriffskontrolle besteht aus vier Teilen der ”channel verification”, dem ”login”, dem ”session management” und der eigentlichen ACL. Eine weitere Behandlung dieses Themas findet sich im technischen Anhang Abschnitt A.4 ”OpenCA Konfiguration”. 4.5.6. Rollen OpenCA bietet die Möglichkeit, innerhalb einer Zertifizierungsstelle Rollen zu definieren. D.h. in diesen Rollen werden verschiedene Parameter (z.B. Lebensdauer, Schlüssellängen oder Algorithmus) für die auszustellenden Zertifikate festgelegt. So kann an einer Zertifizierungsstelle nicht nur ein Typ von Zertifikaten vergeben werden. Im Kapitel 3 ”Analyse” wurden schon gewisse Aussagen in Bezug auf Rollen innerhalb der FB-PKI gemacht. Jedoch wurden diese nicht konkretisiert, um einen gewissen Handlungsspielraum innerhalb der Umsetzung zu lassen. Da OpenCA nun die Definition von Rollen ermöglicht, sollen diese für die Umsetzung des Prototypen in der Tabelle 4.1 weiter konkretisiert werden: 112 Kapitel 4. Praktische Umsetzung 4.5. Konfiguration Rolle Gültigkeit Algorithmus Schlüssel CA-Operator 2 Jahre RSA 2048 RA-Operator 2 Jahre RSA 2048 Mitarbeiter 2 Jahre RSA 1024 Student 5 Jahre RSA 1024 technische Systeme 2 Jahre RSA 2048 Tabelle 4.1.: Definition der Rollen innerhalb des Prototypen Die Basiskonfiguration der verwendeten Rollen wird dabei über drei Konfigurationsdateien geregelt: • roles.xml In der Datei roles.xml unter /OPENCADIR/etc/rbac/ werden die Namen der verwendeten Rollen definiert. • /OPENCADIR/etc/openssl/openssl/Rollenname.conf In den Rollenname.conf Dateien werden die Parameter und Attribute der dem Namen zugehörigen Rolle definiert. • /OPENCADIR/etc/openssl/extfiles/Rollenname.ext In den Rollenname.ext Dateien werden die Zertifikat-Erweiterungen der dem Namen zugehörigen Rolle definiert. 4.5.7. LOA (Level of Assurance) In Kapitel 3 den Abschnitt 3.5 ”Identifizierung und Authentifizierung” geht es in erster Linie um die Identitätsprüfung. Dabei wird, um ein hohes Maß an Sicherheit zu gewährleisten, immer das direkte Prüfen der Identität vorgeschrieben. Dies bedeutet, dass alle durch diese Policy ausgestellten Zertifika- 113 4.5. Konfiguration Kapitel 4. Praktische Umsetzung te ein gleiches Maß der Vertrauenswürdigkeit besitzen. Geht man von dieser Basis aus, sollte es auch möglich sein, Zertifikate für verschiedene Vertrauensstufen innerhalb einer Zertifizierungsstelle auszustellen. Hier kommt das LOA-Konzept ins Spiel. LOA bedeutet ”Grad des Vertrauens” und gewährleistet zusätzlich zu dem Maß des innerhalb der Policy festgelegten Vertrauens die Möglichkeit der Einführung einer zusätzlichen ”Qualität” der ausgestellten Zertifikate, bezüglich der Identitätsprüfung. Genau genommen besitzt also eine Policy, wie sie z.B. in der Analyse besprochen wurde, indirekt einen festgelegten ”Level of Assurance”. Müssen nun in einer Policy zusätzlich mehrere LOAs eingeführt werden, sollten zu jedem LOA dessen Richtlinien in einer eigenen Sub-Policy, z.B. unterhalb der Root-Policy, festgelegt werden. Root Policy Medium Basic High Abbildung 4.4.: Mögliche Aufteilung bei der Einführung von LOA Ein Beispiel: der Level LOA Medium und High kann z.B. nur an die Rolle ”Mitarbeiter” vergeben werden. Wenn nun ein Mitarbeiter über das PUBLICInterface einen Antrag stellt, wird an dieser Stelle, wenn nicht anders gewünscht, der LOA Medium als Basis verwendet. Dies bedeutet, dass die in der Sub-Policy zum LOA Medium festgelegten Regelungen gelten und z.B. die im Antrag befindlichen Daten nicht weiter verifiziert werden müssen. An der RA wiederum wird anhand des LOA entschieden, was weiter mit dem Antrag geschehen soll. Im Falle eines LOA Medium wird ohne weitere Prüfung der Antrag von der RA genehmigt und von der CA zertifiziert. Natürlich können mit diesem, auf der Basis von LOA Medium ausgestellten Zertifikat, nicht die gleichen sicherheitskritischen Funktionen erfüllt werden wie z.B. mit ei- 114 Kapitel 4. Praktische Umsetzung 4.5. Konfiguration nem unter LOA High ausgestellten Zertifikat. Diese Einsatzgebiete mit ihren Einschränkungen, Berechtigungen und Erweiterungen müssen wiederum in der jeweiligen Policy bzw. Sub-Policy festgelegt werden. Alles in allem erweitert also das LOA-Konzept eine PKI um eine zusätzliche Ebene der ”Qualität”. Jedoch ist mit der Einführung von LOA ein enormer zusätzlicher administrativer Mehraufwand in der Verwaltung der Policies wie auch der RA und CA verbunden, so dass die Notwendigkeit des Einsatzes genau bedacht werden sollte27 . In OpenCA lässt sich der ”Level of Assurance” durch die Konfigurationsdatei loa.xml unter /OPENCADIR/etc/ konfigurieren. Dabei unterscheidet OpenCA in seiner Orginalkonfiguration zwischen 5 Leveln, die im Folgenden aufgelistet werden. • test • rudimentary • basic • medium • high Wie diese Level eingesetzt werden, liegt bei den Vorgaben, die in den einzelnen Policies gemacht wurden. Da im Prototypen nur von ”einem” Level des Vertrauens ausgegangen wird, wurde LOA in der Konfiguration von OpenCA deaktiviert. Dies wurde erreicht, indem in den Konfigurationsdateien für die Interfaces PUBLIC, CA, RA und BATCH das Attribut USE_LOA auf NO gesetzt wurde. 27 Weitere Informationen zu LOA siehe auch [URL7] und [URL8]. 115 4.6. LDAP Kapitel 4. Praktische Umsetzung 4.6. LDAP OpenCA stellt ein LDAP-Interface zur Verfügung, das es dem Operator erlaubt, Zertifikate zusätzlich in einem zentralen LDAP-Repository zu halten. Doch bevor die Zertifikate und CRLs in dem Verzeichnisdienst ablegt werden können, muss ein entsprechender Dienst installiert und konfiguriert werden. Zu diesem Zweck wird der LDAP-Server des OpenLDAP-Projektes28 verwendet. Um den LDAP-Server den Anforderungen anzupassen, wurde als Basis für das Verständnis die Funktionsweise und Konfiguration eines LDAP-Dienstes das Buch [Ban01] verwendet. An dieser Stelle wird für detailliertere Informationen auf die sehr ausführliche Dokumentation von OpenLDAP [URL9] hingewiesen. 4.6.1. Voraussetzungen Folgende Voraussetzungen gelten für den Betrieb von OpenCA an einen OpenLDAPServer: • installierter OpenLDAP-Server • installierte Schemata: core.schema, cosine.schema, inetorgperson.schema und openca.schema 29 • eine definierte RootDN • ein angelegter Administrator mit Passwort 4.6.2. OpenLDAP In der Konfigurationsdatei sldap.conf unter /etc/openldap/ müssen folgende Dinge festgelegt werden: 28 29 www.openldap.org Man findet das Schema unter /OPENCAARCHIV/contrib/openldap/). 116 Kapitel 4. Praktische Umsetzung 4.6. LDAP 1. Einbinden der Schemata-Dateien für die verwendeten Objektklassen include / etc / openldap / schema / core . schema include / etc / openldap / schema / cosine . schema include / etc / openldap / schema / inetorgperson . schema include / etc / openldap / schema / openca . schema 2. Festlegen der Wurzel-DN des LDAP-Server suffix " dc = fh - wiesbaden , dc = de " 3. Festlegen des Superusers mit seinem Passwort30 rootdn " cn = admin , dc = fh - wiesbaden , dc = de " rootpw katakis 4. Starten des LDAP-Server Gestartet wird der OpenLDAP-Server unter SuSE Linux mit rcldap start. Soll der LDAP-Dienst auch beim Hochfahren des Rechners automatisch gestartet werden, muss unter YAST -> System -> Runlevel-Editor die Startoptionen entsprechend angepasst werden. 5. Initialisierung der Wurzel-DN Anlegen einer LDIF-Datei mit folgendem Inhalt: dn : dc = fh - wiesbaden , dc = de objectClass : domain objectClass : dcObject dc : fh - wiesbaden Anschließend muss das LDIF mit dem Aufruf ldapadd -x -h localhost -D ”cn=admin,dc=fh-wiesbaden,dc=de” -f ldap-init.ldif -W in den LDAP30 Das Passwort kann auch verschlüsselt werden, dieses Feature wurde aber hier nicht angewendet. 117 4.6. LDAP Kapitel 4. Praktische Umsetzung Server eingespielt werden. Damit ist die RootDN eingerichtet und bereit, Daten aufzunehmen. Anpassung an die Original-Nutzerverwaltung Um den LDAP-Server soweit wie möglich der Original-Nutzerverwaltung des Fachbereichs unter dem Pfad OU=Users, DC=cs, DC=fh-wiesbaden, DC=de nachzuempfinden, wurden zusätzlich zu den oben gemachten Aussagen die fachbereichs-internen Schemata fhw.schema und fhwstudent.schema eingebunden sowie Nutzer nach dem im Listing 4.8 vorgegebenen LDIF im entsprechenden Pfad erzeugt. dn : uid = hwink001 , ou = Users , o = User - CA , dc = cs , dc = fh - wiesbaden , dc = de givenName : ? sn : ? loginShell : / usr / local / bin / bash gidNumber : 1000 uidNumber : 1280 objectClass : posixAccount objectClass : shadowAccount objectClass : top objectClass : person objectClass : organizationalPerson objectClass : inetOrgPerson objectClass : FHWFBIStudent objectClass : sambaSamAccount cn : ? homeDirectory : / local / hwink001 Masterpasswort : xxx ErstellDatum : 2001 -08 -22 SperrDatum : 0000 -00 -00 FBUserTyp : 4 Pruefungsordnung : 96 Studiengang : 0 sambaLogonTime : 0 sambaLogoffTime : 2147483647 sambaKickoffTime : 2147483647 sambaPwdMustChange : 2147483647 displayName : System User sambaSID : S -1 -5 -21 -298626460 -1979496719 -3450519667 -3560 118 Kapitel 4. Praktische Umsetzung 4.6. LDAP sambaPasswordHistory : 00000000000000000000000000000000000000000000000000000000 sambaAcctFlags : [ U ] sambaPwdCanChange : 1111404292 sambaLMPassword : xxx sambaNTPassword : xxx sambaPwdLastSet : 1111404292 userPassword : xxx Matrikelnummer : 137537 uid : hwink001 mail : hwink001@stud . informatik . fh - wiesbaden . de Existiert : 1 BelegSemester : 12 Listing 4.8: Inhalt des User Account von hwink001 4.6.3. OpenCA Nachdem die oben beschriebene Prozedur ausgeführt wurde, muss anschließend OpenCA an die Gegebenheiten des LDAP-Servers angepasst werden. Dafür müssen die drei Konfigurationsdateien OPENCADIR/etc/servers/node.conf, OPENCADIR/etc/servers/ldap.conf und OPENCADIR/etc/ldap.xml nachträglich bearbeitet werden. Anmerkung: Unter dem Verzeichnis /OPENCADIR/etc/ in der Konfigurationsdatei config.xml gibt es einen LDAP-Teil, der in erster Instanz vor dem Konfigurationsdurchlauf mit configure_etc.sh ausgefüllt werden sollte. Diese Konfiguration ist für die groben Einstellungen ausreichend. Doch sollten für genauere Anpassungen die oben genannten Konfigurationsdateien benutzt werden. Es ist darauf zu achten, dass bei einem erneuten Konfigurationsdurchlauf mit configure_etc.sh alle Konfigurationsdateien und die darin gemachten Änderungen überschrieben werden. Des Weiteren sollte darauf geachtet werden, dass Neuerungen in den Konfigurationsdateien des OpenCA-Servers erst nach einem Neustart (openca_rc restart) erkannt werden. Die Konfiguration ist in zwei Teile aufgespalten, den OpenCA-Teil und den LDAP-Teil. Der OpenCA-Teil beinhaltet drei Optionen: die LDAP-Aktivierung, 119 4.6. LDAP Kapitel 4. Praktische Umsetzung automatisches LDAP-Update während eines Imports und die DN-Manipulation für CA-Zertifikate. Diese Optionen können in den Interface-Konfigurationen /OPENCADIR/etc/server/*.conf bearbeitet werden. Für weitere Informationen sei an dieser Stelle auf den technischen Anhang im Abschnitt A.5 ”LDAP Konfiguration” verwiesen. 4.6.4. Anpassungen In diesem Abschnitt geht es im Speziellen um Anpassungen, die an OpenCA vorgenommen wurden, um es auf den Betrieb an der Fachbereichweiten LDAP-User-Verwaltung vorzubereiten. Dabei mussten die Anträge sowie einige interne Funktionen angepasst werden. Des Weiteren werden die daraus resultierenden Schwierigkeiten und Einschränkungen näher besprochen, um Wege zur Lösung dieser Probleme aufzuzeigen. Anpassungen für den DN Im Ausgangszustand ist OpenCA bei der RootDN auf z.B. O=University, C=de ausgelegt. Da aber die Verwaltung der Zertifikate und die fachbereichsweite Nutzer-Verwaltung in ein und demselben Baum unter OU=Users, DC=cs, DC=fh-wiesbaden, DC=de betrieben werden sollen und die Angabe des DN im Zertifikat ausschlaggebend für die Verwaltung desselben im LDAP ist, musste der DN, der für die Zertifikate von OpenCA vergeben wird, entsprechend angepasst werden. Um dies zu erreichen, wurden die Konfigurationen für die Zertifikatanträge und einige interne Kommandos von OpenCA angepasst. Um z.B. einen CSR und das daraus resultierende Zertifikat für den Nutzer hwink001 mit dem DN UID=hwink001, OU=Users, DC=cs, DC=fh-wiesbaden, DC=de zu erstellen, muss die pub.conf Konfigurationsdatei in der ”Basic CSR Section” der RA entsprechend angepasst werden. Am Listing 4.9 des Basis-Antrages werden diese Änderungen verdeutlicht31 . 31 Genauere Informationen sind im Abschnitt 4.5 ”Konfiguration” Unterabschnitt 4.5.1 ”CSRs” einzusehen. 120 Kapitel 4. Praktische Umsetzung DN_TYPE_BASIC_BASE 4.6. LDAP " OU " " DC " " DC " " DC " DN _T YP E_ BA SIC _E LE ME NTS " emailAddress " " UID " DN_TYPE_BASIC_NAME " Basic User Request " DN_TYPE_BASIC_BASE_1 " Users " DN_TYPE_BASIC_BASE_2 " cs " DN_TYPE_BASIC_BASE_3 " fh - wiesbaden " DN_TYPE_BASIC_BASE_4 " de " Listing 4.9: Exemplarischer Ausschnitt für den Basisantrag Diese Änderungen müssen an allen Interfaces und deren Konfigurationsdateien durchgeführt werden, die in der Lage sind, Anträge aufzunehmen. Darunter fällt das PUBLIC-Interface der Online-RA und das CA-Interface der OfflineCA. Die dazugehörigen Konfigurationsdateien befinden sich im System unter OPENCADIR/etc/servers/*.conf. Da nach der Änderung für die Zertifikate statt CN als Blattobjekt UID verwendet wird, kommt es bei unveränderter Benutzung dazu, dass in der Auflistung der Zertifikate wie auch dem Einsehen der Einzelheiten auf den Webinterfaces der Common-Name des Zertifikates, also der Name des Zertifikatinhabers, nicht angezeigt wird. Grund dafür sind die internen Kommandos unter /OPENCADIR/lib/cmds/, viewCert und listCerts, die für das Auslesen der Werte des Zertifikates davon ausgehen, dass das Blattobjekt vom Typ CN ist. Um dieses Anzeigeproblem zu beheben, wurden die eben genannten Funktionen viewcert und listcert angepasst. Dazu musste bei dem Kommando viewCert in der Zeile 155 der CN durch UID ersetzt werden (siehe Listing 4.10). $info_list - >{ BODY } - >[ $info_pos ++] - >[1] = ( $parsedCert - >{ DN_HASH } - >{ UID }[0] or gettext ( " n / a " ) ) ; Listing 4.10: Anpassung des Kommandos viewCert Ebenso musste bei dem Kommando listCerts vorgegangen werden. Dazu wurde dort in der Zeile 89 der Wert CN durch UID ersetzt (siehe Listing 4.11). 121 4.6. LDAP Kapitel 4. Praktische Umsetzung $item_list - >{ BODY } - >[ $pos ] - >[1] = ( $cert - > getParsed () - >{ DN_HASH } - >{ UID }[0] || " < CENTER > - - - </ CENTER > " ) ; Listing 4.11: Anpassung des Kommandos listCerts Diese Prozedur wurde auf der Offline-CA wie auch der Online-RA durchgeführt, die jeweils nach der erfolgreichen Änderung neu gestartet wurden. Nachdem dieser Prozess erfolgreich abgeschlossen war, konnte der Name anhand der UID von OpenCA ausgelesen und im Webinterface wiedergegeben werden. Als letztes musste die ra.conf so angepasst werden, dass das Attribut userCertificate nicht, wie standardmäßig vorgesehen, unterhalb des UIDObjektes in ein Blattobjekt namens serialNumber abgelegt wird. Was erreicht werden sollte, war die Ablage des Zertifikats direkt im UID-Objekt des Nutzers. Dies wurde umgesetzt, indem in der Konfigurationsdatei ra.conf die Option SET_CERTIFICATE_SERIAL_IN_DN auf NO gesetzt wurde32 . Probleme mit den DN Das Problem, das durch die Verwendung des Distinguished Name UID=Username, OU=Users, DC=cs, DC=fh-wiesbaden, DC=de entsteht, ist rein organisatorischer Natur und schon oben bei der Anpassung von OpenCA, zum Auslesen des Namen durch die UID, angeklungen. Dabei geht es in erster Linie um die Interpretation des DN innerhalb der Anwendungssoftware. Ein E-Mail-Client wie z.B. Thunderbird zeigt den Inhalt eines Zertifikates für den Nutzer in einer Zusammenfassung, wie in Abbildung 4.5 zu sehen, an. Wie man an dem Beispiel des Zertifikates des RA-Operator sehen kann, wird der DN des Inhaber (CN=RA-Operator-Informatik, OU=User-CA, O=Fachbereich DCSM, DC=cs, DC=fh-wiesbaden, DC=de) wie auch der DN des Herausgebers (CN=User-CA, OU=Informatik, O=Fachbereich DCSM, DC=cs, DC=fhwiesbaden, DC=de) dazu verwendet, um dem Nutzer schnell und unkompli32 Nähere Informationen siehe im technischen Anhang im Abschnitt A.5 ”LDAP Konfiguration”. 122 Kapitel 4. Praktische Umsetzung 4.6. LDAP Abbildung 4.5.: Übersicht über ein Zertifikat unter Mozilla Thunderbird ziert die wichtigsten Informationen des Zertifikates zu präsentieren. Das Problem, das nun durch die Verwendung des Distinguished Name UID=Username, OU=Users, DC=cs, DC=fh-wiesbaden, DC=de auftritt, ist dieses, dass die Felder Allgemeiner Name (CN) und Organisation (O) für den Inhaber leer bleiben (siehe Abbildung 4.6). Da hier eine andere Struktur verwendet wird, können Mozilla wie auch die meisten anderen E-Mail-Clients und Keystores mit DC und UID im Distinguished Name nichts anfangen. So muss der Nutzer für nähere Informationen über das Zertifikat die Details aufrufen. Es ist nicht möglich an dieser Problematik etwas zu ändern, da der DN im Zertifikat gleichzeitig den Pfad darstellt, an dem das Zertifikat auf dem LDAPServer abgelegt wird. Wird nun die Nutzer- und die Zertifikatverwaltung im selben Baum betrieben, sind die Vorgaben klar ersichtlich. Der vergebene DN innerhalb des Zertifikates kann nicht nach eigenen Wünschen abgeändert werden, da sonst die Ablage des Zertifikates in der Nutzerverwaltung unmöglich wäre. Ein Ausweg wäre, die Nutzer- und die Zertifikatverwaltung zu trennen 123 4.6. LDAP Kapitel 4. Praktische Umsetzung und damit die Zertifikate in einem Baum zu speichern, dessen DN kompatibel ist, oder die Wurzel und den DN der Nutzerverwaltung entsprechend anzupassen. Anmerkung: Diese Arbeit orientiert sich im weiteren an den Vorgaben, die durch die Nutzerverwaltung gegeben sind. Da aber die Nutzerverwaltung im Laufe der nächsten Jahre eventuell einigen Änderungen unterworfen sein wird, wird an dieser Stelle auf diese Problemstellung aufmerksam gemacht. Somit können die eben angestellten Überlegungen mit berücksichtigt werden und gegebenenfalls mit in die Planungen einfließen. Abbildung 4.6.: Übersicht über ein Zertifikat unter Mozilla Thunderbird bei Verwendung des DN für die Nutzer-Verwaltung 124 Kapitel 4. Praktische Umsetzung 4.7. Batch 4.7. Batch In diesem Abschnitt wird der Batch-Prozessor, zum automatischen erstellen von Schlüsselpaaren und Zertifikaten, einer näheren Betrachtung unterzogen. 4.7.1. Vorbemerkung In der aktuellen Version von OpenCA ist die Dokumentation des Batch-Systems nicht vorhanden. Es stellte sich heraus, dass es in früheren Versionen von OpenCA in der Anleitung ein Kapitel 16 zum Batch-System gegeben hat. Aus diesem Grund wurde eine ältere Version heruntergeladen und untersucht. Die nun folgenden Ausführungen basieren auf der Dokumentation von OpenCA 0.9.2.1, Stand Herbst 2004, sowie aus einschlägigen Beiträgen der Mailinglist für OpenCA. 4.7.2. Design Der Kern des OpenCA-Batch-Systems ist eine Statusmaschine33 (oder auch Automat). Diese besitzt eine Konfiguration mit definierten Zuständen, Funktionen und Workflows. Dabei liest sie in jedem Schritt die Konfiguration des Nutzers, überprüft den aktuellen Status und berechnet die nächste Funktion des Workflows. Im einfachsten Fall wird jeder Schlüssel in einem eigenen Workflow bearbeitet. Weiterhin sollte beachtet werden, dass die Statusmaschine eine zweiteilige Konfiguration besitzt. Es existiert eine XML-Datei, die die Position der Kern-Konfigurationsdateien und die Optionen der BatchSystemfunktionen beinhaltet. Die eigentlichen Kern-Konfigurationsdateien sind wiederum einfache Textdateien, welche eine bestimmte Struktur in Form von Listen zum schnellen Parsen beinhalten. Dabei sind folgende Teile in den KernKonfigurationsdateien enthalten: 33 Ist ein Modell des Verhaltens, bestehend aus Zuständen, Zustandsübergängen und Aktionen. 125 4.7. Batch Kapitel 4. Praktische Umsetzung • eine Liste der existierenden Prozesse • eine Liste aller bekannten Funktionen • eine Liste aller bekannten Zustände • ein Verzeichnis, welches die Startkonfiguration der Zustände aller Funktionen beinhaltet 4.7.3. Datenimport Bevor das Batch-System von OpenCA genutzt werden kann, müssen die Daten für die Statusmaschine importiert werden. Dazu gibt es im Standardverfahren drei verschiedene Importaktionen: 1. Import der neuen Nutzer (batch_new_user.txt) 2. Import der zu den neuem Nutzern dazugehörigen Prozesse (batch_new_process.txt) 3. Import der zu den Prozessen dazugehörigen Daten (batch_process_data.txt) Anmerkung: Da das Standardverfahren im Normalfall nicht zur Anwendung kommt, soll es an dieser Stelle nur erwähnt werden. Für weiter gehende Informationen zum Standard-Import und dem Syntax der Eingabe-Dateien sei an dieser Stelle auf den technischen Anhang Abschnitt A.6 ”Batchimport” verwiesen. 4.7.4. Quickimport Die Vorgehensweise des einzelnen Importierens der User, Prozesse und Prozessdaten beschreibt den klassischen Datenimport in das Batch-System34 . Dabei 34 Siehe dazu auch im technischen Anhang Abschnitt A.6 ”Batchimport”. 126 Kapitel 4. Praktische Umsetzung 4.7. Batch hat das getrennte Einlesen von Usern, Prozessen und Daten vor allem den Vorteil, besser auf Fehler reagieren zu können. Da diese Methode sich aber für den produktiven Einsatz als zu umständlich erwiesen hat, stellt OpenCA zusätzlich zu der klassischen Methode den Quickimport zur Verfügung. Durch den Quickimport wird es möglich, die Statusmaschine mit einer zentralen Konfigurationsdatei, der batch_process_data.txt, zu füttern. Dadurch werden User, Prozesse und Daten in einem Zug eingelesen. Dies ist für den normalen Gebrauch wesentlich komfortabler und wird für den einfachen Betrieb empfohlen. Für die Fehlersuche in den Importdateien sollte die klassische Methode favorisiert werden. Im Folgenden wird auf die Verwendung der QuickimportFunktion anhand eines Beispieles eingegangen. 1. Es sollte eine Datei namens batch_process_data.txt mit folgendem Inhalt erstellt werden: USER hwink001 PROCESS neues_zertifikat set_state new_process ROLE User SUBJECT_ALT_NAME_1 email : HG . Winkler@Web . de SUBJECT UID = hwink001 , OU = Users , DC = cs , DC = fh - wiesbaden , DC = de LOA_MODE IGNORE Listing 4.12: Exemplarischer Ausschnitt aus der batch_process_data.txt 2. Diese Datei wird anschließend unter /OPENCADIR/batch/ abgelegt und mit dem Befehl tar -cvf exchange.tar batch_process_data.txt für den Import in das Batch-System gepackt. 3. Unter dem BATCH-Interface, Batch-System -> Workflow Management -> Quickimport werden die neuen User, Prozesse und Daten importiert. Nach dem Import kann man die User unter dem BATCH-Interface, 127 4.7. Batch Kapitel 4. Praktische Umsetzung Batch-System -> Workflow Management -> Anzeigen der Nutzer einsehen35 . 4.7.5. Konfiguration der Import-/Export-Funktion Unter /OPENCADIR/etc/servers/ in der Konfigurationsdatei batch.conf muss vor der Verwendung der Batch die Importsektion den Gegebenheiten angepasst werden. Im Listing 4.13 ”## local dataexchange (batchprocessors)” ist die Konfiguration beispielhaft aufgeführt. ## local dataexchange ( batchprocessors ) ’ ’ E X P O R T _ I M P O R T _ L O C A L _ D E V I C E " / srv / openca / batch / " E X P O R T _ I M P O R T _ L O C A L _S T A R T "" E X PO R T _ IM P O R T _L O C A L_ S T O P "" E X P O R T _ I M P O R T _ L O C A L _ I M P O R T " / bin / tar - xvf @ _ _ D E V I C E _ _ @ e x c h a n g e . tar -C @__DEST__@ " E X PO R T _ IM P O R T _L O C A L_ T E S T " / bin / tar - tvf @ _ _ D E V I C E _ _ @ e x c h a n g e . tar " Listing 4.13: Ausschnitt der Batch Import-/Export-Sektion In der Datei exchange.tar befinden sich beim Standard-Import-Verfahren die Dateien batch_new_user.txt, batch_new_process.txt und batch_process_ data.txt. Wird der Quickimport verwendet, beinhaltet das Archiv nur die batch_process_data.txt. Bei einem Import verwendet das System die benötigten Dateien. Das heißt, es extrahiert sich aus dem Archiv exchange.tar bei einem Userimport die batch_new_user.txt, bei einem Prozessimport die batch_new_process.txt und bei einem Datenimport oder Quickimport die batch_process_data.txt und führt den Import aufgrund der in diesen Dateien gefundenen Daten durch. 35 Der neue Prozess von hwink001 wurde unter: /OPENCADIR/var/bp/users/h/w/i/n/k/0/0/1/workflows/neues_zertifikat/ angelegt 128 Kapitel 4. Praktische Umsetzung 4.7. Batch 4.7.6. Durchführen des Batch-Prozesses Nachdem die User mit ihren Prozessen und Daten in das Batch-System importiert wurden kann nun der eigentliche Batch-Prozess zum Erzeugen der Zertifikate gestartet werden. Dazu geht der Operator unter dem BATCH-Interface in Batch-System -> Workflow Management -> Durchführen von Operationen für die Workflows und wählt als erstes alle 16 Iterationen. Als nächstes wird für den ”CA-Key” und ”Key of the batch system” jeweils Yes angegeben. Nach dem Bestätigen wird für CA- und Batch-Key jeweils das Passwort verlangt. Ist die Passwortabfrage erfolgreich, durchläuft daraufhin der BatchProzessor für jeden Userprozess seine Zustände, wobei am Ende ein Zertifikat in der lokalen Datenbank der CA und eine exportierte PKCS#12 Datei unter /OPENCADIR/var/bp/dataexchange/pkcs12/ erstellt wird36 . Weiter sollten anschließend die PINs, die zum Schutz der PKCS#12-Container von OpenCA generiert wurden, im BATCH-Interface unter Batch-System -> Workflow Management -> Exportieren von PINs exportiert werden37 . Anmerkung: Batch- und CA-Key sind bei der Installation von Batch und CA auf einem Rechner identisch, können aber in den /server/*.conf Einstellungen unter Certificates Section und Batch-Processors geändert werden. Weiter sollte ab OpenCA Version 0.9.2.4 darauf geachtet werden, in der batch.conf die Variable ”lockFile /OPENCADIR/lock” einzutragen und zusätzlich eine leere lock-Datei in dem entsprechenden Pfad anzulegen. Wird dies nicht getan, bricht der Batch-Prozessor in der create_cert Funktion mit einer Fehlermeldung ab. 36 37 Weiter wird auf den Workflow der Statusmaschine im technischen Anhang Abschnitt A.7 ”Batch Workflow” eingegangen. Die PINs werden unter /OPENCADIR/var/bp/dataexchange/pin_list abgelegt. 129 4.7. Batch Kapitel 4. Praktische Umsetzung 4.7.7. Automatische Generierung des Batch-Import Wie schon weiter oben erklärt, benötigt der Batch-Prozessor eine spezielle Konfigurationsdatei, um die User mit ihren Prozessen anlegen zu können. Diese Konfigurationsdatei kann auch automatisch erstellt werden. Dazu wurde im Lauf der Arbeit ein Skript entwickelt, das ermöglicht, aus der Studentenliste des Fachbereiches ein Archiv für den Import in den Batch-Prozessor zu erzeugen38 . Um die Funktionsweise des Skriptes näher zu erläutern, wird als Erstes auf den Aufbau der Studentenliste näher eingegangen. Diese Liste wird dem Fachbereich vom Studentensekretariat zur Verfügung gestellt und beinhaltet alle am Fachbereich eingeschriebenen Studenten. Dabei werden in jeder Zeile Daten zu einem Studenten abgelegt. Eine Zeile hat folgenden Aufbau: 137537; Winkler ; Hans - Georg ;3;1996; II • MatrikelNummer = 137537 • Nachname = Winkler • Vorname = Hans-Georg • Semester = 12 • Prüfungsordnungsversion = 1996 • Studiengang = II Studiengangbedeutung • Allgemeine-Informatik Diplom = II • Medien-Informatik Diplom = ID • Allgemeine-Informatik Bachelor = IIB 38 Siehe auch Abschnitt 4.9 ”Shell Skripte”. 130 Kapitel 4. Praktische Umsetzung 4.7. Batch • Medien-Informatik Bachelor = IDB • Master = IIM Bildung des Usernamen Da der Username, der später z.B. für die Anmeldung an das fachbereichsinterne Netzwerk genutzt wird, noch nicht vorhanden ist, muss er erst gebildet werden. Ein Beispiel: Hans-Georg Winkler wird zu hwink001. Dabei steht das ”h” für Hans, ”wink” für Winkler und ”001” für die eindeutige Kennung (bei gleicher ID wird das Ende um eins erhöht 001 -> 002). Dieser Username wird wiederum als Bezeichner für die UID des Studenten unter OU=Users, DC=cs, DC=fh-wiesbaden, DC=de im fachbereichsweiten LDAP-Server verwendet. Da die Zertifikate im selben Baum abgelegt werden sollen, muss man sich an diese Vorgaben halten. Funktionsweise Wird diese Datei als Eingabe für das Skript user2batch.sh verwendet, werden die einzelnen Zeilen gescannt und geprüft, ob ein Student im ersten Semester ist. Ist dies der Fall, kommt es zur weiteren Verarbeitung. Diese besteht darin, als erstes zu prüfen welchen Username dem Studenten zugewiesen wurde. Dazu wird anhand der Matrikelnummer die Userkennung aus dem LDAPServer extrahiert39 . Wurde die UID erfolgreich bezogen, wird aus den Daten des Users für diesen ein neuer Eintrag in der batch_process_data.txt erzeugt. Ist der Durchlauf abgeschlossen, wird als letztes das batch_process_data.txt gepackt und in das Importverzeichnis des Batch-Prozessors abgelegt. Nach erfolgreichen Ausführen des Skriptes ist es nun möglich, alle neuen Studenten im ersten Semester in die Batch zu importieren, um anschließend vollautomatisch für sie jeweils ein Zertifikat inklusive privaten Schlüssel in einem PKCS#12Container zu erzeugen sowie das Zertifikat nach dem Export an die RA zu veröffentlichen40 . 39 40 Voraussetzung ist, dass die Nutzer vorher schon von anderer Stelle in den LDAP-Server eingepflegt wurden. Nähere Informationen dazu siehe Abschnitt 4.10 ”Anwendungsszenarien”. 131 4.8. Benachrichtigung der Nutzer Kapitel 4. Praktische Umsetzung 4.8. Benachrichtigung der Nutzer In diesem Abschnitt geht es in erster Linie um die Fragestellung des Schutzes und der sicheren Übertragung der für den Nutzer wichtigen Informationen. Dabei handelt es sich zum einen um den Aktivierungscode für die durch den Batch-Prozess erzeugte PKCS#12-Container, zum anderen um die Autorisierungsinformation für den Rückruf von Zertifikaten. 4.8.1. Probleme mit der PIN Sobald die PKCS#12-Container im Batch-Prozess erfolgreich generiert und die PINs in die pin_list unter /OPENCADIR/var/bp/dataexchange/ extrahiert wurden41 müssen diese Container und die zugehörigen PINs an die User übermittelt werden. Sichere Übermittlung des PIN an den Nutzer Soll die generierte PIN der Batch verwendet werden, muss dem User seine PIN auf sichere Weise mitgeteilt werden. Im Falle des Fachbereichs empfiehlt es sich, die PIN zusammen mit dem Masterpasswort auf dem entsprechenden Bescheid, den sich jeder Student im Dekanat abholen muss, persönlich zu übergeben. Es könnte auch eine Veröffentlichung per E-Mail gewählt werden, doch ist davon abzuraten, da die notwendige Ver- und Entschlüsselung eine unnötige Belastung des Nutzers nach sich ziehen würde. Nachträgliche Vergabe einer eigenen PIN Soll der PKCS#12 Container nachträglich mit dem Masterpasswort verschlüsselt werden muss dieses im Klartext verfügbar sein42 . Das Masterpasswort zu jedem Studenten ist in der Nutzerverwaltung auf dem LDAP-Server des Fach41 42 Siehe auch Abschnitt 4.10.4 ”Automatische Zertifikaterstellung”. Ein Passwort in Form eines Digest ist nicht verwendbar (Siehe auch Kapitel 2 ”Grundlagen” im Abschnitt 2.5 ”Hybridverfahren” Hashing). 132 Kapitel 4. Praktische Umsetzung 4.8. Benachrichtigung der Nutzer bereiches unter OU=Users, DC=cd, DC=fh-wiesbaden, DC=de im Blattobjekt UID=user in dem Attribut ”Masterpasswort” abgelegt. Dabei handelt es sich um eine unverschlüsselte Variante. Diese Gegebenheit macht es möglich, den PKCS#12-Container eines jeden Studenten nachträglich mit seinem Masterpasswort zu versehen43 . Zu diesem Zweck wurde das Script pkcs2user.sh entwickelt. Dieses ermöglicht es, das zu dem jeweiligen Studenten im LDAP-Server abgelegten Masterpasswort zu beziehen, um damit den PKCS#12-Container vor der Auslieferung an den Studenten mit dessen Masterpasswort zu verschlüsseln. Ist dieser Prozess erfolgreich, können die Container in die entsprechenden Home-Verzeichnisse der Studenten eingespielt werden. Die Studenten wiederum können anschließend die Container unter Angabe ihres Masterpasswortes z.B. in den Keystore eines Browsers oder E-Mail-Programmes importieren. 4.8.2. Probleme mit der CRIN CRIN ist die Autorisierungsinformation für den Rückruf eines Zertifikates über das PUBLIC-Interface der RA (Siehe auch Abschnitt 4.10.5 ”Sperren von Zertifikaten”). Sie ist ein String, bestehend aus einer zufälligen Zeichenfolge, die während des Signierens des Zertifikates durch die CA erzeugt und neben dem Zertifikat, unter der Bezeichnung PIN, als Hash (SHA1) in der Datenbank abgelegt wird. In den Standardeinstellungen von OpenCA ist vorgesehen, diese CRIN als eine mit dem Zertifikat des Nutzers verschlüsselten E-Mail an den Inhaber des Zertifikates zu versenden. Da für den Einsatz im Fachbereich kein E-Mail-Versand vorgesehen ist, wird die persönliche Zustellung der CRIN in schriftlicher Form empfohlen, z.B. zusammen mit der Ausgabe des Masterpasswortes. Ein weiterer wichtiger Punkt dabei ist, dass OpenCA bei der Erstellung der CRIN so vorgeht, dass diese nur kurz nach der Generierung bis zur Erstellung der E-Mail an den Inhaber im Klartext verfügbar ist. Ist dieser Prozess abgeschlossen, wird die CRIN 43 Voraussetzung dafür ist, dass der Student mit Passwort schon angelegt wurde. 133 4.8. Benachrichtigung der Nutzer Kapitel 4. Praktische Umsetzung anschließend, wie schon weiter oben erwähnt, in verschlüsselter Form in der Datenbank abgelegt, so dass eine nachträgliche Auslieferung nicht möglich ist. Aus diesem Grunde musste in den Quellcode von OpenCA eingegriffen werden. Dazu wurde die Bibliothek crypto-utils.lib unter /OPENCADIR/lib/funktions/ in der Funktion crypto_add_pin_to_header so angepasst, dass die CRIN im Klartext während des Erzeugens der E-Mail in die crin.db im Verzeichnis /OPENCADIR/var/pin/ abgelegt wird44 . Die Datei crin.db hat dabei folgenden Aufbau: --- START - CRIN - - 15 UID = hwink001 , OU = Users , DC = cs , DC = fh - wiesbaden , DC = de 9 OoE37Auv + Ozc / tW2CXFew --- END - CRIN - - - Listing 4.14: Aufbau der crin.db • Zeile 1: Start • Zeile 2: serielle Nummer des Zertifikates • Zeile 3: DN des Zertifikates • Zeile 4: zugehörige CRIN • Zeile 5: Ende Durch dieses spezielle Extrahieren der CRIN wird es nun möglich, diese auch nachträglich außerhalb des Prozesses der Zertifikatgenerierung den Zertifikatinhabern zukommen zu lassen. 44 Die Veränderungen wurden durch entsprechende Kommentare im Quellcode kenntlich gemacht. 134 Kapitel 4. Praktische Umsetzung 4.8. Benachrichtigung der Nutzer 4.8.3. E-Mail Benachrichtigung OpenCA ist so ausgelegt, dass es seinen Nutzern die nötigen Informationen per E-Mail zukommen lässt. Dabei wird zum Versand der E-Mails der sendmailBefehl genutzt. Das setzt jedoch voraus, dass der Host eine Verbindung zum Internet besitzt. Da das aber für die Zertifizierungsstellen im Fachbereich nicht vorgesehen ist, muss ein anderer Weg zur Information der Zertifikatinhaber genutzt werden. Dieser kann z.B. darin bestehen, dem Inhaber die nötigen Informationen, wie weiter oben schon einmal vorgeschlagen, in Papierform direkt auszuhändigen. Wird die Möglichkeit der Information der Zertifikatinhaber über einen Bescheid auf Papier in Betracht gezogen, müssen die Daten, welche OpenCA für den E-Mail-Betrieb generiert, noch einmal zusätzlich für den eigenen Gebrauch abgelegt werden. Um das zu erreichen, wurden zu den Änderungen im Abschnitt 4.8.2 ”Probleme mit der CRIN”, die crypto-utils.lib in der Funktion crypto_add_pin_to_header soweit angepasst, dass die generierte CRINE-Mail in Klartext unter /OPENCAIDR/var/messages/ mit der Bezeichnung Serial_*.CRIN-MESSAGE.txt abgespeichert wird. Weiter wurde die Funktion crypto_send_info_mail so verändert, dass die Informationsmail, die nach dem Erstellen eines Zertifikates zusätzlich zu der CRIN-E-Mail an den Inhaber versandt wird, unter /OPENCAIDR/var/messages/ mit der Bezeichnung Serial_*.CONFIRM-CERT-SIGN-MESSAGE.txt abgelegt wird. Mit diesen nachträglich herausgefilterten Daten unter /OPENCAIDR/var/pin/ und /OPENCAIDR/var/messages/ ist es nun möglich, den Nutzer über eigene Wege außerhalb der E-Mail-Zustellung die nötigen Daten zukommen zu lassen. 135 4.9. Shell Skripte Kapitel 4. Praktische Umsetzung 4.9. Shell Skripte Im Verlauf der Arbeiten an OpenCA wurden an bestimmten Stellen, um Prozesse zu automatisieren oder Konfigurationsdateien zu generieren, eigene Skripte geschrieben. Diese werden nun näher betrachtet. Insgesamt wurden drei verschiedene Problemstellungen mit Hilfe von Bash-Scripten bearbeitet. 4.9.1. Datenaustausch zwischen verschiedenen Ebenen der Zertifizierungsstelle Da OpenCA vom Offlinebetrieb der CA ausgeht, sehen die originären Einstellungen bezüglich des Datenaustausches den Ex- und Import über Wechselmedien vor. Da ein reines Offlinesystem im Prototyp nicht vorgesehen ist, wird damit auch der Datenaustausch über diese Medien überflüssig. OpenCA räumt in seiner Datenaustauschkonfiguration dem Nutzer einen großen Spielraum für nutzbare Medien ein. Deshalb wurde der Datenaustausch insofern verändert, dass das Archiv mit den zu exportierenden Daten nicht, wie normal vorgesehen, auf Diskette oder USB-Stick, sondern direkt in das Dateisystem geschrieben wird. Ist der Export erfolgreich abgeschlossen, kommt an dieser Stelle das Skript sync.sh zum Einsatz. Es hat die Aufgabe, das Archiv über eine SSH-Verbindung zu seinem Ziel zu kopieren und danach im Dateisystem aufzuräumen. Der Aufruf gestaltet sich folgendermaßen: / OPENCADIR / sh - tools / sync . sh [ ZIELIP ] [ SOURCEPFAD ] [ ZIELPFAD ] [ BACKUPPFAD ] • ZIELIP ist der Host des zu erreichenden Zielrechners, • SOURCEPFAD der Pfad zu dem zu exportierenden Archiv (im Prototyp immer unter dem Pfad /OPENCADIR/datenaustausch/). • ZIELPFAD ist der Pfad auf dem Zielsystem, in dem das Archiv eingespielt werden soll. Aus diesem Pfad nimmt das auf dem Zielsystem laufende OpenCA anschließend den Import vor. 136 Kapitel 4. Praktische Umsetzung 4.9. Shell Skripte • Der abschließende BACKUPPFAD gibt ein Verzeichnis an, an dem das aktuell zu exportierende Archiv gesichert werden kann (im Prototyp immer unter /OPENCADIR/backup/datenaustausch/). 4.9.2. Automatisierung der Erstellung eines Batch-Imports zur automatischen Erstellung neuer Studentenzertifikate Der Fachbereich bekommt am Anfang eines jeden Semester vom Studentensekretariat eine Liste aller aktuell eingeschriebenen Studenten des Fachbereiches zugesandt. Diese Liste ist die Basis für die Erstellung der Accounts neu eingeschriebener Studenten. Da der Batch-Prozessor einen eigenen Importprozess für die Erstellung neuer Zertifikate zur Verfügung stellt, ist es möglich, eine Importdatei völlig automatisch zu generieren. Hier findet das user2batch.sh-Skript seine Anwendung. Dieses Skript wurde geschrieben, um aus der Studentenliste eine für den BatchProzessor verwertbare Konfigurationsdatei zu generieren. Dabei werden für die Verarbeitung nur die Studenten berücksichtigt, die sich im ersten Semester befinden, da nur diese für die automatische Generierung von Zertifikaten vorgesehen sind45 . Für den Start des Prozesses muss folgender Syntax beachtet werden: / OPENCADIR / sh - tools / user2batch . sh [ INPUTFILE ] [ OUTPUTPFAD ] [ BATCHIMPORTPFAD ] • Beim INPUTFILE handelt es sich um besagte Liste. • OUTPUTPFAD ist der Pfad, an dem die generierte Konfigurationsdatei abgelegt wird46 . 45 46 Siehe auch Kapitel 3 ”Analyse” Abschnitt 3.6 ”Ablauforganisation”. Nach dem Ausführen des Skriptes kann an dieser Stelle noch geprüft werden, ob alles ordnungsgemäß erzeugt wurde. 137 4.9. Shell Skripte Kapitel 4. Praktische Umsetzung • Der BATCHIMPORTPFAD ist der Pfad, an dem der Batch-Prozessor den Import vornimmt. Dabei wird die im OUTPUTPFAD generierte Konfigurationsdatei gepackt und in das angegebene Importverzeichnis der Batch eingespielt. Wird nun nach dem erfolgreichen ausführen des Skriptes user2batch.sh der Import des Batch-Prozessors gestartet, werden alle Studenten, die in die Konfigurationsdatei übertragen wurden, importiert und können so anschließend dem Batch-System übergeben werden. 4.9.3. Automatische Verarbeitung der durch den Batch-Prozess erstellten PKCS#12-Dateien Ist der Batch-Prozess erfolgreich, spielt das System die erzeugten PKCS#12Dateien unter dem Pfad /OPENCADIR/var/bp/dataexchange/pkcs12/ in das Dateisystem ein. Diese PKCS#12-Dateien beinhalten den privaten Schlüssel des jeweiligen Studenten sowie den durch die CA signierten öffentlichen Schlüssel. Da diese Daten als sicherheitskritisch anzusehen sind, schützt OpenCA sie mit einer während des Batch-Prozesses erzeugten PIN47 . Diese PIN ist für den Schutz des privaten Schlüssels geeignet. Bestimmte Vorgaben können jedoch vor der Auslieferung der PKCS#12-Dateien an die Studenten ihre nachträgliche Änderung notwendig machen. Hierfür wurde das Skript pkcs2user.sh entwickelt. Aufgabe dieses Skriptes ist es, dem Studenten seine PKCS#12-Datei mit einem nachträglich vergebenen Passwort (z.B. dem eigenen Masterpasswort) zu schützen. Für die Anwendung des Skriptes ist folgende Syntax vorgesehen48 . / OPENCADIR / sh - tools / pkcs2user . sh [ OPENCAPFAD ] 47 48 Die jeweils zu einem Prozess gehörende PIN kann unter der pin_list im Verzeichnis /OPENCADIR/var/bp/dataexchange/ eingesehen werden. Voraussetzung ist der vorher erfolgreich abgeschlossene Batch-Prozess und das anschließende Exportieren der PINs im BATCH-Interface unter Batch-System -> Workflow Management -> Exportieren von PINs. 138 Kapitel 4. Praktische Umsetzung 4.9. Shell Skripte Einzig anzugebende Option ist der Installationspfad von OpenCA. Bei erfolgreichem Ausführen des Skripts werden die neu erzeugten PKCS#12-Dateien unter /OPENCADIR/batch/export-user-pkcs12/ abgelegt und können von hier aus weiter in die Home-Verzeichnisse der Studenten verteilt werden. 4.9.4. CSR Handhabung X.509 Zertifikate sind weit verbreitet und haben sich als Standard etablieren können. Doch in den ersten Jahren gab es Probleme mit den CSRs. Der Grund dafür war ein fehlendes einfaches Protokoll für die Übermittlung der CSRs vom Client Interface. Das Resultat dieser Entwicklung war ein Standard CSR und ein proprietäres Format. Das Standard Antrags-Format ist PKCS#10, das von Servern (Apache, E-Mail, VPN) und dem Internet Explorer unterstützt wird. Das proprietäre Format ist das von Netscape entwickelte SPKAC. Dieses Format wird von Mozilla und Opera verwendet. Erstaunlicherweise gibt es eine Menge an Software, die Zertifikate und private Schlüssel für die Verschlüsselung z.B. für E-Mails oder HTTPS Verbindungen verwenden. Doch keine der Softwarelösungen unterstützt das Erzeugen von Anträgen und Zertifikaten. Was benötigt wird, ist die Erzeugung des Antrages auf der einen Seite, aber auch die Übermittlung des Antrages ist ein nicht zu unterschätzender Teil der Aufgabenstellung. Dabei gliedert sich die Art der Anwendungen in zwei Teile. Der erste Teil des Szenarios sind die Browser. Heutzutage kennen diese zwei Wege. Microsofts CAPI (Microsoft Internet Explorer) und Netscapes ”keygen”-tag (Mozilla, Netscape, Opera). Einen dritten Weg geht Konqueror, indem vom User verlangt wird, alle nötigen Schritte selbst zu erledigen. Der zweite Teil sind die Server. Viele Server wie z.B. Apache verhalten sich wie Konqueror, d.h. der Nutzer muss selbst die Schlüssel und Anträge generieren, sich an die PKI wenden und zertifizieren lassen, um anschließend die Zertifikate von Hand ins System einzupflegen. Andere Server wiederum, wie z.B. VPN Server, können ihre Schlüssel und Anträge selbst 139 4.9. Shell Skripte Kapitel 4. Praktische Umsetzung generieren. Weiter ist es möglich die Anträge auf eine Floppy oder einen USBStick zu kopieren und diese der PKI von Hand zu übermitteln, oder man nutzt das SCEP, um die Kommunikation mit der PKI automatisch aushandeln zu lassen. Wie man also sieht gibt es vom Erzeugen der Schlüssel bis zum fertigen Zertifikat viele Wege. Möglichkeiten von OpenCA OpenCA kennt fünf verschiedene Antragsarten, wobei die Schlüsselgenerierung je nach Situation Server oder Client-seitig durchgeführt werden kann. Ist die Generierung erfolgreich, wird der Antrag in der Datenbank der RA gespeichert und im nächsten Schritt vom RA-Operator eingesehen, der diesen dann an die CA weiterreichen kann49 . Die folgenden Abschnitte sollen nun die verschiedenen Möglichkeiten der Antragstellung unter OpenCA aufzeigen. Mircrosoft-Client-Antrag Auf der ersten Seite des Antrages sollten alle nötigen Informationen eingegeben werden. Dabei muss darauf geachtet werden, dass nur Bitlänge von 512, 1024 und 2048 bits für die Schlüssel verwendet werden50 . Nach einem Klick auf OK können auf der nächsten Seite die zusammengefassten Informationen noch einmal einsehen werden. Diese sollten gründlich überprüft werden. Ist bei der Eingabe ein Fehler geschehen, kann man auf die erste Seite wechseln und diesen korrigieren. Nach dem Klicken auf den OK-Button auf der zweiten Seite generiert der Internet Explorer das Schlüsselpaar und den neuen Antrag. Ist die Operation erfolgreich verlaufen, zeigt anschließend OpenCA eine Seite mit dem Antrag und der generierten Seriennummer. Diese wird an keiner Stelle gesichert, daher sollte sie sich der Benutzer merken, bevor er den generierten Antrag im nächsten Schritt an die RA weiter schickt. 49 50 Weitere Informationen siehe Abschnitt 4.10.4 ”Reguläre Zertifikatbeantragung”. Für eine hohe Sicherheit sollte mindestens eine Schlüssellänge von 1024 bit verwendet werden. 140 Kapitel 4. Praktische Umsetzung 4.9. Shell Skripte SPKAC-Antrag SPKAC-Anträge werden von Netscape, Mozilla and Opera benutzt. Alle drei Browser unterstützen einen speziellen ”keygen”-tag [URL10], der zur Generierung des Schlüsselpaares und des Antrages verwendet wird. Auf der ersten Seite des Antrages sollten alle nötigen Informationen eingegeben werden. Nach einem Klick auf den OK-Button zeigt die zweite Seite alle eingegebenen Information nochmals an. Diese sollten gründlich überprüft werden. Als nächstes muss die verwendete Schlüssellänge angegeben werden. Klickt man anschließend auf OK, so startet der Browser die Generierung der Schlüssel und des Antrages. Ist die Operation erfolgreich verlaufen, zeigt OpenCA eine Seite mit dem Antrag und der generierten Seriennummer. Diese wird nicht gesichert, daher sollte sie sich der Benutzer merken, bevor er den Antrag im nächsten Schritt endgültig an die RA weiterleitet. Vorbereiteter PKCS#10-Antrag Will man den PKCS#10-Antrag über das Webinterface einreichen, kann man dies über das PUBLIC-Interface der RA tun. Wenn es möglich ist, sollte der RA-Operator entsprechende Einschränkungen anlegen, um zu verhindern, dass die RA mit falsch ausgestellten Anträgen überschwemmt wird.51 Server-seitige Schlüssel und Antragsgenerierung Die Server-seitige Schlüssel und Antragsgenerierung nutzt dieselben Seiten, wie die Anträge für Microsoft-Internet-Explorer oder Mozilla. Doch gibt es hier einen entscheidenden Unterschied. Bei der Generierung des Antrages durch den Internet Explorer oder Mozilla generiert der Browser alle nötigen Daten und schickt nur den fertigen Antrag an die RA. Bei Server-seitiger Erzeugung schickt das Interface alle eingegebenen Daten an den Server, der für den Client die Schlüssel und den Antrag erzeugt. Dieser Weg kann genutzt werden, wenn 51 Weitere Informationen sind im Abschnitt ”Konfiguration” Unterabschnitt 4.5.1 ”CSRs” einzusehen. 141 4.10. Anwendungsszenarien Kapitel 4. Praktische Umsetzung der Nutzer nur ein geringes Wissen über PKIs besitzt oder man einen Browser verwendet, der keine Client-seitige Erzeugung von Schlüsseln und Anträgen unterstützt. Handhabung Auf der ersten Seite des Antrages sollten alle nötigen Informationen eingegeben werden. Nach dem klicken auf OK kann man auf dem nächsten Bildschirm die zusammengefassten Informationen noch einmal einsehen. Nach dem wiederholten Klicken auf den OK-Button werden alle Informationen an den Server gesendet, der die Schlüssel und den Antrag generiert. Ist die Operation erfolgreich verlaufen, zeigt anschließend OpenCA eine Seite mit dem Antrag und der generierten Seriennummer. 4.10. Anwendungsszenarien Dieser Abschnitt erleichtert den ersten Einstieg und Umgang mit OpenCA und gibt dem Operator wie auch dem regulären Anwender Hilfestellung. Diese Ausführung wird mit der ersten Inbetriebnahme von CA und RA beginnen. Dabei soll im weiteren Verlauf das Aufzeigen mehrerer kompletter Arbeitsabläufe eine Hilfe im Umgang mit den Interfaces von OpenCA bieten52 . 4.10.1. Erstinitialisierung der CA Im CA-Interface unter Allgemein -> Initialisierung finden sich drei Punkte für die Erstinitialisierung der CA welche in Abbildung 4.7 dargestellt ist. Initialisieren der Zertifizierungsstelle 1. Show SQL statements for database initialization Hier können die SQL-Statements, die für die Erstinitialisierung der Datenbank verwendet werden, eingesehen werden. 52 Bei den Beschreibungen wird von der Umsetzung und Konfiguration des Prototypen ausgegangen. 142 Kapitel 4. Praktische Umsetzung 4.10. Anwendungsszenarien Abbildung 4.7.: CA-Interface Erstinstallation 2. Initialisierung der Datenbank Erstinitialisierung der leeren Datenbank für den Betrieb an OpenCA. 3. Erzeugen des privaten Schlüssels der CA Hier wird der private Schlüssel, der zentrale Bestandteil der gesamten Vertrauenskette, erzeugt. Dabei wurden für den privaten Schlüssel des Prototypen folgende Einstellungen verwendet: • Verschlüsselungsalgorithmus = DES3 • asymmetrischer Algorithmus = RSA 143 4.10. Anwendungsszenarien Kapitel 4. Praktische Umsetzung • Schlüssellänge = 4096 bit • Passwort = Hier sollte ein sicheres Passwort gewählt werden. 4. Erzeugen eines neuen CA-Zertifizierungsantrages (Benutzen des generierten Schlüssels) Hier wird der Zertifikatsantrag für das selbstsigierte Zertifikat der Zertifizierungsstelle erzeugt. Will man den DC-Style verwenden, können im ersten Teil des Antrages die Felder leer gelassen werden. Erst im zweiten Teil sollte die DN eingetragen werden. Dabei muss für den geplanten Einsatz eines LDAP-Server darauf geachtet werden, dass der Pfad korrekt angegeben wird. Die Angabe für die Initialisierung des Prototypen sieht folgendermaßen aus: emailAddress = RootZertifik a t V1 @ c s . informatik . de , CN = User - CA , OU = Informatik , O = Fachbereich DCSM , DC = cs , DC = fh - wiesbaden , DC = de Anmerkung: DC, CN usw. müssen groß geschrieben werden (OpenSSL ist case sensitive). Nach dem Abschicken des Antrags erscheint eine Passwortabfrage, um den Antrag durch die CA anzunehmen. Dazu muss das Passwort des privaten Schlüssels der CA angegeben werden. 5. Selbstsigniertes CA-Zertifikat Hier wird der Antrag von der CA selbst signiert. Dazu muss, nach der Angabe der Laufzeit zur Signierung des Wurzelzertifikates, das Passwort des privaten Schlüssels eingegeben werden. 6. Signiert von einer anderen CA Durch die folgenden Punkte wird es möglich, die CA auch als eine SubCA einer übergeordneten CA zu betreiben. Als Erstes muss dazu der oben erstellte Antrag exportiert (Format PKCS#10) und an die für die übergeordnete CA zuständige RA übermittelt werden. Diese prüft den 144 Kapitel 4. Praktische Umsetzung 4.10. Anwendungsszenarien Antrag und leitet ihn an die CA weiter. Die übergeordnete CA signiert den Antrag und schickt ihn an die untergeordnete CA zurück. Nun kann das signierte Zertifikat an dieser Stelle importiert werden. 7. Exportieren des Zertifizierungsantrages der CA Für den Betrieb einer Sub-CA kann hier der Antrag zum Zertifizieren an einer übergeordneten CA exportiert werden. 8. Importieren des CA-Zertifikates (ausgestellt durch eine andere CA) Hier kann das durch eine übergeordnete CA ausgestellte Zertifikat importiert werden. Für weitere Informationen zu den Initialisierungsphasen sei an dieser Stelle auf die Benutzeranleitung im organisatorischen Anhang Abschnitt B.3 ”Benutzeranleitung OpenCA” verwiesen. 4.10.2. Erstinitialisierung der RA Dieser Punkt ist von Bedeutung, wenn die CA als Offline-CA betrieben wird bzw. RA und CA getrennte Datenbanken besitzen. Ist dies der Fall, muss unter dem NODE-Interface der RA der Punkt Administration -> Server Initialisierung -> Initialisierung der Datenbank ausgeführt werden. Dadurch wird eine eigene Datenbank für die RA initialisiert. Voraussetzung ist der richtig konfigurierte Datenbankzugriff (Siehe Abschnitt 4.4.4 ”Zusammenfassung”). 4.10.3. Datenaustausch CA zu RA Ist die CA erfolgreich initialisiert, muss als erstes ein Export von der OfflineCA an die Online-RA erfolgen. Dabei werden das CA-Zertifikat und die eventuell erzeugten neuen Userzertifikate, für CA- und RA-Operator, veröffentlicht53 . Um einen Datenaustausch von CA zu RA einzuleiten, muss sich der 53 Erst durch die Veröffentlichung des CA-Zertifikates ist es der RA möglich, Anträge anzunehmen. 145 4.10. Anwendungsszenarien Kapitel 4. Praktische Umsetzung CA-Operator unter dem CA-Interface Allgemein -> Kontenverwaltung auf das NODE-Interface begeben. Dort wiederum unter Administration -> Datenaustausch gelangt der Operator auf das zentrale Datenaustausch-Interface (siehe Abbildung 4.8). Abbildung 4.8.: Datenaustausch 1. Da die Offline-CA die höchste Ebene innerhalb einer Zertifizierungsstelle darstellt, gelten für den Export an die RA die Punkte unterhalb des 146 Kapitel 4. Praktische Umsetzung 4.10. Anwendungsszenarien Abschnitts Exportieren von Daten zu einer niedrigeren Ebene der Hierarchie. Hier sollte man für den erstmaligen Export an die RA ”Alle” anwählen. Nach dem Export ist es möglich, das generierte Archiv openca.tar unter /srv/openca/datenaustausch/ einzusehen. 2. Als nächstes muss das exportierte Archiv an die Online-RA übertragen werden. Hierbei kommt das Skript sync.sh unter /OPENCADIR/sh-tools/ zum Einsatz54 . Durch den Aufruf ./ sync . sh 192.168.1.51 / srv / openca / datenaustausch / openca . tar / srv / openca / datenaustausch / srv / openca / backup / datenaustausch wird das zu exportierende Archiv auf die Online-RA übertragen. Bei Bedarf kann anschließend eine Sicherung des Archives im Verzeichnis /OPENCADIR/backup/datenaustausch/ automatisch abgelegt werden. 3. Der nächste Schritt muss vom Operator der Online-RA durchgeführt werden. Auch dieser muss sich auf das NODE-Interface (Kontenverwaltung) begeben und dort unter Administration -> Datenaustausch im Abschnitt Download data from a higher level of the hierarchy mit ”Alle” den Import starten. Bei diesem Import werden das CA-Zertifikat und die eventuell bei der Erstinitialisierung erstellten Zertifikate der Operatoren überspielt. Dabei werden die Nutzerzertifikate in die lokale Datenbank und das CA-Zertifikat in das Verzeichnis /OPENCADIR/var/crypto/cacerts/ der Online-RA eingespielt. Weiter werden die neuen Nutzerzertifikate unter OU=Users, DC=cs, DC=fh-wiesbaden, DC=de auf dem LDAP-Server veröffentlicht55 . Ist dieser Vorgang abgeschlossen kann auf die Zertifikate im PUBLIC-Interface der RA und im LDAP-Server zugegriffen werden. 54 55 Nähere Informationen zu der Anwendung siehe Abschnitt 4.9 ”Shell Skripte”. Die automatische Veröffentlichung auf dem LDAP-Server ist nur aktiv, wenn in der node.conf das Attribut updateLDAPautomatic auf YES gesetzt ist. Ist dies nicht der Fall, muss die LDAP-Aktualisierung manuell über das LDAP-Interface der Online-RA durchgeführt werden. 147 4.10. Anwendungsszenarien Kapitel 4. Praktische Umsetzung Nach dem erfolgreichen Import ist nun die RA in der Lage, Zertifikatsanträge (CSRs) anzunehmen und Informationen über die CA auf dem PUBLIC-Interface zu veröffentlichen. 4.10.4. Reguläre Zertifikatbeantragung Dieser Abschnitt ist in zwei Teile unterteilt. Zum einen in die Sicht des Nutzers, der einen Antrag auf Zertifizierung stellt, und zum anderen in die Sicht des RA- und CA-Operators, der die Zertifizierung durchführt. Nutzer Teil 1 Der Nutzer ruft auf dem PUBLIC-Interface der RA unter Nutzer den Punkt Beantragen eines Zertifikates auf. Hier stehen ihm drei mögliche Antragsarten zur Verfügung (siehe Abbildung 4.9). Welche der möglichen Antragsarten gewählt wird, hängt davon ab, welchen Browser der Antragsteller verwendet56 . In diesem Szenario wird davon ausgegangen, dass der Nutzer einen SPKAC-fähigen Browser verwendet. Deshalb wird der Antrag unter dem Link Netscape-Zertifizierungsantrag gewählt (Anmerkung: der Inhalt der Anträge ist überall identisch). In dem sich nun öffnenden Dialog muss der Nutzer seine Basisinformationen für die Zertifizierung eingeben. In diesem Beispielszenario werden dabei folgende Daten für den Nutzer hwink001 angegeben: • E-Mail = [email protected] • Nutzername = hwink001 • Name (Vor- und Nachname) = Winkler Hans-Georg • E-Mail = [email protected] 56 An dieser Stelle sei auf den Abschnitt 4.9.4 ”CSR Handhabung” verwiesen: dort stehen genauere Informationen über die möglichen Antragsarten. 148 Kapitel 4. Praktische Umsetzung 4.10. Anwendungsszenarien Abbildung 4.9.: Antrag auf Zertifizierung • Rolle = Student • Registrierungsinstanz (RA) = Trustcenter selbst • PIN = Hier muss ein sicheres Passwort vergeben werden mit dem später der private Schlüssel bzw. der PKCS#12 Container gesichert ist. Im Testlauf des Prototyp wurde das Passwort ”supermario” angegeben. • Schlüssellänge = 1024 Wird der Antrag anschließend abgeschickt, generiert als erstes das interne Verschlüsselungs-Modul von Mozilla ein Schlüsselpaar, erzeugt daraus den Antrag, speichert den privaten Schlüssel im Browser des Nutzers und schickt den Antrag an die RA ab. Ist dieser Prozess erfolgreich abgeschlossen, erscheint eine Seite (Abbildung 4.10) die noch einmal alle Einzelheiten des Antrages auflis- 149 4.10. Anwendungsszenarien Kapitel 4. Praktische Umsetzung tet. Dabei ist die Seriennummer des Antrages von besonderer Bedeutung. Diese Abbildung 4.10.: Abgeschlossener Antrag sollte unbedingt notiert werden, da ohne der Kenntnis der Seriennummer das am Ende ausgestellte Zertifikat nicht angenommen werden kann. Operator Teil Wurde der Antrag vom Nutzer abgeschickt, kann nun der RA-Operator diesen auf dem RA-Interface unter Aktive CSRs -> Neu einsehen. Durch Klicken auf die Seriennummer gelangt man zu den Details des Antrages. Dabei ist es 150 Kapitel 4. Praktische Umsetzung 4.10. Anwendungsszenarien dem RA-Operator möglich, den Antrag wenn nötig nachträglich zu bearbeiten. Wird der Antrag angenommen, so kann dieser Vorgang über den Button Antrag genehmigen eingeleitet werden. Dabei ist es möglich, bei einem installierten Nutzerzertifikat den CSR zusätzlich durch den RA-Operator zu signieren. Als nächstes muss der genehmigte Antrag aus der lokalen Datenbank der Online-RA an die Datenbank der Offline-CA übertragen werden. Dazu werden Daten zu einer höheren Ebene der Hierarchie exportiert. Dies erreicht der RA-Operator über das NODE-Interface unter Administration -> Datenaustausch -> Exportieren von Daten zu einer höheren Ebene der Hierarchie -> Alle 57 . Verlief der Exportprozess erfolgreich, muss anschließend das Archiv mit dem sync.sh Skript an die Offline-CA übertragen werden. In diesem Szenario lautet der Aufruf: ./ sync . sh 192.168.1.50 / srv / openca / datenaustausch / openca . tar / srv / openca / datenaustausch / srv / openca / backup / datenaustausch Ist der Transport zur Offline-CA gelungen, kommt an dieser Stelle der CAOperator ins Spiel. Er importiert das neue Archiv über das NODE-Interface der CA unter Administration -> Datenaustausch -> Importieren von Daten von einer niedrigeren Ebene der Hierarchie -> Alle. Ist der Import abgeschlossen, wird der neue CSR in die Datenbank der Offline-CA geschrieben und ist somit für den CA-Operator unter dem CA-Interface einsehbar. Soll nun der Zertifikatantrag durch die CA signiert werden, kann der CA-Operator unter dem CA-Interface Normale Operationen -> Genehmigte Zertifizierungsanträge den Zertifikatantrag durch Klicken auf die Seriennummer des Antrages einsehen und diesen entweder löschen oder das Zertifikat ausstellen. Soll das Zertifikat ausgestellt werden, muss das Passwort des privaten Schlüssels der CA eingegeben werden. Ist der Prozess der Zertifizierung erfolgreich, wird das 57 Um Komplikationen beim Import und Export zu vermeiden, sollte darauf geachtet werden, dass nach dem Datenaustausch das Verzeichnis /OPENCADIR/datenaustausch/ immer geleert wird. 151 4.10. Anwendungsszenarien Kapitel 4. Praktische Umsetzung neu ausgestellte Zertifikat in die Datenbank der Offline-CA geschrieben. Um nun dieses der Öffentlichkeit verfügbar zu machen, muss wiederum unter dem NODE-Interface ein Export von Daten zu einer niedrigeren Ebene der Hierarchie eingeleitet werden. Danach werden die Daten mithilfe des sync-sh Skriptes wieder an die Online-RA übertragen und dort vom RA-Operator importiert. Bei diesem Vorgang wird nicht nur das Zertifikat auf der lokalen Datenbank der Online-RA veröffentlicht, sondern auch im LDAP-Server unter UID=hwink001, OU=Users, DC=cs, DC=fh-wiesbaden, DC=de. Nach dem Import kann der RAOperator die neuen Zertifikate unter dem RA-Interface Informationen -> Zertifikate -> Gültig einsehen. Bei Server-seitiger Schlüsselgenerierung kann an dieser Stelle noch zusätzlich, je nach Einstellung in der ra.conf, eine zusätzliche PIN für die Auslieferung des PKCS#12-Containers an den Antragsteller festgelegt werden. Will dann der Nutzer diesen herunterladen, muss als erstes die PIN für den privaten Schlüssel und als zweites die PIN für die Auslieferung eingegeben werden. Erst dann erhält der Nutzer sein Schlüsselpaar58 . Nutzer Teil 2 Nachdem der Nutzer von der RA informiert wurde, dass sein Zertifikat bereitsteht, begibt er sich auf das PUBLIC-Interface unter Nutzer -> Laden des beantragten Zertifikates. Wichtig ist dass der Nutzer mit genau demselben Browser, mit dem das Zertifikat beantragt wurde, den Vorgang des Ladens des beantragten Zertifikates durchführt. Dies ist notwendig da erstellte private Schlüssel im Keystore des Browser abgelegt wurde und nur durch das Laden des Zertifikates aktiviert werden kann. Zum Laden des Zertifikates kann man entweder die Seriennummer des Zertifikates oder die Seriennummer des Antrages verwenden. In diesem Beispiel ist die Seriennummer des Antrags die Zahl 800. Nach Eingabe und Bestätigung unter dem PUBLIC-Interface der RA Nutzer -> Laden des beantragten Zertifikates wird das Zertifikat in den Keystore des Browsers übertragen und zusammen mit dem dazugehörigen pri58 Siehe dazu im organisatorischen Anhang Abschnitt B.3.6 ”Download eines Zertifikates”. 152 Kapitel 4. Praktische Umsetzung 4.10. Anwendungsszenarien vaten Schlüssel abgelegt. Will der Nutzer nachsehen, ob der Import erfolgreich stattgefunden hat, kann er das unter Einstellungen -> Erweitert -> Zertifikate verwalten -> ihre Zertifikate nachprüfen59 . Dort muss ein neues Zertifikat unter dem Namen hwink001 erscheinen. Dieses Zertifikat nebst dem privaten Schlüssel kann vom Nutzer als PKCS#12-Datei exportiert und in andere Anwendungen (z.B. ein E-Mail-Programm oder ein anderer Browser) wieder importiert werden. Damit ist der Prozess der Beantragung und Ausstellung eines Zertifikates abgeschlossen. Anmerkung zur Server-seitigen Schlüsselgenerierung Müssen die Schlüssel komplett Server-seitig generiert werden, da z.B. der Browser nicht unterstützt wird, kann der private Schlüssel nebst dem Zertifikat nach der Veröffentlichung auf dem PUBLIC-Interface als PKCS#12-Datei heruntergeladen werden. Weitere Informationen dazu, werden im organisatorischen Anhang Abschnitt B.3.6 ”Handhabung der Zertifikate” gegeben. Abschließend wird in Abbildung 4.11 ein Überblick über den eben beschriebenen Prozess gegeben. Export zu CA erstellen der Schlüssel Nutzer Antrag mit Browser Genehmigung durch RA Signieren durch CA Export zu RA Nutzer Zertifikat incl. Private Key befindet sich im Keystore des Nutzers Annehmen des Zert. im Pub Import in Keystore Abbildung 4.11.: Prozess Zertifikat Antrag 59 Es wurde der Browser Firefox verwendet. 153 4.10. Anwendungsszenarien Kapitel 4. Praktische Umsetzung Automatische Zertifikaterstellung Der Vorgang der Automatische Zertifikaterstellung wird vollständig vom Operator der CA und RA durchgeführt. Dabei beginnt der Prozess (siehe Abbildung 4.12) mit dem Erhalt der Studentenliste des Fachbereiches vom Studentensekretariat der Fachhochschule60 . Diese Liste wird unter anderem an den Operator der CA weitergereicht. Dieser muss als erstes den geplanten BatchProzess (Import aller neu eingeschriebenen Studenten des Fachbereichs in die User CA) vorbereiten. Dies bedeutet, dass aus der Studentenliste die Datei batch_process_data.txt für den Batch-Prozessor generiert und für den Import in das Batch-System vorbereitet werden muss. Dieser Vorgang wird durch das Skript user2batch.sh erledigt, welches speziell für diese Anwendung geschrieben wurde. Der erste Schritt des CA-Operators besteht also in folgendem Aufruf: / OPENCADIR / sh - tools / user2batch . sh / OPENCADIR / batch / import / user . txt / OPENCADIR / batch / backup / batchimport / OPENCADIR / batch Dadurch wird die Liste user.txt in /OPENCADIR/batch/import/ als Eingabedatei verwendet. Die daraus erzeugte batch_process_data.txt und die dazugehörige Importdatei wird unter /OPENCADIR/backup/batchimport/ im Unterverzeichnis userimport_um_DATUM abgelegt. Weiter wird die erzeugte Importdatei nochmal im Importpfad der Batch (/OPENCADIR/batch/) eingespielt. Nach der erfolgreichen Ausführung des Skriptes sollte eine nachträgliche Prüfung der in /OPENCADIR/backup/batchimport/userimport_vom_DATUM abgelegenen batch_process_data.txt vorgenommen werden, um eventuelle Fehlfunktionen des Skriptes rechtzeitig erkennen zu können. Ergibt die Prüfung keine Fehler, kann der CA-Operator über das BATCH-Interface der OfflineCA den Import der User mit ihren Prozessen in das Batch-System vornehmen. 60 Nähere Informationen zur Studentenliste siehe Abschnitt 4.7 ”Batch”. 154 Kapitel 4. Praktische Umsetzung 4.10. Anwendungsszenarien Dazu wird unter dem BATCH-Interface Batch-System -> Workflow Management der Punkt ”Quickimport - see manual !” ausgeführt. Nach dem erfolgreichen Import können die importierten Nutzer mit ihren Prozessdaten unter /OPENCADIR/var/bp/users/ eingesehen werden. Um nun den Batch-Prozess des Erzeugens der Schlüsselpaare und der Zertifikate zu starten, wählt der CA-Operator den Punkt ”Durchführen von Operationen für die Workflows”. Die darauf erscheinende Auswahl sollte insofern verändert werden, dass die Anzahl der Schritte für das Batch-System auf 16 gesetzt wird und ”CA key” und ”Key of the batch system” jeweils auf Yes gesetzt werden. Nach dem OK wird zweimal das CA-Passwort des privaten Schlüssels abgefragt und der Batch-Prozess beginnt. Durch den Prozess wird für jeden Nutzer ein Schlüsselpaar und ein dazugehöriges Zertifikat erzeugt. Das Zertifikat wird in der lokalen Datenbank und der private Schlüssel nebst dem Zertifikat als PKCS#12-Datei unter /OPENCADIR/bar/bp/dataexchange/pkcs12/ im Dateisystem der Offline-CA abgelegt. Diese PKCS#12-Datei ist wiederum mit einer PIN gesichert, die während des Batch-Prozesses erzeugt wird. Um an diese PIN zu gelangen, muss der CA-Operator den Punkt ”Exportieren von PINs” unterhalb von ”Workflow Management” ausführen. Dabei wird eine pin_list unter /OPENCADIR/bar/bp/dataexchange/ erzeugt. Hier kann zum jeweiligen Userprozess die dazugehörige PIN abgefragt werden61 . Damit ist die Arbeit des CA-Operators, abgesehen vom Verteilen der PKCS#12-Dateien an die entsprechenden Nutzer, soweit abgeschlossen. Es verbleibt nur noch der Export der Zertifikate an die RA über das NODE-Interface. Ist auch dieser Schritt abgeschlossen, können die neuen Zertifikate nach dem Import durch den RA-Operator von den Nutzern im PUBLIC-Interface eingesehen werden. Abschließend wird in Abbildung 4.12 ein Überblick über den eben beschriebenen Prozess gegeben. 61 Was nun mit der PIN geschieht und wie diese dem Studenten mitgeteilt wird, wird im Abschnitt 4.8.1 ”Probleme mit der PIN” diskutiert. 155 4.10. Anwendungsszenarien Kapitel 4. Praktische Umsetzung Import zu Batch user2batch Studentenliste batch_process_ data.txt Batch-Prozess Export zu RA Import in Keystore Nutzer Zertifikat incl. Private Key als PKCS#12 als Import in Keystore Auslieferung der PKCS#12 Container Abbildung 4.12.: Prozess der automatischen Zertifikaterstellung 4.10.5. Sperren von Zertifikaten Auch dieser Abschnitt ist in zwei Teile aufgeteilt. Der erste Teil stellt die Sicht des Nutzers, der sein Zertifikat sperren lassen will dar, der Zweite die Sicht des RA- und CA-Operators, der die Sperrung durchführt. Nutzer Teil 1 Tritt der Fall ein, dass ein Zertifikat vor Ablauf seiner Gültigkeit kompromittiert oder nicht mehr gebraucht wird, muss es der Inhaber im eigenen Interesse sperren lassen. Dazu begibt er sich auf das PUBLIC-Interface der Zertifizierungsstelle, die sein Zertifikat verwaltet. Unter dem Punkt Nutzer -> Zertifikat zurückrufen hat er die Möglichkeit, dieses unter Angabe der Seriennummer, eines Grundes und der CRIN62 zu tun. Operator Teil Unter dem RA-Interface kann nun der RA-Operator unter Aktive CRRs -> neu den Antrag auf Sperrung einsehen, gegebenenfalls anpassen und durch die Genehmigung an die CA weiterleiten. Bevor aber die CA auf den Sperrantrag zugreifen kann, muss vorher ein Export/Import von der RA zur CA über das 62 Certificate Revocation Number; siehe auch Abschnitt 4.8.2 ”Probleme mit der CRIN”. 156 Kapitel 4. Praktische Umsetzung 4.10. Anwendungsszenarien NODE-Interface stattfinden. Ist dieser erfolgreich, kann der CA-Operator auf dem CA-Interface unter Normale Operationen -> Genehmigte Rückrufe das Zertifikat sperren. Nach Abschluss dieses Schrittes muss die CRL unter Normale Operationen -> Erstellen einer neuen CRL aktualisiert werden. Damit ist die Sperrung durch die CA aktiv und wird durch den nächsten Datenaustausch zwischen RA und CA zur Veröffentlichung gebracht. Nutzer Teil2 Damit der Nutzer erkennen kann, ob ein Zertifikat gesperrt ist oder nicht, muss er unter dem PUBLIC-Interface der RA CA-Informationen -> ZertifikatsRückruf-Listen die aktuelle CRL herunterladen und in seine Applikation importieren63 . Erst dann ist es der entsprechenden Applikation möglich, zwischen gültigen und gesperrten Zertifikaten zu unterscheiden. Die gesperrten Zertifikate können aber auch manuell unter dem PUBLIC-Interface Zertifikate -> zurückgerufen eingesehen werden. Abschließend wird in Abbildung 4.13 ein Überblick über den eben beschriebenen Prozess gegeben. Nutzer Sperrantrag mit Browser Genehmigung durch RA Export zu CA Sperrung, Erneuerung CRL Export zu RA Nutzer herunterladen der CRL Importieren der CRL Import in Keystore Abbildung 4.13.: Prozess der Sperrung von Zertifkaten 63 Zusätzlich können die Quellen für die CRLs aus dem Feld ”X509v3 CRL Distribution Points” des Zertifikates entnommen werden. 157 4.10. Anwendungsszenarien Kapitel 4. Praktische Umsetzung 4.10.6. Verlängern von Zertifikaten Nutzerzertifikate Das Verlängern der Zertifikate ist eine Aufgabe, um die sich der Zertifikatinhaber kaum kümmern muss. Das Einzige, was dieser zwei Wochen vor dem Ablauf tun soll, ist eine formlose E-Mail an den zuständigen RA-Operator zu senden um eine Verlängerung des Zertifikates zu beantragen. Für den Rest dieser Operation ist der RA-Operator verantwortlich, der für das Zertifikat eines Nutzers, wenn es abgelaufen ist, die Neusignierung in die Wege leitet. Dazu muss der RA-Operator nach dem Ablauf des Zertifikates dieses im RAInterface unter Informationen -> Zertifikate -> Abgelaufen einsehen. Ist das Zertifikat aufgerufen, wird auch die Seriennummer des CSR angezeigt. Dieser ist ein Link. Folgt man diesem, wird man zu dem dazugehörigen CSR weitergeleitet. Ist nun das Zertifikat abgelaufen, gibt OpenCA dem RA-Operator die Möglichkeit, den CSR erneut zu genehmigen. Wird dies ausgewählt, wird der CSR wieder als aktiver Antrag in die Datenbank geschrieben und beim nächsten Export an die Offline-CA überspielt. Signiert nun der CA-Operator den CSR, kommt das einer Zertifikatsverlängerung gleich, da das alte Zertifikat in der Datenbank überschrieben und das neue beim nächsten Export an die Online-RA veröffentlicht wird. Ist dieser Prozess erfolgreich durchlaufen, sollte der Nutzer über die üblichen Wege von der Erneuerung in Kenntnis gesetzt werden. CA-Zertifikate Ein CA-Zertifikat muss meist vor seinem eigenen Ende der Gültigkeit erneuert werden. Dies ist deshalb der Fall, da nur Zertifikate abgezeichnet werden können, die mit ihrer Lebenszeit nicht die des CA-Zertifikates überschreiten. Ist nun z.B. das CA-Zertifikat auf 12 Jahre ausgelegt und werden innerhalb der CA Zertifikate mit bis zu einer Lebensdauer von 5 Jahren vergeben, muss das CA-Zertifikat spätestens 5 Jahre vor seinem Ablauf, also nach 7 Jahren, 158 Kapitel 4. Praktische Umsetzung 4.10. Anwendungsszenarien erneuert werden. Muss nun das CA-Zertifikat erneuert werden, sollte eine Neu-Erstellung des Schlüsselpaares aus sicherheitstechnischer Sicht mit in Betracht gezogen werden. OpenCA bietet in der Hinsicht des CA-Schlüsselwechsels keine Automatiken an, so dass an dieser Stelle von RA und CA-Operator selbst Hand angelegt werden muss. Zu diesem Zweck wurden für die Sicherung des alten Schlüsselpaar und CA-Zertifkats auf der Offline-CA unter /OPENCADIR/crypto/ die Verzeichnisse cacerts-old/ und keys-old/ erstellt. Auf der Online-RA wurde ebenfalls zur Sicherung das Verzeichnis cacerts-old/ erstellt. Mit diesen Voraussetzungen ergibt sich für den CA-Schlüsselwechsel folgender Ablauf. CA-Operator 1. Sichern des alten Schlüsselpaares und CA Zertifikates Es muss als Erstes im Verzeichnis /OPENCADIR/crypto/ der Inhalt von cacerts/ nach cacerts-old/ und keys/ zu keys-old/ kopiert werden. 2. Entfernen des alten Schlüsselpaares Nach dem Sichern des alten Schlüsselpaares und CA Zertifikates können nun folgende Dateien gelöscht werden: • cacerts/: cacert.der, cacert.pem, cacert.txt • chain/: den gesamten Inhalt außer das makefile • keys/: cakey.pem Ist dieser Vorgang abgeschlossen, muss als Letztes das alte CA-Zertifikat aus der Datenbank der CA entfernt werden. Dazu muss man in der Datenbank der CA in der Tabelle ca_certificate den entsprechenden Eintrag löschen. 3. Neuerstellung des Schlüsselpaares Jetzt ist die CA ohne Schlüsselpaar und CA-Zertifikat, so dass im CAInterface unter Allgemein -> Initialisierung -> Phase1, angefangen mit 159 4.10. Anwendungsszenarien Kapitel 4. Praktische Umsetzung dem ”Schlüsselsetup”, ein neues Schlüsselpaar mit dazugehörigem Zertifikat erzeugt werden kann. Weiter sollte bei der Erzeugung eines neuen Antrages für das CA-Zertifikat ein anderer DN als der vorherige verwendet werden, um auf dem LDAP-Server eine Unterscheidung zwischen altem und neuem Zertifikat treffen zu können. Im Falle des Prototypen wurde im Attribut [email protected] von V1 auf V2 gewechselt. 4. Veröffentlichung Nach der erfolgreichen Generierung des neuen Schlüsselpaares und CAZertifikates sollte vor dem Export noch eine neue CRL generiert werden, da die alte auf Grund des Schlüsselwechsels ihre Gültigkeit verloren hat. Nachdem dies geschehen ist, müssen als nächstes über das NODEInterface der CA die neuen Daten an die RA exportiert und mit dem sync.sh Skript übertragen werden. RA-Operator 1. Sichern und anschließendes Entfernen des alten CA-Zertifikates Bevor der Import des neuen CA-Zertifikates stattfinden kann, muss das alte erst entfernt werden. Dazu kann genauso wie auf der CA vorgegangen werden (Sichern des alten CA-Zertifikates im Filesystem und anschließendes Entfernen aus der RA-Datenbank und dem Filesystem)64 . 2. Import des neuen CA-Zertifikates Sind diese Vorbereitungen abgeschlossen, kann nun der Import des neuen CA-Zertifikates über das NODE-Interface erfolgen. Nachdem die oben beschriebenen Schritte ausgeführt wurden, ist nun ein neues Schlüsselpaar mit dazugehörigem CA-Zertifikat verfügbar. Weiter sollte darauf geachtet werden, das alte Root-Zertifikat solange online zu halten, bis die durch 64 Da der private Schlüssel der CA nicht an die RA exportiert wird, braucht der Ordner keys nicht gesichert werden (er ist leer). 160 Kapitel 4. Praktische Umsetzung 4.10. Anwendungsszenarien das Root-Zertifikat ausgestellten Nutzerzertifikate abgelaufen sind. Um dies zu erreichen, wurde das Menü des PUBLIC-Interface sowie ein internes Kommando von OpenCA angepasst, um das Laden des alten CA-Zertifikates aus dem Verzeichnis unter /OPENCADIR/crypto/cacerts-old/ zu ermöglichen. Diese beiden Anpassungen werden nun an dieser Stelle kurz erläutert. Anpassung des PUBLIC-Menüs Um einen neuen Eintrag für das Herunterladen des alten CA-Zertifikates einzufügen, wurde die menu.xml auf der Online-RA unter /OPENCADIR/etc/ im PUBLIC Teil (<name>pub</name>) unterhalb von <id>5</id> um folgenden Eintrag erweitert: < item > < name > Laden des alten CA Zertifikates </ name > < link > cmd = getStaticPage ; name = download_old_cacert </ link > < target > main </ target > </ item > Nach dem Neustart von OpenCA wird durch diese Änderung der Eintrag ”Laden des alten CA-Zertifikates” im PUBLIC-Interface unter dem Punkt CAInformationen verfügbar. Anpassung des Kommandos getStaticPage Wie schon im obigen Abschnitt zu sehen ist greift der neu erstellte Eintrag ”Laden des alten CA-Zertifikates” auf ein internes Kommando namens getStaticPage zu. Dieses Kommando hat unter OpenCA die Aufgabe, verschiedene HTML-Seiten zu generieren, die unter den Interfaces Verwendung finden. Wird nun dem Kommando getStaticPage der Parameter download_old_cacert übergeben, bedeutet das, dass innerhalb des Kommandos eine Behandlung dieses Parameters stattfinden muss, um eine entsprechende HTML-Seite zu generieren. Dieser Parameter ist aber so nicht verfügbar und wurde im Laufe der Entwicklung des Prototypen am Beispiel des Parameters download_cacert implementiert. Dazu wurde im Quellcode von getStaticPage der Codeausschnitt 161 4.10. Anwendungsszenarien Kapitel 4. Praktische Umsetzung für download_cacert dupliziert und den eigenen Bedürfnissen angepasst (Siehe Listing 4.15)65 . # Aenderung durch Hans - Georg Winkler am 16.5.06 # Erweiterung um die Moeglichkeit des Downloads des alten CA - Zertifikates nach einem Schluesselwechsel oder einer Z e r t i f i k a t e r n e u e r u n g } elsif ( $query - > param ( ’ name ’) =~ / d ow n l o ad _ o ld _ c ac e r t /) { $name = gettext ( " Download und Installation des alten CA - Zertifikates " ) ; $exp = gettext ( " Diese Seite stellt das alte CA - Zertifikat in verschiedenene Formaten zur Verf & uuml ; gung . Bitte importieren sie sich das alte CA - Zertifikat , wenn sie mit Nutzern ko mm uni tz ie ren wollen die durch das alte CA - Zertifikat zertifiziert wurden ( g & uuml : ltig bis zu der Seriennummer ...) . Zum importieren klicken sie einfach auf den passenden Link " ) ; $item_list - >[0] - >[1] = gettext ( " [ Mozilla , Netscape and Microsoft Internet Explorer importable format ] " ) ; $item_list - >[0] - >[0] = ’ <a href =" ’. getRequired ( ’ Ht d o c s U r lP r e f i x ’) . ’/ cacert - old / cacert . crt " > ’. gettext ( " CA certificate in format CRT " ) . ’ </a > ’; $item_list - >[1] - >[1] = gettext ( " [ Server importable format ] " ) ; $item_list - >[1] - >[0] = ’ <a href =" ’. getRequired ( ’ Ht d o c s U r lP r e f i x ’) . ’/ cacert - old / cacert . pem " > ’. gettext ( " CA certificate in format PEM " ) . ’ </a > ’; $item_list - >[2] - >[1] = gettext ( " [ Another Microsoft Internet Explorer importable format ] " ) ; $item_list - >[2] - >[0] = ’ <a href =" ’. getRequired ( ’ Ht d o c s U r lP r e f i x ’) . ’/ cacert - old / cacert . der " > ’. gettext ( " CA certificate in format DER " ) . ’ </a > ’; $item_list - >[3] - >[1] = gettext ( " [ Another Microsoft Internet Explorer importable format ] " ) ; $item_list - >[3] - >[0] = ’ <a href =" ’. getRequired ( ’ Ht d o c s U r lP r e f i x ’) . ’/ cacert - old / cacert . cer " > ’. gettext ( " CA certificate in format CER " ) . ’ </a > ’; 65 Erst nach dem Neustart von OpenCA werden die Änderungen im Code gültig. 162 Kapitel 4. Praktische Umsetzung 4.11. Zusammenfassung $item_list - >[4] - >[1] = gettext ( " [ Just for information ] " ) ; $item_list - >[4] - >[0] = ’ <a href =" ’. getRequired ( ’ H t d o c s U rl P r e f i x ’) . ’/ cacert - old / cacert . txt " > ’. gettext ( " CA certificate in text format " ) . ’ </a > ’; Listing 4.15: Exemplarischer Ausschnitt der Änderungen an dem Kommando getStaticPage Zusätzlich zu den Änderungen im Code von OpenCA mussten, um das alte CAZertifikat über das PUBLIC-Interface im Punkt ”Laden des alten CA-Zertifikates” beziehen zu können, unter /APPACHEDIR/htdocs/pub/ das enthaltene cacerts/ in cacerts-old/ umkopiert und die darin enthaltenen Verknüpfungen von /OPENCADIR/crypto/cacerts/ zu /OPENCADIR/crypto/cacerts-old/ umgelenkt werden, d.h. im /APPACHEDIR/htdocs/pub/ existieren nach dieser Aktion die zwei Verzeichnisse cacerts/ und cacerts-old/, die jeweils Datei-Verknüpfungen auf /OPENCADIR/crypto/cacerts/ (für den Download des neuen CA-Zertifikat) und /OPENCADIR/crypto/cacerts-old/ (für den Download des alten CA-Zertifikat) enthalten. 4.11. Zusammenfassung In diesem Kapitel wurden die Arbeiten an dem Prototypen einer Zertifizierungsstelle am Beispiel der User CA dokumentiert. Dabei ging es in erster Linie um den Aufbau, aber auch die Installation und Konfiguration, die in den wichtigsten Schritten erläutert wurden. Weiter wurde die Anbindung der Zertifizierungsstelle an einen LDAP-Server beschrieben und auch die dabei auftretenden Probleme und Besonderheiten näher betrachtet. Die Handhabung und Einbindung des Batch-Prozessors zum automatischen Erstellen von Zertifikaten wurde in einem weiteren Abschnitt abgehandelt. Zum Abschluss wurden verschiedene Anwendungsszenarien für den Umgang mit den Interfaces von OpenCA besprochen, um so dem Nutzer einen Überblick über die Zusammenhänge innerhalb von OpenCA zu geben. 163 4.11. Zusammenfassung Kapitel 4. Praktische Umsetzung Abschließend soll an dieser Stelle angemerkt werden, dass die in diesem Kapitel behandelten Bereiche aufgrund ihres Umfangs nicht in jedem Detail besprochen werden konnten. Aus diesem Grund wurden im ”organisatorischen Anhang” weitere Themen zum Umgang mit den Interfaces und im ”technischen Anhang” weitere Themen zur Installation und Konfiguration von OpenCA abgehandelt. 164 5. Erfahrungen mit Client Software Aufbauend auf das vorhergehende Kapitel, in dem die Einrichtung der Zertifizierungsstelle beschrieben wurde soll der daraus entstandene Prototyp entsprechenden Tests zur Einbindung in verschiedene Applikationen unterworfen werden. In diesem Kapitel werden zusammenfassend die Erfahrungen der Unterstützung von Zertifikaten und LDAP-Funktionalitäten in verschiedenen EMail-Programmen, Adressbüchern und Schlüsselspeichern betrachtet. Als Ausgangsbasis wird ein LDAP-Server verwendet, der vom Aufbau her dem der Nutzerverwaltung des Fachbereiches entspricht. Ferner sind die darin enthaltenen Objekte von ihren Eigenschaften her wie denen auf dem Original beschaffen. Als Basis für die Nachbildung der Nutzereinträge auf dem LDAP diente der Account des Verfassers, der als LDIF ausgeliefert wurde. Durch diese Informationen und das nachträgliche Einbinden der fachbereichinternen Schemata fhw.schema und fhwstudent.schema war es möglich, den Zweig der Nutzerverwaltung auf den LDAP-Server des Prototypen originalgetreu nachzubilden1 . Zu den Tests wurden unter OU=Users, DC=cs, DC=fh-wiesbaden, DC=de fünf fiktive Nutzer mit ihren Daten und Zertifikaten abgelegt. Diese werden zur Übersicht im Einzelnen aufgelistet: • Winkler Hans-Georg = hwink001 • Boitz Martin = mboit001 1 Siehe dazu auch im Kapitel 4 ”Praktische Umsetzung” Abschnitt 4.6 ”LDAP”. 165 5.1. Mozilla (Thunderbird) Kapitel 5. Erfahrungen mit Client Software • Kibron Aron = akibr001 • Winkelmann Horst = hwink002 • Ruehle Ludwig = lrueh001 Bei allen zu testenden Clienten wurde die weitere Unterstützung von LDAP durch das interne Adressbuch des jeweiligen Programms untersucht. Weiter wurden die Import- und Export-Funktionen einer näheren Betrachtung unterzogen, sowie die Möglichkeiten der Einbindung eines Zertifikates in verschiedenen Schlüsselspeicher ausgewertet. 5.1. Mozilla (Thunderbird) Thunderbird, basierend auf dem Quelltext der Mozilla Suite, ist unter anderem für Windows, Linux, Mac OS X, Solaris, OS/2 verfügbar und stellt die Weiterentwicklung des Netscape E-Mail-Clients dar. Dabei hat sich dessen Funktionalität erweitert. Die Menü-Führung entspricht in etwa der des Mozilla E-Mail-Clients, sodass diese Ausführungen auch für die Mozilla-Varianten gelten. 5.1.1. Adressbuch Das Adressbuch unter Thunderbird unterstützt LDAP-Adressbücher. Jedoch ist ein Zugriff nur lesend möglich. Soll also ein Eintrag geändert werden, muss der Nutzer auf andere Programme zurückgreifen. Um den LDAP für das Adressbuch nutzbar zu machen, muss zuallererst unter Adressbuch -> neu -> LDAP-Verzeichnis ein neues Adressbuch angelegt werden. Das nun erscheinende Fenster wurde für die Nutzung am LDAP-Server, der auf dem EXTERN Host eingerichtet wurde, folgendermaßen ausgefüllt: • Name: UserCA • Hostname: 192.168.1.52 166 Kapitel 5. Erfahrungen mit Client Software 5.1. Mozilla (Thunderbird) • Bind DN: ou=Users, dc=cs, dc=fh-wiesbaden, dc=de • Port: 389 Ist das Adressbuch nach dem Klicken auf den OK-Button eingerichtet, kann es getestet werden, indem man nach einem bestimmten Namen suchen lässt, z.B., wie im Abbildung 5.1 zu sehen, nach ”hw”. Wie man sehen kann, wurden Abbildung 5.1.: Mozilla LDAP-Adressbuch die zwei User (hwink001 und hwink002) mit ihren Einträgen gefunden. Hier wird ein Problem offensichtlich. Erstens ist Aufgrund fehlender Einträge2 im User hwink001, wie CN=? oder SN=? keine Angabe von Vor- oder Nachname möglich. Des weiteren kann das Thunderbird Adressbuch mit den abgelegten Zertifikaten nichts anfangen, da es diese nicht aus dem Objekt auslesen kann. Dies liegt an der grundsätzlich fehlenden Unterstützung des inetOrgPerson3 Zertifikat-Attributs ”userCertificate”. 5.1.2. Import/Export von Zertifikaten und CRLs Im Gegensatz zu der LDAP Unterstützung im Adressbuch bereitet die Verwaltung der Zertifikate unter Thunderbird keine Probleme. Unter Einstellungen 2 3 Siehe auch das LDIF-Listing 4.8 im Kapitel 4 ”Praktische Umsetzung” Abschnitt 4.6 ”LDAP”. inetOrgPerson ist eine LDAP-Objekt-Klasse die Informationen über Personen speichern kann. Sie wird mit ihren Attributen in der RFC 2798 [Smi00] beschrieben. 167 5.1. Mozilla (Thunderbird) Kapitel 5. Erfahrungen mit Client Software -> Datenschutz -> Sicherheit -> Zertifikate kann man den Keystore des Thunderbird einsehen. Wie in Abbildung 5.2 zu sehen, gibt es vier Kategorien. Abbildung 5.2.: Mozilla Keystore • Ihre Zertifikate: Im Reiter ”Ihre Zertifikate” können die eigenen Zertifikate eingesehen und verwaltet werden. • Zertifikate anderer Personen: Im Reiter ”Zertifikate anderer Personen” können die Zertifikate anderer Teilnehmer, mit denen schon E-Mail-Kontakt besteht, eingesehen werden. • Websites: Im Reiter ”Websites” werden die Zertifikate für verwendete Webseiten abgelegt. • Zertifizierungsstellen: Im Reiter ”Zertifizierungsstellen” kann man alle zugelassenen Zertifizierungsstellen einsehen. An dieser Stelle muss auch das Root-Zertifikat der 168 Kapitel 5. Erfahrungen mit Client Software 5.1. Mozilla (Thunderbird) User CA importiert werden, um das eigene Zertifikat wie auch die der anderen Teilnehmer verifizieren zu können. Jede der vier Kategorien bietet dabei die Möglichkeit, neue Zertifikate zu importieren. Will man ein eigenes Zertifikat unter ”Ihre Zertifikate” importieren, so muss die zu importierende Datei im PKCS#12 Format vorliegen, da der private und öffentliche Schlüssel importiert wird. Bei allen anderen Importfunktionen wird nur der öffentliche Schlüssel importiert. Aus diesem Grund wird hier nur eine Datei im PEM- oder CRT-Format benötigt. Für den Export gilt das Gleiche wie für den Import. Bei dem eigenen Zertifikat wird im PKCS#12-Format exportiert und bei allen anderen im PEM-Format. Will man sich den Inhalt eines Zertifikates ansehen, reicht dazu ein Doppelklick auf das entsprechende Zertifikat im Keystore. Dabei ergibt sich folgendes Bild in Abbildung 5.3. Abbildung 5.3.: Mozilla Zertifikat Ansicht 169 5.2. KMail Kapitel 5. Erfahrungen mit Client Software Wie man sehen kann gibt Thunderbird dem Nutzer einen Überblick über die Attribute des Zertifikates. Reichen diese Informationen nicht, kann über den Reiter ”Details” direkt auf die einzelnen Attribute des Zertifikates zugegriffen werden. Um die Zertifikate im Keystore von Thunderbird auch zur Signierung und Verschlüsselung nutzen zu können, müssen diese unter Konten -> entsprechendes Nutzerkonto -> S/MINE -Sicherheit -> Digitale Unterschrift eingebunden werden. Nun kann beim Schreiben einer E-Mail die Signier- und Verschlüsselungsfunktion auf Basis der angegeben Zertifikate genutzt werden. Sollen CRLs Verwendung finden, können diese unter Einstellungen -> Datenschutz -> Sicherheit -> CRLs importiert werden. 5.2. KMail Der E-Mail-Client KMail ist das Standard-E-Mail-Programm unter der KDE und als solches weit verbreitet. KMail hat eine graphische Benutzeroberfläche und fügt sich vollständig in KDE ein. Es unterstützt die gängigen E-MailProtokolle, läuft unter Linux, BSD und anderen UNIX-artigen Betriebssystemen und basiert auf den Qt-Bibliotheken4 der Firma Trolltech5 . Unterstützt werden Signier- und Verschlüsselungsoperationen auf Basis von Zertifikaten sowie die Anbindung eines LDAP-Dienstes als Adressbuch. 5.2.1. Adressbuch Das verwendete Adressbuch unter KMail ist ein eigenständiges Programm, welches unter KDE integriert ist. Man kann es separat starten, indem man in der Konsole den Befehl kadressbook ausführt oder über KMail Extras -> Adressbuch dieses aufruft. Um das Adressbuch für den Einsatz auf dem LDAP-Server einzurichten, muss als Erstes ein neues Adressbuch hinzugefügt werden. Dies 4 5 Das ”Quasar Toolkit” ist eine Programmbibliothek, die das Programmieren von Plattformübergreifender Software möglich macht. http://www.trolltech.com/ 170 Kapitel 5. Erfahrungen mit Client Software 5.2. KMail erreicht man, indem der Button hinzufügen unterhalb der Adressbuch-Liste angeklickt wird. Als Nächstes wird die Art des neuen Adressbuches ausgewählt. Dabei sollte der Eintrag ”LDAP” genutzt werden. Ist dies geschehen, müssen die Zugangsdaten für den LDAP eingegeben werden: • Rechner: 192.168.1.52 • Port: 389 • LDAP-Version: 3 • DN: ou=Users, dc=cs, dc=fh-wiesbaden, dc=de • Sicherheit: nein • Authentifizierung: nein Sind diese Einträge erfolgt, kann mit einem Klick auf den OK-Button die Einrichtung des LDAP-Adressbuch abgeschlossen werden. Wird nun das neu eingerichtete Adressbuch aktiviert, ergibt sich das Bild in Abbildung 5.4. Abbildung 5.4.: KAdressbuch mit LDAP 171 5.2. KMail Kapitel 5. Erfahrungen mit Client Software Offensichtlich tritt auch hier wieder das gleiche Problem auf, welches auch unter dem Thunderbird Adressbuch auftritt. Das Einzige was gefunden wird, sind die E-Mail-Adressen da alle anderen Attribute, die von KAdressbuch ausgelesen werden, entweder leer (CN, SN) oder gar nicht vorhanden sind. Weiter wird hier das vorhandene Attribut ”userCertificate” nicht ausgelesen, so dass der Bezug von Zertifikaten über das LDAP-Adressbuch von KAdressbuch ausgeschlossen werden kann. Doch gibt es unter KMail eine Erweiterung für die Verwaltung von Zertifikaten, die unter dem Namen ”Kleopatra” fester Bestandteil von KMail ist. Diese Erweiterung ist aus dem Open-Source-Projekt Ägypten [URL11] und Ägypten2 [URL12] hervorgegangen und seit KDE 3.3 fest in KMail integriert. Diese hat die Aufgabe, dem Nutzer die lokale Verwaltung von X.509 Zertifikaten in einem GpGSM-Schlüsselspeicher6 sowie das Abfragen und Importieren von Zertifikaten von einem LDAP-Server zu ermöglichen. Gestartet wird Kleopatra unter KMail Extras -> Zertifikatverwaltung oder über die Konsole mit dem Kommando kleopatra. Um es zu ermöglichen, über Kleopatra auf die Zertifikate der Nutzerverwaltung zuzugreifen, muss als Erstes der Zugriff auf den LDAP-Server in Kleoaptra unter Einstellungen -> Kleopatra einrichten -> Verzeichnissdienste -> Dienst hinzufügen eingerichtet werden. Folgende Einträge müssen dabei in den LDAP-Einrichtungsdialog übertragen werden: • Servername: 192.168.1.52 • Port: 389 • Basis DN: ou=Users, dc=cs, dc=fh-wiesbaden, dc=de Ist die LDAP-Anbindung eingerichtet, kann anschließend im Hauptfenster unter suchen nach -> in externen Zertifikaten in der Nutzerverwaltung nach Zertifikaten gesucht werden. Wird ein Zertifikat gefunden (Abbildung 5.5), kann 6 Ist eine vollständige S/MIME Implementation. 172 Kapitel 5. Erfahrungen mit Client Software 5.2. KMail man dieses durch einen Doppelklick auf den Eintrag einsehen. Hier findet sich auch, wie in Abbildung 5.6 zu sehen, die Möglichkeit, das Zertifikat in den lokalen Schlüsselspeicher zu importieren. Abbildung 5.5.: Suchen von Zertifikaten unter Kleopatra Abbildung 5.6.: Zertifikate Ansicht unter Kleopatra Um die Zertifikate im Schlüsselspeicher auch in KMail zur Signierung und Verschlüsselung zu verwenden, müssen diese unter KMail Einstellungen -> KMail einrichten -> Identitäten -> entsprechende Identität -> Kryptographie 173 5.3. Microsoft Outlook Express Kapitel 5. Erfahrungen mit Client Software -> S/MINE Unterschriftzertifikat und S/MINE Verschlüsselungszertifikat eingebunden werden. Nun kann bei dem Schreiben einer E-Mail die Signier- und Verschlüsselungs-funktion genutzt werden. 5.2.2. Import/Export von Zertifikaten und CRLs Der Import von Zertifikaten ist unter Kleopatra über zwei Wege möglich. Zum einen über den normalen Weg des Imports von PKCS#12 (für eigenen Zertifikate), PEM oder DER Dateien und zum anderen über den gerade besprochenen LDAP-Dienst. Weiter können eigene und fremde Zertifikate über Datei -> Geheime Schlüssel Exportieren als PKCS#12 und Datei -> Zertifkate exportieren als PEM Datei exportiert werden. Sollen CRLs verwendet werden, können diese unter Kleopatra Datei -> Sperrlisten importieren eingespielt werden. 5.3. Microsoft Outlook Express Outlook Express ist ein E-Mail-Client und Newsreader von Microsoft, der dem Betriebssystem Windows in den aktuellen Versionen beiliegt und daher auch von vielen Anwendern eingesetzt wird. Der Funktionsumfang von Outlook Express ist für den normalen Einsatz gedacht und unterstützt LDAPAdressbücher wie auch Zertifkat-Management über den internen Keystore von Windows. Eine direkte Möglichkeit, mit dem Adressbuch über den LDAP zu suchen, wie unter Thunderbird oder KMail, existiert in Outlook Express nicht. Es gibt jedoch andere Möglichkeiten um die Zertifikate auf dem LDAP zu nutzen. Diese sollen in den folgenden Schritten erläutert werden: 1. Einrichten des Verzeichnisdienstes Der Verzeichnisdienste kann unter Extra -> Konten -> Verzeichnisdienst -> Hinzufügen -> Verzeichnisdienst eingerichtet werden. Im Falle des 174 Kapitel 5. Erfahrungen mit Client Software 5.3. Microsoft Outlook Express LDAP-Server auf dem EXTERN Host 192.168.1.52 gelten folgende Werte: • Allgemein -> Servername: 192.168.1.52 • Erweitert -> Serverport: 389 • Erweitert -> Suchbasis: ou=Users, dc=cs, dc=fh-wiesdaden, dc=de 2. Suchen nach Personen Ist der Verzeichnisdienst eingerichtet, ist es möglich, direkt über den LDAP-Server nach bestimmten Namen oder Personen zu suchen. Dazu muss Bearbeiten -> Suchen -> Personen angewählt werden. Das nun erscheinende Fenster gibt unter ”suchen in” die Möglichkeit den Verzeichnisdienst anzuwählen, worin gesucht werden soll. In dem darunter liegenden Feld können dann Namen oder E-Mail-Adressen angegeben werden, nach denen gesucht werden soll. 3. Importieren Wurden entsprechende Einträge gefunden, können diese über den Button ”Eigenschaften” eingesehen werden. In dem nun erscheinenden Fenster können die Details des Eintrages wie die Adressdaten, das digitale Zertifikat etc. eingesehen sowie ein Import des gesamten Eintrags zum lokalen Adressbuch des Outlook Express durchgeführt werden. Wie auch in den anderen Adressbüchern zeigt sich auch hier, dass nur die E-Mail-Adresse und das Zertifikat abgerufen werden können. Alle anderen Einträge wie Adressen- oder Namensangaben bleiben, auf Grund fehlender Attribute in den Objekten der Nutzerverwaltung, leer. 4. Zertifikatspeicher Der Zertifikatspeicher unter Windows ist unter Start -> Systemsteuerung -> Internetoptionen -> Inhalte -> Zertifkate oder direkt im Outlook Express unter Extras -> Optionen -> Sicherheit -> Digitale IDs 175 5.3. Microsoft Outlook Express Kapitel 5. Erfahrungen mit Client Software erreichbar. Wird dieser geöffnet, kann der Nutzer auf sechs verschiedene Reiter zugreifen: • Eigene Zertifikate: Im Reiter ”Eigene Zertifikate” werden die eigenen Zertifikate angezeigt sowie exportiert und importiert. • Andere Personen: Im Bereich ”Andere Personen” werden alle Zertifikate angezeigt die durch den direkten Import oder durch Hinzufügen von Kontakten über einen Verzeichnisdienst eingespielt wurden. • Zwischenzertifizierungsstellen: Im Reiter ”Zwischenzertifizierungsstellen” werden die für SubCAs ausgestellten Zertifikate eingespielt und angezeigt. • Vertrauenswürdige Stammzertifizierungsstellen: Im Reiter ”Vertrauenswürdige Stammzertifizierungsstellen” werden die Root-Zertifikate der PCAs, für das Verifizieren der SubCAs oder der direkt erstellten Zertifikate, abgelegt. • Vertraute Herausgeber: Im Reiter ”Vertraute Herausgeber” werden Zertifikate von Zertifizierungsstellen abgelegt, die als vertrauenswürdig eingestuft wurden. • Nicht vertrauenswürdige Herausgeber: Im Reiter ”Nicht vertrauenswürdige Herausgeber” werden Zertifikate von Zertifizierungsstellen abgelegt, die als nicht vertrauenswürdig eingestuft wurden. 5. Einrichten der Zertifikate Sollen nun die Zertifikate im Schlüsselspeicher unter Outlook Express zum Signieren und Verschlüsseln genutzt werden, müssen unter Extras -> Konten -> entsprechendes E-Mail-Konto -> Eigenschaften -> Sicherheit in den Punkten ”Zertifikat” und ”Verschlüsselungseinstellungen” die 176 Kapitel 5. Erfahrungen mit Client Software 5.4. Zusammenfassung jeweiligen Zertifikate aus dem Schlüsselspeicher angewählt werden. Ist dies geschehen, wird beim Erstellen einer neuen E-Mail der Zugriff auf die Signier- und Verschlüsselungsoption möglich. 5.3.1. Import/Export von Zertifikaten und CRLs Unter dem Schlüsselspeicher von Windows stehen für alle Rubriken (siehe oben) Import- und Export-Funktionen zur Verfügung. Dabei wird in erster Linie das CER- und PEM-Format für den Import von Zertifikaten verwendet. Weiter wird der PKCS#12 Import unterstützt. Exportiert wird im CER- oder PKCS#7-Format. Weiter ist es möglich, über einen gefundenen Eintrag (lokal oder in einem Verzeichnisdienst) direkt unter ”Digitale IDs” das Zertifkat im CER-Format zu exportieren. Da der Schlüsselspeicher unter Windows global funktioniert, muss auch eine CRL direkt über die von Windows zur Verfügung gestellten Möglichkeiten in den Zertifikatspeicher importiert werden. Dies geschieht folgendermaßen: 1. Herunterladen der CRL, 2. Rechts-Klick auf die CRL und Anwählen von Zertifikatsperrliste installieren, Nach der erfolgreichen Installation ist die CRL im Zertifikatspeicher aktiv, so dass der Nutzer zwischen gültigen und gesperrten Zertifikaten unterscheiden kann. 5.4. Zusammenfassung Grundsätzlich ist die Unterstützung von Zertifikaten innerhalb der gängigen E-Mail-Programme vorhanden. Alle Programme unterstützen das Signieren und Verschlüsseln von Nachrichten auf Basis der X.509 Zertifikate sowie das Einbinden von CRLs und Zertifikaten in die internen Schlüsselspeicher. Da- 177 5.4. Zusammenfassung Kapitel 5. Erfahrungen mit Client Software bei kann klar von einer Trennung der Bezugsquellen der Zertifikate ausgegangen werden. Sind die Zertifikate von einer Quelle im Internet, z.B. von einem Online-Portal, auf den Rechner heruntergeladen und dann per Hand in die jeweiligen Schlüsselspeicher der Programme oder Betriebssysteme integriert, gestaltet sich die Vorgehensweise in allen Programmen ähnlich. Der Einsatz von LDAP für den Bezug von Zertifikaten wird jedoch unterschiedlich gehandhabt. Dabei hat Thunderbird die schlechtesten Voraussetzungen. Zwar ist eine LDAP-Unterstützung im Adressbuch vorhanden, jedoch können darüber keine Zertifikate von einem LDAP-Server bezogen werden, sodass sich das Einbinden von Zertifikaten auf das lokale Importieren in den Schlüsselspeicher beschränkt. KMail dagegen bietet gute Ansätze des Einbindens von Zertifikaten über einen LDAP-Server. Jedoch ist die fehlende Unterstützung von Zertifikaten im LDAP-Adressbuch ein Nachteil, der durch die Verwendung von Kleopatra teilweise kompensiert werden kann. Dabei bietet KMail im Linux-Sektor die besten Ansätze und Unterstützung bei der Verwendung von X.509 Zertifikaten. Unter Windows ist Outlook Express in Kombination mit dem internen Schlüsselspeicher von Windows eine gute Wahl und bietet bei den getesteten Clienten die beste Unterstützung, einen LDAP-Server als Adressbuch und Zertifikatspeicher zu verwenden. Dabei ist die globale Verfügbarkeit des Verzeichnisdienstes wie auch des Schlüsselspeichers ein nicht zu unterschätzender Vorteil, da auch andere Programme außer Outlook Express auf die Daten zugreifen können. Abschließend wird festgestellt, dass die Untersützung für LDAP als Zertifikatspeicher noch nicht konsequent umgesetzt wurde. Dennoch ist die Verwendung eines LDAP-Server als Adressbuch in alle Clienten gegeben. Findet jedoch die Nutzerverwaltung als Basis eines solchen Adressbuches Verwendung, muss diese generell um entsprechende Attribute für LDAP-Adressbücher erweitert werden. 178 6. Zusammenfassung und Ausblick Dieses Kapitel gibt eine Abschlussbetrachtung über die in dieser Arbeit behandelten Themengebiete, wertet das Erreichte aus und zeigt einen Ausblick und Empfehlungen für die weitere Entwicklung auf. Angefangen mit den Grundlagen in Kapitel 2 wurde der Leser zur Problematik der Notwendigkeit einer Public Key Infrastruktur hingeführt. In der Analyse in Kapitel 3 wurde dieser Gedankengang konkretisiert, indem am Beispiel der Policy wichtige Fragestellungen einer PKI angesprochen und ausgewertet wurden. Hierbei wurden Aussagen über den Aufbau, und die Anwendungsbereiche der PKI sowie über die Identifizierung, Authentifizierung und Veröffentlichung von Zertifikaten gemacht. Weiter wurde näher auf eine mögliche Ablauforganisation und das Thema der Sicherheitsmaßnahmen eingegangen. Nachdem der theoretische Teil mit den Grundlagen und einer ersten Analyse abgeschlossen wurde, konzentriert sich der Rest der Arbeit auf die praktische Umsetzung der in der Analyse gemachten Aussagen und Vorgaben. Dabei ging es vornehmlich um den Aufbau, aber auch die Installation und Konfiguration des auf Basis von OpenCA entwickelten Prototypen. Weiter wurde die Anbindung an einen LDAP-Server beschrieben und auch die dabei auftretenden Probleme und Besonderheiten näher betrachtet. Die Handhabung und Einbindung des Batch-Prozessors zum automatischen Erstellen von Zertifikaten wurde in einem weiteren Teil abgehandelt. Zum Abschluss wurden verschiedene Anwendungszenarien für den Umgang mit den Interfaces des Prototypen besprochen, um so dem Nutzer einen Überblick über die Zusammenhänge innerhalb von OpenCA zu geben. Jedoch konnte aufgrund des Umfangs und der Komple- 179 Kapitel 6. Zusammenfassung und Ausblick xität von OpenCA, der Prototyp nicht in jedem Detail besprochen werden. Aus diesem Grund wurde zusätzlich für nähere Informationen zum Umgang mit den Interfaces von OpenCA und der Installation und Konfiguration der organisatorische und technische Anhang eingerichtet. Schließlich wurde in dem letzten Kapitel ”Erfahrungen mit Client Software” die Integration der PKI in bestehende Applikation geprüft und ausgewertet. Werden die eben besprochenen Kapitel als Ganzes betrachtet, ergibt sich ein Gesamtbild für die Umsetzung einer PKI am Fachbereich. Dabei muss jedoch angemerkt werden, dass spezielle Problemstellungen die während der Arbeiten aufgetreten sind, einer weiteren Prüfung und Vertiefung bedürfen. Zu diesen Problemstellungen zählt unter anderem in der Analyse die Frage nach den möglichen X.509 Erweiterungen bei Zertifikaten und CRLs. Weiter benötigen die sicherheitstechnischen Maßnahmen und die Festlegung von Regelungen in Bezug auf das Personal und die Verantwortlichkeiten innerhalb der PKI einer weiteren Regelung und Konkretisierung durch den Fachbereich. Zur rechtlichen Absicherung einer laufenden PKI müssen die Rechte und Pflichten sowie Verbindlichkeiten in den Rahmenvorschriften konkretisiert werden. In der praktischen Umsetzung muss wiederum geprüft werden inwieweit die Nutzung der Userverwaltung durch den zentralen LDAP-Server des Fachbereiches als Adressbuch und Zertifikatspeicher möglich ist. Sollte diese Nutzung vorgesehen sein, müssen der LDAP-Server und die darin abgelegten Objekte einer entsprechenden Erweiterung unterzogen sowie klare Regelungen in Bezug auf den DN vergeben werden. Weiter stellt sich bei der Einrichtung entsprechender Zertifizierungsstellen, auf Basis des Prototypen, die Frage nach Implementierung und Einbindung dieser in die Netz-Infrastruktur sowie in die Prozesse innerhalb des Fachbereiches. Des Weiteren sollte bei der Einrichtung einer PKI in die Vorbetrachtung die Betreuung der Nutzer durch entsprechende Dokumentation und Lehrveranstaltungen sowie die Möglichkeiten zu einer Online-Betreuung1 einbezogen werden. Dabei spielt ein gut durchdachtes Konzept für die Betreuung 1 Zum Beispiel ein Online-Forum, in dem man Fragen bezüglich der PKI stellen kann. 180 Kapitel 6. Zusammenfassung und Ausblick 6.1. Entwicklung von OpenCA der Nutzer und die weitgehende transparente Einbindung der PKI in schon existierende Prozesse eine entscheidende Rolle für eine breite Akzeptanz der PKI. Aus diesem Grund sollten besonders in Bezug auf Schulung und Einbindung der PKI umfangreiche Planung und Testläufe durchgeführt werden. Sollte es zu der Umsetzung einer zentralen PKI für die gesamte Fachhochschule Wiesbaden kommen, gelten im Ganzen die eben gemachten Aussagen zum Fachbereich. Zusätzlich dazu sollte eine zentrale Stelle existieren, die sich nur für den laufenden Betrieb und Support einer PKI kümmert sowie die Rolle einer zentralen Nutzerbetreuung übernimmt. Nur so kann gewährleistet werden, dass die PKI an allen Fachbereichen in gleicher Qualität Anwendung und Akzeptanz findet. Abschließend bleibt festzustellen, dass zu dem Betrieb einer aktiven PKI das Konzept, welches hinter OpenCA steht, für den fachbereichs- und fachhochschulweiten Einsatz durchaus geeignet ist. 6.1. Entwicklung von OpenCA Da es 2005 einige Änderungen in der Entwicklung und den zukünftigen Konzepten von OpenCA gegeben hat, soll dieser letzte Abschnitt dazu dienen, einen Ausblick auf die weitere Entwicklung von OpenCA zu geben. Die in dieser Arbeit verwendete Version von OpenCA 0.9.2.x wird aufgrund eines Konflikts unter den Entwicklern über die Lizensierung und das Management nicht mehr direkt weiterentwickelt2 . Aufgrund dieser Probleme kam es zur Abspaltung einer Gruppe von Entwicklern, die maßgeblich für die Entwicklung von OpenCA verantwortlich waren. Diese Entwickler haben im Oktober 2005 ein neues Projekt ins Leben gerufen. Dieses Projekt namens ”OpenXPKI” basiert auf der Entwicklung von OpenCA 0.9.3. Ziel dieses Projektes ist es eine robuste Open Source ”out-of-the-box Certification Authority” zu implementie2 Das System wird zwar weiterhin gepflegt und Bugfixes eingespielt, jedoch nicht mehr in seiner Entwicklung vorangetrieben. 181 6.1. Entwicklung von OpenCA Kapitel 6. Zusammenfassung und Ausblick ren, welche die gängigsten Protokolle mit voller kryptographischer Sicherheit für den weltweiten Einsatz unterstützt. Da dieses Projekt noch sehr jung ist, konnte in dieser Arbeit kein Bezug auf die Entwicklung von OpenXPKI genommen werden. Jedoch sollte für eine weitere Entwicklung der fachbereichs- bzw. fachhochschulweiten Public Key Infrastruktur der Einsatz von OpenXPKI berücksichtigt werden, da dieses System eine Weiterentwicklung von OpenCA darstellt3 . 3 Weitere Informationen zu der Entwicklung und ersten Veröffentlichungen von OpenXPKI unter http://www.openca.info. 182 A. Technischer Anhang Der technische Anhang wurde eingerichtet, um als eine Ergänzung der in der Arbeit gemachten Aussagen dem Leser den Einstieg und Umgang mit OpenCA zu erleichtern. Dabei handelt es sich bei diesen Informationen zum größten Teil um Aufzeichnungen, die während der Entwicklung des Prototypen entstanden sind, um die gemachten Arbeiten und Änderungen auch später noch nachvollziehen zu können. A.1. config.xml Nachfolgend soll der Inhalt der config.xml näher betrachtet werden. Die Datei ist in sieben große Konfigurationsabschnitte unterteilt. Diese sollen hier mit ihren Inhalten und ihrer Bedeutung erläutert werden. A.1.1. Generelle Einstellungen Hier werden einige Optionen definiert, die für OpenCA-Interfaces von zentraler Bedeutung sind. Standort Der CA-Standort, die Organisation und das Land, haben später einen starken Einfluss auf die gesamte Konfiguration von OpenCA, z.B die LDAP- oder CSR-Konfiguration. 183 A.1. config.xml Anhang A. Technischer Anhang < name > default_language </ name > < value > DE </ value > Angabe der Sprache (ist gleichbedeutend mit der Angabe des Landes). < name > default_charset </ name > < value > UTF -8 </ value > Angabe der Zeichenkodierung < name > cert_chars </ name > < value > UTF8 </ value > Diese Option gibt an, in welcher Zeichenkodierung die Inhalte (Strings) der Felder O, OU, CN, EMAIL etc. in den Zertifikatanträgen und Zertifkaten abgelegt werden sollen. Erlaubt sind die Werte UTF8 oder LATIN1. Wird das Feld leer gelassen, ist die Standard Einstellung LATIN11 . < name > ca_organization </ name > < value > FH - Wiesbaden </ value > Angabe der Organisation, in der OpenCA betrieben wird. < name > ca_locality </ name > < value > Wiesbaden </ value > Angabe der Stadt, in der OpenCA betrieben wird. < name > ca_country </ name > < value > </ value > Angabe des Landes, in dem OpenCA betrieben wird. Dabei gelten die ISOCodes für die Angabe des Landes. Bsp. DE, IT, PL, UK, US usw. 1 Für UTF8 Unterstützung ist mindestens OpenSSL 0.9.8+ notwendig. 184 Anhang A. Technischer Anhang A.1. config.xml E-Mail-Teil < name > sendmail </ name > < value >/ usr / lib / sendmail -n -t </ value > Angabe, welches Kommando zum Senden von E-Mails verwendet werden soll. < name > send_mail_automatic </ name > < value > no </ value > Diese Option konfiguriert das Node-Interface. Ist der Wert auf YES gesetzt, sendet OpenCA alle eintreffenden E-Mails während eines Imports automatisch. Diese Option sollte vorsichtig eingesetzt werden, da es durch das automatische Versenden von E-Mails zu Missverständnissen kommen kann. < name > service_mail_account </ name > < value > </ value > Angabe der E-Mail-Adresse als Kontakt für PKI-User. < name > policy_link </ name > < value > https : // / pub / policy . html </ value > Hier kann ein Link zur Policy angegeben werden. A.1.2. Webserver Konfiguration Dieser Teil ist, wie der Name schon sagt, für die speziellere Konfiguration und Anpassung von OpenCA an die Gegebenheiten des Webservers zuständig. < name > httpd_protocol </ name > < value > https </ value > Angabe, auf welchem Protokoll der Datentransfer stattfinden soll. 185 A.1. config.xml Anhang A. Technischer Anhang < name > httpd_host </ name > < value > </ value > Angabe des Hostnamens, auf dem der Webserver hört2 . < name > httpd_port </ name > < value >:443 </ value > Manchmal ist es notwendig, OpenCA an unüblichen Ports zu betreiben. Hier hat man die Möglichkeit, diesen Port anzugeben. Ist dieses Feld leer, wird der Standard-Port des angegeben Protokolls verwendet3 . < name > menu_logo_left </ name > < value > </ value > Hier können Referenzen zu einem Logo angegeben werden. Dabei sind HTMLReferenzen erlaubt. Bsp: <img src=” ” alt=”XYZ Logo”/> A.1.3. LDAP-Server Konfiguration Folgende Optionen stehen zur Konfiguration des LDAP in der config.xml zur Verfügung: < name > ldap_host </ name > < value > </ value > Angabe, auf welchem Host der LDAP-Server zu finden ist. < name > ldap_port </ name > < value >389 </ value > Angabe, auf welchen Port der LDAP-Server zu finden ist. 2 3 Bei VHosts sollte hier der Name des VHosts angegeben werden, auf dem OpenCA installiert wurde. Zum Beispiel benutzt man das HTTP-Protokoll. Zusätzlich wird der Webserver, auf dem OpenCA läuft, auf Port 8080 betrieben. 186 Anhang A. Technischer Anhang A.1. config.xml < name > ldaproot </ name > < value > </ value > Angabe der Bind-DN des LDAP-Users, der berechtigt ist, Daten auf den LDAP-Server zu übertragen. < name > ldaprootpwd </ name > < value > </ value > Angabe des Passwortes des LDAP-Useraccounts < name > useLDAP </ name > < value > no </ value > Ist die Option auf YES gesetzt, wird der LDAP-Teil von OpenCA aktiviert. < name > update_ldap_automatic </ name > < value > no </ value > Soll der LDAP automatisch updaten, wenn von einer höheren Instanz ein Import durchgeführt wird, sollte diese Option auf YES gesetzt werden. A.1.4. Datenbank Konfiguration Folgende Optionen stehen für die Konfiguration der Datenbank zur Verfügung: < name > dbmodule </ name > < value > DB </ value > Als erstes sollte man sich entscheiden, welches Datenbankmodul genutzt werden soll. OpenCA unterstützt zwei Module. Eines für DBM-Dateien und eines für SQL. Für die Unterstützung von DBM den Wert DB angeben, für SQL DBI. 187 A.1. config.xml Anhang A. Technischer Anhang < name > db_type </ name > < value > Pg </ value > Hier kann der Datenbanktyp angegeben werden. Es werden folgenden Datenbanken unterstützt: Pg, MySQL, Oracle und DB2. < name > db_name </ name > < value > openca </ value > Name der Datenbank, die genutzt werden soll. < name > db_host </ name > < value > localhost </ value > Hostname des Datenbankservers, auf dem die Datenbank erreichbar ist. < name > db_port </ name > < value >5432 </ value > Port, auf dem die Datenbank erreichbar ist. < name > db_user </ name > < value > openca </ value > Datenbankbenutzer, der Schreib- und Leserechte auf die oben genannte Datenbank hat. < name > db_passwd </ name > < value > </ value > Passwort des Datenbankbenutzers, der Schreib- und Leserechte auf die oben genannte Datenbank hat. 188 Anhang A. Technischer Anhang A.1. config.xml A.1.5. Module Konfiguration < name > module_shift </ name > < value >8 </ value > Um Konflikte wie z.B. doppelte Seriennummern zu vermeiden, besitzt OpenCA einen Mechanismus um die verschiedenen Interfaces voneinander zu isolieren. Die module_shift Option ermöglicht es, Zahlenräume für IDs festzulegen. Dabei ist 0 die ID der CA. Alle anderen Module-IDs bewegen sich in dem Raum, der durch die module_shift Option angegeben wurde4 . Hier die Standard-IDs, die den Modulen durch die config.xml vorgegeben werden: • ra_module_id = 1 • ldap_module_id = 2 • node_module_id = 3 • pub_module_id = 32 • scep_module_id = 33 • batch_module_id = 128 A.1.6. Konfiguration der relativen und absoluten Pfade Die *_url_prefix und *_fs_prefix Optionen definieren die exakte Position der einzelnen Module auf dem Webserver. Diese verweisen auf Positionen im Dateisystem, können aber auch durch die Angabe von Aliases in der httpd.conf (je nachdem ob der Host bzw. VHost darin konfiguriert wurde) konfiguriert werden. 4 Man sollte vorsichtig mit dieser Option umgehen. Sie kann nach der ersten Definition nicht mehr geändert werden. 189 A.1. config.xml Anhang A. Technischer Anhang A.1.7. Datenaustausch Konfiguration Dieser Abschnitt ist entscheidend für den späteren Export und Import von Daten über das NODE-Interface zwischen verschiedenen Ebenen der Hierarchie innerhalb der Zertifizierungsstelle. Dabei ist es nicht notwendig, diese Sektion im ersten Schritt auszufüllen, da es auch später über die node.conf Konfigurationsdateien möglich ist, die Ex- und Importfähigkeiten zu bearbeitet. Doch ist die zentrale Konfiguration über die config.xml zu empfehlen.5 Dieser große und letzte Teil der config.xml spaltet sich in 6 Teile auf, die alle bis auf 0 auskommentiert wurden. Je nach Einsatz sollten hier die nötigen Ex-/Importoptionen freigeschaltet werden: • 0 -> keine Datenaustauschkonfiguration, alles befindet sich auf einem Rechner, und jedes Interface arbeitet mit demselben /var und derselben Datenbank. • 1 -> Diese Sektion sollte verwendet werden, will man eine Offline-CA betreiben (NODE-, CA- und BATCH-Interface). Dabei kann über das NODE mit einer oder mehreren RA’s Daten ausgetauscht werden. • 2 -> Für das Betreiben einer reinen RA (NODE- und RA-Interface) dabei können über das NODE Daten mit der PUBLIC-/ SCEP-Instanz einer CA ausgetauscht werden. • 3 -> Hier kann eine reine PUBLIC-/ SCEP-Instanz betrieben werden. Dabei kann das NODE Daten mit einer zugehörigen RA austauschen. • 4 -> Mit dieser Sektion kann eine reine LDAP-Instanz betrieben werden. Dabei bezieht das NODE Daten von einer zugehörigen RA oder CA. 5 Merke: Bei einem Durchlauf von configure_etc.sh werden alle *.conf -Dateien überschrieben. 190 Anhang A. Technischer Anhang A.2. Anpassung Apache • 5 -> Dieser Modus wird benutzt, wenn auf einer Instanz PUBLIC/ SCEP und RA gleichzeitig betrieben werden. Das NODE tauscht dabei nur mit der zuständigen CA Daten aus.6 • 6 -> Hier können CA und RA gemeinsam auf einem Rechner betrieben werden. Das NODE tauscht dabei Daten mit der dazugehörigen PUBLIC-/ SCEP-Instanz auf einem anderen Rechner aus. A.2. Anpassung Apache Für den fehlerlosen Betrieb von OpenCA müssen an der Standardinstallation des Apache unter SuSE einige Modifizierungen durchgeführt werden. A.2.1. Symbolische Links OpenCA nutzt in seiner Installation symbolische Links, um z.B. *.css Dateien an zentraler Stelle halten zu können. In der normalen Konfiguration des Apache ist das Folgen symbolischer Links deaktiviert. Um diese Option zu aktivieren, muss unter der Serverkonfiguration für den Host (in dem Falle des Prototypen /etc/apache2/default-server.conf) die Option ”Options +FollowSymLinks +SymLinksIfOwnerMatch” hinzugefügt werden: . A.2.2. HTTPS OpenCA verlangt in der Standardeinstellung (kann wenn nötig geändert werden) für alle Interfaces eine HTTPS-Verbindung. Im Folgenden wird darauf eingegangen, wie Apache konfiguriert werden muss, um zu ermöglichen, HTTPSVerbindungen annehmen zu können. Voraussetzung dafür ist ein schon generiertes und gültiges Serverzertifikat mit dazugehörigem privaten Schlüssel. Sind Zertifikat und Schlüssel verfügbar, müssen diese unter /etc/apache2/ in 6 Dieser Teil wurde für den Prototypen verwendet; siehe auch Abschnitt 4.3 ”Planung einer Zertifizierungsstelle” im Kapitel 4 ”Praktische Umsetzung”. 191 A.2. Anpassung Apache Anhang A. Technischer Anhang das Verzeichnis ssl.crt/ (für das Zertifikat) und in das Verzeichnis ssl.key/ (für den privaten Schlüssel) eingespielt werden. Ist dies geschehen, muss in der Datei /etc/apache2/listen.conf der Port 443 aktiviert werden. Jetzt kann Apache auch auf dem HTTPS-Port lauschen. Doch ist noch kein entsprechender Host eingerichtet, der die SSL-Verbindungen annimmt. Dazu muss Folgendes in die httpd.conf eingetragen werden7 . < VirtualHost _default_ :443 > DocumentRoot / srv / www / htdocs / SSLEngine On SSLOptions + StdEnvVars + ExportCertData SSLCertificateFile / etc / apache2 / ssl . crt / server . crt SS LCert ific ateK eyFi le / etc / apache2 / ssl . key / server . key </ VirtualHost > Listing A.1: Exemplarischer Ausschnitt der https.conf Nach einem Neustart des Apache sollte dieser auf dem HTTPS-Port Verbindungen annehmen und SSL-Sessions auf Basis der Zertifikate und des privaten Schlüssels etablieren können. Hinweis: Nicht vergessen, das Wurzelzertifikat der Zertifizierungsstelle, die das Zertifikat des Apache abgestempelt hat, in den Browser zu importieren. Es können sonst Fehlermeldungen aufgrund der Prüfung des Zertifikates auftreten. Anmerkung zu SSL: Apache muss in der ssl-global.conf durch hinzufügen der Option ”SSLOptions +StdEnvVars” angepasst werden. Wenn dies nicht geschieht werden die Umgebungsvariablen für SSL nicht exportiert. Dies hat zur Folge das beim Aufrufen der Webinterfaces die Fehlermeldung ”General Error. 6251043 Error Aborting connection - you are using a too short symmetric keylength ()” zurückgegeben wird, da Perl die SSL Umgebungsvariablen nicht finden kann. 7 Hinweis: man kann auch eine eigene Datei für die VHosts verwenden und in die httpd.conf aufnehmen. Das ist reine Geschmackssache. 192 Anhang A. Technischer Anhang A.3. Wichtige Konfigurationsdateien A.3. Wichtige Konfigurationsdateien Zur Konfiguration soll an dieser Stelle ein Überblick über die wichtigsten Konfigurationsdateien unter OpenCA gegeben werden: /OPENCADIR/etc/ 1. config.xml -> Basis-Konfigurationsdatei für die Erstinitialisierung mit dem Script configure_etc.sh 2. ldap.xml -> Basis-Konfigurationsdatei für LDAP-spezifische Einstellungen von OpenCA 3. menu.xml -> Basis-Konfigurationsdatei für die Menüs der Interfaces. Hier können neue Menüs oder Einträge erzeugt und manipuliert werden. 4. loa.xml -> definiert die möglichen Level of Assurance 5. access_control/ a) *.xml -> Beeinhaltet die Konfigurationsdateien für die Zugangskontrolle der installierten Interfaces 6. bp/ a) states.txt -> alle bekannten Zustände des Batch-Prozessors b) funktions.txt -> alle bekannten Funktionen des Batch-Prozessors c) bp.xml -> interne Konfiguration des Batch-Prozessors d) funktions/ i. funktions_name.txt -> Start-Konfiguration der Zustände, die einen Funktionsstart verursachen 7. database/ a) DBI.conf -> zentrale Konfiguration für die Datenbank der Interfaces 193 A.4. OpenCA Konfiguration Anhang A. Technischer Anhang 8. openssl/ a) openssl.cnf -> Hier werden die Konfigurationen für die CA eingestellt. b) openssl/ i. *.conf -> Hier werden die Eigenschaften der Rollen definiert, die im Antrag angegeben werden können. c) extfiles/ i. *.ext -> Hier werden die Zertifikat-Erweiterungen der Rollen definiert. 9. rbac/ a) acl.xml -> Konfiguration der Access Control List. b) modules.xml -> Hier werden die IDs der Module festgelegt. c) roles.xml -> Hier werden die Rollen definiert. 10. servers/ a) *.conf -> Basis-Konfigurationsdateien für die Interfaces von OpenCA A.4. OpenCA Konfiguration In diesem Abschnitt werden zusätzliche Details zur Konfiguration von OpenCA behandelt. A.4.1. Zusätzliche Attribute bei CSRs Zusätzliche Attribute sind zusätzliche Informationen, die im Antrag mit aufgenommen, aber nicht veröffentlicht werden. Diese Informationen werden also nur im Antrag abgespeichert und sind auch nur dort verfügbar. 194 Anhang A. Technischer Anhang A.4. OpenCA Konfiguration Ist man z.B. ein Webmaster innerhalb einer Universität, ist es eine gute Idee, die E-Mail-Adresse in das Zertifikat zu übernehmen. Weniger günstig ist es aber, die Telefonnummer in einem Zertifikat zu veröffentlichen. Trotzdem sollte die Telefonnummer, auch wenn sie nicht im Zertifikat veröffentlicht werden soll, erhoben und gespeichert werden, um den Nutzer z.B. im Notfall erreichen zu können. Genau aus diesem Grund wurden in OpenCA die zusätzlichen Attribute eingeführt. Listing A.2 soll zur Erklärung dienen. ADDITIONAL_REQUEST_ATTRIBUTES " requestercn " " email " " department " " telephone " " Name ( first and Last name ) " ADDITIONAL_ATTRIBUTES_DISPLAY_VALUE " Email " " Department " " Telephone " A D D I T I O N A L _ R E Q U E S T _ A T T R I B U T E S _ S T R I N G _ T Y P E " LAT IN 1_ LET TE RS " " EMAIL " " LATIN1_LETTERS " " LATIN1 _L ET TER S " Listing A.2: Exemplarischer Ausschnitt für zusätzliche Attribute • Der ADDITIONAL_REQUEST_ATTRIBUTES ist der interne Name des Attributes • Mit ADDITIONAL_ATTRIBUTES_DISPLAY_VALUE hat man die Möglichkeit, den Namen des angezeigten Attributs zu definieren. Dies ist sehr praktisch, um Beispiele für die Eingabe vorzugeben. • Mit ADDITIONAL_REQUEST_ATTRIBUTES_STRING_TYPE kann man der Software bei der Fehlererkennung für die Eingabe helfen. Folgende Werte sind erlaubt: LETTERS, TEXT, NUMERIC, MIXED, DATE, TEL, EMAIL, LATIN1_LETTERS, LATIN1. A.4.2. Channel verification Die channel verification überprüft die Parameter für eingehende Übertragungen. Die Werte in der Konfiguration sind reguläre Ausdrücke, die den Wert der Umgebungsvariablen definieren der getestet werden sollen. Zur Zeit wird nur mod_ssl unterstützt. Wenn man eine verschlüsselte Verbindung nutzen 195 A.4. OpenCA Konfiguration Anhang A. Technischer Anhang möchte, muss deshalb das SSL-Protokoll genutzt werden. Benötigt man eine unverschlüsselte Verbindung zur CA oder RA muss das HTTP-Protokoll verwendet und für mod_ssl der Wert ”.*” angegeben werden. Dies bewirkt, dass alle eingehenden Verbindungs-Protokolle angenommen werden. Wichtig: Es sollte bei einer unverschlüsselten Verbindung darauf geachtet werden, dass die Schlüssellänge auf Null gestellt wird. Wird das nicht getan, werden alle unverschlüsselten Verbindungen abgewiesen. Abschließend, in Listing A.3, ein Beispiel für eine Channel-Konfiguration: < channel > < type > mod_ssl </ type > < protocol > ssl </ protocol > < source >192.168.0.1 </ source > < asymmetric_cipher >.* </ asymmetric_cipher > < asymmetric_keylength >0 </ asymmetric_keylength > < symmetric_cipher >.* </ symmetric_cipher > < symmetric_keylength >128 </ symmetric_keylength > </ channel > Listing A.3: Exemplarischer Ausschnitt aus der Channel-Konfiguration A.4.3. Login Es sind drei verschiedene Methoden für den Login Verfügbar: 1. none 2. passwd 3. x509 Dabei soll an dieser Stelle nur der Login auf Basis von passwd erläutert werden, da dieser für die Anwendung am Prototypen verwendet wurde und auch so eine besonders effektive Möglichkeit der Zugangskontrolle bietet. Für alle weiteren Methoden soll hier auf die OpenCA Dokumentation [URL6] verwiesen werden. 196 Anhang A. Technischer Anhang A.4. OpenCA Konfiguration Die passwd Methode kann genutzt werden, wenn ein Login via Passwortabfrage benutzt werden soll. Dabei unterstützt OpenCA zur Zeit nur die Abfrage der internen Datenbank für die Zugriffskontrollkonfiguration. Es ist möglich, verschiedene User zu definieren. Jeder User hat einen Namen, einen definierten Algorithmus und sein verschlüsseltes Passwort. Dabei spezifiziert der Algorithmus, welche Art verwendet wurde um das Passwort zu verschlüsseln8 . Listing A.4 soll zur Erklärung dienen. < login > < type > passwd </ type > < form > OPENCADIR / lib / servers / ca / sheets / login_passwd . html </ form > < database > internal </ database > < passwd > < user > < name > root </ name > < algorithm > sha1 </ algorithm > < digest >3 Hbp8MAAbo + RngxRXGbbujmC94U </ digest > </ user > < user >... </ user > ... </ passwd > </ login > Listing A.4: Exemplarischer Ausschnitt aus der Login-Konfiguration Die Standard Einstellung in OpenCA ist >passwd<, das im Listing A.4 gezeigte <digest> ist das Standardpasswort, das im Klartext ”root” lautet. Um eigene Digests zu erzeugen stellt OpenCA ein Skript zu Verfügung. Der Name des Skriptes ist openca-digest. Die Anwendung lautet: openca - digest ( help | sha1 | crypt | md5 ) string 8 OpenCA unterstützt drei Algorithmen SHA1, MD5 und crypt. 197 A.4. OpenCA Konfiguration Anhang A. Technischer Anhang A.4.4. ACLs Über ACLs (Access Control List) lassen sich die Zugriffsberechtigungen von Personen oder Gruppen auf einzelnen Elemente und Funktionen von OpenCA genau festlegen. Dies kann z.B. notwendig werden, wenn in der Policy die Aufgaben des CA- oder auch RA-Operators noch einmal in einzelne Bestandteile aufgeteilt und diese wiederum verschiedenen Rollen oder Personen zugeteilt werden. Durch diese Gewaltenteilung kann noch einmal das Sicherheitniveau erhöht werden. Jedoch sollte darauf geachtet werden, dass eine zu starke Aufteilung den administrativen Aufwand enorm schnell in die Höhe steigen lassen kann. Will man nun, aus Gründen der gerade besprochenen Aufgabenteilung, mehr als einem Operator den Zugriff auf ein Interface gestatten, müssen die entsprechenden Zugriffskontrollen unter /OPENCADIR/etc/access_control/ und die dazugehörigen ACLs im Verzeichnis /OPENCADIR/etc/rbac/ angepasst werden, um so klar die einzelnen Operatoren mit ihren zugeteilten Aufgaben unterscheiden zu können. Da dieses Thema in seinem Umfang an dieser Stelle jedoch den Rahmen sprengen würde und auch in der Entwicklung des Prototypen keine weitere Rolle gespielt hat, soll es hier nicht weiter behandelt und für weitere Informationen auf die OpenCA Dokumentation [URL6] verwiesen werden. A.4.5. Datenaustausch Konfiguration In diesem Teil (etwas unterhalb der ”dataexchange section”) befinden sich Möglichkeiten zur Einstellung der Art und Weise des Exportes/ Importes in/aus Archiven9 . Jeder Eintrag repräsentiert ein Verzeichnis innerhalb des Archives, in das Daten eingespielt (bei einem Export) oder aus dem Daten entnommen (bei einem Import) werden. Anmerkung: Diese Sektion kann auch über das config.xml konfiguriert wer9 Was wird wie wohin exportiert/importiert CA <-> RA. 198 Anhang A. Technischer Anhang A.4. OpenCA Konfiguration den. Mehr dazu siehe im Abschnitt A.1.7 ”Datenaustausch Konfiguration”. Ein Archiv zum Datenaustausch besitzt folgenden grundlegende Verzeichnisstruktur: openca . tar / / CA_ CERT IFIC ATE_ STATE S / CERTIFICATE_STATES / CRL_STATES / CRR_STATES / CSR_STATES / MAIL_STATES / CRR_STATE Listing A.5: Inhalt des Export/Import Archiv openca.tar Was in welches Verzeichnis abgelegt (beim Export) und was aus welchen Verzeichnis entnommen (beim Import) wird, wird in der node.conf unterhalb der ”dataexchange section” festgelegt. Hier in Listing A.6 ein Beispiel für die Konfiguration einer Offline-CA die mit einer Online-RA ihre Daten abgleicht. # Export Teil zu RA ENROLL_CA_CERTIFICATE_STATES VALID E N R O L L _ C E R T I F I C A T E_ S T A T E S VALID ENROLL_CRL_STATES VALID ENROLL_CRR_STATES ARCHIVED DELETED APPROVED ENROLL_CSR_STATES ARCHIVED DELETED ENROLL_MAIL_STATES DEFAULT # Import Teil zu CA RECEIVE_CSR_STATES APPROVED RECEIVE_CRR_STATES APPROVED Listing A.6: Exemplarischer Ausschnitt für Export/Import • ENROLL_* Export der aktuelle CA Zertifikate (CA_CERTIFICATE_STATES), User Zertifikate (CERTIFICATE_STATES), CRLs (CRL_STATES), CRRs (CRR_STATES), CSRs (CSR_STATES) und User E-Mails (MAIL_STATES) zur Auslieferung an eine niedrigere Ebene der Hierarchie. 199 A.5. LDAP Konfiguration Anhang A. Technischer Anhang • RECEIVE_* Herunterladen der aktuellen CSRs (CSR_STATES) und CRRs (CRR_STATES) beim Import von einer niedrigeren Ebene der Hierarchie. A.5. LDAP Konfiguration Dieser Abschnitt soll weitere Details der LDAP Konfiguration unter OpenCA behandeln. A.5.1. OpenCA-Teil Dieser verteilt sich in den verschiedenen /OPENCADIR/etc/server/*.conf Dateien. Dabei können folgende Optionen verwendet werden: • LDAP Ist diese Option auf YES gesetzt, ist der LDAP-Teil von OpenCA aktiviert. • updateLDAPautomatic Diese Option wird im NODE-Interface benutzt. Ist der Wert auf YES gesetzt, updatet der Server automatisch bei Importen von Zertifkaten, CRLs und CRRs. • LDAP_CRL_Issuer Viele Nutzer speichern die CRL in einem speziellen Knoten des LDAPServers, der nicht identisch ist mit dem Aussteller der CRL. Hier kann dafür ein spezieller DN vergeben werden. • LDAP_CA_DN Viele User speichern die CA-Zertifikate in einem nicht standardkonformen Knoten. Das heißt, es gibt z.B. ein schon existierendes Verzeichnis, das im Konflikt mit der PKI Struktur ist. Hier bietet sich die Möglichkeit, 200 Anhang A. Technischer Anhang A.5. LDAP Konfiguration Zertifikate an einem speziellen Knoten abzulegen, der nicht in Konflikt mit der Struktur des LDAP-Server gerät. • SET_CERTIFICATE_SERIAL_IN_DN Hier kann die Vergabe eines eigenen Blattobjektes unterhalb eines Eintrages aktiviert werden. Ist diese Option mit ”Y” aktiviert, wird unterhalb des CN ein Blattobjekt namens serialNumber erzeugt, in dem das Zertifikat abgelegt wird. Diese Methode hat den Vorteil, dass für einen Eintrag mehrere Zertifikate vergeben werden können. Nachteilig ist allerdings, dass bei der Suche über den LDAP-Server mit einem Adressbuch, wenn nur auf einer Ebene gesucht werden kann, nur die Einträge, aber nicht die darunter liegenden serialNumber Objekte geprüft werden. Setzt man die Option auf ”N”, wird das Zertifikat direkt in dem Eintrag abgelegt. • CERTIFICATE_SERIAL_NAME Hier kann der Name des Blattobjektes angegeben werden, in dem das Zertifikat abgelegt werden soll10 . A.5.2. LDAP Teil Der LDAP-Teil befindet sich in der /OPENCADIR/etc/ldap.xml. Die folgenden Optionen findet man unter anderem auch in der /OPENCADIR/etc/config.xml. wieder. Diese hat, wie schon gesagt, nur für das Konfigurationsscript configure_etc.sh eine Bedeutung, nicht aber für den laufenden Betrieb des OPENCA Serves. • host Der Hostname des LDAP-Servers. • port Der Port, an dem der LDAP-Server anfragen entgegen nimmt. 10 Es sollten die Vorgaben verwendet werden, da sonst Probleme mit dem OpenCA-Schema auftreten könnten. 201 A.5. LDAP Konfiguration Anhang A. Technischer Anhang • suffix/dn Dies ist die Angabe der Wurzel-DN des LDAP-Serves. Weiter können hier mehrere Wurzeln (soweit unterstützt) angegeben werden. Dabei muss jede DN in einem eigenen DN-Tag abgelegt werden. Listing A.7 soll als Beispiel dienen. < suffix > <dn > o = OpenCA , c = IT < dn > <dn > o = OpenCA , c = DE < dn > < suffix > Listing A.7: Exemplarischer Ausschnitt die Konfiguration des Wurzel-DN • login Die Bind-DN des Nutzers, der auf den LDAP-Server zugreifen soll. • passwd Angabe der Passwortes für den oben angegebenen LDAP-Account. • protocol_version Gibt an welche Version des LDAP-Protokolls verwendet werden soll. Standard ist V2, für den Prototypen wurde V3 verwendet.11 • tls Aktivieren oder Deaktivieren der Verschlüsselung mit TLS12 . • sasl Aktivieren oder Deaktivieren der sasl-Authentifizierung13 . Weiter wird CRAM-MD5 für das Passworthashing eingesetzt. 11 Wenn V3 vom LDAP-Server unterstützt wird, sollte es verwendet werden, um unnötigen 12 Ärger zu vermeiden. Für diese Option wird LDAP-Protokoll V3 vorausgesetzt. Für diese Option wird LDAP-Protokoll V3 vorausgesetzt. 13 202 Anhang A. Technischer Anhang A.6. Batchimport • excluded_roles/role OpenCA verfügt über die Möglichkeit, Rollen für die Veröffentlichung von Zertifikaten auszuschließen. Listing A.8 soll als Beispiel dienen. < excluded \ _roles > < role > Internal Security Stuff < role > < role > IDS VPN < role > < excluded \ _roles > Listing A.8: Welche Zertifikate dürfen nicht veröffentlicht werden A.6. Batchimport Im Folgenden sollen die Formate der Importdateien beim Standard Import mit Hilfe entsprechender Beispiele erläutert werden14 : A.6.1. Batch-System Import New User Format file ::= ( serial . " \ n " ) * serial ::= this is a user name or ID Listing A.9: Exemplarischer Ausschnitt für das ”Import New User Format” Beispiel für batch_new_user.txt in Listing A.10. hwink001 hwink002 Listing A.10: Beispiel für ”Import New User” 14 Quelle der Formate [CB05] Kapitel 16. 203 A.6. Batchimport Anhang A. Technischer Anhang A.6.2. Batch-System Import New Process Format file ::= ( serial . " \ n " . process . " \ n " . " \ n " + ) * serial ::= this is a user name or ID process ::= this is a process name Listing A.11: Exemplarischer Ausschnitt für ”Import New Process Format” Beispiel für batch_new_process.txt in Listing A.12. hwink001 neues_zertifikat hwink002 neues_zertifikat2 Listing A.12: Beispiel für ”Import New Process” A.6.3. Batch-System Import New Process Format file ::= ( ( id . param * . " \ n " ) * id ::= " USER " . serial . " \ n " . " PROCESS " . process . " \ n " serial ::= this is a user name or ID process ::= this is a process name param ::= ( common | loa_mode | key_algorithm | key_length | state | subject_alt_name ) . " \ n " common ::= name . " " . value . " \ n " name ::= " SUBJECT " | " ROLE " | " LOA " | __user_defined__ value ::= oneline | multiline oneline ::= [^\ n ]+ multiline ::= " \n - - - - - BEGIN " . limiter . " - - - - -\ n " . content . " \n - - - - - END " . limiter . " ----- " ; limiter ::= [A - Za - z0 -9 _ -\.]+ key_length ::= " KEY_LENGTH " . " " . _ _ u n s i g n e d _ i n t e g e r _ _ loa_mode ::= " LOA_MODE " . " " . ( " IGNORE " | " NORMAL " ) key_algorithm ::= " KEY_ALGORITHM " . " " . ( " rsa " | " dsa " ) state ::= ( " SET_STATE " | " UNSET_STATE " ) . " " . _ _ ex i s t in g _ b a t c h _ s t a t e _ _ 204 Anhang A. Technischer Anhang A.6. Batchimport subject_alt_name ::= " S UB J EC T _ A L T _ N A M E _ " . san_number . " " . san_name . ( " = " | " : " ) . san_value san_number ::= integer / position in the subject alternative name san_name ::= " DNS " | " IP " | " EMAIL " | " OTHERNAME " san_value ::= value of the alternative name component Listing A.13: Exemplarischer Ausschnitt für ”Import New Process Format” Achtung: Bei ’__user_defined__ ist kein Leerzeichen in den Namen erlaubt! Beispiel für batch_process_data.txt USER hwink001 PROCESS neues_zertifikat set_state new_process ROLE User SUBJECT_ALT_NAME_1 email : HG . Winkler@Web . de SUBJECT CN = hwink001 , DC = cs , DC = fh - wiesbaden , DC = de LOA_MODE IGNORE Listing A.14: Ausschnitt für den Basis-Antrag • USER Ist die UserID des Benutzers. • PROCESS Hier kann irgendein Name angegeben werden. Über diesen kann man dann später die verschiedenen Prozesse eines Users unterscheiden. • set_state new_process Hier wird angegeben, bei welchem Status begonnen werden soll. • SUBJECT_ALT_NAME_* Angabe der E-Mail-Adresse und anderer alternativer Namensgebungen. Es werden email, DNS, IP, DirName, URL, RID, otherName, Microsoft_GUID und Microsoft_UPN erlaubt. Mehr dazu siehe batch.conf unter CSR_SUPPORTED_SUBJECT_ALT_NAMES . 205 A.7. Batch Workflow Anhang A. Technischer Anhang • SUBJECT Angabe des DN ist gleichbedeutend mit dem Pfad innerhalb des LDAP. A.7. Batch Workflow Die Statusmaschine des Batch-Prozessors durchläuft bei der Abarbeitung eines Userprozesses vom Start bis zum PKCS#12-Rollout 14 Stufen, welche an dieser Stelle in Abblidung A.1 aufgezeigt werden sollen. Wird der Batch-Prozess gestartet, beginnt dieser immer im Zustand new_process. Als Erstes wird für die Abarbeitung von OpenCA ein PIN erzeugt. Dieser ist später das Passwort, mit dem der private Schlüssel und die PKCS#12-Datei vor fremdem Zugriff geschützt werden15 . Ist dieser Prozess abgeschlossen, kommt es zur Erzeugung des Schlüsselpaares. Dieser Vorgang wird abgelöst durch die Erzeugung des dazugehörigen CSR, welcher wiederum nach entsprechender automatischer Überprüfung mit dem privaten Schlüssel der CA abgezeichnet wird. Ist bis dahin alles gut gegangen, kann der Batch-Prozess mit der Erzeugung der PKCS#12Container und der Ablage der neuen Zertifikate in der Datenbank der CA abgeschlossen werden. A.7.1. Anpassen des Batch-Prozessors Im alltäglichen Betrieb ist der normale Workflow des Batch-Prozessors völlig ausreichend. Doch kann es sein, dass spezielle Anforderungen es nötig machen, diesen anzupassen, um ihn z.B. um zusätzliche Stufen zu erweitern. Im Folgenden sollen zur näheren Erklärung der Änderung des Workflow als Erstes die relevanten Konfigurationsdateien angegeben werden. Alle bekannten Zustände sind unter /OPENCADIR/etc/bp/states.txt und alle bekannten Funktionen unter /OPENCADIR/etc/bp/functions.txt abgelegt. Die Start-Konfiguration der Zustände, die einen Funktionsstart verursachen, 15 Siehe auch Abschnitt 4.8.1 ”Probleme mit der PIN”. 206 Anhang A. Technischer Anhang A.7. Batch Workflow new_process checked_csr_p. create_pin create_csr new_pin new_csr check_pin complete_csr checked_pin complete_csr check_csr check_key_params checked_pin_p. checked_csr create_key create_cert new_key new_cert check_key enroll_pin checked_key enrolled_pin backup_key enroll_pkcs12 enrolled_pkcs12 backuped_key check_csr_params /OPENCADIR//var/bp/dataexchange/pkcs12/ Abbildung A.1.: Standard Workflow des Batch-Prozessors von OpenCA befinden sich unter /OPENCADIR/etc/bp/functions/. Die darin enthaltenen Dateinamen orientieren sich an der Namensgebung der Funktion z.B. function_name.txt. Dabei beinhaltet jede Zeile einen Status, der benötigt wird, um die Funktion zu starten. 207 A.7. Batch Workflow Anhang A. Technischer Anhang Anmerkung: Jeder Prozess eines Users besitzt eine Konfigurationsdatei namens state.txt16 , die den aktuellen Status des User Workflows beinhaltet. Sie hat dasselbe Format wie die Konfigurationsdatei für die Funktionen. Um nun einen Workflow zu ändern oder komplett neu zu erstellen, sollten folgende Schritte unternommen werden17 . 1. Aufzeichnen des Zustandsgraphen. 2. Markieren der Änderungen im Graphen. 3. Erzeugen einer eigenen /OPENCADIR/etc/bp/states.txt, welche alle möglichen Zustände enthält. 4. Erzeugen einer eigenen /OPENCADIR/etc/bp/functions.txt, welche alle möglichen Batch-Funktionen enthält. 5. Erzeugen der Start-Konfigurationen der Zustände aller Batch-Funktionen in /OPENCADIR/etc/bp/functions/. 6. Überprüfen der in der Start-Konfiguration spezifizierten /OPENCADIR/etc /bp/functions/ auf Konfliktfreiheit. 7. Implementieren der neuen Funktionen und Auswechseln der alten. 8. Test des neuen Systems. Das größte Problem bei dem Implementieren einer neuen Funktion ist, die Auswirkung der neuen Funktion bei ihrer Ausführung in entsprechender Situation zu überblicken. Macht man irgend etwas falsch, wird die Funktion normalerweise für alle User unbrauchbar. Die Schritte zur Erzeugung einer neuen Funktion sind folgende: 1. Füge die neue Funktion in die Liste unter /OPENCADIR/etc/bp/functions. txt ein. 16 17 Diese befindet sich unter /OPENCADIR/var/bp/users/userpfad/. Entnommen aus [CB05]. 208 Anhang A. Technischer Anhang A.7. Batch Workflow 2. Erzeuge eine neue Datei namens /OPENCADIR/etc/bp/functions/funct ion_name.txt und spezifiziere die Start-Konfigurationen des Zustandes. 3. Erzeuge eine neue Datei namens /OPENCADIR/lib/bp/function_name .sub und kopiere den Inhalt einer schon existenten anderen Funktion hinein. 4. Ändere den Funktionsnamen in der Datei function_name.sub zu dem eigenen workflow_function_name. 5. Ändere die Funktion entsprechend den eigenen Vorstellungen ab. Jede Funktion besitzt zwei Parameter USER und WORKFLOW, diese können dazu genutzt werden, um Daten in das Batch-System zu integrieren. 6. Als letztes sollte die aktuelle Status-Konfiguration in den User-Prozessen und die eigene /OPENCADIR/etc/bp/states.txt um den neuen Zustand erweitert und angepasst werden. 209 210 B. Organisatorischer Anhang Dieser Anhang soll Hilfestellung zur Inbetriebnahme des Prototypen und dem Umgang mit diesem geben. B.1. Inhalt der DVD Auf der DVD befinden sich drei Verzeichnisse. Das erste Verzeichnis /doc beinhaltet zwei Unterverzeichnisse, den Latex-Source der Diplomarbeit unter /diplomarbeit und das Material der bei den Recherchen für diese Arbeit zusammengetragenen und verwendeten Quellen unter recherche/. Das zweite Verzeichnis auf der DVD namens /source, beinhaltet den Source der verwendeten OpenCA-Version. Abschließend im dritten Verzeichnis /vm sind die gepackten Images der virtuellen Maschinen des Prototypen sowie der Installationssatz von VMWare abgelegt. B.2. Inbetriebnahme des Prototypen Voraussetzung für die Inbetriebnahme der virtuellen Maschinen ist ein schon installiertes VMWare 4.5 (oder höher). Weiter müssen die Archive auf der DVD unter /vm entpackt und an geeigneter Stelle im Dateisystem abgelegt worden sein. Nach dem Start von VMWare müssen nun als erstes die VMs in das Programm importiert werden. Dies geschieht über File -> Open Virtual Machine. Daraufhin öffnet sich ein Fenster, in dem man die fragliche VM im Dateisystem suchen und anwählen kann. Nachdem die Prozedur für alle drei 211 B.2. Inbetriebnahme des Prototypen Anhang B. Organisatorischer Anhang VMs durchgeführt wurde, soll nun am Beispiel der Online-RA das weitere Vorgehen erläutert werden. 1. Starten der VM. Dabei kommt es zur Meldung, dass der VM eine neue ID zugeordnet wird. Diese ID ist gleichbedeutend mit der Vergabe einer neuen Mac-Adresse, sodass in jedem Fall die virtuelle Netzkarte neu konfiguriert werden muss. 2. Einloggen als Root (Passwort = ”turrican”) 3. Starten von yast 4. Unter Netzwerkgeräte -> Netzwerkarte muss die konfigurierte Netzwerkkarte gelöscht werden. Nach diesem Vorgang die Änderungen speichern. 5. Wieder unter Netzwerkgeräte -> Netzwerkarte die nun nicht konfigurierte Netzkarte neu einrichten und die gemachten Änderungen abspeichern. 6. Anschließend OpenCA mit openca-start hochfahren (in der .bashrc stehen weitere Alias die eingerichtet wurden). Jetzt ist es möglich, auf die Dienste der Online-RA unter der konfigurierten Netzwerkadresse zuzugreifen. Dieser Vorgang muss für die anderen beiden VMs ”Offline-CA” und ”Extern” auch durchgeführt werden um die volle Funktionalität des Prototypen zu erreichen.1 Anmerkung: Der Prototyp wird im Leer-Zustand ausgeliefert d.h. die Initialisierung der Online-RA und Offline-CA muss noch vor der aktiven Nutzung durchgeführt werden2 . 1 Die VM des EXTERN-Host benötigt bei einer Erst-Inbetriebnahme die Konfiguration der Netzwerkschnittstelle und bei geänderter IP die Prüfung der DNS Konfiguration unter /etc/named.conf und /var/lib/named/treehouse.zone sowie den Neustart des DNS 2 Servers. Siehe dazu 4 Abschnitt 4.10.1 ”Erstinitialisierung der CA” und 4.10.2 ”Erstinitialisierung der RA”. 212 Anhang B. Organisatorischer Anhang B.2. Inbetriebnahme des Prototypen B.2.1. Verzeichnisstruktur In diesem Abschnitt sollen die Verzeichnisse auf der Online-RA wie der OfflineCA nach ihren Funktionen kurz genannt und erläutert werden. • backup/ Beinhaltet die beim Export erzeugten Archive sowie die beim BatchImport erstellten Konfigurationsdateien mit ihren Archiven (dies gilt nur für die Offline-CA). • batch/ In diesem Verzeichnis, das nur auf der Offline-CA existiert, werden die für dem Batch-Import generierten Archive erstellt. Weiter werden die durch das pkcs2user.sh Skript erzeugten PKCS#12-Container hier in entsprechenden Verzeichnissen hinterlegt, um sie anschließend an die Nutzer auszuliefern. • datenaustausch Hier wird das Import- bzw. Export-Archiv hinterlegt. • etc/ In diesem Verzeichnis werden alle zentralen Konfigurationsdateien gehalten. Mehr dazu siehe im technischen Anhang Abschnitt A.3 ”Wichtige Konfigurationsdateien”. • lib/ Hier werden alle zentralen Funktionen und Kommandos gehalten, die die Funktionalität von OpenCA ausmachen. • modules/ Hier werden alle verwendeten Perl-Bibliotheken und Erweiterungen hinterlegt. • sh-tools/ Hier befinden sich die für den Betrieb des Prototypen entwickelten Shell- 213 B.3. Benutzeranleitung OpenCA Anhang B. Organisatorischer Anhang Skripte. Mehr dazu siehe im Kapitel 4 ”Praktische Umsetzung” Abschnitt 4.9 ”Shell Skripte”. • var/ Hier werden alle Daten von OpenCA gehalten. Besonders interessant ist bp/ für die Daten der Batch und crypto/, welches die zentralen Daten wie Privat Key (Offline-CA) und Zertifikate oder CRLs (Online-RA), enthält. B.2.2. Vergebene Passwörter In diesem Kapitel sollen noch einmal zusammenfassend alle Passwörter aufgelistet werden, die auf dem Prototypen vergeben wurden3 : • Windows Login für den Nutzer ”HGW” am Labor-Rechner: ”turrican” • Root Login für die Virtuellen Maschinen: ”turrican” • Root Login für die Interfaces: ”root” • Root Login LDAP: ”katakis” • MySQL Nutzer openca: ”katakis” B.3. Benutzeranleitung OpenCA Nachdem die Installation und Konfiguration von OpenCA besprochen sowie auf die Infrastruktur des Prototypen eingegangen wurde, soll dieser Abschnitt sich direkt mit den Benutzer-Interfaces und der Anwendung beschäftigen. Dabei soll es um die Funktionalität gehen, die auf jedem Interface dem Nutzer zur Verfügung gestellt wird4 . 3 4 Die Hier vergebenen Passwörter wurden für die Entwicklung verwendet und gelten nicht gerade als ”sicher”. Ausgegangen wird von einer unveränderten Menüführung. 214 Anhang B. Organisatorischer Anhang B.3. Benutzeranleitung OpenCA B.3.1. PUB Interface Dieser Abschnitt beschreibt das öffentliche Interface einer Zertifizierungsstelle, die durch OpenCA implementiert wurde. Von dieser Stelle wird es dem Nutzer möglich, aktuelle Zertifikatlisten aller durch die Zertifizierungsstelle ausgestellten Zertifikate einzusehen. Weiterhin können CRLs heruntergeladen, die Policy eingesehen, die Wurzelzertifikate bezogen sowie Anträge auf Zertifizierung und Sperrung erstellt und abgeschickt werden. Die Menüführung ist unter allen Interfaces von OpenCA gleich organisiert. Es gibt jeweils eine obere Kategorie worunter verschiedene Punkte zusammengefasst sind. CA Informationen Diese Sektion, Abbildung B.1, beinhaltet alle nötigen Informationen, die der Nutzer von der Zertifizierungsstelle beziehen kann. Abbildung B.1.: PUBLIC-Interface CA Informationen • Policy Hier kann die Policy der Zertifizierungsstelle eingesehen werden. • Laden des CA-Zertifikates Hier kann das Wurzel-Zertifikat der Zertifizierungsstelle in verschiedenen Formaten (CRT, PEM, DER, CER, TXT) bezogen werden. • Zertifikats-Rückruf-Listen Diese Seite stellt die aktuelle CRL (Zertifikats-Rückruf-Liste) zur Verfügung. Es wird der Download der CRLs im DER-, PEM- und TXT-Format unterstützt. 215 B.3. Benutzeranleitung OpenCA Anhang B. Organisatorischer Anhang Nutzer Diese Sektion, dargestellt in Abbildung B.2, erlaubt es dem Nutzer seine Zertifikate zu verwalten. Abbildung B.2.: PUBLIC-Interface Nutzer • Beantragen eines Zertifikates Dieser Punkt ist mit einer Seite verknüpft, die eine Menge verschiedener Möglichkeiten der Antragserstellung bereitstellt5 . Je nach Verwendungszweck der Zertifizierungsstelle können hier folgende Punkte erscheinen: – Beantragen eines Zertifikates mit automatischer Browsererkennung Im Normalfall versucht OpenCA die Generierung des CSR sowie die Erzeugung der Schlüssel dem Client zu überlassen, um so ein Maximum an Sicherheit zu erreichen. In diesem Punkt prüft OpenCA selbst, welcher Browser verwendet wird und wählt den Ort der Erzeugung selbst aus. – Allgemeiner Zertifizierungsantrag Hier wird eine Server-seitige Schlüsselgenerierung benutzt (wenn der verwendete Browser nicht unterstützt wird) – Antrag für einen Hardwaretoken Hier wird das Schlüsselpaar auch auf dem Server generiert. Dieser Menüpunkt kommt zum Einsatz, wenn die Zertifizierungsstelle die Verwendung von Hardware-Tokens unterstützt. – Netscape-Zertifizierungsantrag Dieser Punkt nutzt die im Netscape-(Mozilla-/Firefox-) Browser 5 Für nähere Informationen siehe auch Abschnitt 4.9.4 ”CSR Handhabung” und 4.10.4 ”Reguläre Zertifikatbeantragung”. 216 Anhang B. Organisatorischer Anhang B.3. Benutzeranleitung OpenCA verfügbaren Krypto-Funktionen für die Client-seitige Generierung der Schlüssel und des Antrages. – Zertifizierungsantrag für Internet Explorer Dieser Punkt nutzt die im Internet Explorer verfügbaren KryptoFunktionen für die Client-seitige Generierung der Schlüssel und des Antrages. – Zertifizierungsantrag für Server Hier kann ein Server zertifiziert werden. Dazu muss vom Administrator des fraglichen Servers ein eigener Zertifikatsantrag und die dazugehörigen Schlüssel selbst generiert werden. Der CSR kann dann an dieser Stelle hochgeladen und an die Zertifizierungsstelle geschickt werden. • Laden des beantragten Zertifikates Hier werden die beantragten Zertifikate vom User empfangen. Wenn eine Client-seitige Schlüsselgenerierung verwendet wurde, ist es nötig, dass der Nutzer denselben Computer und Browser verwendet, den er zur Erstellung des Antrages verwendet hat. Dies ist sehr wichtig, da IE und Netscape die Verlinkung zwischen dem Zertifikat, dem Antrag und dem privaten Schlüssel benötigen. Dies kann aber nur von dem Browser auf dem Rechner gewährleistet werden, auf dem auch das Schlüsselpaar und der Antrag erstellt wurden. Der Nutzer kann dann durch die Eingabe der Seriennummer, die er bei der Erzeugung des Antrages bekommen hat, das Zertifikat herunterladen und dieses zusammen mit dem im Browser schon vorhandenen zugehörigen privaten Schlüssel installieren. • Test Certificate Nach Anwählen dieses Punktes werden dem Nutzer die Daten der aktuelle HTTPS-Session mit dem PUBLIC-Interface angezeigt. Meist werden hier die Daten des Server-Zertifikates angezeigt die der Server im Laufe der Etablierung der HTTPS-Verbindung an den Client geschickt hat. 217 B.3. Benutzeranleitung OpenCA Anhang B. Organisatorischer Anhang Durch den Schalter ”signieren” ist es nun möglich, das Zertifikat zu testen. • Zertifikat zurückrufen Dieser Punkt gibt dem Nutzer die Möglichkeit, das eigene Zertifikat mit Angabe von Gründen sperren zu lassen. Zertifikate Diese Sektion, dargestellt in Abbildung B.3, erlaubt es dem Nutzer, alle auf der Zertifizierungsstelle zugelassenen, gesperrten, abgelaufenen und suspendierten Zertifikate einzusehen und ist in erster Linie ein Interface zur Suche von bestimmten Zertifikaten. Abbildung B.3.: PUBLIC-Interface Zertifikate • Gültig Dieser Punkt gibt Überblick über alle gültigen Zertifikate innerhalb der Zertifizierungsstelle. Folgende Daten werden für jedes Zertifikat in einer generierten Liste angezeigt: – Serial Die Seriennummer des Zertifikates. Der Nutzer kann den Inhalt des Zertifikates durch Anwählen des Links der Seriennummer einsehen. Hier kann auch das Zertifikat heruntergeladen und gesperrt werden. – Name Der Name, auf dem das Zertifikat ausgestellt wurde. – Ausstellungsdatum Der Tag, an dem das Zertifikat signiert wurde. 218 Anhang B. Organisatorischer Anhang B.3. Benutzeranleitung OpenCA – EMail E-Mail-Adresse im Zertifikat. – Rolle Der Typ des Zertifikates. • Abgelaufen Dieser Punkt gibt Überblick über alle abgelaufenen Zertifikate innerhalb der Zertifizierungsstelle. • Suspendiert Dieser Punkt gibt Überblick über alle suspendierten Zertifikate innerhalb der Zertifizierungsstelle. • Zurückgerufen Dieser Punkt gibt Überblick über alle zurückgerufenen Zertifikate innerhalb der Zertifizierungsstelle. • Suche Hier kann speziell nach einem Zertifikat anhand des Namens, der E-MailAdresse oder des DN gesucht werden6 . Anträge Die Sektion, dargestellt in Abbildung B.4, zeigt alle noch nicht bearbeiteten Anträge an. Abbildung B.4.: PUBLIC-Interface Anträge • Zertifizierungsanträge Hier kann man sich eine Übersicht über alle Anträge verschaffen, die in der Warteschlange der RA stehen. 6 Eine Angabe von Wildcards *name* ist erlaubt. 219 B.3. Benutzeranleitung OpenCA Anhang B. Organisatorischer Anhang • Zertifikatsrückrufe Hier kann man sich eine Übersicht über alle Zertifikatsrückrufe verschaffen, die in der Warteschlange der RA stehen. B.3.2. RA-Interface Dieser Abschnitt beschreibt das RA-Interface einer OpenCA-PKI. Von diesem kann der RA-Operator Zertifikatsanträge verwalten, Zertifikatinformationen einsehen und den RA-Server verwalten. Allgemein Abbildung B.5.: RA-Interface Allgemein • Server-Verwaltung Über diesen Punkt kommt man auf das NODE-Interface der RA • LDAP Administration Über diesen Punkt kann man direkt in das LDAP-Interface der RA wechseln. Aktive CSR Hier (siehe Abbildung B.6) können die an die RA gestellten und in Bearbeitung befindlichen Zertifikatsanträge eingesehen und verwaltet werden. Ist der RA-Operator sicher, dass alle Informationen im Antrag korrekt sind, kann er den Antrag akzeptieren. Dies kann mit oder ohne eine digitale Unterschrift geschehen. Ist der CSR fehlerhaft, kann er an dieser Stelle auch gelöscht werden. 220 Anhang B. Organisatorischer Anhang B.3. Benutzeranleitung OpenCA Abbildung B.6.: RA-Interface aktive CSRs Aktive CRRs Hier (siehe Abbildung B.7) können die an die RA gestellten und in Bearbeitung befindlichen Widerrufungsanträge eingesehen und verwaltet werden. Abbildung B.7.: RA-Interface aktive CRRs Information In dieser Sektion, dargestellt in Abbildung B.8, ist es dem RA-Operator möglich alle Zertifikate und Anträge in all ihren Stadien einzusehen und zu überwachen. Abbildung B.8.: RA-Interface Informationen Hilfsmittel In dieser Sektion, dargestellt in Abbildung B.9, stehen dem RA-Operator ein paar kleinere Werkzeuge zum Suchen in den Anträgen und Zertifikaten zur Verfügung. 221 B.3. Benutzeranleitung OpenCA Anhang B. Organisatorischer Anhang Abbildung B.9.: RA-Interface Hilfsmittel Veränderbare Felder im CSR Nach dem Einreichen des Antrages an eine RA muss dieser durch eine zuständige Person (der RA-Operator) geprüft werden. Diese Person hat die Möglichkeit, den Antrag nachträglich teilweise anzupassen. Folgende Felder können geändert werden. • Subject alternative name Diese Feld kann zusätzliche Informationen für Programme enthalten, die das Zertifikat, nicht aber den privaten Schlüssel nutzen. Dies können z.B. E-Mail-Adressen, DNS-Namen, IP-Addressen und mehr sein. E-MailAdressen sind wichtig wenn man das Zertifikat für E-Mail-Verschlüsselung nutzen will. Der Grund dafür ist, dass viele E-Mail-Clients S/MIME v2 unterstützen, dass wiederum E-Mail-Adressen im Zertifikat voraussetzt. DNS-Namen and IP-Addressen sind sehr nützlich, benutzt man das Zertifikat für SSL-Server oder VPNs. • Subject or distinguished name Dies ist der Distinguished Name des Zertifikates. Dabei ist zu beachten, dass der DN von rechts nach links gelesen wird (siehe auch LDAP und DNs). • Role Dies ist die angefragte Rolle. Der RA-Operator muss diese prüfen und gegebenenfalls auf die richtige anpassen. • Additional data Diese Informationen werden nur für interne Zwecke verwendet und sind 222 Anhang B. Organisatorischer Anhang B.3. Benutzeranleitung OpenCA nicht Teil des Zertifikates. Diese Felder werden normalerweise für das Abspeichern von Telefonnummern, Adressen oder IDs verwendet. B.3.3. CA-Interface Das CA-Interface ist die zentrale Schaltstelle einer Zertifizierungsstelle zum Zertifizieren und Verwalten von Anträgen sowie das Erstellen und Verwalten von CRLs. Befindet sich der CA-Operator auf dem CA-Interface, kann dieser unter der CSR Sektion neue Anträge einsehen und diese entweder unterzeichnen oder löschen. Soll ein Antrag unterzeichnet werden, wird als Erstes nach dem Passwort des privaten Schlüssels der CA gefragt. Nach erfolgreicher Eingabe wird der Antrag unterzeichnet und das neue Zertifikat in der CADatenbank abgelegt. Besitzen CA und RA nicht dieselbe Datenbank, muss anschließend ein Export an die RA stattfinden, um das neu signierte Zertifikat im PUBLIC-Interface und auf dem LDAP-Server zu veröffentlichen. Allgemein Abbildung B.10.: CA-Interface Allgemein • Initialisierung Grundinitialisierung der CA siehe Abschnitt 4.10.1 ”Erstinitialisierung der CA” • Konfiguration In diesem Punkt können zentrale Einstellungen für die CA getätigt werden. Folgendes steht zur Verfügung: 223 B.3. Benutzeranleitung OpenCA Anhang B. Organisatorischer Anhang – Roles Alle verfügbaren Rollen innerhalb der CA können hier verwaltet und auch weitere hinzugefügt werden. – Rights Alle verfügbaren Rechte innerhalb der CA können hier verwaltet und auch weitere hinzugefügt werden. – Modules Alle verfügbaren Module mir ihren IDs können hier eingesehen werden. – Sign the configuration Hier kann die Konfiguration signiert werden. • Knotenverwaltung Hier kann man in das NODE-Interface der CA wechseln. Normale Operationen Hier (siehe Abbildung B.11) können die an die CA übertragenen und in Bearbeitung befindlichen Zertifizierungsanträge und Widerrufungsanträge eingesehen und verwaltet werden. Folgende Punkte stehen dem CA-Operator zur Verfügung: Abbildung B.11.: CA-Interface Normale Operationen • Genehmigte Zertifizierungsanträge Hier können die durch die RA genehmigten CSRs eingesehen und signiert werden. 224 Anhang B. Organisatorischer Anhang B.3. Benutzeranleitung OpenCA • Genehmigte Rückrufe Hier können die durch die RA genehmigten CRRs eingesehen und signiert werden. • Erstellen einer neuen CRL Hier kann eine neue CRL generiert werden. • Issue certificates (automaticly) Dieser Punkt ist eine zusätzliche Nutzung des Batch-Prozessors. Darüber können alle in der Warteschlange der CA befindlichen CSRs automatisch abgearbeitet werden. • Revoke certificates (automaticly) Dieser Punkt ist ähnlich dem obigen, mit dem Unterschied, dass hier alle in der Warteschlange der CA befindlichen CRRs automatisch abgearbeitet werden können. B.3.4. NODE-Interface In einer Umgebung, in der eine Offline-CA realisiert wurde, besitzt die CA wie auch die RA eine eigenständige Datenbank, die völlig getrennt von einander existieren. Um den Abgleich der Datenbanken zu ermöglichen (d.h. die Anträge von der RA auf die CA und die Zertifikate von der CA auf die RA zu übertragen), die ja keine Verbindung über das Netzwerk zueinander haben, wurde das NODE-Interface eingeführt. Mit dem NODE-Interface wird es möglich den Datenaustausches zwischen der RA und CA über ein beliebiges Medium (Diskette, USB-Stick, Tokens) zu betreiben. Standardmäßig ist unter OpenCA das Diskettenlaufwerk /dev/fd0 als Export-/Import-Medium konfiguriert. Für eine weitere Konfiguration des Datenaustausch sei an dieser Stelle auf den Abschnitt 4.5.4 ”Datenaustausch” im Kapitel 4 ”Praktische Umsetzung” verwiesen. 225 B.3. Benutzeranleitung OpenCA Anhang B. Organisatorischer Anhang Allgemein In dieser Sektion, dargestellt in Abbildung B.12, kann auf die verschiedenen Interfaces von OpenCA gewechselt werden. Abbildung B.12.: NODE-Interface Allgemein • Zertifizierungsinstanz Hier wird der User auf die zentrale CA-Seite des Servers geleitet. Dieser Link ist aber nur ansprechbar, wenn die CA als eine Online-CA ausgeführt ist. Ist eine Offline-CA vorgesehen, führt dieser Link ins Leere. • Registrierungsinstanz Hier wird der User auf die zentrale RA-Seite des Servers geleitet. • LDAP Administration Hier wird der User auf die Zentrale LDAP-Seite des Servers geleitet. Vorausgesetzt der LDAP-Teil ist ordnungsgemäß konfiguriert, können hier die Zertifikate und CRLs auf einem LDAP-Server veröffentlicht werden. • Öffentlich Hier wird der User auf die zentralen Public-Seiten des Servers geleitet. Administration Hier (siehe Abbildung B.13) ist es möglich, die Export-, Import- und BackupFunktionen die OpenCA zur Verfügung stellt, zu nutzen. Abbildung B.13.: NODE-Interface Administration 226 Anhang B. Organisatorischer Anhang B.3. Benutzeranleitung OpenCA • Anhalten der Services der Crypto Token Anhalten des OpenCA-Servers. • Server Initialisierung An dieser Stelle kann die Datenbank für die RA initialisiert werden (vorausgesetzt es existieren für RA und CA jeweils getrennte Datenbanken) Der Punk ”Importieren der Konfiguration” startet einen Import-Prozess von der CA. Voraussetzung ist dafür ein vorher initiierter Export bei der CA und die richtige Konfiguration des Mediums z.B. Diskette oder USB-Stick. • Datenaustausch Hier ist es möglich, den Datenaustausch mit anderen Ebenen der PKI z.B. einer Offline-CA zu gewährleisten. Folgende Möglichkeiten stehen zur Verfügung: – Exportieren von Daten zu einer niedrigeren Ebene der Hierarchie Export von CA zu RA. Voraussetzung für einen erfolgreichen Export sind Schreibrechte auf dem Exportmedium. – Importieren von Daten von einer niedrigeren Ebene der Hierarchie Import von RA zu CA. Voraussetzung für einen erfolgreichen Import sind ein vorheriger erfolgreicher Export und die Leserechte auf dem Medium, über den der Import geschehen soll. – Download data from a higher level of the hierarchy Import von CA zu RA. Voraussetzung für einen erfolgreichen Import sind ein vorheriger erfolgreicher Export und die Leserechte auf dem Medium, über das der Import geschehen soll. – Exportieren von Daten zu einer höheren Ebene der Hierarchie Export von RA zu CA. Voraussetzung für einen erfolgreichen Export sind Schreibrechte auf dem Exportmedium. 227 B.3. Benutzeranleitung OpenCA Anhang B. Organisatorischer Anhang • Backup und Wiederherstellung der Datenbank Dieser Punkt erlaubt es dem Administrator, die Inhalte der Datenbank zu sichern oder wiederherzustellen. Voraussetzung ist die Konfiguration des Export-/Import-Mediums. Folgende Wiederherstellungsmöglichkeiten stehen zur Verfügung: – Initialisierung der Datenbank Vorbereiten der Tabellen der Datenbank vor dem Import. – Wiederherstellen der Datenbank Kompletter Import der Datenbank mir allen CRLs, CRTs usw. – Wiederherstellen von OpenSSLs Datenbank und der nächsten Seriennummer um die schon verwendeten Seriennummer für die Zertifikate und Anträge auf den aktuellen Stand zu bringen. • Datenbank Hier kann direkt in der Datenbank nach Attributen gesucht werden. Hilfsmittel Abbildung B.14.: NODE-Interface Hilfsmittel • E-Mail an neue Nutzer Hier kann man den neu zertifizierten Nutzern eine Nachricht über die Bereitstellung ihres Zertifikats zusenden. • Senden von CRIN E-Mails Mit diesem Punkt wird den neu zertifizierten Nutzern eine verschlüssel- 228 Anhang B. Organisatorischer Anhang B.3. Benutzeranleitung OpenCA te E-Mail mit dem CRIN-Code zugesandt. Dieser Code wird gefordert, wenn man das eigene Zertifikat widerrufen will7 . • Aufräumen der Sessions Hier können alle temporären Dateien und Sessions gelöscht werden. • Löschen temporärer Dateien (nach einem Import) Hier werden alle bei einem Import erzeugten temporären Dateien gelöscht. B.3.5. LDAP-Interface Das LDAP-Interface ist Teil einer jeden RA und ermöglicht es dem RA-Operator, die Zertifikate und CRLs aus der Datenbank auf einem LDAP-Server abzulegen und zu verwalten. Aktualisierung In dieser Sektion, dargestellt in Abbildung B.15, können die Zertifikate und CRLs auf den LDAP-Server gespielt werden. Abbildung B.15.: LDAP-Interface Aktualisierung • CA-Zertifikate Alle CA-Zertifikate in der Datenbank werden auf dem LDAP-Server abgelegt. • Zertifikate Alle Zertifikate in der Datenbank werden auf dem LDAP-Server abgelegt. • CRL Alle CRLs in der Datenbank werden auf dem LDAP-Server abgelegt. 7 Siehe auch 4.8.2 ”Probleme mit der CRIN” und 4.10.5 ”Sperren von Zertifikaten”. 229 B.3. Benutzeranleitung OpenCA Anhang B. Organisatorischer Anhang CA-Zertifikate In dieser Sektion, dargestellt in Abbildung B.16, ist es möglich, die CA-Zertifikate wie unter dem PUBLIC-Interface einzusehen. Weiter ist es möglich, explizit bestimmte CA-Zertifikate unter Angabe einer eigenen DN auf dem LDAP-Server abzulegen oder zu löschen. Abbildung B.16.: LDAP-Interface CA-Zertifikate User Zertifikate In dieser Sektion, dargestellt in Abbildung B.17, ist es möglich, die Zertifikate wie unter dem PUBLIC-Interface einzusehen. Weiter ist es möglich, explizit bestimmte Zertifikate unter Angabe einer eigenen DN auf dem LDAP-Server abzulegen oder zu löschen. Abbildung B.17.: LDAP-Interface User Zertifikate CRLs In dieser Sektion, Abbildung B.18, können die CRLs eingesehen und auf dem LDAP-Server abgelegt werden. Weiter ist es möglich, explizit die CRLs unter Angabe einer eigenen DN auf dem LDAP-Server abzulegen oder zu löschen. Abbildung B.18.: LDAP-Interface CRLs 230 Anhang B. Organisatorischer Anhang B.3. Benutzeranleitung OpenCA B.3.6. Handhabung der Zertifikate In diesem Abschnitt soll darauf eingegangen werden, was der Nutzer mit den angezeigten Zertifikaten machen kann. Finden eines Zertifikates Es können Zertifikate mit zwei verschiedenen Methoden gesucht werden. Der erste Weg ist das Suchen im PUBLIC-Interface unter Utilities -> Search certificate. Hier kann das Zertifikat durch die Eingabe bestimmter Suchparameter gefunden werden8 . Der zweite Weg ist der etwas ”einfachere”: man geht zu Zertifkate -> Gültig und sucht in den angezeigten Zertifikaten nach dem gesuchten. Für kleinere PKIs ist dieser Weg sicher recht effizient, doch sollte bei größeren PKIs der erste Weg bevorzugt werden. Download eines Zertifikates Direkter Download Es ist möglich, das Zertifikat direkt in den Browser zu laden. Voraussetzung dafür ist die Kenntnis der Seriennummer des Zertifikates. Anmerkung: Man sollte nicht vergessen, dass diese Methode nur funktioniert, wenn das Schlüsselpaar und der Antrag auf dem gleichen Browser generiert wurden und der private Schlüssel im Keystore des Computers oder Browsers abgelegt wurde. Download von der Zertifikatseite Es gibt drei verschiedene Möglichkeiten des Downloads: Der passive Download von Daten, der Download von privaten Schlüsseln und dem Zertifikat und der Download eines fremden Zertifikates, um es im Browser oder E-MailProgramm zu installieren9 . 8 9 Die Eingabeform akzeptiert nur Wildcards wenn über eine SQL Datenbank gesucht wird. Besitzt man schon den privaten Schlüssel und will man das eigene Zertifikat laden, sollte man die Option des direkten Downloads nutzen. 231 B.3. Benutzeranleitung OpenCA Anhang B. Organisatorischer Anhang • Normaler Download Hier ist es möglich, ein Zertifikat in verschiedenen Formaten zu beziehen. • Privater Schlüssel Download Will man ein Zertifikat und den privaten Schlüssel laden, gibt es dazu zwei Möglichkeiten: Ist die Operation des Download erlaubt und ist in der Konfiguration des PUBLIC-Interface die Option REQUIRE_PASSWD_PUBLIC auf NO gesetzt, dann ist es möglich, direkt über den download-Link das Zertifikat und den privaten Schlüssel nach Angabe der PIN zu laden. Bei der zweiten Möglichkeit ist in der Konfiguration die Option REQUIRE_PASSWD_PUBLIC auf YES gesetzt. Daher muss der RA-Operator kontaktiert werden, um das zusätzliche Passwort für den Download anzufordern. In anderen Worten wird dadurch der private Schlüssel mit dem eigenen PIN und einem zusätzlichen, vom RA-Operator definierten, Passwort geschützt. Dieser Schutz sollte dann verwendet werden, wenn man ”Denial Of Service”-Attacken auf den privaten Schlüssel eines Nutzers verhindern möchte. • Zertifikatinstallation Manchmal werden Zertifikate von anderen Nutzern benötigt, um z.B. signierte E-Mails zu überprüfen, die von einem Nutzer gesandt wurden, mit dem man vorher noch nie Kontakt hatte. Normalerweise wird von den meisten E-Mail-Clients das Zertifikat mit in der signierten E-Mail deponiert, so dass ein gesonderter Download über das PUBLIC-Interface nicht nötig ist. Ist das Zertifikat in der E-Mail nicht verfügbar, ist es für den Nutzer möglich, auf dem PUBLIC-Interface von OpenCA nach dem Zertifikat zu suchen und über den Schalter ”Install” das Zertifkat automatisch in der entsprechenden Applikation zu installieren bzw. herunterzuladen. Voraussetzung dafür ist, dass in der Konfiguration pub.conf die Option INSTALL_CERT aktiviert wurde. 232 Anhang B. Organisatorischer Anhang B.4. Erstinitialisierung der CA B.4. Erstinitialisierung der CA Die hier beschriebenen Phasen sind kein Muss. Sie sollten aber genutzt werden, wenn der CA- und RA-Operator ein eigenes Zertifikat an der Zertifizierungsstelle betreiben will. Diese Zertifikate können CA- und RA-Operator z.B. zum Datenaustausch mit anderen Teilnehmern der Zertifizierungsstelle oder zum Signieren von CRRs (RA-Operator) oder CRLs (CA-Operator) verwenden. B.4.1. Erstellen des ersten Administrators 1. Erzeugen eines neuen Antrages Hier werden die Daten für den CA-Operator angegeben und der private Schlüssel nebst CSR erzeugt. Für die Erstellung des CA-Operators wurden im Prototypen exemplarisch folgende Werte vergeben: • E-Mail = [email protected] • Nutzer Name = CA-Operator-Informatik • Name (Vor- und Nachname) = Winkler Hans-Georg • E-Mail = [email protected] • Rolle = RA-Operator • Registrierungsinstanz (RA) = Trustcenter selbst • PIN = Hier sollte ein sicheres Passwort verwendet werden. Erzeugt wird dabei das Zertifikat mit dem Distinguished Name CN=CAOperator-Informatik, OU=User-CA, O=Fachbereich DCSM, DC=cs, DC=fhwiesbaden, dc=de. 2. Bearbeiten des Antrages Hier kann der Antrag nachträglich bearbeitet und anschließend abgeschickt werden. 233 B.4. Erstinitialisierung der CA Anhang B. Organisatorischer Anhang 3. Zertifikat ausstellen Hier wird der abgeschickte Antrag durch die CA nach Abfragen des Passwortes für den privaten Schlüssel der CA signiert. 4. Zertifikat verwalten Hier kann man das Zertifikat einsehen. Der CA-Operator kann nun dieses Zertifikat als PKCS#12-Datei herunterladen und in seine E-Mail- und Browser-Applikationen Importieren. B.4.2. Erstellen des ersten RA-Zertifikates 1. Erzeugen eines neuen Antrages Hier werden die Daten für den RA-Operator angegeben und der private Schlüssel nebst CSR erzeugt. Innerhalb des Prototypen wurden dieselben Werte wie beim CA-Operator verwendet. Die einzigen Unterschiede bestehen darin, dass als Rolle der RA-Operator angegeben und als Nutzername ”RA-Operator-Informatik” vergeben wurde. Erzeugt wird dabei das Zertifikat mit dem Distinguished Name CN=RA-Operator-Informatik, OU=User-CA, O=Fachbereich DCSM, DC=cs, DC=fh-wiesbaden, dc=de. 2. Bearbeiten des Antrages Hier kann der Antrag nachträglich bearbeitet und anschließend abgeschickt werden. 3. Zertifikat ausstellen Hier wird der abgeschickte Antrag durch die CA nach Abfragen des Passwortes für den privaten Schlüssel der CA signiert. 4. Zertifikat verwalten Hier kann man das Zertifikat einsehen. Der RA-Operator kann nun dieses Zertifikat als PKCS#12-Datei herunterladen und in seine E-Mail- und Browser-Applikationen importieren. Dadurch 234 Anhang B. Organisatorischer Anhang B.4. Erstinitialisierung der CA wird es dem Operator möglich, CSRs und CRRs nach der Genehmigung noch mit dem eigenen Zertifikat zu signieren. So wird einer nachträglichen Manipulation auf dem Weg von der RA zur CA vorgebeugt. 235 236 Abbildungsverzeichnis 2.1. Vorgang der symmetrischen Verschlüsselung . . . . . . . . . . . 10 2.2. Vorgang der asymmetrische Verschlüsselung . . . . . . . . . . . 13 2.3. Vorgang der Hybriden Verschlüsselung . . . . . . . . . . . . . . 16 2.4. Vorgang der digitalen Signierung . . . . . . . . . . . . . . . . . 19 2.5. Grundlegender Aufbau einer PKI . . . . . . . . . . . . . . . . . 23 2.6. Erstellung eines Zertifikates . . . . . . . . . . . . . . . . . . . . 28 2.7. Prüfung eines Zertifikates . . . . . . . . . . . . . . . . . . . . . 29 2.8. Signierung einer E-Mail . . . . . . . . . . . . . . . . . . . . . . . 31 3.1. Aufbau der Fachbereich-PKI . . . . . . . . . . . . . . . . . . . . 37 3.2. Aufbau der Fachhochschul-PKI . . . . . . . . . . . . . . . . . . 38 3.3. Automatischen Zertifikaterstellung bei Studenten . . . . . . . . 55 3.4. Reguläre Zertifikaterstellung für Professoren, Mitarbeiter und Studenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.5. Zertifikaterstellung für Datenverarbeitungssysteme . . . . . . . . 58 3.6. Zertifikaterneuerung . . . . . . . . . . . . . . . . . . . . . . . . 65 3.7. Rollenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.1. Interner Aufbau von OpenCA . . . . . . . . . . . . . . . . . . . 87 4.2. Aufbau der Zertifizierungsstelle . . . . . . . . . . . . . . . . . . 90 4.3. Interner Aufbau der Zertifizierungsstelle . . . . . . . . . . . . . 92 4.4. Mögliche Aufteilung bei der Einführung von LOA . . . . . . . . 114 4.5. Übersicht über ein Zertifikat unter Mozilla Thunderbird . . . . . 123 237 4.6. Übersicht über ein Zertifikat unter Mozilla Thunderbird bei Verwendung des DN für die Nutzer-Verwaltung . . . . . . . . . . . 124 4.7. CA-Interface Erstinstallation . . . . . . . . . . . . . . . . . . . . 143 4.8. Datenaustausch . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 4.9. Antrag auf Zertifizierung . . . . . . . . . . . . . . . . . . . . . . 149 4.10. Abgeschlossener Antrag . . . . . . . . . . . . . . . . . . . . . . 150 4.11. Prozess Zertifikat Antrag . . . . . . . . . . . . . . . . . . . . . . 153 4.12. Prozess der automatischen Zertifikaterstellung . . . . . . . . . . 156 4.13. Prozess der Sperrung von Zertifkaten . . . . . . . . . . . . . . . 157 5.1. Mozilla LDAP-Adressbuch . . . . . . . . . . . . . . . . . . . . . 167 5.2. Mozilla Keystore . . . . . . . . . . . . . . . . . . . . . . . . . . 168 5.3. Mozilla Zertifikat Ansicht . . . . . . . . . . . . . . . . . . . . . 169 5.4. KAdressbuch mit LDAP . . . . . . . . . . . . . . . . . . . . . . 171 5.5. Suchen von Zertifikaten unter Kleopatra . . . . . . . . . . . . . 173 5.6. Zertifikate Ansicht unter Kleopatra . . . . . . . . . . . . . . . . 173 A.1. Standard Workflow des Batch-Prozessors von OpenCA . . . . . 207 B.1. PUBLIC-Interface CA Informationen . . . . . . . . . . . . . . . 215 B.2. PUBLIC-Interface Nutzer . . . . . . . . . . . . . . . . . . . . . 216 B.3. PUBLIC-Interface Zertifikate . . . . . . . . . . . . . . . . . . . 218 B.4. PUBLIC-Interface Anträge . . . . . . . . . . . . . . . . . . . . . 219 B.5. RA-Interface Allgemein . . . . . . . . . . . . . . . . . . . . . . . 220 B.6. RA-Interface aktive CSRs . . . . . . . . . . . . . . . . . . . . . 221 B.7. RA-Interface aktive CRRs . . . . . . . . . . . . . . . . . . . . . 221 B.8. RA-Interface Informationen . . . . . . . . . . . . . . . . . . . . 221 B.9. RA-Interface Hilfsmittel . . . . . . . . . . . . . . . . . . . . . . 222 B.10.CA-Interface Allgemein . . . . . . . . . . . . . . . . . . . . . . . 223 B.11.CA-Interface Normale Operationen . . . . . . . . . . . . . . . . 224 B.12.NODE-Interface Allgemein . . . . . . . . . . . . . . . . . . . . . 226 B.13.NODE-Interface Administration . . . . . . . . . . . . . . . . . . 226 238 B.14.NODE-Interface Hilfsmittel . . . . . . . . . . . . . . . . . . . . 228 B.15.LDAP-Interface Aktualisierung . . . . . . . . . . . . . . . . . . 229 B.16.LDAP-Interface CA-Zertifikate . . . . . . . . . . . . . . . . . . 230 B.17.LDAP-Interface User Zertifikate . . . . . . . . . . . . . . . . . . 230 B.18.LDAP-Interface CRLs . . . . . . . . . . . . . . . . . . . . . . . 230 239 240 Tabellenverzeichnis 2.1. Schlüssellängen im Vergleich zur Sicherheit . . . . . . . . . . . . 9 3.1. Sicherheitsrelevante Rollen und ihre Aufgaben . . . . . . . . . . 73 3.2. Sicherheitsrelevante Rollen und ihre Verträglichkeiten . . . . . . 73 4.1. Definition der Rollen innerhalb des Prototypen . . . . . . . . . . 113 241 242 Listings 3.1. DN für Mitarbeiter, Professoren, Studenten und externe Mitarbeiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.2. DN für Datenverarbeitungssysteme . . . . . . . . . . . . . . . . 48 3.3. DN für Mitarbeiter, Professoren und Studenten . . . . . . . . . 49 3.4. DN für Datenverarbeitungssysteme . . . . . . . . . . . . . . . . 49 4.1. Aufruf von ./configure für den Prototypen . . . . . . . . . . . . 99 4.2. Exemplarischer Ausschnitt der pub.conf . . . . . . . . . . . . . 104 4.3. Exemplarischer Ausschnitt der Konfiguration für PKCS#10 . . 107 4.4. Exemplarischer Ausschnitt für Export/Import zu/von einem niedrigeren Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 4.5. Exemplarischer Ausschnitt für den Export-Befehl . . . . . . . . 111 4.6. Exemplarischer Ausschnitt für den Import-Befehl . . . . . . . . 111 4.7. Exemplarischer Ausschnitt für den Aufbau einer ACL . . . . . . 112 4.8. Inhalt des User Account von hwink001 . . . . . . . . . . . . . . 118 4.9. Exemplarischer Ausschnitt für den Basisantrag . . . . . . . . . . 121 4.10. Anpassung des Kommandos viewCert . . . . . . . . . . . . . . . 121 4.11. Anpassung des Kommandos listCerts . . . . . . . . . . . . . . . 122 4.12. Exemplarischer Ausschnitt aus der batch_process_data.txt . . . 127 4.13. Ausschnitt der Batch Import-/Export-Sektion . . . . . . . . . . 128 4.14. Aufbau der crin.db . . . . . . . . . . . . . . . . . . . . . . . . . 134 4.15. Exemplarischer Ausschnitt der Änderungen an dem Kommando getStaticPage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 A.1. Exemplarischer Ausschnitt der https.conf . . . . . . . . . . . . . 192 243 A.2. Exemplarischer Ausschnitt für zusätzliche Attribute . . . . . . . 195 A.3. Exemplarischer Ausschnitt aus der Channel-Konfiguration . . . 196 A.4. Exemplarischer Ausschnitt aus der Login-Konfiguration . . . . . 197 A.5. Inhalt des Export/Import Archiv openca.tar . . . . . . . . . . . 199 A.6. Exemplarischer Ausschnitt für Export/Import . . . . . . . . . . 199 A.7. Exemplarischer Ausschnitt die Konfiguration des Wurzel-DN . . 202 A.8. Welche Zertifikate dürfen nicht veröffentlicht werden . . . . . . . 203 A.9. Exemplarischer Ausschnitt für das ”Import New User Format” . 203 A.10.Beispiel für ”Import New User” . . . . . . . . . . . . . . . . . . 203 A.11.Exemplarischer Ausschnitt für ”Import New Process Format” . 204 A.12.Beispiel für ”Import New Process” . . . . . . . . . . . . . . . . 204 A.13.Exemplarischer Ausschnitt für ”Import New Process Format” . 204 A.14.Ausschnitt für den Basis-Antrag . . . . . . . . . . . . . . . . . . 205 244 Abkürzungsverzeichnis AGOF . . . . . . . . . Die Arbeitsgemeinschaft Online Forschung ist eine verbandsübergreifende Initiative, die sich mit der Erarbeitung von qualitativen Messkriterien für Online-Angebote beschäftigt. CA . . . . . . . . . . . . . Die Zertifizierungsstelle (auch als Certification Authority bezeichnet) ist ein zentraler Knoten innerhalb einer PKI, vergibt eindeutige Identitäten und verwaltet diese für jeden Teilnehmer. CN . . . . . . . . . . . . . Die Bezeichnung Common Name steht für ein Blattobjekt innerhalb eines Verzeichnisbaums und ist Bestandteil des DN. CP . . . . . . . . . . . . . Die Certificate Policy ist ein Dokument das die Arbeitsweise einer PKI beschreibt. Weiter soll sie Dritten dazu dienen die Vertrauenswürdigkeit der durch die CP implementierten PKI zu prüfen. CPS . . . . . . . . . . . . Die Certificate Practice Statement (Erklärung zum Zertifizierungsbetrieb) beschreibt die praktische Umsetzung der Anforderungen die in der CP gestellt werden. CRL . . . . . . . . . . . Die Certificate Revocation List ist eine Liste mit zurückgezogenen, abgelaufenen und für ungültig erklärten Zertifikaten der herausgebenden Zertifizierungsstelle. CRR . . . . . . . . . . . Der Certificate Revocation Request ist ein Antrag auf die Sperrung eines Zertifikates, der vom Inhaber an die ausstellende Zertifizierungsstelle versandt wird. 245 CRT . . . . . . . . . . . Ein Format, in dem ein Zertifikat ausgeliefert werden kann. CSR . . . . . . . . . . . . Der Certificate Signing Request ist ein Antrag auf die Erstellung eines Zertifikates, der von einem Nutzer zur Signierung an eine Zertifizierungsstelle gesendet wird. DCSM . . . . . . . . . Abkürzung für den Fachbereich ”Design, Computer Science, Media”. DER . . . . . . . . . . . Ähnlich dem CRT kann auch in diesem Format ein Zertifikat ausgeliefert werden. DES . . . . . . . . . . . . Ein symmetrischer Verschlüsselungsalgorithmus namens Digital Encryption Standard. DN . . . . . . . . . . . . . Ein Distinguished Name kennzeichnet einen eindeutigen Namen innerhalb eines Verzeichnisdienstes FB-PKI . . . . . . . . Bezeichnung für die Fachbereichs Public Key Infrastruktur. FH-PKI . . . . . . . . Bezeichnung für die Fachhochschulweite Public Key Infrastruktur. GnuPG . . . . . . . . . Gnu Privacy Guard oder GPG ist ein freies KryptographieSystem. Es dient zum Ver- und Entschlüsseln von Daten sowie zum Erzeugen und Prüfen elektronischer Signaturen. GPGSM . . . . . . . . GPGSM ist eine vollständige S/MIME Implementation; sehr ähnlich der OpenPGP Implementation von GnuPG. ITU-T . . . . . . . . . . Ist ein Sektor der Internationalen Fernmeldeunion, der für internationale Empfehlungen und Standardisierungen im Fernmeldewesen zuständig ist. KDE . . . . . . . . . . . Das Kool Desktop Environment ist eine frei verfügbare Arbeitsumgebung für Linux/Unix. LDAP . . . . . . . . . . Ein Netzwerkprotokoll namens Lightweight Directory Access Protocol, das bei Verzeichnisdiensten zum Einsatz kommt. LDIF . . . . . . . . . . . Das Lightweight Directory Interchange Format ist ein auf ASCII basierendes Dateiformat das zur Darstellung von Informationen aus einem LDAP-Verzeichnis, zum Datenaus- 246 tausch und zur Synchronisation der Daten mit Hilfe eines LDAP-Servers verwendet wird. MD5 . . . . . . . . . . . Eine weitverbreitete kryptographische Hash-Funktion namens Message Digest Algorithm 5. OCSP . . . . . . . . . . Das Online Certificate Status Protocol ist ein Internet-Protokoll, das es Clients ermöglicht, den Status von X.509-Zertifikaten abzufragen. OpenPGP . . . . . . OpenPGP ist ein Internet-Standard und im RFC 2440 standardisiert. Das Dokument beschreibt das Datenformat, um Informationen verschlüsselt zu speichern und digitale Signaturen zu erzeugen. PCA . . . . . . . . . . . Die Policy Certification Authority (auch als RootCA bezeichnet) ist die oberste Instanz einer PKI und besitzt ein selbstsignierendes Zertifikat (Root-Zertifikat). PEM . . . . . . . . . . . Abkürzung für Privacy Enhanced Mail und ist eine Serie von Dokumenten unter der RFC, die die sichere Übertragung von E-Mail über das Internet beschreiben. PGP . . . . . . . . . . . Pretty Good Privacy ist ein von Phil Zimmermann entwickeltes Programm zur asymmetrischen Verschlüsselung von Daten. PKA . . . . . . . . . . . PKI-enabled Application ist eine Anwendung, die auf der Grundlage der von der PKI zu Verfügung gestellten Dienste eine vertrauenswürdige Nutzung ermöglicht. PKCS . . . . . . . . . . Steht für Public Key Cryptography Standard und beinhaltet eine Reihe von kryptografischen Spezifikationen die von den RSA-Laboratorien entwickelt wurden. PKCS#10 . . . . . . Steht für Certification Request Standard und bezeichnet das Format des CSR, der an eine Zertifizierungsstelle gesendet wird. 247 PKCS#12 . . . . . . Steht für Personal Information Exchange Syntax Standard und definiert ein Dateiformat, das benutzt wird, um den privaten Schlüssel zusammen mit dem zugehörigen Zertifikat passwortgeschützt in einem Container zu speichern. PKI . . . . . . . . . . . . Eine Public Key Infrastruktur ist ein System, welches es ermöglicht, digitale Zertifikate auszustellen, zu verteilen und zu prüfen. PSE . . . . . . . . . . . . Personal Security Environment ist in der realen Welt mit einem großen Schlüsselbund vergleichbar. In der digitalen Welt ist dies die Ansammlung aller sicherheitsrelevanten Daten eines Teilnehmers der PKI. QT . . . . . . . . . . . . . Das Quasar Toolkit ist eine Programmbibliothek, die das Programmieren von plattformübergreifender Software möglich macht. Wesentliche Teile von KDE basieren auf Qt. RA . . . . . . . . . . . . . Ist die Registrierungsstelle einer Zertifizierungsstelle (auch als Registration Authority bezeichnet) zur Annahme von Anträgen und Sperrung von Zertifikaten. RD . . . . . . . . . . . . . Der Registrierungsdienst wird durch die RA implementiert. RFC . . . . . . . . . . . Request for Comments sind eine Reihe von technischen und organisatorischen Dokumenten. RootCP . . . . . . . . Die Root Certificate Policy ist die CP der PCA und beinhaltet die Basis-Anforderungen, die jede durch die PCA zertifizierte SubCA erfüllen muss. RootCPS . . . . . . . Das Root Certificate Practice Statement ist das CPS der PCA und enthält die praktische Umsetzung der Basis-Anforderungen, die von den SubCA’s umgesetzt werden müssen. RSA . . . . . . . . . . . Ein asymmetrischer Verschlüsselungsalgorithmus benannt nach seinen Entwicklern Ronald L. Rivest, Adi Shamir und Leonard Adleman. 248 S/MIME . . . . . . . S/MIME ist ein Standard für digitale Unterschriften und baut auf den Konzepten einer Public-Key-Infrastruktur auf. SA . . . . . . . . . . . . . Steht für den Systemadministrator, der die Aufgabe hat, die Installation, Konfiguration, Administration und Wartung der Systeme vorzunehmen. SB . . . . . . . . . . . . . Der Sicherheitsbeauftragte ist für die Definition und Einhaltung der Sicherheitsbestimmungen zuständig. SCEP . . . . . . . . . . Das Simple Certificate Enrollment Protocol ist ein von Cisco und VeriSign entwickeltes Protokoll zur Verteilung von Zertifikaten. SCP . . . . . . . . . . . . Das Secure Copy ist ein Protokoll sowie ein Programm zur verschlüsselten Übertragung von Daten zwischen zwei Computern über ein Netzwerk. SHA . . . . . . . . . . . Steht für sicherer Hash-Algorithmus und bezeichnet eine Gruppe standardisierter kryptographischer Hash-Funktionen. SO . . . . . . . . . . . . . Der Systemoperator hat Zugriff auf die kryptographischen Systeme und ist verantwortlich für die Betreuung der Anwendungen. SSH . . . . . . . . . . . . Die Secure shell ist sowohl ein Programm als auch ein Netzwerkprotokoll, mit dessen Hilfe man sich über eine verschlüsselte Verbindung auf einem entfernten Computer einloggen kann. SSL . . . . . . . . . . . . Das Secure Sockets Layer ist ein Verschlüsselungsprotokoll für Datenübertragungen im Internet. VPN . . . . . . . . . . . Das Virtual Private Network ist ein Computernetz, das über ein öffentliches Netz gelegt werden kann, um so den sicheren Transport privater Daten zu gewährleisten. ZD . . . . . . . . . . . . . Der Zertifizierungsdienst wird durch die CA implementiert. 249 250 Literaturverzeichnis [AGO06] AGOF. Berichtsband Teil 1 zu Internet Fakten. Arbeitsgemeinschaft Online Forschung, 2006. [Ban01] Jens Banning. Ldap unter Linux. Addison Wesley, 2001. [BP01] Steve Burnett und Stephen Paine. Kryptographie RSA Security’s Official Guide. RSA Press, 2001. [Bra02] Gilbert Brands. Verschlüsselungsalgorithmen. vieweg, 2002. [CB05] Chris Covell und Michael Bell. OpenCA Guides for 0.9.2+. OpenCA Group, http://www.openca.org/openca/docs/, 2005. [Cla03] Prof.Dr. Echert Claudia. IT-Sicherheit Konzepte - Verfahren - Protokolle. OldenBourg, 2003. [DFN05a] DFN-Verein. Erklärung zum Zertifizierungsbetrieb der obersten Zertifizierungsstelle der Public Key Infrastruktur im Deutschen Forschungsnetz, cps-classic v1.1 Auflage, Februar 2005. [DFN05b] DFN-Verein. Zertifizierungsrichtlinie der Public Key Infrastruktur im Deutschen Forschungsnetz, cp-classic v1.1 Auflage, Februar 2005. [ICSbCfNRI+ 93] S. Hardcastle-Kille (ISODE-Consortium), V. Cerf (SURFnet bv), V. Cerf (Corporation for National Research Initiati- 251 ves), R. Hobby (University of California, Davis), und S. Kent (Bolt Beranek und Newman). RFC 1430 - A Strategic Plan for Deploying an Internet X.500 Directory Service. Network Working Group, Februar 1993. [NDJB02] Andrew Nash, William Duane, Celia Joseph, und Derek Brink. PKI e-security implementieren. RSA Press, 2002. [OSSIVCGL+ 03] S.Chokhani (Orion Security Solutions Inc), W.Ford (VeriSign), R.Sabett (Cooley Godward LLP), C.Merril (McCarter und English LLP), und S.Wu (Infoliance Inc). RFC 3647 - Internet X.509 Public Key Infrastructure Certificate Policy and Certification Practices Framework. Network Working Group, November 2003. [PB04] Norbert Pohlmann und Hartmut Blumberg. Der IT- Sicherheitsleitfaden. mitp, 2004. [RLNVC02] R.Housley (RSA Laboratories), W.Polk (NIST), W.Ford (VeriSign), und D.Solo (Citigroup). RFC 3280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile. Network Working Group, April 2002. [Smi00] M. Smith. RFC 2798 - Definition of the inetOrgPerson LDAP Object Class. Network Working Group Netscape Communications, http://www.faqs.org/rfcs/rfc2798.html, 2000. 252 Internetquellen [URL1] Peter Meyer. Eine Einführung in die Anwendung der Verschlüsselung. http://www.hermetic.ch/crypto/introg.htm. [URL2] Robert Silverman. A Cost-Based Security Analysis of Sym- metric and Asymmetric Key Lengths. RSA - Laboratori- en, http://www.rsasecurity.com/rsalabs/node.asp?id=2088, bulletin nr.13 edition, April 2000. [URL3] Wikipedia, http://de.wikipedia.org/wiki/Caesar-Chiffre. Caesar- Chiffre, 2006. [URL4] Wikipedia, http://de.wikipedia.org/wiki/X.509. X.509 Definition, März 2006. [URL5] Wikipedia, http://de.wikipedia.org/wiki/X.500. X.500 Definition, März 2006. [URL6] Massimiliano Pala. OpenCA Documentation. OpenCA Group, http://www.openca.org/openca/docs/. [URL7] Ann levels West. of More on assurance. the e-authentication initiative and http://www.nmi-edit.org/roadmap/auth- roadmap_200510/start-click-eauth-loa.html. [URL8] U.S. General Services Administration. What is meant by level of assurance? http://asc.gsa.gov. 253 [URL9] The OpenLDAP Administrator’s Project. OpenLDAP Guide. University Software of 2.3 Michigan, http://www.openldap.org/doc/admin23/. [URL10] Netscape Devedge Mozilla.org, http://devedge- temp.mozilla.org/library/manuals/1998/htmlguide/tags10.html#1615503. HTML Tag Reference. [URL11] Project ägypten (free software sphinx-clients). http://www.gnupg.org/aegypten/index.html, 2004. [URL12] Project ägypten2: Improving free software http://www.gnupg.org/aegypten2/index.html, 2005. 254 sphinx-clients. Index CA-Operator 113 Symbols Certification Policy 24 Ägypten 172 Certification Practice Statement 25 A channel verification 112 Chiffretext 6, 11 ACLs 112 Client-seitig 140 Aktivierungscode 131 Common Name 121 Angreifer 18 Computersicherheit 5 Ausrollen 109 config.xml 101 Authentifizierung 6 configure 94, 103 Authentizität 14 configure_etc.sh 101 B CP 26, 35 CPS 26, 35 basic 115 CRIN 133, 156 Batch 88, 125, 132 CSR 27, 103, 139 BATCH-Interface 154 Batch-Prozessor 137, 154 D Batch-System 154 Bearbeitungsdauer 61 Datenaustausch 109, 136, 145 Blockalgorithmen 10 Datenbank 147 Datenblock 10, 18 C Datenimport 126, 128 CA-Interface 88, 121 Datenintegrität 6 255 Hybridverfahren 16 Datenstromalgorithmen 10 Dekanat 132 I DES 10 Digest 18 Identität 22, 25 Digitale Signatur 18, 19, 31 Identitätsprüfung 53 Disjuncted Name 48 Initialisierungsphasen 145 E K E-Security 1 KAdressbuch 171 Einbrecher 11 Keystore 27, 133 Empfangen 109 Kleopatra 172 Erstinitialisierung 142, 145 KMail 170 Erweiterungen 109 Kryptographie 5, 6 EXTERN-Host 93 L F LDAP 89 Fingerabdruck 19 LDAP-Interface 115 Funktionen 126 LDAP-Server 104, 147 LDIF 117 G Level of Assurance 113 Gültigkeitsdauer 28 LOA 113 Gültigkeitszeiträume 80 login 112 Geheimnis 6, 16 M H Mailinglist 103 Hashfunktion 28 make 100, 103 Hashing 18 Masterpasswort 57, 78, 132, 133, 138 Herunterladen 109 MD5 19 high 115 medium 115 Hochladen 109 Microsoft Internet Explorer 140 Home-Verzeichnis 133 Microsoft Outlook Express 174 256 Mitarbeiter 113 Prozessdaten 126 Module IDs 96 Prozesse 126 Mozilla 141 Prozessimport 128 MySQL 86, 89, 102 PSE 26 Pseudonyme 51 N PUBLIC-Interface 26, 87, 104, 121, Namen 48 141, 147, 155, 157 Neusignierung 158 Q Nichtabstreitbarkeit 18 NODE-Interface 88, 145, 151, 155, Quickimport 126, 128, 154 157 R Nutzer-Verwaltung 120 RA-Interface 88, 108 O RA-Operator 113 Offline-CA 90, 93 Registrierung 60 Online-RA 91 Registrierungsdienst 71 OpenLDAP 85, 116 Registrierungsstelle 25, 41 OpenSSL 85, 108 Rollen 71, 109, 112 Rollenmodell 74 P Root-Policy 114 Passwort 117 Root-Zertifikat 38 PCA 38 RootCA 38 PIN 132, 138, 152, 155 RootDN 120 pin_list 155 RSA 12 PKA 26 rudimentary 115 pkcs2user.sh 132, 138 S PKCS#10 107, 139, 141 PKCS#12 131, 138, 152, 155 SCEP 87 Policy 35 Schlüssel 7 Prüfsumme 20, 28 Schlüsselaustausch 15 Prototyp 83, 94, 142, 144 Schlüsselbund 26 257 Schlüsselerzeugung 78 U Schlüsselgenerierung 12, 153 User 126 Schlüssellänge 8, 79, 140, 141 user2batch.sh 131, 137, 154 Schlüsselmanagement 11, 15, 18 Userimport 128 Schlüsselpaar 63, 149, 155 Usernamen 130 Schlüsselraum 8 V Seriennummer 149, 156 Server-seitig 140, 141 Verbindlichkeit 6 session management 112 Verlängern 158 SHA 19 Verschlüsseln 27, 33 Sicherheitsbeauftragter 72 Vertrauen 21 Sicherheitsmaßnahmen 70 Vertrauenskette 143 Signieren 27 Vertraulichkeit 5 Sperren 156 Verzeichnisdienst 45 SPKAC 139 Vetrauenskette 28 Statusmaschine 125 W Studentenliste 129, 154 Studentensekretariat 57, 129 Webserver 97 Sub-Policy 114 Widerruf 67, 156 SubCA 144 X Suspendierung 67 sync.sh 136, 147, 151 X.500 22 Systemadministrator 71 X.509 22, 139 Systemoperator 72 XCA 83 Z T Zertifikat 21 technische Systeme 113 Zertifikatakzeptanz 62 Thunderbird 166 Zertifikatbeantragung 148 TinyCA 83 Zertifikaterneuerung 54, 64, 66 258 Zertifikatmodifizierung 67 Zertifikatnehmer 42 Zertifikatnutzung 44 Zertifikatsspeicher 25 Zertifizierungsdienst 71 Zertifizierungsserver 25 Zertifizierungsstelle 23, 39, 43 Zufallszahlengenerator 7, 12 Zustände 126 259 Notizen: Letzte Änderung 21. Juni 2006 protect your environment !