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:

  1. 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.
  2. 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ý).
  3. 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. 


Ing. Jindřich Zechmeister
Specialista pro bezpečnostní SSL certifikáty
DigiCert TLS/SSL Professional
e-mail: jindrich.zechmeister(at)zoner.cz