Certificate Transparency a Public Key Pinning
11. 11. 2014 | Jindřich Zechmeister
V dnešním článku přiblížím dvě poměrně nové a málo známé pojmy Certificate Transparency a Public Key Pinning, které souvisí s bezpečností použití SSL certifikátů. Oba se snaží snížit riziko vystavení a použití podvrženého certifikátu na vašem webu.
Certificate Transparency (CT)
Certificate Transparency (CT) je funkce, kterou stvořil Google. Ve zkratce jde o zveřejňování všech certifikátů vydaných autoritou v jakémsi "logu", aby bylo možné ověřit, zda byl skutečně vydán dotyčnou autoritou.
Certificate Transparency (CT) má tři hlavní cíle:
- Znemožnit (nebo velice ztížit) certifikační autoritě vydání SSL certifikátu pro doménu bez vědomí vlastníka dotyčné domény.
- Poskytnou otevřený auditovací a monitorovací systém, který umožní kterémukoliv majiteli domény zkontrolovat, zdali nějaká certifikační autorita vystavila certifikát pro jeho doménu (ať už správný, nebo podvržený).
- Chránit uživatele (co nejvíce to bude možné) od škod způsobených certifikáty, které byly vystaveny chybně, nebo za účelem zneužití.
Princip vzájemné kontroly u CT
Prohlížeč bude před důvěřováním certifikátu ověřovat jeho stav ve veřejném logu. Pokud nebude certifikát uveden v seznamu, nezobrazí se jeho zelený EV pruh v Google Chrome. Samotný veřejný přístupný log bude monitorován a budou hlídány případné podezřelé certifikáty.
První větší použití této funkce plánuje Google na únor 2015 na již zmíněné EV certifikáty; později plánuje Certificate Transparency rozšířit i na další certifikáty.
Více informací o Certificate Transparency najdete v článku Google How Certificate Transparency Works, nebo přímo na tematickém webu certificate-transparency.org.
Public Key Pinning
Public key pinning řeší největší slabost PKI a současného ekosystému, kterým je fakt, že autorita může vystavit certifikát pro jakoukoliv doménu bez souhlasu jejího vlastníka.
S "pinningem" může vlastník webu zvolit jednu čí více autorit, kterým věří, a která může vystavit certifikát pro jeho doménu. Omezí tak riziko zneužití domény falešným certifikátem od méně důvěryhodné autority, která může být zneužita. Tím Pinning slouží k obraně proti MITM (Man in the Middle) útokům a obraně před potvržením certifikátu.
Zatím je pinning dostupný v prohlížeči Chrome (asi 500 záznamů), ale tvoří se též otevřený standard pro pinning s použitím protokolu HTTP. Například Public Key Pinning Extension pro HTTP protokol říká prohlížeči, jaký certifikát má být přiřazen ke konkrétní doméně. Trošku jiným přístupem k Public key pinning je protokol DANE, který umísťuje podepsané informace o certifikátech do DNS, a kombinuje tak princip SSL certifikátů a DNSSECu.
Více technických detailů a příkladů použití Key Pinningu najdete například v technickém článku Certificate and Public Key Pinning.
V příštích článcích se seznámíme s dalšími moderními bezpečnostními pojmy, které možná ještě neznáte.
Specialista pro bezpečnostní SSL certifikáty
DigiCert TLS/SSL Professional
e-mail: jindrich.zechmeister(at)zoner.cz