Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
cert-basics [2012/06/22 13:58] – [Ein Zertifikat überprüfen] bushcert-basics [2012/08/31 12:06] – [Ein Zertifikat erstellen] bush
Zeile 15: Zeile 15:
 Man kann sich ein Zertifikat als Personalausweis in digitaler Form vorstellen: Beim Personalausweis garantiert die vertrauenswürdige Stelle "Meldeamt", dass die Unterschrift, die sich auf dem Ausweis befindet, auch tatsächlich zu der Person gehört, deren Stammdaten und Passbild sich auf dem Ausweis befinden. Beim Zertifikat wird von diversen Zertifizierungsstellen, darunter auch der Uni FR CA eine entsprechende Sicherheit gegeben. Man unterscheidet mehrere Qualitätsstufen ([[http://de.wikipedia.org/wiki/Elektronische_Signatur#Anforderungen_an_einfache_elektronische_Signaturen|einfach]], [[http://de.wikipedia.org/wiki/Elektronische_Signatur#Anforderungen_an_fortgeschrittene_elektronische_Signaturen|fortgeschritten]], [[http://de.wikipedia.org/wiki/Elektronische_Signatur#Anforderungen_an_qualifizierte_elektronische_Signaturen|qualifiziert]]), je nach Aufwand bei der Ausstellung des Zertifikates bzw. der Signatur. Man kann sich ein Zertifikat als Personalausweis in digitaler Form vorstellen: Beim Personalausweis garantiert die vertrauenswürdige Stelle "Meldeamt", dass die Unterschrift, die sich auf dem Ausweis befindet, auch tatsächlich zu der Person gehört, deren Stammdaten und Passbild sich auf dem Ausweis befinden. Beim Zertifikat wird von diversen Zertifizierungsstellen, darunter auch der Uni FR CA eine entsprechende Sicherheit gegeben. Man unterscheidet mehrere Qualitätsstufen ([[http://de.wikipedia.org/wiki/Elektronische_Signatur#Anforderungen_an_einfache_elektronische_Signaturen|einfach]], [[http://de.wikipedia.org/wiki/Elektronische_Signatur#Anforderungen_an_fortgeschrittene_elektronische_Signaturen|fortgeschritten]], [[http://de.wikipedia.org/wiki/Elektronische_Signatur#Anforderungen_an_qualifizierte_elektronische_Signaturen|qualifiziert]]), je nach Aufwand bei der Ausstellung des Zertifikates bzw. der Signatur.
  
-Ein Zertifikat enthält den Namen des Inhabers, seinen öffentlichen Schlüssel, eine Seriennummer, eine Gültigkeitsdauer und den Namen der Zertifizierungsstelle. Diese Daten sind in der Regel mit dem privaten Schlüssel der Zertifizierungsstelle verschlüsselt und können somit mit dem öffentlichen Schlüssel der Zertifizierungsstelle überprüft werden.+Ein Zertifikat enthält den Namen des Inhabers bzw. die Internetadresse eines Servers, seinen öffentlichen Schlüssel, eine Seriennummer, eine Gültigkeitsdauer und den Namen der Zertifizierungsstelle. Diese Daten sind in der Regel mit dem privaten Schlüssel der Zertifizierungsstelle verschlüsselt und können somit mit dem öffentlichen Schlüssel der Zertifizierungsstelle überprüft werden.
  
-Mit Hilfe eines persönlichen Zertifikates, das in der Regel auch mit einer persönlichen Mailadresse verknüpft ist, kann die Inhaberin / der Inhaber Daten (Nachrichten, Formulare usw.) mit einer "digitalen Unterschrift" versehen, die gewährleistet, dass diese Daten in der Originalversion vorliegen und genau der Person zugeordnet werden können, die Inhaberin des Zertifikates ist. Voraussetzung ist natürlich, dass das Zertifikat mit dem privaten Schlüssel nicht in die falschen Hände geraten ist.+Mit Hilfe eines persönlichen Zertifikates, das in der Regel auch mit einer persönlichen Mailadresse verknüpft ist, kann die Inhaberin / der Inhaber Daten (Nachrichten, Formulare usw.) mit einer "digitalen Unterschrift" versehen, die gewährleistet, dass diese Daten in der Originalversion vorliegen und genau der Person zugeordnet werden können, die Inhaberin des Zertifikates ist. Voraussetzung ist natürlich, dass der private Schlüssel nicht in die falschen Hände geraten ist.
  
  
Zeile 24: Zeile 24:
 ===== Das Public Key - Verfahren ===== ===== Das Public Key - Verfahren =====
  
-Beim Public Key - Verfahren (z.B. **[[http://de.wikipedia.org/wiki/RSA-Kryptosystem|RSA]]**) wird zunächst mit Hilfe einer passenden Rechenvorschrift ein Paar aus einem geheimen (privaten) und einem öffentlichen Schlüssel berechnet. Daten, die mit dem privaten Schlüssel verschlüsselt werden, können nur mit dem öffentlichen Schlüssel wieder entschlüsselt werden - und umgekehrt. Deshalb nennt man eine solche Methode auch "asymmetrische Verschlüsselung"+Beim Public Key - Verfahren (z.B. **[[http://de.wikipedia.org/wiki/RSA-Kryptosystem|RSA]]**) wird zunächst mit Hilfe einer passenden Rechenvorschrift ein Schlüsselpaar berechnet, das aus einem geheimen (privaten) und einem öffentlichen Schlüssel besteht. Daten, die mit dem privaten Schlüssel verschlüsselt werden, können nur mit dem öffentlichen Schlüssel wieder entschlüsselt werden - und umgekehrt. Deshalb nennt man eine solche Methode auch "asymmetrische Verschlüsselung"
  
 {{:bilder-netzsicherheit:verschluesselungszyklus.png|Ver- und Entschlüsselung}} {{:bilder-netzsicherheit:verschluesselungszyklus.png|Ver- und Entschlüsselung}}
  
-Der besondere Vorteil dieses Verfahrens ist, dass die beiden Parteien keinen gemeinsamen geheimen Schlüssel kennen müssen. Bei der symmetrischen Verschlüsselung hat man immer das aufwändige Problem, den geheimen Schlüssel, der zum Ver- und Entschlüsseln verwendet wird, sicher zu allen Kommunikationspartnern zu übertragen.+Der besondere Vorteil dieses Verfahrens ist, dass die beiden Parteien keinen gemeinsamen geheimen Schlüssel kennen müssen. Bei der symmetrischen Verschlüsselung hat man dagegen immer das aufwändige Problem, den geheimen Schlüssel, der zum Ver- und Entschlüsseln verwendet wird, sicher zu allen Kommunikationspartnern zu übertragen.
  
-Ein Nachteil ist allerdings, dass diese Art der Verschlüsselung sehr rechen- und damit zeitaufwändig ist und somit die verschlüsselte Kommunikation "ausbremst". Deshalb wird in der Regel zwischen zwei Kommunikationspartnern mit Hilfe des Public Key - Verfahrens ein geheimer gemeinsamer Schlüssel für die schnellere symmetrische Verschlüsselung (z.B. nach **[[http://de.wikipedia.org/wiki/Data_Encryption_Standard|DES]]**) ausgehandelt, der dann für die Datenübertragung verwendet wird.+Ein Nachteil ist allerdings, dass diese Art der Verschlüsselung sehr rechen- und damit zeitaufwändig ist und somit die verschlüsselte Kommunikation "ausbremst". Deshalb wird in der Regel zwischen zwei Kommunikationspartnern mit Hilfe des Public Key - Verfahrens ein geheimer gemeinsamer Schlüssel (session key) für die schnellere symmetrische Verschlüsselung (z.B. nach **[[http://de.wikipedia.org/wiki/Data_Encryption_Standard|DES]]**) ausgehandelt, der dann für die Datenübertragung maximal für die Dauer der aktuellen Sitzung verwendet wird.
 \\ \\
 \\ \\
-<note tip>**In der Praxis:** Sobald Sie mit dem Webbrowser Ihrer Wahl (Firefox, IE) einen Zertifikatsantrag starten (z.B. auf den Antragsseiten der Uni FR CA), wird im Browser eventuell unbemerkt dieses Schlüsselpaar erzeugt. Der private Schlüssel verbleibt grundsätzlich im Zertifikatsspeicher dieses Browsers. Deshalb ist es auch erforderlich, dass Sie das von der Zertifizierungsstelle gelieferte Zertifikat auch wieder mit demselben Browser laden, denn dazu wird der private Schlüssel benötigt.</note>+<note tip>**In der Praxis:** Sobald Sie mit dem Webbrowser Ihrer Wahl (Firefox, IE) einen Zertifikatsantrag starten (z.B. auf den Antragsseiten der Uni FR CA), wird im Browser eventuell unbemerkt dieses Schlüsselpaar erzeugt. Der private Schlüssel verbleibt grundsätzlich im Zertifikatsspeicher dieses Browsers. Deshalb ist es erforderlich, dass Sie das von der Zertifizierungsstelle gelieferte Zertifikat auch wieder mit demselben Browser laden, denn dazu wird der private Schlüssel benötigt.</note>
  
 \\ \\
Zeile 40: Zeile 40:
 Für die digitale Signatur wird zunächst mit Hilfe einer speziellen Rechenvorschrift (z.B. **[[http://de.wikipedia.org/wiki/MD5|MD5]]** oder **[[http://de.wikipedia.org/wiki/Sicherer_Hash-Algorithmus|SHA]]**) aus der zu übermittelnden Nachricht eine Zahl (bzw. eine Zeichenkette) berechnet. Diese Zahl wird als **[[http://de.wikipedia.org/wiki/Hash|Hash]]** bezeichnet. Dabei soll das Rechenverfahren gewährleisten, dass zwei verschiedene Datensätze nie zu demselben Hashwert führen. Für die digitale Signatur wird zunächst mit Hilfe einer speziellen Rechenvorschrift (z.B. **[[http://de.wikipedia.org/wiki/MD5|MD5]]** oder **[[http://de.wikipedia.org/wiki/Sicherer_Hash-Algorithmus|SHA]]**) aus der zu übermittelnden Nachricht eine Zahl (bzw. eine Zeichenkette) berechnet. Diese Zahl wird als **[[http://de.wikipedia.org/wiki/Hash|Hash]]** bezeichnet. Dabei soll das Rechenverfahren gewährleisten, dass zwei verschiedene Datensätze nie zu demselben Hashwert führen.
  
-Der Hashwert ist somit eine Art eindeutiger Fingerabdruck oder einmalige Quersumme aus einem Datensatz und kann in Kenntnis des Rechenverfahrens von jedem Empfänger des Datensatzes wiederholt werden. Auf diese Weise wird die Integrität des Originaldatensatzes nachgewiesen.+Der Hashwert ist somit eine Art eindeutiger Fingerabdruck oder "Quersummeaus einem Datensatz und kann in Kenntnis des Rechenverfahrens von jedem Empfänger des Datensatzes wiederholt werden. Auf diese Weise wird die Integrität des Originaldatensatzes nachgewiesen.
  
 Voraussetzung dazu ist allerdings, dass der Hashwert vom Absender sicher zum Empfänger gelangen kann, damit dieser darauf vertrauen kann, dass er seinen selbst berechneten Hashwert auch tatsächlich mit dem vom Sender gelieferten Original vergleicht. Voraussetzung dazu ist allerdings, dass der Hashwert vom Absender sicher zum Empfänger gelangen kann, damit dieser darauf vertrauen kann, dass er seinen selbst berechneten Hashwert auch tatsächlich mit dem vom Sender gelieferten Original vergleicht.
Zeile 48: Zeile 48:
 {{:bilder-netzsicherheit:unterschriebenenachricht.png|unterschreiben einer Nachricht}} {{:bilder-netzsicherheit:unterschriebenenachricht.png|unterschreiben einer Nachricht}}
  
-<note tip>**In der Praxis:** Die beschriebene Vorgehensweise ist Teil der Methode zum digitalen Unterschreiben von Mails. Wenn Sie eine Mail digital unterschreiben, wird dieser Vorgang der Hash-Erzeugung automatisch und von Ihnen unbemerkt auf den Mail-Text und die eventuell vorhandenen Anhänge angewandt. Auf diese Weise wird dem Empfänger die Sicherheit gegeben, dass der Mail-Inhalt unterwegs nicht manipuliert wurde.</note>+<note tip>**In der Praxis:** Die beschriebene Vorgehensweise ist Teil der Methode zum digitalen Unterschreiben von Mails. Wenn Sie eine Mail digital unterschreiben, wird dieser Vorgang der Hash-Erzeugung automatisch und von Ihnen unbemerkt auf den Mail-Text und die eventuell vorhandenen Anhänge angewandt. Auf diese Weise wird dem Empfänger die Sicherheit gegeben, dass der Mail-Inhalt unterwegs nicht manipuliert wurde.\\ Einige Mailclients verweigern übrigens das **Abtrennen** der Anhänge von digital signierten Mails, offenbar um die Aussagen über Herkunft und Unversehrtheit beibehalten zu können.</note>
  
 \\ \\
Zeile 69: Zeile 69:
   * DER ist ein binäres Format mit den typischen Dateinamenserweiterungen .der oder .crt   * DER ist ein binäres Format mit den typischen Dateinamenserweiterungen .der oder .crt
   * PEM ist ein Base64-codiertes Format mit der Erweiterung .pem, das man sich mit einem beliebigen Texteditor ansehen kann.\\ Zum lesen muss allerdings wie auch bei den binären Formaten ein passendes Programm (z.B. **[[http://java.sun.com/j2se/1.3/docs/tooldocs/win32/keytool.html|keytool]]** oder **[[http://www.absolute-cool.de/dokus/ssl/openssl/|openSSL]]**) benutzt werden.   * PEM ist ein Base64-codiertes Format mit der Erweiterung .pem, das man sich mit einem beliebigen Texteditor ansehen kann.\\ Zum lesen muss allerdings wie auch bei den binären Formaten ein passendes Programm (z.B. **[[http://java.sun.com/j2se/1.3/docs/tooldocs/win32/keytool.html|keytool]]** oder **[[http://www.absolute-cool.de/dokus/ssl/openssl/|openSSL]]**) benutzt werden.
-  * PKCS#12 ist ein binäres Format, das Zertifikate ohne oder mit privatem Schlüssel enthalten kann.\\ Falls ein privater Schlüssel enthalten ist, wird er über ein Passwort geschützt.\\ Diese Dateien mit der Namenserweiterung .p12 oder .pfx werden z.B. zum Sichern oder Übertragen von Zertifikaten und geheimen Schlüsseln verwendet, wie es in **[[usercert|User-Zertifikat beantragen]]** für die Übertragung eines Benutzerzertifikates aus Mozilla Firefox nach Mozilla Thunderbird beschrieben ist.+  * PKCS#12 ist ein binäres Format, das Zertifikate ohne oder mit privatem Schlüssel enthalten kann.\\ Falls ein privater Schlüssel enthalten ist, werden die Dateien über ein Passwort geschützt.\\ Diese Dateien mit der Namenserweiterung .p12 oder .pfx werden z.B. zum Sichern oder Übertragen von Zertifikaten und geheimen Schlüsseln verwendet, wie es in **[[usercert|User-Zertifikat beantragen]]** für die Übertragung eines Benutzerzertifikates aus Mozilla Firefox nach Mozilla Thunderbird beschrieben ist.
  
 Muster eines PEM-Formates: Muster eines PEM-Formates:
Zeile 125: Zeile 125:
 Mit den oben schon erwähnten Werkzeugen (keytool oder openSSL) kann die gesamte Prozedur zum Herstellen eines Zertifikates durchgeführt werden. Mit den oben schon erwähnten Werkzeugen (keytool oder openSSL) kann die gesamte Prozedur zum Herstellen eines Zertifikates durchgeführt werden.
  
-  * **Schritt 1:** Grundsätzlich beginnt die Herstellung eines Zertifikates mit der Erzeugung eines Schlüsselpaares. Man speichert dieses in einer Datei ab, die als Schlüsselspeicher (keystore) bezeichnet wird. Da jeder Eintrag in einem Schlüsselspeicher mit einem Namen (alias) versehen wird, kann man sich bei nachfolgenden Operationen (z.B Vergabe eines Passwortes) auf den gewünschten Eintrag beziehen.+  * **Schritt 1:** Grundsätzlich beginnt die Herstellung eines Zertifikates mit der Erzeugung eines Schlüsselpaares. Man speichert dieses in einer Datei ab, die als Schlüsselspeicher (keystore) bezeichnet wird. Da jeder Eintrag in einem Schlüsselspeicher mit einem Namen (alias) versehen wird, kann man sich bei nachfolgenden Operationen (z.B Vergabe eines Passwortes) auf den gewünschten Eintrag beziehen. Wenn ein Schlüsselspeicher mehrere Schlüsselpaare enthält, spricht man sinnigerweise auch oft von einem Schlüsselbund (key ring) :-) .
  
 Vor dem nächsten Schritt muss man sich entscheiden, ob ein selbst-signiertes (self-signed) Zertifikat hergestellt werden soll, oder ob man sich sein Zertifikat von einer Zertifizierungsstelle beglaubigen lassen will. Vor dem nächsten Schritt muss man sich entscheiden, ob ein selbst-signiertes (self-signed) Zertifikat hergestellt werden soll, oder ob man sich sein Zertifikat von einer Zertifizierungsstelle beglaubigen lassen will.
Zeile 133: Zeile 133:
 Wir wollen uns aber in diesem Artikel auf die Zertifkate konzentrieren, die von der Uni FR CA ausgestellt werden.\\ Deshalb sieht die weitere Prozedur wie folgt aus: Wir wollen uns aber in diesem Artikel auf die Zertifkate konzentrieren, die von der Uni FR CA ausgestellt werden.\\ Deshalb sieht die weitere Prozedur wie folgt aus:
  
-  * In **Schritt 2** erzeugt man einen Zertifikatsantrag (certificate signing request, CSR), der neben dem öffentlichen Schlüssel die Daten aufnimmt, die ins Zertifikat übernommen werden sollen. Der CSR wird als separate PEM-Datei üblicherweise mit der Dateiendung .csr abgespeichert und an die Zertifizierungsstelle geschickt.+  * In **Schritt 2** erzeugt man einen Zertifikatsantrag (certificate signing request, CSR), der neben dem öffentlichen Schlüssel die Daten aufnimmt, die ins Zertifikat übernommen werden sollen. Der CSR wird als separate PEM-Datei üblicherweise mit der Dateiendung .csr abgespeichert und an die Zertifizierungsstelle geschickt. Bei der Beantragung eines persönlichen Zertifikates wird der CSR vom Browser implizit durchgeführt.
  
-  * **Schritt 3:** Die vorgelagerte Registrierungsstelle (hier die Uni FR RA) identifiziert den Antragsteller persönlich.+  * **Schritt 3:** Die vorgelagerte Registrierungsstelle (registration authority, hier die Uni FR RA) identifiziert den Antragsteller/die Antragstellerin, indem diese/persönlich dort erscheint und sich mit einem amtlichen Dokument ausweist.
  
   * **Schritt 4:** Nach erfolgter Identifizierung unterschreibt die RA den Zertifikatsantrag digital und löst damit die Herstellung des Zertifikates aus.   * **Schritt 4:** Nach erfolgter Identifizierung unterschreibt die RA den Zertifikatsantrag digital und löst damit die Herstellung des Zertifikates aus.
Zeile 156: Zeile 156:
 Das dürfte den Mitgliedern der Uni Freiburg sicher nicht schwer fallen ;-)  In der vorliegenden Public Key Infrastructure des DFN ist dies jedoch nicht nötig, denn es existiert eine "Vertrauenskette" über den DFN-Verein bis hoch zur Deutschen Telekom: Das dürfte den Mitgliedern der Uni Freiburg sicher nicht schwer fallen ;-)  In der vorliegenden Public Key Infrastructure des DFN ist dies jedoch nicht nötig, denn es existiert eine "Vertrauenskette" über den DFN-Verein bis hoch zur Deutschen Telekom:
  
-Das Zertifikat der Uni FR CA wurde ja ausgestellt von der Global CA des DFN und enthält somit eine digitale Signatur dieser Instanz. Also lässt sich die Vertrauenswürdigkeit des Uni FR CA - Zertifikates auf die des DFN-Zertifikates zurückführen.+Das Zertifikat der Uni FR CA wurde ja ausgestellt von der Global CA des DFN und enthält somit eine digitale Signatur dieser Instanz. Also lässt sich die Vertrauenswürdigkeit des Uni FR CA - Zertifikates auf die oben beschriebene Weise auf die des DFN-Zertifikates zurückführen.
  
 Letzteres wurde aber ausgestellt von der Zertifizierungsstelle der Deutschen Telekom, die dem Zertifikat ihre digitale Signatur mitgegeben hat. Also lässt sich die Vertrauenswürdigkeit des DFN-Zertifikates auf die des Telekom-Zertifikates zurückführen. Letzteres wurde aber ausgestellt von der Zertifizierungsstelle der Deutschen Telekom, die dem Zertifikat ihre digitale Signatur mitgegeben hat. Also lässt sich die Vertrauenswürdigkeit des DFN-Zertifikates auf die des Telekom-Zertifikates zurückführen.
Zeile 169: Zeile 169:
  
  
-<note important>**Man beachte:** Wenn der Server nicht die gesamte Vertrauenskette ausliefert bzw. ein Zwischenzertifikat beim Client fehlt, wird dieser mit einer Fehlermeldung reagieren und anmerken, dass er dem Zertifikat nicht vertraut. Hier hilf nur die genaue Analyse des empfangenen Zertifikates und des Zertifikatspeichers im Client.</note>+<note important>**Man beachte:** Wenn der Server nicht die gesamte Vertrauenskette ausliefert bzw. ein Zwischenzertifikat beim Client fehlt, wird dieser mit einer Fehlermeldung reagieren und anmerken, dass er dem Zertifikat nicht vertraut. Hier hilf nur die genaue Analyse des empfangenen Zertifikates und des Zertifikatspeichers im Client.\\ \\  
 +Viele Wurzelzertifikate werden bereits mit den Installationspaketen der Clients verteilt, weil die Herausgeber der Wurzelzertifikate den Herstellern der Clients gegenüber ihre Vertrauenswürdigkeit bewiesen haben. In diesem Fall müssen die Benutzer nicht einmal mehr dem Wurzelzertifikat gegenüber manuell ihr Vertrauen aussprechen bzw. werden vom Client nicht mehr danach gefragt. An der Notwendigkeit für die Server, die Zwischenzertifikate zu liefern, ändert sich damit jedoch nichts.</note>
  
 \\ \\
QR-Code
QR-Code Zertifikate - Grundlagen (erstellt für aktuelle Seite)