OCSP häftning
Online Certificate Status Protocol), formellt känd som TLS Certificate Status Request- tillägget, är en standard för att kontrollera återkallelsestatus för X.509 digitala certifikat . Det gör det möjligt för den som presenterar ett certifikat att stå för resurskostnaden för att tillhandahålla OCSP-svar ( Online Certificate Status Protocol) genom att lägga till ("häfta") ett tidsstämplat OCSP-svar undertecknat av CA till det initiala TLS-handslaget , vilket eliminerar behovet av kunder att kontakta CA, i syfte att förbättra både säkerhet och prestanda.
Motivering
Den ursprungliga OCSP- implementeringen har ett antal problem.
För det första kan det innebära en betydande kostnad för certifikatutfärdarna (CA) eftersom det kräver att de tillhandahåller svar till varje klient av ett givet certifikat i realtid. Till exempel, när ett certifikat utfärdas till en webbplats med hög trafik, kommer certifikatutfärdares servrar sannolikt att drabbas av enorma volymer OCSP-förfrågningar som frågar efter certifikatets giltighet.
Dessutom kan OCSP-kontroll eventuellt försämra användarnas integritet och bromsa surfandet, eftersom det kräver att klienten kontaktar en tredje part (CA) för att bekräfta giltigheten av varje certifikat som den stöter på.
Dessutom, om klienten misslyckas med att ansluta till CA för ett OCSP-svar, tvingas den att bestämma mellan: (a) att fortsätta anslutningen ändå; besegra syftet med OCSP eller (b) avsluta anslutningen baserat på antagandet att det finns en attack; men som kan resultera i överdrivna falska varningar och blockeringar.
OCSP-häftning syftar till att lösa dessa problem med den ursprungliga OCSP-implementeringen.
Lösning
OCSP-häftning löser båda problemen på ett sätt som påminner om Kerberos-biljetten . I ett häftscenario frågar certifikatinnehavaren själv OCSP-servern med jämna mellanrum och erhåller ett signerat tidsstämplat OCSP-svar. När webbplatsens besökare försöker ansluta till webbplatsen inkluderas detta svar ("häftat") med TLS/SSL-handskakningen via Certificate Status Request-tilläggssvaret (observera: TLS-klienten måste uttryckligen inkludera ett Certificate Status Request-tillägg i sin ClientHello TLS/SSL-handskakningsmeddelande).
Även om det kan tyckas att om du låter webbplatsoperatören kontrollera verifieringssvar skulle det tillåta en bedräglig webbplats att utfärda falsk verifiering för ett återkallat certifikat, men de häftade svaren kan inte förfalskas eftersom de måste signeras direkt av certifikatutfärdaren, inte servern . Om klienten inte får ett häftat svar kommer den bara att kontakta OCSP-servern själv. Men om klienten får ett ogiltigt häftat svar kommer den att avbryta anslutningen. Den enda ökade risken för OCSP-häftning är att meddelandet om återkallelse för ett certifikat kan försenas tills det senast undertecknade OCSP-svaret löper ut.
Som ett resultat av detta fortsätter klienter att ha verifierbar försäkran från certifikatutfärdaren att certifikatet för närvarande är giltigt (eller var ganska nyligen), men behöver inte längre kontakta OCSP-servern individuellt. Det innebär att huvuddelen av resursbördan nu återläggs på certifikatinnehavaren. Det betyder också att klientprogramvaran inte längre behöver avslöja användarnas surfvanor för någon tredje part.
Den övergripande prestandan förbättras också: När klienten hämtar OCSP-svaret direkt från CA, innebär det vanligtvis att man söker upp domännamnet för CA:s OCSP-server i DNS samt upprättar en anslutning till OCSP-servern. När OCSP-häftning används levereras certifikatstatusinformationen till klienten via en redan etablerad kanal, vilket minskar omkostnader och förbättrar prestandan.
Specifikation
Tillägget TLS-certifikatstatusbegäran specificeras i RFC 6066 , avsnitt 8.
RFC 6961 definierar en förlängning av statusbegäran för flera certifikat, som tillåter en server att skicka flera OCSP-svar i TLS-handskakningen.
Ett utkast till förslag för ett X509v3-tilläggsfält, som löpte ut i april 2013, specificerade att en kompatibel server som presenterar ett certifikat som bär tillägget måste returnera en giltig OCSP-token i sitt svar om status_request-tillägget anges i TLS-klienten hej. Den nuvarande versionen av förslaget har utökats för att stödja ytterligare TLS-tillägg. TLS-utvecklaren Adam Langley diskuterade tillägget i en artikel från april 2014 efter reparationen av Heartbleed OpenSSL-felet.
Spridning
OCSP-häftningsstöd implementeras successivt. OpenSSL - projektet inkluderade stöd i deras 0.9.8g-version med hjälp av ett anslag från Mozilla Foundation .
Apache HTTP Server stöder OCSP-häftning sedan version 2.3.3, nginx- webbservern sedan version 1.3.7, LiteSpeed Web Server sedan version 4.2.4, Microsofts IIS sedan Windows Server 2008 , HAProxy sedan version 1.5.0, F5 Networks BIG-IP sedan version 11.6.0, KEMP LoadMasters sedan version 7.2.37.1 och lighttpd sedan version 1.4.56.
Medan många webbservrar annonserar stöd för OCSP-häftning är implementeringar inte alltid tillförlitliga. Till exempel, när Apache frågar OCSP-servern, i händelse av ett tillfälligt fel, kommer den att kassera det cachade bra svaret från den tidigare begäran och börja visa dåligt svar. Nginx utför lat laddning av OCSP-svar, vilket innebär att den för de första webbförfrågningarna inte kan lägga till OCSP-svaret.
På webbläsarsidan implementerades OCSP-häftning i Firefox 26, i Internet Explorer sedan Windows Vista och Google Chrome i Linux, ChromeOS och Windows sedan Vista.
För SMTP stöder Exim- meddelandeöverföringsagenten OCSP-häftning i både klient- och serverläge.
Begränsningar
OCSP-häftning är utformad för att minska kostnaden för en OCSP-validering, både för klienten och OCSP-svararen, särskilt för stora webbplatser som betjänar många samtidiga användare. OCSP-häftning stöder dock endast ett OCSP-svar åt gången, vilket är otillräckligt för certifikatkedjor med mellanliggande CA-certifikat.
Denna begränsning har åtgärdats av Multiple Certificate Status Request Extension, specificerad i RFC 6961 . Det lägger till stöd för att skicka flera OCSP-svar.
TLSv1.3 tar automatiskt bort denna begränsning, vilket gör webbläsarstöd för RFC 6961 omöjligt, eftersom fler och fler webbservrar tappar stödet för TLS 1.2. Under TLS 1.2 kan endast ett häftat svar skickas av en server, OCSP-svaret som är kopplat till slutcertifikatet. Under TLS 1.3 kan en server skicka flera OCSP-svar, vanligtvis ett för varje certifikat i certifikatkedjan.