Wozu X.509 - Zertifikate

Wozu benötigen wir X.509 - Zertifikate? Zertifikate kommen bei SSL-verschlüsselten Webseitenaufrufen (https), beim digitalen Unterschrieben und Verschlüsseln von Daten, APPs und Treibern sowie bei Emails nach S/MIME-Standard zum Einsatz.

Sie stellen die Identität einer Person sicher (z. B. mit Anschrift, Email und Organisation) und sind so vergleichbar mit einem Personalausweis. X.509 spezifiziert dabei einen Bestandteil der "Public-Key-Infrastruktur". In der Regel werden Zertifikate von einer vertrauenswürdigen Zertifizierungsstelle CA (Certificate Authoriy) ausgestellt und verteilt oder gesperrt. Eine Liste aller CAs wird unter anderen bei den Webbrowsern oder vom Betriebsystem gepflegt, die damit die Gültigkeit von Webseiten oder APPs basierend auf dem Zertifikat bestätigen können. Zertifikate sind i.d.R. auf eine gewissse Laufzeit gebunden (z. B. 2 Jahre).

Heutezutage werden Zertifikate sehr stark für die Signatur (digitale Unterschrift) von Dokumenten, Webseiten und APPs verwendet. Viele haben schon nach dem Download und Start von APPs den Windows-UAC-Dialog gesehen, indem unter anderen der Hersteller genannt oder als unbekannt bezeichnet wird. Unbekannt bedeutet dabei, dass das Programm NICHT digital signiert wurde und somit der Hersteller nicht sicher festgestellt werden kann. APPs ohne digitale Signatur können somit Schadcode enthalten, ohne dass der Verursacher ausfindig gemacht werden kann. Anders sieht es bei digital signierten APPs aus, bei denen der Anwender i.d.R. den Hersteller eindeutig identifizieren und im Fall von Schadcode auch haftbar machen kann. Im Onlinezeitalter können auf diese Art und Weise auch Dokumente elektronisch unterschrieben werden. Im Rahmen der digitalen signatur wird über das Dokument oder APP ein Hashwert ermittelt, der das Dokument oder APP eindeutig kennzeichnet. und mittels eines Hashverfahrens auch gegen Veränderung geschützt werden. Das heißt, dass ein Dokument oder APP nach der Signatur nicht mehr geändert werden kann ohne die signatur ungültig zu machen. Ferner wird während der Signatur i.d.R. noch ein Zeitstempel eingebracht, der gleichfalls unveränderlich ist.

Die gesammte Sicherheit dabei liegt jedoch auf den Bestriebsysteminternen oder Browserinternen Zertifikatsaussteller, die für die Verifikation und Prüfung der Gültigkeit notwendig sind. Hier liegt auch der Gefahrenpunkt, dass sogenannte selbstsignierte Zertifikate über Webseiten oder APPs eingebracht und später von Windows als gültig ausgegegen werden. Alleine diese Gefahr setzt den grundsätzlich guten Sicherheitsgedanken von Zertifikate ausser Kraft. Dem Windowsnutzer wird aber nach wie vor vorgeaukelt, dass das System sicher ist und er als gültig signierte APPs bedenkenlos ausführen kann. Anbieter und Entwickler von Software müssen dafür den CAs für eine öffentlich gültige Signatur jährlich viel Geld bezahlen, damit Windows diese als gültig verifiziert anzeigt. Andere Hersteller und Entwickler umgehen das sinnlos kostspielige System und nutzen direkt kostenlos selbstsignierte Zertifikate. Sicherheit mit kostspieligen Zertifikaten bereichern nur die CAs und bringen dem Nutzer keinen Mehrwert. Zusammenfassend kann man über X.509 - Zertifikate sagen:

  • Sie stellen die Identität von Personen sicher
  • Sie werden zum digitalen Unterschreiben und Verifikation derselben genutzt
  • Sie kommen beim Schlüsselaustausch bei SSL-Verbindungen zum Einsatz
  • Sie sollen den Anwender vor schadhaften Webseiten oder APPs schützen
  • Sie sind im gewissen Rahmen und Einsatzgebieten kompromentierbar
  • Sie sind reine Software (kleine Datei), die mit einem Passwort vor unberechtigten Zugriff geschützt werden kann
  • Aus Sicherheitsgründen vor Zugriff und Vervielfältigung werden sie auch gerne auf Prozessor-Chipkarten abgelegt

