Inhaltsverzeichnis         

3 Digitale Signaturen und Zertifikate

3.1 Digitale Signatur

Die digitalen Signaturen kombinieren Public Key- Verschlüsselungsverfahren mit Hashwerten, um die Authentizität eines Dokumentes nachzuweisen. Dabei wird serverseitig der Hash des Dokumentes mit dem privaten Schlüssel verschlüsselt. Das Dokument wird mit dem verschlüsselten Hash erweitert und an den Client gesendet. Die Kombination aus Test und verschlüsselten Hash wird signiertes Dokument genannt. Der Client trennt den verschlüsselten Hash vom Dokument wieder ab. Danach entschlüsselt der Client den Hash mit seinem öffentlichen Schlüssel und vergleicht diesen mit dem aktuellen Hash des Dokumentes. Stimmen beide überein, dann folgt daraus. dass das Dokument während der Übertragung nicht durch einen Dritten geändert wurde.




3.2 X 509 Zertifikate

X 509 ist ein Standard zur Verwaltung von öffentlichen Schlüsseln asymmetrischer Verschlüsselungsverfahren im Netz. Entwickelt wurde dieser im Rahmen des X 500 Standards für Netzwerkverzeichnisse (Datenbank zur Verwaltung von Netzwerkressourcen). Zertifikate können als Objekte aus einem Verzeichnisdienst betrachtet werden, in denen für Netzwerkressourcen wie Dienste oder Dokumente die öffentlichen Schlüssel zur Signierung und Verschlüsselung aufbewahrt werden.

3.2.1 Was ist mit den privaten Schlüsseln ?

Die privaten Schlüssel zu den in Zertifikaten veröffentlichten öffentlichen Schlüssel müssen an einem gut geschützten Ort im Netz aufbewahrt werden. Sie sind damit kein Bestandteil der Zertifikate !

Wenn z.B. ein Webdienst asymmetrische Verschlüsselung für sog. SSL (Secure Socket Layer) Protokolle zum Einrichten verschlüsselter Kanäle einsetzt, dann muss er lesenden Zugriff auf die Datei mit dem privaten Schlüssel haben. Natürlich sollte außer diesem Dienst niemand weiteres im Netz Zugriff auf diese Datei besitzen.

Das Paar aus privaten und öffentlichen Schlüsseln kann durch einen Zertifikats-dienst (CA, siehe unten) erzeugt werden. Diese können dann in speziell gesicherten Dateien exportiert werden, um das Zertifikat samt privaten Schlüssel zum Serversystem zu transportieren. Dort ist das Zertifikat dann im Zertifikatspeicher (einer Partition des Verzeichnisdienstes) zu installieren. Dabei wird der private Schlüssel in eine Datei an einen geheimen Ort kopiert. Dem Verzeichnis ist der Aufenthaltsort der Datei mit dem privaten Schlüssel bekannt, und der Dienst, welcher das Zertifikat einsetzt, kann diese über das Verzeichnis orten und so den privaten Schlüssel laden. Jedoch ist sicherzustellen, dass der Dienst auch Leserecht auf die Datei mit dem privaten Schlüssel hat. Mittels Tools wie FindPrivateKey.exe aus den Demos von WCF kann man die Datei über den CN des Subjektes eines Zertifikates orten, und dann die Leserechte für die Dienstidentität überprüfen (und gegebenenfalls zu setzen).

3.2.2 Struktur

Ein Zertifikat ist eine Verzeichnisobjekt. Dieses hat folgenden Aufbau:

Attribut

Inhalt

Public Key

Der öffentliche Schlüssel, mit dem Datenpakete an den Dienst verschlüsselt werden können, bzw. Signaturen vom Dienst überprüft werden können.

Seriennummer


Aussteller

Name des Ausstellers (z.B. Verisign, Thawte etc.)

Gültigkeitsdatum

Nach dem Datum gilt das Zertifikat als ungültig, und der öffentliche Schlüssel darf nicht mehr verwendet werden.

Subjekt (Antragsteller)

Name des Subjektes, für das das Zertifikat ausgestellt wurde (z.B. der URL der Webseite oder des Webdienstes).

(L)DAP Elemente

CN

Common Name

URL der Webseite oder des Webdienstes)

C

Country

Land, in dem das Subjekt existiert

ST

State

Staat/ Bundesland, in dem das Subjekt existiert

L

Location

Ort, in dem das Subjekt existiert

O

Organisation

Organisation/Firma, in der das Subjekt existiert

OU

Organisation Unit

Abteilung, in der das Subjekt existiert



Signatur

Eine digitale Signatur. Diese entsteht aus einen MD5 Hash aus öffentlichen Schlüssel und den restlichen Infos. Der MD5 Hash wird mit dem privaten Schlüssel des Ausstellers (CA, siehe unten) verschlüsselt.

Verweis auf Stammzertifikat

Zertifikat der CA (siehe unten), das den öffentlichen Schlüssel zum Prüfen der Signatur enthält.

3.2.3 Prinzip der Vertrauensbildung

Da die öffentlichen Schlüssel aus Zertifikaten genutzt werden, um die Gültigkeit digitaler Signaturen zu prüfen und vertrauliche Nachrichten wie Passwörter an einen Server zu senden, muss sichergestellt werden, dass die öffentlichen Schlüssel tatsächlich die Originalen sind. Sonst könnte ein Angreifer (Hacker) im Netz unbemerkt manipulierte Dienste mit manipulierten öffentlichen Schlüsseln anbieten. Die Folgen für die Sicherheit wären fatal.

