Behandelt OpenSSL jetzt automatisch CRLs (Certificate Revocation Lists)?

8

Im Referenzbuch, in dem ich arbeite ( Netzwerksicherheit mit OpenSSL , von Viega, Messier und Chandra), auf Seite 133, heißt es:

  

[...] Eine Anwendung muss CRL-Dateien laden, damit der interne Verifizierungsprozess sicherstellt, dass jedes verifizierte Zertifikat nicht widerrufen wird. Leider ist die CRL-Funktionalität von OpenSSL in Version 0.9.6 nicht vollständig. Die für die Verwendung von CRL-Informationen erforderlichen Funktionen sind in neuen Versionen ab 0.9.7 vollständig. [...]

Ich kann keine brauchbaren Informationen darüber in der OpenSSL-Dokumentation finden (keine Überraschung). Es scheint mir, dass die Überprüfung der CRLs ein automatischer Teil des OpenSSL-Verifizierungsprozesses sein sollte. Werden CRLs jetzt automatisch verarbeitet, oder muss ich noch den gesamten im Buch aufgelisteten Müll durchsuchen, um mühsam zu überprüfen, dass ein Zertifikat nicht widerrufen wurde?

Eine eng damit zusammenhängende Frage: Lädt die Funktion SSL_CTX_set_default_verify_paths auch CRL-Pfade?

    
Head Geek 08.12.2010, 16:43
quelle

2 Antworten

6

SSL_CTX_set_default_verify_paths() lädt nur CA-Pfade, keine CRLs.

Ich glaube (obwohl ich es selbst noch nicht implementiert habe), dass der richtige Prozess ist:

%Vor%     
caf 09.12.2010, 12:57
quelle
6

Die akzeptierte Antwort funktioniert in libssl v0.9.8o nicht ganz. Der Code stimmt zwar mit dem am Ende der Seite in den Online-Dokumenten vom 23.06.2011 überein:

Ссылка

Ich habe diesen Code verwendet:

%Vor%

Beachten Sie die Verwendung von X509_STORE anstelle von SSL_CTX, um den Parameter festzulegen.

BEARBEITEN: Eine weitere Sache, die bei OpenSSL und CRLs zu beachten ist. Wenn Sie eine CRL für einen Kontext aktivieren, wird jedes Zertifikat abgelehnt, für das die Zertifizierungsstelle keine CRL besitzt. Soweit ich weiß, gibt es keine Möglichkeit, OpenSSL dazu zu bringen, CRLs nur auf Zertifikate von CAs anzuwenden, die in den CRLs aufgeführt sind, die es hat.

Ich bin auf dieses Problem gestoßen und habe viel Zeit verschwendet, um herauszufinden, warum mein Zertifikat nicht akzeptiert wurde, wenn es absolut gültig war. Das Problem war, dass ich eine CRL für eine Zertifizierungsstelle, aber nicht für eine andere hinzugefügt hatte. Alle Zertifikate von der CA, die keine CRL hatten, wurden zurückgewiesen. OpenSSL ist alles oder nichts in dieser Hinsicht.

    
jcoffland 23.06.2011 19:50
quelle

Tags und Links