Certificates
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Nutze Trickest, um einfach Workflows zu erstellen und zu automatisieren, die von den fortschrittlichsten Community-Tools der Welt unterstützt werden. Erhalte heute Zugang:
Ein öffentliches Schlüsselzertifikat ist eine digitale ID, die in der Kryptographie verwendet wird, um zu beweisen, dass jemand einen öffentlichen Schlüssel besitzt. Es enthält die Details des Schlüssels, die Identität des Eigentümers (das Subjekt) und eine digitale Signatur von einer vertrauenswürdigen Autorität (dem Aussteller). Wenn die Software dem Aussteller vertraut und die Signatur gültig ist, ist eine sichere Kommunikation mit dem Eigentümer des Schlüssels möglich.
Zertifikate werden hauptsächlich von Zertifizierungsstellen (CAs) in einer Public-Key-Infrastruktur (PKI) ausgegeben. Eine andere Methode ist das Web of Trust, bei dem Benutzer die Schlüssel einander direkt verifizieren. Das gängige Format für Zertifikate ist X.509, das für spezifische Bedürfnisse gemäß RFC 5280 angepasst werden kann.
In x509-Zertifikaten spielen mehrere Felder eine entscheidende Rolle bei der Sicherstellung der Gültigkeit und Sicherheit des Zertifikats. Hier ist eine Übersicht über diese Felder:
Versionsnummer bezeichnet die Version des x509-Formats.
Seriennummer identifiziert das Zertifikat eindeutig innerhalb des Systems einer Zertifizierungsstelle (CA), hauptsächlich zur Rückverfolgung von Widerrufen.
Das Subjekt-Feld repräsentiert den Eigentümer des Zertifikats, der eine Maschine, eine Einzelperson oder eine Organisation sein kann. Es enthält detaillierte Identifikationsinformationen wie:
Common Name (CN): Domains, die durch das Zertifikat abgedeckt sind.
Land (C), Ort (L), Bundesland oder Provinz (ST, S oder P), Organisation (O) und Organisatorische Einheit (OU) bieten geografische und organisatorische Details.
Distinguished Name (DN) fasst die vollständige Subjektidentifikation zusammen.
Aussteller gibt an, wer das Zertifikat verifiziert und signiert hat, einschließlich ähnlicher Unterfelder wie das Subjekt für die CA.
Gültigkeitszeitraum wird durch die Zeitstempel Not Before und Not After markiert, um sicherzustellen, dass das Zertifikat nicht vor oder nach einem bestimmten Datum verwendet wird.
Der Abschnitt Öffentlicher Schlüssel, der entscheidend für die Sicherheit des Zertifikats ist, spezifiziert den Algorithmus, die Größe und andere technische Details des öffentlichen Schlüssels.
x509v3-Erweiterungen verbessern die Funktionalität des Zertifikats und spezifizieren Key Usage, Extended Key Usage, Subject Alternative Name und andere Eigenschaften, um die Anwendung des Zertifikats zu verfeinern.
Key Usage identifiziert kryptografische Anwendungen des öffentlichen Schlüssels, wie digitale Signatur oder Schlüsselausverschlüsselung.
Extended Key Usage schränkt die Anwendungsfälle des Zertifikats weiter ein, z.B. für die TLS-Serverauthentifizierung.
Subject Alternative Name und Basic Constraint definieren zusätzliche Hostnamen, die durch das Zertifikat abgedeckt sind, und ob es sich um ein CA- oder End-Entity-Zertifikat handelt.
Identifikatoren wie Subject Key Identifier und Authority Key Identifier gewährleisten die Einzigartigkeit und Rückverfolgbarkeit von Schlüsseln.
Authority Information Access und CRL Distribution Points bieten Wege zur Überprüfung der ausstellenden CA und zur Überprüfung des Widerrufsstatus des Zertifikats.
CT Precertificate SCTs bieten Transparenzprotokolle, die entscheidend für das öffentliche Vertrauen in das Zertifikat sind.
OCSP (RFC 2560) beinhaltet, dass ein Client und ein Responder zusammenarbeiten, um zu überprüfen, ob ein digitales Public-Key-Zertifikat widerrufen wurde, ohne die vollständige CRL herunterladen zu müssen. Diese Methode ist effizienter als die traditionelle CRL, die eine Liste von widerrufenen Zertifikat-Seriennummern bereitstellt, aber das Herunterladen einer potenziell großen Datei erfordert. CRLs können bis zu 512 Einträge enthalten. Weitere Details sind hier verfügbar.
Zertifikatstransparenz hilft, zertifikatsbezogene Bedrohungen zu bekämpfen, indem sichergestellt wird, dass die Ausstellung und Existenz von SSL-Zertifikaten für Domaininhaber, CAs und Benutzer sichtbar sind. Ihre Ziele sind:
Verhindern, dass CAs SSL-Zertifikate für eine Domain ohne das Wissen des Domaininhabers ausstellen.
Etablierung eines offenen Auditsystems zur Verfolgung fälschlicherweise oder böswillig ausgestellter Zertifikate.
Schutz der Benutzer vor betrügerischen Zertifikaten.
Zertifikatsprotokolle sind öffentlich prüfbare, nur anhängbare Aufzeichnungen von Zertifikaten, die von Netzwerkdiensten verwaltet werden. Diese Protokolle bieten kryptografische Nachweise für Prüfungszwecke. Sowohl Ausstellungseinrichtungen als auch die Öffentlichkeit können Zertifikate in diese Protokolle einreichen oder sie zur Verifizierung abfragen. Während die genaue Anzahl der Protokollserver nicht festgelegt ist, wird erwartet, dass sie weltweit weniger als tausend beträgt. Diese Server können unabhängig von CAs, ISPs oder jeder interessierten Entität verwaltet werden.
Um die Zertifikatstransparenzprotokolle für eine beliebige Domain zu durchsuchen, besuchen Sie https://crt.sh/.
Es gibt verschiedene Formate zur Speicherung von Zertifikaten, jedes mit eigenen Anwendungsfällen und Kompatibilität. Diese Zusammenfassung behandelt die Hauptformate und bietet Anleitungen zur Konvertierung zwischen ihnen.
Am weitesten verbreitetes Format für Zertifikate.
Erfordert separate Dateien für Zertifikate und private Schlüssel, kodiert in Base64 ASCII.
Häufige Erweiterungen: .cer, .crt, .pem, .key.
Hauptsächlich verwendet von Apache und ähnlichen Servern.
Ein binäres Format von Zertifikaten.
Fehlen die "BEGIN/END CERTIFICATE"-Anweisungen, die in PEM-Dateien zu finden sind.
Häufige Erweiterungen: .cer, .der.
Oft verwendet mit Java-Plattformen.
In Base64 ASCII gespeichert, mit den Erweiterungen .p7b oder .p7c.
Enthält nur Zertifikate und Kettenzertifikate, ohne den privaten Schlüssel.
Unterstützt von Microsoft Windows und Java Tomcat.
Ein binäres Format, das Serverzertifikate, Zwischenzertifikate und private Schlüssel in einer Datei kapselt.
Erweiterungen: .pfx, .p12.
Hauptsächlich auf Windows für den Import und Export von Zertifikaten verwendet.
PEM-Konvertierungen sind entscheidend für die Kompatibilität:
x509 zu PEM
PEM zu DER
DER zu PEM
PEM zu P7B
PKCS7 zu PEM
PFX-Konvertierungen sind entscheidend für die Verwaltung von Zertifikaten unter Windows:
PFX zu PEM
PFX zu PKCS#8 umfasst zwei Schritte:
PFX in PEM konvertieren
Konvertiere PEM zu PKCS8
P7B zu PFX erfordert ebenfalls zwei Befehle:
P7B in CER konvertieren
Konvertieren Sie CER und privaten Schlüssel in PFX
ASN.1 (DER/PEM) Bearbeitung (funktioniert mit Zertifikaten oder fast jeder anderen ASN.1 Struktur):
Klone asn1template
Konvertieren von DER/PEM in das Generierungsformat von OpenSSL
Bearbeiten Sie certificatename.tpl gemäß Ihren Anforderungen
Stellen Sie das modifizierte Zertifikat wieder her
Verwenden Sie Trickest, um einfach Workflows zu erstellen und zu automatisieren, die von den fortschrittlichsten Community-Tools der Welt unterstützt werden. Zugang heute erhalten:
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)