Die Zertifikate werden deshalb wieder mit digitalen Signaturen abgesichert. Dabei wird mit einem besonders gesicherten privaten Schlüssel signiert, der im Besitz der sogenannten Certificate Authority (CA) ist. Die CA- s sind gut geschützte Dienste, welche neue Zertifikate auf Antrag hin ausstellen, und eine Liste aller bereits ausgestellten Zertifikate verwalten. Der besondere Schutz und die sorgfältige Verwaltung der ausgestellten Zertifikate macht diese vertrauenswürdig.



Jeder Client eines Zertifikatsdienstes (CA) kann prüfen lassen, ob ein gegebenes Zertifikat vom CA ausgestellt wurde. So stellt der Client sicher, dass ein öffentlicher Schlüssel zum Verschlüsseln von Nachrichten an einen Dienst der Originale ist.




3.2.4 Implementierung der Vertrauensbildung

Auch die öffentlichen Schlüssel einer CA, mit der die Signatur eines Zertifikates geprüft werden kann, wird bei der CA in einem Zertifikat aufbewahrt. Auch dieses muss signiert werden. Benutzt die CA dazu den zum öffentlichen Schlüssel des Zertifikates passenden privaten Schlüssel, dann spricht man vom "selbssignieren". Solche Zertifikate werden als Stammzertifikate bezeichnet.




3.3 Schlüsseltausch

Die Verschlüsselung mit asymetrischen Verfahren ist sehr rechenaufwändig. Deshalb wird zum Verschlüsseln von Datenströmen in der Regel ein symmetrisches Verfahren eingesetzt, dessen Aufwand deutlich geringer ist. Das Problem der symmetrischen Verfahren, im Sender als auch im Empfänger den gleichen Schlüssel zu installieren, ohne dabei vom Feind ausgespäht zu werden, wird mittels asymmetrischer Verfahren und Zertifikaten gelöst.

Dabei generiert der Client mittels eine Zufallszahlengenerators einen Schlüssel für die symmetrische Verschlüsselung. Mit dem öffentl. Schlüssel aus dem Serverzertifikat wird der generierte Schlüssel verschlüsselt und an den Server gesendet. Dieser entschlüsselt mit dem zum Zertifikat gehörenden privaten Schlüssel das empfangene Paket und erhält so den gleichen Schlüssel für die symmetrische Verschlüsselung wie der Client. Das Verfahren wird als Schlüsseltausch bezeichnet.




3.4 Einrichten der AD Zertifikatdienste unter Windows Server 2008

Mit den Zertifikatdiensten wird eine Certificate Authority (CA) auf einem Windows- Server als Teil des AD (Active Directory) Verzeichnisdienstes eingerichtet.

3.4.1 Zu installierende Rollendienste

Server Manager
 +-> AD-Zertifikatdienste
       +-> Rollendienste
            +-> Zertifizierungsstelle
            +-> Zertifizierungsstellen- Webregistrierung



Die Zertifizierungstelle stellt die CA dar. Sie gibt Zertifikate aus, führt über die ausgestellten Zertifikate Buch und definiert die Schemen für Zertifikatobjekte.

Die Zertifizierungstelle- Webregistrierung ist eine Webanwendung, die im IIS installiert wird (http://<Default- Webseite>/CertSrv). Mit dieser können neue Zertifikate angefordert werden. Wird für die CertSrv- Webanwendung eine Bindung für https eingerichtet, dann werden die angeforderten Zertifikate auch heruntergeladen und im lokalen Speicher für Zertifikate abgelegt.

3.4.1.1 Konsole der Zertifizierungsstelle

Über diese Konsole können z.B. alle bereits Ausgestellten Zertifikate eingesehen werden. Auch alle misslungenen Anforderungen werden aufgelistet.

In den Zertifikatsvorlagen sind alle Schemen für Zertifikatsobjekte aufgelistet. Hier kann man auch eigene Schemen hinzufügen (allerdings erst in der Enterprise- Version von Windows Server 2008), um z.B. Zertifikate für Webserver mit einer längeren Gültigkeitsdauer zu erzeugen.




3.4.1.2 Zertifizierungsstelle- Webregistrierung

Mit diesen Tool können neue Zertifikate von der Zertifizierungsstelle abgerufen werden. Diese sind dann mit dem Stammzertifikat der Zertifizierungsstelle signiert (also nicht selbstsigniert !). Zudem können hier alle möglichen Typen von Zertifikate beantragt werden. Allerdings setzt dies voraus, daß keine Anonyme Anmeldung an das Tool möglich ist (IIS- Authentifizierungseinstellungen überprüfen !).



3.5 Alternative zur selbstverwalteten Zertifizierungsstelle

Im Intranet sind die selbstverwalteten AD- Zertifikatsdienste sinvoll. Wenn aber auf Dienste auch über das Internet zugegriffen werden soll, ist die Nutzung von externen Dienstleistern, die Zertifikatsdienste im Internet anbieten (Verisign, GoDaddy etc.) einfacher, da die Administration des externen Zugriffs auf die eigenen Zertifikatsdienste entfällt. Auch haben die Browser bereits die Stammzertifikate der Marktführer vorinstalliert. Mit den öffentlichen Schlüsseln dieser wird ja die Signatur der ausgestellten Serverzertifikate geprüft. Dadurch werden die durch diese Dienstleister ausgestellten Serverzertifikate sofort von den Clients bestätigt, ohne vorher ein eigenes Stammzertifikat manuell auf diesen installieren zu müssen. Ein Vorteil insbesondere auf mobilen Clients (z.B. Smartphones), bei denen die installation eigener Clients u.U. unmöglich ist.

Allerdings lassen sich die externen Dienstleister ihre (Lobby-)Arbeit gut bezahlen: die Zertifikate werden meist auf ein Jahr zeitlich befristeten ausgestellt. Es fallen damit jedes Jahr erneut Kosten für die Zertifikate an.