Woher bekommt man ein X.509 - Zertifikat?

Zerifikate finden sich heute schon oft auf diversen Prozessor-Chipkarten, Personalausweis und werden von der Steuerbehörde zum Unterzeichnen der Steuererklärung (meist als kleine Datei) ausgegeben. Zertifikate können offiziell meist kostenpflichtig bei Certificate Authority's (CAs) für diverse Zwecke beantragt werden. Schlussendlich kann man sich mit entsprechender Software auch ein selbstsigniertes Zertifikat erstellen.

Selbstsignierte Zertifikate zum privaten Verschlüsseln und Signieren kann man beispielsweise mit der Freeware abylon SELFCERT erstellen. Für die meisten privaten Einsatzgebiete reichen kostenlose selbstsignierte Zertifikate aus. Alle anderen Modelle sind mit ihrem Einsatz auf einen engen Bereich beschränkt und / oder mit einer jährlichen Gebühr belegt.

Selbstsignierte X.509 - Zertifikate vs. kostenpflichtigen X.509 - Zertifikaten

Hier sollen kurz die Vor- und Nachteile von selbstsignierten Zertifikaten gegenüber öffentlichen und meist kostenpflichtigen Zertifikaten gezeigt werden.

  • Vorteile selbstsignierte Zertifikate:
    • Kostenlos bzw. keine jährlichen Gebühren
    • Laufzeit kann beliebig für viele Jahre definiert werden
    • Die RSA-Schlüsselstärken für Signatur und Verschlüsselung können sehr stark (z. B. 4096bit) definiert werden
    • Das Trustcenter (CA - Herrausgeber von öffentlichen Zertifikaten) ist nicht im Besitzt meines privaten Schlüssels
    • Ich kann die Personalisierung selber vornehmen
    • Ich kann selber den Verwendungszweck und Extensions festlegen

  • Vorteile öffentlicher Zertifikate von einer CA:
    • Werden von anderen Institutionen entsprechend ihres Zwecks annerkannt
      Zum Beispiel für Signaturen von APPs oder SSL Verbindungen
    • Folgt einem Zertifizierungspfad, dessen ROOT-Zertifikat i.d.R. allen Systemen bekannt ist
    • Können mittels Sperrlistenfunktion (Revocationlist) jederzeit vom Anbieter als ungültig erklärt werden - zum Beispiel bei missbrauch.

  • Nachteile selbstsignierter Zertifikate:
    • Werden NICHT ohne weiteres von anderen Institutionen annerkannt
    • Damit das Zertifikat vom System akzeptiert wird, muss das ROOT-Zertifikat manuell in die ROOT-Datenbank des Systems eingetragen werden
    • Kann z. B. über Webseiten oder APPs in die ROOT-Datenbank der Systeme verteilt werden. Dannach wird es vom System als gültig für andere damit signierte Objekte angezeigt und kann so sehr gut für Hacks verwendet werden.

  • Nachteile öffentlicher Zertifikate von einer CA:
    • Zertifikate unterliegen i.d.R. einer hohen jährlichen Gebühr
    • Laufzeit meist auf 1 oder 2 Jahre beschränkt - Neuantrag und Installation erforderlich
    • Das Trustcenter (CA - Herrausgeber von öffentlichen Zertifikaten) ist im Besitzt meines privaten Schlüssels
    • Die Schlüsselstärken sind meist auf RSA 2048bit beschränkt
    • Personalisierung nicht selber möglich - bei Fehler neue Gebühr fällig
    • Die Verwendungsmöglichkeiten / Extensions sind auf spezielle Einsatzgebiete beschränkt

