Vad fäster certifikatet?
Certifikatfästning är en säkerhetsteknik där endast auktoriserade eller fästa certifikat accepteras när en säker session upprättas. Alla försök att upprätta en säker session med ett annat certifikat avvisas.
Historik för fästning av certifikat
Certifikats pinning utformades ursprungligen som ett sätt att förhindra Man-in-the-Middle-attacker (MITM). Certifikat fästa först blev populärt i 2011 som ett resultat av DigiNotar Certifikatutfärdare (CA) kompromiss, där en angripare kunde skapa jokertecken certifikat för flera högprofilerade webbplatser inklusive Google. Chrome uppdaterades för att "fästa" de aktuella certifikaten för Googles webbplatser och skulle avvisa alla anslutningar om ett annat certifikat visades. Även om en angripare hittade ett sätt att övertyga en certifikatutfärdare att utfärda ett bedrägligt certifikat, skulle det fortfarande erkännas av Chrome som ogiltigt och anslutningen avvisades.
Även om webbläsare som Chrome och Firefox var bland de första programmen för att implementera den här tekniken, expanderade utbudet av användningsfall snabbt. IoT-enheter (Internet of Things), iOS- och Android-mobilappar och en mängd olika program började använda den här tekniken för att försvara sig mot Man-in-the-Middle-attacker.
Under flera år betraktades certifikatpinnesning som en bra säkerhetspraxis. Tillsynen över PKI-landskapet (Public Key Infrastructure) har förbättrats med insyn i utfärdandemetoder för offentligt betrodda certifikatutfärdare.
Så här åtgärdar du certifikats pinning i ditt program
Vanligtvis innehåller ett program en lista över auktoriserade certifikat eller egenskaper för certifikat, inklusive Unika namn för certifikatmottagare, tumavtryck, serienummer och offentliga nycklar. Program kan fästas mot enskilda löv- eller slutentitetscertifikat, underordnade CA-certifikat eller till och med rotcertifikatutfärdarcertifikat.
Om programmet uttryckligen anger en lista över godkända certifikatutfärdare kan du regelbundet behöva uppdatera fästa certifikat när certifikatutfärdare ändras eller upphör att gälla. Vi rekommenderar att du utför följande steg för att identifiera certifikatsankning:
Om du är programutvecklare söker du i källkoden efter någon av följande referenser för den certifikatfärdarorganisation som ändras eller upphör att gälla. Om det finns en matchning uppdaterar du programmet så att det innehåller de saknade certifikatutfärdarna.
- Tumavtryck för certifikat
- Unika namn för ämne
- Vanliga namn
- Serienummer
- Offentliga nycklar
- Andra certifikategenskaper
Om ditt anpassade klientprogram integreras med Azure-API:er eller andra Azure-tjänster och du är osäker på om det använder certifikatanslutning kontrollerar du med programleverantören.
Begränsningar för att fästa certifikat
Bruket att fästa certifikat har blivit allmänt ifrågasatt eftersom det medför oacceptabla kostnader för certifikats agilitet. En specifik implementering, HTTP Public Key Pinning (HPKP), har helt föråldrats
Eftersom det inte finns någon enskild webbstandard för hur certifikatet fästs kan vi inte ge direkt vägledning för att identifiera dess användning. Även om vi inte rekommenderar att du fäster certifikatet bör kunderna vara medvetna om de begränsningar som den här metoden skapar om de väljer att använda den.
- Se till att de fästa certifikaten kan uppdateras med kort varsel.
- Branschkrav, till exempel CA/Browser-forumets baslinjekrav för utfärdande och hantering av offentligt betrodda certifikat kräver att certifikat roteras och återkallas på så lite som 24 timmar i vissa situationer.