Hlavní navigace

Co dál s WoSign? Odebrat důvěru už nestačí

14. 9. 2016
Doba čtení: 6 minut

Sdílet

Mozilla debatuje o tom, jak by měla být čínská certifikační autorita WoSign potrestána za své přešlapy. Řešení je několik, ale žádné z nich není ideální a nese rizika.

Čínská certifikační autorita WoSign má dlouhodobě problémy zajistit bezpečný provoz a dodržovat pravidla daná v dokumentu Mozilla CA Certificate Policy. Splnění podmínek přitom rozhoduje o tom, zda bude daná organizace součástí seznamu důvěryhodných autorit a zda se její kořenové certifikáty dostanou k uživateli předinstalované v aplikacích.

Autorita WoSign ale začíná být vážným problémem ohrožujícím důvěru v systém certifikačních autorit (PKI) a po nedávném tichém převzetí StartComu se navíc problém dále šíří a postihuje víc a víc uživatelů. Za poslední rok a půl přitom autorita předvedla celou řadu přešlapů. Některé z nich porušují podmínky CA/Browser Forum [PDF], jiné jsou jen krajně podezřelé.

Kniha hříchů

Začátkem roku 2015 vydával WoSign certifikáty používající slabou hashovací funkci SHA-1, ale s platností delší než do 1. ledna 2017. Právě toto je nejzazší datum, po kterém už by takové certifikáty platit neměly. Důvodem jejich vydávání je pravděpodobně snaha obejít kontroly prohlížečů, které ještě nechávají starší SHA-1 certifikáty dobíhat a považují je za validní. Takto WoSign vydal 1132 certifikátů.

Později bylo odhaleno, že autorita dovolila vystavení antedatovaných certifikátů s platností před prosincem 2015. To dovolilo vytvořit nové certifikáty s algoritmem SHA-1, které prošly kontrolou a prohlížeče by je ještě dlouho považovaly za validní. Takto bylo vydáno nejméně 67 certifikátů. Zároveň byly objeveny certifikáty, které byly vydány duplicitně – s SHA-256 i se starým SHA-1.

V dubnu roku 2015 vydal WoSign nejméně 392 certifikátů se stejným sériovým číslem. Ve stejném období byly vydávány také certifikáty bez policy OID, dokumentace vyžadovala použití obskurní položky „Issuer Alternative Name“, uvedení jména žadatele bez předchozího ověření a certifikáty s platností rozcházející se s dokumentací uváděnou autoritou (CPS). WoSign chybu rychle napravil, ale objevily se první vážné pochybnosti o tom, jak autorita ve skutečnosti pracuje.

Vážný bezpečnostní incident se pak objevil opět v dubnu 2015, kdy bylo možné pro validaci žádosti o certifikát využít libovolný TCP port. Bylo prokázáno, že stačilo uživatelem otevřít port s hodnotou nad 50 000 a WoSign ochotně vydal certifikát pro doménu. Takto bylo vydáno nejméně 72 certifikátů. WoSign chybu opravil a nyní dovoluje validaci jen na portech 80 a 443.

V červnu 2015 pak byla objevena chyba, která dovolovala získat certifikát k doméně, u níž žadatel potvrdil jen držení subdomény. Stačilo tedy vystavit ověřovací soubor na doméně schrauger.github.com a uživatel mohl požádat i o certifikát pro github.com. Takto bylo neoprávněně vydáno 33 certifikátů. Současně byla objevena druhá související chyba, která umožňovala po validaci dodatečně přidat do certifikátu další libovolné domény.

V listopadu 2015 autorita vydala dva certifikáty obsahující klíč pro eliptickou křivku SM2. Pravidla ovšem dovolují použití klíčů jen pro konkrétní eliptické křivky, mezi nimiž tato není. Zároveň bylo prokázáno, že tyto certifikáty sdílely sériové číslo s jinými dříve vydanými certifikáty. Dále také porušily pravidla tím, že jejich platnost byla nastavena na čtyři roky, přičemž maximální povolená doba platnosti je tři roky.

Na konci roku 2015 firma WoSign prostřednictvím britské společnosti koupila izraelský StartCom a neinformovala o tom, přestože to pravidla výslovně vyžadují. Firmy se navíc provázaly nejen majetkově a infrastrukturně, ale i certifikačně, protože si vzájemně vystavily znovu své mezilehlé certifikáty (cross-signing). Uživateli tak může důvěru v koncový certifikát potvrdit kterákoliv z nich.

V červnu 2016 byl vydán certifikát pro alicdn.com, držitel domény ale tvrdí, že o něj nepožádal. Toto není možné zpětně ověřit a nebyl ani zjištěn držitel privátního klíče. Doména v té době již používala certifikát od společnosti Symantec.

V červenci 2016 byly objeveny problémy v rozhraní StartEncrypt, které vlivem propojení obou společností zasáhly WoSign i StartSSL. Úpravou parametru API bylo možné si nechat vystavit certifikát z jiného důvěryhodného kořene, případně opět nechat antedatovat certifikát s SHA-1.

Všechny výše zmíněné problémy popisuje Mozilla na své wiki.

Vzájemné podpisy

