none
[2008 R2] PKI - Gesperrte Zertifikate werden von Windows weiter akzeptiert, certutil zeigt diese aber korrekt als gesperrt RRS feed

  • Frage

  • Hallo!

    Ich habe eine zweistufige PKI mit einer offline Root-CA und einer Enterprise Sub-CA aufgesetzt. Die Zertifikatsperrlisten werden klassisch (*.crl, nur IIS) und mittels OCSP veröffentlicht. Laut pkiview sind beide CAs (und damit auch die Sperrlistenkonfigurationen) OK.

    Ich möchte noch anmerken, dass ich mich derzeit nur innerhalb der Domäne bewege (Zertifikatprüfungen von außerhalb spielen zunächst keine Rolle). Als Client kam ein Windows 7 Professional zum Einsatz.

    Jetzt habe ich über den IIS ein Domänenzertifikat (SSL) für einen Webserver und über den Zertifikatmanager ein Zertifikat für eine Smartcard-Anmeldung für einen einfachen Domänen-Benutzer erstellt. Beide werden korrekt verarbeitet und als gültig erkannt (SSL und Smartcard-Anmeldung funktioniert, laut certutil auch Sperrlistenprüfung und OCSP-Antwort OK). Die Zertifikate wurden nicht im AD veröffentlicht.

     

    Zu meinem Problem: Beide Zertifikate (Webserver und Smartcard) werden gesperrt und der Zertifikatsperrlisten-Cache mittels certutil (-urlcache) gelöscht. Öffne ich die Webseite dann im Internet Explorer (8) wird diese aber immernoch als gültig angezeigt. Ich habe in der Ereignisanzeige die CAPI2-Ereignisaufzeichnung aktiviert und in dieser wird das Zertifikat merkwürdigerweise als gültig angezeigt (Event ID 41). Ein Blick in die Details zeigt, dass die OCSP-Antwort NICHT aus der Location "Wire" oder "UrlCache" (diese hätte ich erwartet) sondern aus der Location "CertProp" bezogen wurde und diese das Zertifikat (noch) als gültig einstufte. Ein Test mit certutil oder einem alternativen Browser zeigte das Zertifikat sofort als gesperrt. Ich kann leider keine Informationen zu dieser "CertProp"-Location finden...

    Derzeitig nutze ich als Workaround eine Gruppenrichtlinie, in der ich die gesperrten Zertifikate zusätzlich in der Zertifikatspeicher für nicht vertrauenswürdige Zertifikate ausrolle. Damit wird die Webseite erfolgreich gesperrt. Gerade bei den Webseitenzertifikaten sollte aber auch OCSP funktionieren da nicht alle Clients in der Domäne sind.

    Nachtrag 1: Ich habe heruasgefunden, das der Cache nach einiger Zeit automatisch ungültig wird und das SSL-Zertifikat anschließend korrekt gesperrt wird. Könnte es sich um einen IE-eigenen Cache handeln? Ich habe bis jetzt auch noch keine Möglichkeit gefunden den Cache (wie bei einer Smartcard-Anmeldung s.u.) manuell zeitlich ungültig zu setzen.

    Schonmal vielen Dank für die Hilfe!

    Nachtrag 2: Auch bei der Smartcard-Anmeldung wurde der Sperrlisten-Cache gelöscht. Jedoch war eine Anmeldung trotz Sperrung möglich. Die Smartcard-Zertifikate werden von dem DC kontrolliert. In der CAPI2-Ereignisanzeige zeigen alle Sperrprüfungen (Event ID 41) das Zertifikat als NICHT gesperrt an. Ermittelt wird dies aus der Location "TvoCache".

    Dieser TvoCache (Time Valid Objects) kann mit dem Aufruf "certutil -setreg chain\ChainCacheResyncFiletime @now" zeitlich ungültig gemacht werden wodurch die Sperrliste für die nächste Zertifikatkontrolle wieder neu abgerufen wird. Die Smartcard-Anmeldung wurde anschließend erfolgreich blockiert.

     

    Grüße, Gabor

    Mittwoch, 25. August 2010 06:08

Alle Antworten

  • Nachdem ich noch etwas experimentiert möchte ich kurz meine Erkenntnisse zusammenfassen:

    Jeder Cache ist (logischerweise) zeitlich begrenzt sodass, nach Ablauf einer Frist, die Sperrlisten neu abgerufen werden. Wie lang dieser Zeitraum genau ist habe ich nicht herausbekommen (in meinem Fall wurden nach 24 Stunden die Sperrlisten neu abgerufen) er sollte jedoch nicht länger als die Ablaufzeit der Sperrlistengültigkeit sein ;)

    Das gesperrte Zertifikat über Gruppenrichtlinien auszurollen ist eine Möglichkeit die Sperrung schneller durchzusetzen wobei es hier wieder auf den Intervall ankommt an dem diese Gruppenrichtlinien bei den Clients angewandt werden. Außerdem funktioniert das nur für Domainmitgliedern.

    Alternativ kann man bei Anmelde-Zertifikaten (z.B. Smartcard) den Cache auf den Domaincontrollern "zurücksetzen" (certutil -setreg chain\ChainCacheResyncFiletime @now) wodurch eine Anmeldung mit gesperrten Zertifikaten sofort unterbunden wird.

    Alle Versuche, die Sperrung von SSL-Zertifikaten vor Ablauf der Cachegültigkeit beim IE8 durchzusetzen schlugen fehl.

    Grüße, Gabor

    Mittwoch, 25. August 2010 12:25