Wie kann ich das HKPS-Zertifikat von sks-keyservers überprüfen?

442
CBlew

Ich versuche zu verstehen, wie PGP sicher verwendet werden soll, aber kohärente und hilfreiche Informationen zu diesem Thema sind überraschend schwer zu finden.

Daher stellen SKS-Keyserver ihr HKPS-Zertifikat zusammen mit diesen Informationen bereit :

  1. Link zum Herunterladen des Zertifikats
  2. OpenPGP Signatur - Download - Link
  3. CRL-Download- Link (Zertifikatssperrliste ??)
  4. Fingerabdruck des Zertifikats: 79:1B:27:A3:8E:66:7F:80:27:81:4D:4E:68:E7:C4:78:A4:5D:5A:17
  5. X509v3 Betreffschlüsselkennung: E4 C3 2A 09 14 67 D8 4D 52 12 4E 93 3C 13 E8 A0 8D DA B6 F3

Alles, was ich auf meiner Seite habe, ist ein gpg (GnuPG) 2.2.10Internetzugang.

Meine Fragen sind:

  • Wie soll jede Information verwendet werden?
  • Wie finde ich heraus, welchen öffentlichen Schlüssel ich separat von einem Keyserver herunterladen sollte (damit ich ihrer Website nicht allein traue)?
1

1 Antwort auf die Frage

0
grawity

Beachten Sie zunächst, dass Sie den gesamten Prozess vollständig überspringen können, da das CA-Zertifikat des SKS-Pools mit aktuellen GnuPG-Distributionen gebündelt ist - normalerweise unter /usr/share/gnupg/sks-keyservers.netCA.pem.

Beachten Sie zweitens, dass die Verwendung von HKPS die vom Pool gehaltenen Daten nicht authentifiziert . Dies ist nur eine Datenschutzmaßnahme (um zu verhindern, dass der gesamte Schlüsselring von --refresh-keys enthüllt wird). Die tatsächlichen PGP-Schlüsselblöcke, die von den Keyservern abgerufen werden, müssen jedoch auf dieselbe Weise überprüft werden, wie Sie es immer tun würden. Das heißt, Sie müssen immer noch den Fingerabdruck jedes importierten Schlüssels überprüfen oder sich auf Web-of-Trust oder GnuPGs tofu.db verlassen.

Also wenn es darum geht:

Wie finde ich heraus, welchen öffentlichen Schlüssel ich separat von einem Keyserver herunterladen sollte (damit ich ihrer Website nicht allein traue)?

Wenn jemand die Website kompromittiert haben könnte, um ein gefälschtes CA.pem hochzuladen, könnte er genauso gut eine gefälschte CA.pem.asc-Signatur hochgeladen haben. Wenn jemand einen gefälschten öffentlichen Schlüssel in die Website eingefügt haben könnte, könnte er denselben Schlüssel auf Keyserver hochgeladen haben.

Mit anderen Worten: Das Herunterladen eines Schlüssels von einem Keyserver bietet keine zusätzliche Sicherheit. Der Keyserver hindert niemanden daran, gefälschte Schlüssel mit demselben Namen und derselben E-Mail hochzuladen. Alles läuft noch darauf hinaus, den Fingerabdruck des Schlüssels oder das Web-of-Trust-Verfahren zu überprüfen. Wenn Sie keinen Fingerabdruck zur Verifizierung haben, erhalten Sie möglicherweise einen, indem Sie den Eigentümer fragen.

(Um zu wissen, welche Person den SKS-Pool verwaltet, würde ich sagen, dass technische Mittel nicht ausreichen. Mein Ansatz wäre, Informationen aus verschiedenen Quellen zu sammeln, z. B. andere Leute zu fragen oder web.archive.org zu überprüfen oder im GnuPG-IRC nachzufragen channel (wenn Sie im IRC auf Randoms vertrauen). Wenn Sie überall die gleiche Person "Kristian Fiskerstrand" sehen, ist dies wahrscheinlich die richtige Person.)

Wenn Sie nicht über irgendeine Form Kontakt von bereits existierenden mit der Eigentümer der Website, die einzige Möglichkeit ist, zu vertrauen, dass die Website, die Sie legitime Informationen dient. (Glücklicherweise wird Ihre Verbindung mit HTTPS und WebPKI authentifiziert, sodass Sie die meisten MITM-Angriffe ausschließen können und nur Server-Kompromisse zulassen.)

Sie können möglicherweise verschiedene Momentaufnahmen der Website unter web.archive.org überprüfen (um zu sehen, ob derselbe Schlüssel in den letzten Monaten oder Jahren vorhanden ist).

Wie soll jede Information verwendet werden?

Der Fingerabdruck und / oder der SPKI-Hash des Zertifikats haben praktisch den gleichen Zweck wie wenn Websites neben Downloads reine SHA1-Hashes anbieten. (Tatsächlich ist der Fingerabdruck lediglich ein SHA1-Hash des Zertifikats minus seiner Base64-Kodierung.) Sie können sie verwenden, wenn Sie der Website vertrauen ... aber dann ist er meistens überflüssig, da Sie das CA-Zertifikat selbst von derselben Website erhalten haben. Es kann jedoch einige versehentliche Fehler verhindern.

So zeigen Sie den Fingerabdruck des Zertifikats (SHA1) an:

openssl x509 -in $file -noout -fingerprint -sha1 certtool --fingerprint < $file cat $file | sed "/^-/d" | base64 -d | sha1sum 

Beim Anzeigen der X.509v3- Betreffschlüsselkennung muss auf den Unterschied zwischen der Berechnung des SPKI-Hashwerts (wie unter "Weitere Informationen") und der Betrachtung des in X.509-Erweiterungen (wie unter "Erweiterungen") eingebetteten Wertes geachtet werden:

certtool -i < $file | grep -C3 "Public Key ID" 

Die Zertifikatsperrliste (Certificate Revocation List, Zertifikatsperrliste) wird von GnuPGs dirmngr verwendet, um sicherzustellen, dass gefährdete Keyserver-Zertifikate erst nach ihrem Ablauf wieder verwendet werden können. Die CRL wird von der Zertifizierungsstelle signiert und ich denke, dass dirmngr diese automatisch herunterlädt und aktualisiert, so dass dies nicht erforderlich ist.

Die Signatur wird vom Inhaber der Website erstellt und kann zur Überprüfung der CA.pem-Datei verwendet werden, wenn Sie bereits andere Überprüfungsmöglichkeiten für den PGP-Schlüssel des Inhabers haben. Nur das Herunterladen von derselben Website bringt nicht viel.

So überprüfen Sie die Signatur:

gpg --verify sks-keyservers.netCA.pem.asc 
Zunächst einmal vielen Dank für diese informative Antwort. Ich verstehe, dass das meiste, worum ich frage, nicht gebraucht wird, aber ich möchte es trotzdem für meine eigene Ausbildung wissen. Ich habe nur eine Anschlussfrage: Wie genau kann ich mein heruntergeladenes Zertifikat mit dem Fingerabdruck und der auf der Website bereitgestellten SKI überprüfen? CBlew vor 6 Jahren 0