OCSP stapling uitgelegd: hoe controleer je of een SSL-certificaat nog geldig is?

Alles wat een begin heeft, heeft ook een eind. Voor een SSL-certificaat is dat niets anders. Bij het aanmaken van zo’n certificaat staat de geldigheidsduur vast. Maar wat als voor het verstrijken van de einddatum er een probleem is met het certificaat? Hoe communiceer je dat naar webbrowsers? Met OCSP stapling!

Met behulp van OCSP stapling de geldigheid van een certificaat controleren

UPDATE
Sinds 11 april 2017 hebben alle domeinnamen, subdomeinen, aliassen en pointers bij Antagonist gratis SSL en HTTP/2 gekregen. Dit geldt voor iedere klant, ongeacht hun webhostingpakket, inclusief Resellers. Lees hier meer!

Allereerst kan de geldigheidsduur van een certificaat verschillen. Er zijn certificaten met een geldigheidsduur van bijvoorbeeld drie jaar, maar ook met een geldigheidsduur van drie maanden. Een voordeel van een lange geldigheidsduur is natuurlijk dat je er al die tijd niet meer naar om hoeft te kijken. Maar wat als je op een gegeven moment niet wilt dat het certificaat nog langer geldig is? Bijvoorbeeld, doordat iemand anders de private key in handen heeft gekregen of omdat het domein van eigenaar verandert? Je wilt dan een certificaat intrekken.

Hoe trek je een certificaat in?

Als je jouw certificaat van je domein verwijdert, dan is deze natuurlijk weg. Echter, in het geval dat iemand anders jouw certificaat heeft weten te bemachtigen, is dat natuurlijk geen optie. Je wilt dan dat het certificaat niet meer geldig is. Je moet dus op een of andere manier aan de wereld laten weten dat je certificaat niet meer te vertrouwen is. Gelukkig bestaan hiervoor verschillende opties, waaronder:

  • Certifcate Revocation List (CRL);
  • Online Certificate Status Protocol (OCSP).

1. Certificate Revocation List (CRL)

Een Certificate Revocation List (CRL) is een lijst met ingetrokken certificaten. Deze lijst wordt bijgehouden door de uitgever van het certificaat. Als je browser dus een certificaat ziet, dan kan hij de CRL van de uitgever downloaden en zo controleren of het certificaat nog geldig is.

OCSP stapling: een teruggetrokken SSL-certificaat

Een CRL werkt dus met het principe van een zwarte lijst. Sta je niet op de lijst, dan is het in orde. Er zijn twee problemen met dit systeem:

  1. zo’n CRL kan best groot worden, wat betekent dat je browser dan dus erg veel moet downloaden, voor hij kan bepalen of een certificaat te vertrouwen is;
  2. wat moet je doen als de lijst (tijdelijk) niet beschikbaar is? Gok je dan maar dat hij niet op de lijst staat en vertrouw je er blind op? Of markeer je dan alle certificaten van die uitgever als onveilig?

Misschien kunnen we daarom beter kijken naar een alternatief voor CRL’s.

2. Online Certificate Status Protocol (OCSP)

Online Certificate Status Protocol (OCSP) werkt net iets anders. Wanneer je browser het certificaat heeft ontvangen, vraagt hij niet een volledige lijst op met ingetrokken certificaten aan de uitgever. In plaats daarvan vraagt hij simpelweg wat de status is van het betreffende certificaat. Omdat het hierbij om veel minder data gaat, is dit dus veel sneller dan een CRL. Hiermee is het eerstgenoemde probleem van CRL grotendeels opgelost, de snelheid is acceptabel.

OCSP werkt niet met het principe van een zwarte lijst, maar met die van een witte. In het certificaat staat dat er altijd een geldige status bij hoort. Mist deze status, dan is het certificaat niet geldig. Dit maakt het voor aanvallers moeilijker. De beschikbaarheid van de uitgever blijft echter wel een probleem en daarnaast is er een privacyprobleem geïntroduceerd: de uitgever van certificaten kan precies bijhouden welke websites je allemaal bezoekt. Je vraagt immers voor elk certificaat de status op. We zitten op de goede weg, maar we zijn er dus nog niet helemaal.

3. OCSP stapling

OCSP stapling is een manier, waarop de OCSP-informatie meteen meegegeven wordt met het certificaat. Het werkt als volgt. De webserver vraagt periodiek voor elk certificaat bij de uitgever de status op en slaat deze op. De status is vaak meerdere dagen geldig, dus als de uitgever een keer niet reageert, kan de al ontvangen status gewoon gebruikt blijven worden. Wanneer vervolgens je browser het certificaat van een website opvraagt, krijgt deze het certificaat toegestuurd met daar aan ‘vastgeniet’ (‘stapling’ betekent ‘nieten’) de status van het certificaat.

OCSP stapling uitgelegd: hoe controleer je of een SSL-certificaat nog geldig is?

Dit lost alle problemen die OCSP zonder stapling heeft op, namelijk:

  • de snelheid is nog beter. Er is een hele kleine extra hoeveelheid data die met het certificaat wordt teruggestuurd, maar dat is niet noemenswaardig;
  • daarnaast is de beschikbaarheid van de uitgever niet meer belangrijk. Tenzij deze meerdere dagen onbereikbaar zou zijn, maar dat is zeer onwaarschijnlijk;
  • ook is het privacyaspect niet meer aanwezig, omdat je browser geen contact meer legt met de uitgever, maar de webserver.

OCSP stapling is de beste keus

Uit bovenstaand verhaal blijkt duidelijk dat OCSP stapling de beste keus is om te controleren of een certificaat nog geldig is. Daarom hebben we bij Antagonist er ook voor gekozen om onze servers net dat kleine beetje extra werk te laten verrichten, zodat het geheel sneller wordt. Het mooie, jij als klant zijnde hoeft daar dus verder niets voor te doen 🙂

Webhosting + Domein + Gratis SSL →

P.S. Wil je op de hoogte blijven van alle artikelen, updates, tips en trucs die verschijnen op ons blog? Dat kan! Rechts bovenin via RSS, e-mail, het liken op Facebook, het +1’en op Google+ of het volgen op Twitter.

Deel Tweet +1 Deel