Erkennen von Zertifikatsfehlern

Beim sicheren Datenaustausch verlässt sich eine Webseite, die SSL/TLS verwendet, auf digitale Zertifikate, um die Identität des Webservers zu validieren und kryptographische Schlüssel auszutauschen.

Schwachstellenscanner können Zertifikatsinformationen sammeln und validieren, um mögliche Probleme zu erkennen. Zu wissen, welche Zertifikate im Einsatz sind und ob sie abgelaufen oder anderweitig problematisch sind, kann für einen Penetrationstester nützlich sein. Das Aufdecken veralteter Zertifikate weist oft auf andere administrative oder Support-Probleme hin, die ausnutzbar sein könnten.

Entdecken von Zertifikatsdetails

Digitale Zertifikate, die in SSL/TLS-Kommunikationen verwendet werden, sind eine öffentliche Ressource, die im Penetrationstest-Prozess hilfreich sein kann. Ein besonders nützliches Feld in einem digitalen Zertifikat aus der Perspektive der Informationsbeschaffung ist der Subject Alternative Name (SAN). SANs können spezifische Subdomains identifizieren, die vom Zertifikat abgedeckt werden. Organisationen verwenden SANs, um nicht für jede einzelne Ressource separate Zertifikate kaufen und verwenden zu müssen. Wenn vorhanden, können alle aufgelisteten SANs vom Team bewertet werden.

Einige Zertifikate verwenden jedoch einfach ein Wildcard-Zeichen (*) um anzugeben, dass alle Subdomains der übergeordneten Domain vom Zertifikat abgedeckt werden. In diesem Fall können eventuell keine spezifischen Ressourcen identifiziert werden. Bei der Verwendung eines Online-SSL-Checkers für comptia.org werden beispielsweise folgende Ergebnisse präsentiert:

  • Common Name: *.comptia.org
  • SANs: *.comptia.org, comptia.org
  • Organisation: THE COMPUTING TECHNOLOGY INDUSTRY ASSOCIATION, INC
  • Organisatorische Einheit: IS
  • Standort: Downers Grove, Illinois, US
  • Gültig von: 7. Januar 2020 bis 16. Februar 2022
  • Seriennummer: 0468fa119b7cbd956a91acbe6ea05b99
  • Signaturalgorithmus: sha256WithRSAEncryption
  • Aussteller: DigiCert SHA2 Secure Server CA

Zusätzlich zu SANs sollte das Team das Certificate Transparency (CT)-Framework untersuchen, bei dem es sich um Protokolle öffentlicher Zertifizierungsstellen (CAs) handelt, die für jeden zugänglich sind.

Diese Protokolle enthalten Informationen über die von einer CA ausgestellten Zertifikate für Domains und Subdomains. Dies ermöglicht es, Subdomains zu entdecken, die möglicherweise nicht mehr vom Zertifikat abgedeckt sind, aber weiterhin existieren. Beispielsweise könnte eine Organisation in der Vergangenheit einen spezifischen SAN verwendet haben, später aber zu einem Wildcard-Zertifikat gewechselt sein. Diese frühere Domain könnte in den CT-Protokollen der ausstellenden CA aufgeführt sein.

Bei einer Suche werden die Ergebnisse wie folgt angezeigt:

CT-Protokolle für comptia.org

Ein teilweiser Auszug der CT-Protokolle für comptia.org (Screenshot mit freundlicher Genehmigung von CompTIA).

In einigen Fällen kann das Zertifikat aus bestimmten Gründen ungültig sein und wird widerrufen. Untersuchen wir, wie dies geschehen kann.

Widerruf des Zertifikats

Das Zertifikat der CA ist ein grundlegendes Vertrauenselement zwischen Parteien während einer Online-Datenübertragung. Alle Webbrowser verfügen über eine Liste von Zertifizierungsstellen und Informationen darüber, ob ein Zertifikat gültig ist oder als ungültig oder widerrufen markiert wurde.

Zertifikate können aus verschiedenen Gründen widerrufen werden, beispielsweise wenn das ausstellende Unternehmen nicht mehr existiert, das Zertifikat abgelaufen ist oder der private Schlüssel der CA irgendwie kompromittiert wurde.

Wenn das Zertifikat als nicht vertrauenswürdig eingestuft wird, erhalten Sie höchstwahrscheinlich eine Fehlermeldung in Ihrem Browser. Wenn ich beispielsweise das Datum auf meinem Computer absichtlich auf den 2. März 2039 ändere und dann Google besuche, präsentiert der Browser diesen Fehler:

Warnung von Google

Warnung von Google (Screenshot mit freundlicher Genehmigung von Google).

Jedes Zertifikat enthält eine Seriennummer, die eine eindeutige Identifikation bietet. Beim Start einer Transaktion wird der Status des Zertifikats mit einer der folgenden Methoden überprüft:

  1. Certification Revocation List (CRL)
  2. Online Certificate Status Protocol (OCSP)

Die CRL ist eine Liste von Zertifikaten, die auf irgendeine Weise als ungültig eingestuft wurden. Obwohl die CRL effektiv ist, haben die meisten Online-Dienste auf das neuere OCSP umgestellt, um die Gültigkeit des Zertifikats zu überprüfen.

Dieser Prozess wird in der Grafik dargestellt:

Standard-OCSP-Prozess

Wenn ein Client zu einem Webserver geht, um eine Transaktion zu initiieren, erfolgt der folgende Prozess:

  1. Der Webserver sendet dem Client das Zertifikat.
  2. Der Client geht dann zum OCSP-Server, um die Gültigkeit des Zertifikats zu überprüfen.

Während dies ein gültiger Prozess ist, gibt es eine alternative Methode namens Certificate Stapling, die die Effizienz verbessert. Schauen wir uns an, warum dies effizienter ist.

Stapling des Zertifikats

Im Standardansatz zur Bestimmung der Gültigkeit eines Zertifikats liegt die Last beim Client, der den OCSP-Server kontaktieren muss, um die Gültigkeit des Zertifikats zu bestätigen.

Beim Stapling des Zertifikats kehrt sich diese Last um, sodass der Webserver das Zertifikat validieren muss, wie in der Grafik gezeigt:

OCSP-Prozess mit Stapling

Mit Certificate Stapling erfolgt beim Start einer Webserver-Transaktion der folgende Prozess:

  1. Der Webserver kontaktiert den OCSP-Server, um die Gültigkeit des Zertifikats zu überprüfen.
  2. Der Webserver sendet dann das validierte Zertifikat an den Client.

Da bei der Verwendung eines fehlerhaften digitalen Zertifikats Angriffe auftreten können, sollte das Team beurteilen, ob alle SSL/TLS-Zertifikate ordnungsgemäß signiert und sicher sind.


TLSZertifikateOCSPSecurityPenetrationTesting

Gehacktes-Overview