OCSP-privacy: de responder ziet een certificaat, niet je URL
Een OCSP-verzoek identificeert een certificaat en een moment in de tijd, niet het pad van de pagina. Vastpinnen, caching en clientbeleid bepalen wie de controle waarneemt.
Een statuscontrole stelt één vraag over één certificaat, en het antwoord reist over zijn eigen verbinding. Hij bevat niet het pad van de pagina dat tot de controle leidde. Privacydiscussies behandelen de uitwisseling vaak als een feed uit de browsergeschiedenis, wat overschat wat het verzoek draagt en onderschat wat de responder kan waarnemen. Lees het verzoek voordat je bepaalt wat het onthult.
Het verzoek identificeert één certificaat
De OCSP-certificaatsidentificatie wordt opgebouwd uit een hashfunctie, twee hashes van de uitgever en het serienummer van het doelsertificaat, zoals gespecificeerd in RFC 6960. Elk veld wijst naar één certificaat, niet naar een URL of een HTTP-verzoek.
Het pad van de pagina, de querystring en eventuele formulierinhoud ontbreken in de standaardidentificatie. De bewering dat de responder de exacte URL ontvangt, vereist bewijs van elders dan uit de certificaatcontrole. Het verzoek noemt nog steeds een certificaat en een moment, en de responder kan weten welke dienst het presenteert.
Wat ontbreekt is de pagina, niet de hele context. Een certificaatcontrole plus een bekende dienst plus een herhaalde bron kunnen meer zeggen dan elk daarvan afzonderlijk.
Wat de responder werkelijk kan waarnemen
De responder ziet de verbinding die hem bereikt: bronadres, timing en alle transportmetadata die zijn implementatie vastlegt. Als het statusverzoek de VPN volgt, kan die bron de VPN-uitgang zijn in plaats van het toegangsnetwerk van de gebruiker. Ga er niet van uit dat het statusverzoek hetzelfde pad volgt als het paginaverzoek, alleen omdat beide bij één browsersessie horen.
Controleer het ondersteunde routeren en verificatiegedrag van de client in plaats van het uit één spoor af te leiden. Een gesplitste tunnel kan de twee verzoeken in verschillende richtingen sturen.
Een vastgepind antwoord is het andere gangbare patroon. De TLS-extensie status_request uit RFC 6066 laat een server een OCSP-antwoord aan zijn eigen handshake koppelen, zodat de client valideert wat hem is gegeven in plaats van zelf de status voor die verbinding op te halen. Die verschuiving verandert de waarnemer. De serverzijde haalt het op, en het eigen adres van de client bereikt de responder voor die verbinding nooit.
Status kan in de handshake vastgepind aankomen
Niets hiervan garandeert dat een client nooit nog een verificatieverzoek doet. Ketenopbouw, statusbeleid en ondersteunde mechanismen verschillen per implementatie.
Een certificaatviewer in één browser is geen beschrijving van elk besturingssysteem en elke VPN-client. Dezelfde netwerkopname kan onder verschillende verificatie-instellingen verschillende dingen betekenen.
Caching doorbreekt de aanname één pagina één opzoeking
Caching ontkoppelt paginaweergaven van opzoekingen. De browser kan een antwoord een tijd hergebruiken, dus één paginaweergave betekent niet één netwerkverzoek.
De tegenovergestelde fout is even gewoon. Een gecacht antwoord zegt niets over wanneer de volgende verversing plaatsvindt, en het verversingsschema kan losstaan van de pagina die wordt geopend. Gebruik de actuele documentatie van de client en het geldende verificatiebeleid voordat je een opname aan OCSP toeschrijft.
Een geldig statusantwoord moet voldoen aan de echtheids- en versheidsregels van de verificateur, en HTTP 200 is niet hetzelfde als een goede status. Een time-out is geen herroeping. Die uitkomsten leiden tot ander clientgedrag en mogen niet tot één fout worden samengevat.
Privacystappen die de validatie intact laten
Waar de opzoeking zelf gevoelig is, bespreek ondersteunde leverings- en cachingopties met de systeemeigenaar. Los het niet op door herroepingscontrole of ketenvalidatie uit te schakelen.
Een stiller spoor is geen veiliger verbinding. Houd peer-identiteit, ketenvalidatie en het beoogde herroepingsbeleid intact, en wijzig de leveringsroute alleen via een optie die de implementatie ondersteunt. Noteer welke optie is gekozen en wie ervoor verantwoordelijk is.
Wanneer een opzoeking onverwacht opduikt, benoem dan de ontvanger, de route en de certificaatbewerking afzonderlijk. Een download van de uitgever, een statusquery en het paginaverzoek zijn drie gebeurtenissen. Ze als één behandelen maakt de privacybeoordeling onnauwkeurig en verbergt welke partij werkelijk iets leerde. Begin bij de protocolvelden en werk naar buiten toe naar het netwerkpad.