De meeste toepassingen die afhankelijk zijn van X.509-certificaten moeten de status valideren van de certificaten die worden gebruikt bij het uitvoeren van verificatie-, ondertekenings- of versleutelingsbewerkingen. Deze validiteits- en intrekkingscontrole wordt uitgevoerd op alle certificaten in een certificaatketen, tot en met het basiscertificaat. Als het basiscertificaat, of een ander certificaat in de keten, ongeldig is, zijn de certificaten onder het ongeldige certificaat in de keten ook ongeldig.

Bij de validatie wordt gecontroleerd of het volgende van toepassing is:

  • De handtekening van alle certificaten is geldig.

  • De huidige datum en tijd vallen binnen de geldigheidsduur van elk certificaat.

  • Geen enkel certificaat is beschadigd of heeft een onjuiste indeling.

Bovendien wordt de intrekkingsstatus van elk certificaat in de keten gecontroleerd. De intrekkingscontrole kan worden uitgevoerd met behulp van een CRL (certificaatintrekkingslijst) of OCSP-antwoord (onlinecertificaatstatusprotocol).

Wat is OCSP?

De Microsoft Onlineresponder implementeert het OCSP-protocol, dat ontvangers van een certificaat in staat stelt een certificaatstatusaanvraag in te dienen bij een OCSP-beantwoorder met behulp van HTTP (Hypertext Transfer Protocol). Deze OCSP-beantwoorder retourneert een definitief, digitaal ondertekend antwoord met de certificaatstatus. De hoeveelheid gegevens die per aanvraag wordt opgehaald is constant, ongeacht het aantal ingetrokken certificaten in de CA.

Zie RFC 2560, 'X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP' (https://go.microsoft.com/fwlink/?LinkID=71068) voor meer informatie. (De pagina is mogelijk Engelstalig.)

Onlineresponder

De Microsoft-implementatie van OCSP (de onlineresponder) bestaat uit client- en serveronderdelen. Het clientonderdeel wordt ingebouwd in de CryptoAPI 2.0-bibliotheek, terwijl het serveronderdeel wordt geïntroduceerd als een nieuwe service die wordt geleverd door de AD CS-serverrol (Active Directory Certificate Services). Het volgende proces beschrijft hoe de client- en serveronderdelen samenwerken:

  1. Wanneer een toepassing probeert een certificaat te controleren dat locaties opgeeft aan OCSP-beantwoorders, zoekt het clientonderdeel eerst in het lokale geheugen en de schijfcachegeheugens om een opgeslagen OCSP-antwoord te zoeken dat de huidige intrekkingsgegevens bevat.

  2. Als er geen acceptabel antwoord wordt gevonden in de cachegeheugens, wordt er een aanvraag verzonden naar een onlineresponder met behulp van het HTTP-protocol.

  3. De onlineresponderwebproxy decodeert en controleert de aanvraag. Als de aanvraag geldig is, wordt de webproxycache gecontroleerd op de intrekkingsinformatie waarom wordt gevraagd. Als er geen actuele informatie beschikbaar is in de cache, wordt de aanvraag doorgestuurd naar de onlineresponderservice.

  4. De onlineresponderservice ontvangt de aanvraag en controleert een lokale CRL, indien beschikbaar, en een in de cache opgeslagen kopie van de meest recente CRL die door de CA is uitgegeven.

  5. Als het certificaat niet aanwezig is in de lokale of in de cache geplaatste intrekkingslijsten, haalt de intrekkingsprovider een bijgewerkte CA CRL op, indien beschikbaar, van de locaties die worden vermeld in de intrekkingsconfiguratie om de status van het certificaat te controleren. De provider retourneert vervolgens de status van het certificaat naar de Onlineresponder-service.

  6. De webproxy codeert het antwoord vervolgens en retourneert het naar de client om deze ervan op de hoogte te stellen dat het certificaat geldig is. Er wordt gedurende een beperkte periode ook een kopie van het antwoord opgeslagen in de cache voor het geval dat er nog meer statusaanvragen over dit certificaat worden ingediend.