Der Ansatz mit Hilfe von X.509 - Zertifikaten die Sicherheit für die Anwender zu erhöhen war gut. Leider wurde bei dem ganzen nie der Ansatz der Sicherheit wirklich schlüssig durchgezogen. Viel mehr stehen heute rein kommerzielle Intressen der Anbieter im Vordergrund, die auf gut Deutsch die Lizenz zum Geld drucken erhalten haben. Die Kosten / Gebühr für ein X.509 - Zertifikat stehen nicht mal ansatzweise zum Aufwand der Erstellung.

Einsatzmöglichkeiten und Unterschiede bei X.509 - Zertifikaten

Darauf wurde bereits schon weiter oben kurz eingegangen. Im Internet kommen verschiedene Protokollformen für die sichere Übertragung zum Einsatz. Im Grunde dient das X.509 - Zertifikat nur der digitalen Identifikation und damit der Möglichkeit digital Dokumente oder APPs zu unterschreiben (signieren) und / oder Datenübertragungen zu verschlüsseln. Hier ein paar Einsatzgebiete:

  • Verschlüsselte Datenübertragung im Internet über einen Browser mittels SSL (Secure Socket Layer). Eine verschlüsselte Verbindung im Browser erkennt man an dem 's' im http s: Viele Browser bieten hier auch die Möglichkeit, sich das Zertifikat der Webseite anzeigen zu lassen, indem vor der URL auf das Sicherheitssymbol geklickt wird. Intressiete können hier den Zertifizierungspfad einsehen und prüfen, ob es von einer offiziellen CA ausgesetllt wurde. Auf diesem Weg ist es Betrügern nicht so einfach, Kommunikationsdaten zwischen beispielsweise einem PC und einer BANK abzugreifen oder zu verändern. Wie oben bereits gesagt, ist das aber keine 100%ige Sicherheit, wenn der Betrüger sein selbstsigniertes Zertifikat für eine Fishing-Page nutzt.
  • Ein X.509 - Zertifikat kann auch für die Signatur und Verschlüsselung von Emails eingesetzt werden. Hier spricht man vom S/MIME - Protokoll. Leider hat sich dieses nie wirklich etabliert, weil es für die meisten Anwender einfach viel zu kompliziert ist. So muss die Emailadresse im Zertifikat beispielsweise exakt mit der Emailadresse des Absenders übereinstimmen. Wie oft wird eine Emailadresse neu angelegt, weil man beispielsweise gespamt wird! Das System ist für die Nutzer teuer, kompliziert und somit sinnlos.
  • Den besten geschäftlichen Ansatz für X.509 - Zertifikate schaffte Windows mit dem Zwang, bei 64bit Betriebsystemen die Treiber seitens der Hersteller signieren zu lassen. Diese sogenannten "Codesigning-Zertifikate" sind absolut unverschämt teuer und schaffen keine Sicherheit für den Anwender. Die folge für kleine Entwickler ist, dass diese sich die Gebühr nicht leisten können und ihre Arbeit einstellen. Das gleiche gilt auch für kostenlose Softwareangebote. Neben der erzwungenen Treibersignatur müssen / sollen die Entwickler auch ihre APPs alle mit Zertifikaten signieren.

Der Grundgedanke und auch stellenweise der Einsatz von Zertifikaten ist gut. Leider wird das ganze nur noch kommerziell ausgeschlachtet und dem Verbraucher als "sicher" verkauft. Die Sicherheit für einen Windows-PC wird damit nicht erhöht. Nicht zu letzt liegt es daran, dass viele Nutzer mit den Zertifikats-Bestätigungs-Dialogen unter Windows nichts anfangen können und im Normalfall einfach OK klicken. Es gibt Webseiten, die ihr selbstsigniertes Zertifikat beim Nutzer eintragen wollen und solange der Anwender "ABBRUCH" wählt, der Zertifikatsdialog immer und immer wieder erscheint, bis der Nutzer aufgibt und "OK" klickt.