Blog: Massnahmen, um die Sicherheit von Zertifikaten zu verbessern

12.08.2015

Zertifikate dienen der Sicherheit, auch wenn es vereinzelt zu Missbrauch kommen kann. Es gibt jedoch Möglichkeiten, dem entgegenzuwirken.

Ein digitales Zertifikat ist die Bestätigung, dass ein bestimmter öffentlicher Schlüssel aus einem asymmetrischen Verschlüsselungsverfahren wirklich der Person oder Organisation gehört, die vorgibt, Besitzer des Schlüssels zu sein. Diese Bestätigung wird von einer Zertifikatsbehörde – auch CA („Certificate Authority“) genannt – ausgestellt und signiert.

Es geht um Identität, denn Zertifikate versichern Nutzern, dass die besuchte Webseite, wirklich die ist, die sie vorgibt zu sein und dass eine E-Mail auch wirklich von demjenigen kommt, der als Absender angezeigt wird. Damit reduzieren sie die Wahrscheinlichkeit von Phishing-Attacken und erhöhen die Sicherheit von Online-Interaktionen.

So ist die Nutzung von Zertifikaten ein guter Indikator für die Vertrauenswürdigkeit, zum Beispiel einer Webseite, da moderne Browser in der Regel in der Lage sind, gefälschte Zertifikate zu erkennen, egal ob diese SSL, TLS oder HTTPS nutzen.

Allerdings sind Zertifikate keine zu 100 Prozent fehlerfreie Lösung. Es kann gelegentlich dazu kommen, dass Zertifikate versehentlich ausgestellt werden oder eine Zertifizierung von einer kompromittierten oder bewusst betrügerisch agierenden CA vorgenommen wird.

Probleme durch gefälschte Zertifikate

In solchen Fällen signalisiert der Browser kein Problem, da die Zertifikate gültig sind. Das gibt Nutzern den falschen Eindruck dass die Website, die sie besuchen, „sicher“ sei, nämlich genau die Seite, die sie besuchen wollten. Da es derzeit keine effektive Möglichkeit gibt, CAs in Echtzeit zu prüfen, können falsche Zertifikate monatelang unerkannt bleiben.

Im März machte Google bekannt, dass die ägyptische Firma MCS Holdings verschiedene nicht-autorisierte Zertifikate für Google-Domains ausgestellt hatte. Mithilfe dieser Zertifikate hätte das Unternehmen Kommunikation zwischen Google und seinen Nutzern ausspähen können, allerdings betonte der Web-Gigant, dass es keine Anhaltspunkte für einen tatsächlichen Missbrauch der falsch ausgestellten Zertifikate gäbe.

Ein häufiger Grund für Fehlanwendungen von Zertifikaten sind menschliche Fehler, wenn CAs aus Versehen Zertifikate für möglicherweise betrügerische Webseiten ausstellen. Angreifer können diese Fehler ausnutzen und Angriffe initiieren. Da die Seiten, die sie nutzen, echt zu sein scheinen, ist es schwer, diese Angriffe zu verhindern und sie können erhebliche Folgen haben.

Wie kann ein Missbrauch von Zertifikaten verhindert werden?

Aber es gibt Wege, um den Missbrauch von Zertifikaten zu verhindern. Eine Möglichkeit ist das sogenannte „Certificate Pinning“, dabei verfügt der Browser über eine Liste, aus der er herauslesen kann, welche Zertifikate für welche Domains zugelassen sind.

Das dient dazu, dass nur die Zertifikate als vertrauenswürdig angezeigt werden, von denen der Betreiber einer bestimmten Webseite vorher bekannt gegeben hat, dass sie für seine Domain gültig sind. Bei diesem Ansatz müssen Nutzer allerdings darauf vertrauen, dass der Browser-Hersteller die Liste korrekt führt und ständig aktualisiert. Nicht alle Browser bieten diesen Dienst aber überhaupt an und es ist darüber hinaus fraglich, ob die Browser jemals alle möglichen Domains vollständig in ihren Listen führen können.

Eine weitere Option ist, dass der Serverbetreiber im DNS-Eintrag („Domain Name System“) bekannt gibt, welche Zertifikate für seine Domain gültig sind. Der Vorteil dieser Methode ist, dass sie nicht nur von Betreiber von Webseiten, sondern auch von E-Mail-Servern eingesetzt werden kann.

Allerdings ist DNS per se nicht sicher. Es stammt aus den 1980er Jahren, zu der Zeit war das Internet aber überhaupt nur einer sehr kleinen Community zugänglich, so dass Sicherheitsaspekte bei der Entwicklung nicht im Vordergrund standen (ebenso wie das bei FTP und E-Mail auch nicht der Fall war).

Jemand könnte sich zwischen den Client und den Serverbetreiber schalten und die Information, welches Zertifikat genutzt werden kann, fälschen (bekannt als „Cache Poisoning“ oder auch „Cache Spoofing“). Daher sollte der Serverbetreiber die Information über die gültigen Zertifikate zusätzlich signieren, was durch die Verwendung von DNSSEC („Domain Name System Security Extensions“) möglich ist.

Anwendungen wie Browser oder E-Mail-Systeme, die Informationen von einer Domain abrufen, können das DANE-Protokoll („DNS-based Authentication of Named Entities“) für die Abfrage nutzen. Allerdings ist das Protokoll noch nicht sehr verbreitet und wurde bisher nur bei einer relativ kleinen Anzahl von Webseiten und E-Mail-Servern implementiert.

Aber ich glaube, dass es ein effektiver Ansatz sein kann, um die Zertifikatssicherheit auf lange Sicht zu verbessern. Was halten Sie davon? Glauben Sie, dass DANE sich etablieren kann und falls nicht, warum?

Ich habe zwei Möglichkeiten vorgestellt, um die Zertifikatssicherheit zu verbessern. Haben Sie weitere Ideen, wie der Missbrauch von Zertifikaten verhindert werden könnte?

Diskutieren Sie auf LinkedIn mit mir!


von Marcel Mock, CTO, totemo ag