Wat is OCSP?

OCSP staat voor Online Certificate Status Protocol. Dit is een browser-protocol dat de geldigheid van een SSL certificaat controleert met behulp van een whitelist.

CRL
Standaard wordt deze geldigheid gecontroleerd met behulp van de Certificate Revocation List: een blacklist van de Certificate Authority waarop de CA alle certificaten plaatst die gerevoked zijn. Bij elk bezoek van een website met een certificaat dient de browser vervolgens een verzoek in bij de CA, waarop de CA de CRL terugstuurt. Vervolgens kan de browser controleren of het certificaat in kwestie voorkomt op de blacklist. Is dat het geval, dan kan de browser een foutmelding geven aan de gebruiker.

Het gebruik van een CRL komt wel met nadelen: de browser moet bij elk certificaat opnieuw de CRL opvragen, wat een zekere hoeveelheid verkeer oplevert naar de CA, des te meer als het gaat om een populaire website met veel verkeer. Dit kan zelfs zoveel verkeer opleveren dat het misbruikt kan worden voor een DDoS aanval. Maar mocht de CA niet bereikbaar zijn, dan kan er geen CRL worden teruggegeven die de controle toestaat en kan de browser er incorrect van uitgaan dat het certificaat te vertrouwen is. Daarnaast is het ook van belang dat de CA de CRL up to date houdt.

OCSP
OCSP werd bedacht als alternatief voor de CRL, en werkt met een whitelist in plaats van een blacklist. In plaats van de volledige blacklist op te vragen, stuurt de browser nu slechts het certificaat waarvan de status moet worden gecontroleerd. De CA stuurt de status van het certificaat terug naar de browser, die daarop kan handelen. Deze methode vraagt om veel minder dataverkeer naar de CA, en een veel compactere afhandeling in de browser, omdat er maar een kleine response status hoeft te worden uitgelezen. Daarnaast stuurt de browser de gebruiker niet automatisch door naar de website als er geen contact gemaakt kan worden met de CA: de gebruiker krijgt dan een foutmelding te zien.

Maar ook OCSP heeft zijn nadelen: de kans op overbelasting van het systeem van de CA is alsnog aanwezig, zij het kleiner. De request naar de CA verloopt ook altijd over HTTP, waardoor er ruimte is voor hackers om mee te kunnen luisteren. Ten slotte is het maar de vraag hoe veilig het is om een derde partij te betrekken bij de geldigheidscontrole van een certificaat, zelfs als die derde partij de CA is die het certificaat heeft uitgegeven.

OCSP Stapling
Bij OCSP Stapling is het niet de browser, maar de server waarop het certificaat staat die een OCSP request naar de CA stuurt. Dit doet hij regelmatig: zo blijft het resultaat altijd up to date. Vervolgens maakt de server het resultaat vast aan de SSL handshake die aangeroepen wordt als er verbinding gemaakt wordt met de server vanuit een browser. Dit heeft meerdere voordelen: er is minder verkeer nodig tussen de server en de browser, omdat het verzoek van de browser meteen wordt beantwoord met het terugkrijgen van de SSL handshake. Het OCSP verzoek naar de CA vanaf de server is ook een gesloten circuit, en het resultaat dat de server ontvangt moet altijd ondertekend zijn door de CA om geldig te zijn. Zo kan er geen misbruik van dit systeem worden gemaakt. Het resultaat wordt voor langere tijd vastgehouden, waardoor het stabieler is dan CRL of OCSP. Mocht de CA niet bereikbaar zijn, heeft de server dus alsnog een resultaat dat gebruikt kan worden ter verifi&eƫring van het certificaat. En wanneer de server dit resultaat niet terug kan geven aan de browser, kan er alsnog een normaal OCSP request worden uitgevoerd.

OCSP Stapling is een setting op uw webserver installatie. Het inschakelen van deze optie is afhankelijk van de software die draait op uw server. Raadpleeg de handleiding van uw softwarepakket om OCSP Stapling te configureren.

Gerelateerde blogartikelen
SSL en Verder: OCSP en OCSP Stapling