Certificate Transparency is een systeem dat certificaatautoriteiten verplicht om nieuw uitgegeven SSL/TLS-certificaten in te dienen bij openbare, cryptografisch onderhouden logboeken. Deze logboeken creëren een append-only record van elk certificaat, waardoor het mogelijk is om CA's te controleren op foutieve uitgifte en potentieel frauduleuze certificaten snel op te sporen.
Hoe het werkt
Wanneer een CA een certificaat uitgeeft, maakt het eerst een precertificaat (een concept met een poison-uitbreiding) en dient dit in bij een CT-logboek. Het logboek retourneert een Signed Certificate Timestamp (SCT) — een cryptografische belofte om het certificaat binnen een bepaalde tijd op te nemen. De CA geeft vervolgens het uiteindelijke certificaat uit en moet bewijs van CT-opname (de SCT) aan browsers verstrekken.
Logboeken zelf zijn Merkle-bomen; deze wiskundige structuur betekent dat elk logboek dat verschillende gegevens aan verschillende mensen probeert te tonen, efficiënt kan worden gedetecteerd door boomwortels en consistentiebewijzen te vergelijken. Verificatie van certificaatopname gebeurt in logaritmische tijd — snel genoeg om TLS Handshakes niet te vertragen.
Vereisten voor browsers en CA's
Chrome vereist dat alle certificaten die na 30 april 2018 zijn uitgegeven, voorkomen in een CT-logboek. Firefox vereist CT-logboekopname voor certificaten die door CA's in Mozilla's Root CA Program zijn uitgegeven. De meeste moderne browsers hanteren vergelijkbare vereisten, waardoor CT-indiening voor elke CA die openbaar vertrouwde certificaten uitgeeft niet optioneel is.
TipCT-logboeken kunnen openbaar worden bevraagd — u kunt bestaande logboeken doorzoeken om te zien welke certificaten voor elk domein zijn uitgegeven, wat nuttig is voor beveiligingsbewaking en bedreigingsdetectie.
Certificate Transparency werd gestandaardiseerd in RFC 6962 (2013) en bijgewerkt in RFC 9162 (2021), hoewel alleen RFC 6962 in productie is geïmplementeerd.