Abychom měli úplný obrázek situace, je potřeba vědět, že se WoSign pojistil. Nechal si své certifikáty podepsat od několika dalších autorit. To znamená, že i kdybyste nakrásně WoSign vyřadili z důvěryhodného úložiště, stejně jeho certifikátům bude váš software věřit. Jiná autorita totiž potvrdila, že je důvěryhodný, a této autoritě i nadále věříte.

Konkrétně certifkáty podepsala:

  • StartCom Ltd. (vyprší 31. prosince 2019)
  • Unizeto Sp. z o.o. (vyprší 2. listopadu 2020)
  • The USERTRUST Network (vyprší 9. června 2019)

Poslední jmenovaná autorita už byla odstraněna z úložišť, ale její certifikát je dále podepsán autoritou „AddTrust External CA Root“. Tato cesta už také padla, protože mezilehlý byl revokován v prosinci 2015. Dokládá to ale situaci – svět certifikačních autorit je velmi provázaný a je možné jej dále komplikovat a jistit se třeba proti tolik obávanému zákroku auditorů.

Co s WoSign?

Mozilla, jakožto hlavní strážce důvěry a auditor certifikačních autorit, o všech těchto problémech pochopitelně ví. V tuto chvíli probíhá velká debata o tom, jak s autoritou dále naložit. Je pravda, že v minulosti udělala hodně chyb, ale jen některé z nich jsou přímým porušením pravidel. Na druhou stranu například od července letošního roku vkládá všechny své certifikáty do databáze Certificate Transparency.

Existuje několik základních navrhovaných řešení:

  • Odstranit autoritu z úložišť
  • Aktivně autoritě nedůvěřovat
  • Odstranit autoritu a povolit starší certifkáty
  • Nedůvěřovat certifikátům bez informaci v Transparency
  • Nedůvěřovat certifikátům bez informaci v Transparency, s výjimkou těch před rokem 2016

Bohužel ani jedno z nich není bez klasického „ale“. Česky bychom řekli, že každé z nich má háček.

Odstranit WoSign z úložišť samo o sobě nepomůže, protože kořenový certifikát bude i nadále důvěryhodný díky podpisu od StartCom. Změnit autoritu na nedůvěryhodnou tak nezabere, protože bude dále vydávat certifikáty pod autoritou StartCom. Odstranit obě autority opět nebude fungovat, protože jejich certifikáty podepsala další autorita.

Mozilla by se ovšem ráda vyhnula úplnému znedůvěryhodnění všech souvisejících autorit, protože by tím trpěli především uživatelé. Řada firem si od autority v dobré víře pořídila certifikát a ten by byl naráz neplatný. Zároveň by to znamenalo krach zmíněných autorit, které jsou na přítomnosti kořenových certifikátů v úložištích bytostně závislé. Možná si můžeme říci „dobře jim tak“, ale je potřeba brát v úvahu i to, že podobné rozhodnutí má dopad na lidi, kteří někde pracují. Nedá se udělat lehkovážně.

Existují proto i jemnější varianty, které ale také disponují háčkem. Pokud by byly povoleny starší certifikáty, opět by mohla autorita využít jinou cestu nebo koupený StartCom k vydávání dalších. Pokud bychom chtěli jít cestou seznamu povolených certifkátů, narážíme na technické limity – jak jednoduše distribuovat obrovskou databázi s důvěryhodnými certifikáty?

Bylo by teoreticky možné jít ještě dalšími cestami [PDF] – WoSign konkrétně sám navrhuje následující varianty:

Nedůvěřovat WoSignu pro jinou zemi než CN – autorita by tak mohla vydávat certifikáty jen pro Čínu, ale vlastně to neřeší hlavní problém. Stále by bylo možné skrz pochybnou autoritu získat certifikát pro libovolnou doménu, jen by měl v metadatech uvedeno, že žadatel je z Číny.

Bylo by teoreticky možné nedůvěřovat autoritě pro jinou doménu než .cn, ale to by vyžadovalo nesystémový patch do všech prohlížečů – podobná věc se nedá zařídit na úrovni úložiště důvěryhodných autorit.

Poslední variantou je nedělat nic, což by vyžadovalo dramatickou změnu ve WoSign. Taková změna by sice mohla obnovit důvěru v onu autoritu, ale velmi těžko se prokazuje. Nemůžeme s konečnou platností říct, že se autorita polepšila, vše je v pořádku a jedeme dál.

UX DAy - tip 2

Co teď?

Něco by se určitě stát mělo. V situaci, kdy jedna špatná autorita boří (už tak pošramocenou) důvěru v celý systém, je potřeba dát jasně najevo, že v případě velkých problémů někdo zakročí a situaci vyřeší. Mělo by se tak stát co nejdříve, aby se problémy nestupňovaly a aby ostatní autority mohly dělat dál svou práci.

V tuto chvíli je to totiž vlastně tak, že certifikát vydaný StartSSL či WoSign (lhostejno zda za peníze či zdarma) je fakticky na stejné úrovni jako vámi vystavený self-signed. Prohlížeče by mu už neměly věřit, protože stejně jako u self-signed není možné ověřit, komu byl vystaven.

Co byste dělali s WoSign a StartSSL?

Byl pro vás článek přínosný?

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.