Chyba v knihovně NSS způsobuje bezpečnostní varování Chrome

10. 2. 2015 | Jindřich Zechmeister

Narazil jsem na nepříjemný problém, který v prohlížeči Chrome způsobuje špatnou detekci SHA-1 certifikátu a nesprávné varování. Chyba je na straně NSS knihovny, která se používá pro šifrování, a kterou používá linuxová verze Chrome a Firefox (ten však neupozorňuje).

Špatná detekce SHA-1 Intermediate certifikátu v Chrome

Problém je způsoben bugem v knihovně NSS, kterou používá Firefox a Chrome na linuxu pro šifrování. Šifrovací knihovna si (v některých případech) zvolí při handshake starší, tzv. "legacy" chain ke kořenovému certifikátu CA.

Díky upřednostnění tohoto řetězu místo standardního dojde k tomu, že v chainu jsou celkově 4 certifikáty místo 3, a původní Root certifikát CA se posune na místo Intermediate certifikátu, což Chrome vyhodnocuje jako chybu. Prohlížeč hlásí zastaralé bezpečnostní nastavení stránek, protože kontroluje SHA-1 certifikáty na webu, a v chainu použitého SSL certifikátu.

Použití dvou "cest" ke kořenovému certifikátu je přitom normální, a autority to umožňují díky takzvaným "cross-signed" intermediate certifikátům, které fungují s více kořenovými certifikáty.

Chyba NSS v Chrome na linuxu

Chrome na linuxu chybně detekuje root certifikát s sha-1

Běžně prohlížeče SHA-1 v Root certifikátu nekontrolují, protože je to self-signed certifikát. Prohlížečům tedy nevadí, když je Root certifikát SHA-1.

Jak tento problém řešit?

Řešení je samozřejmě nasnadě - opravit tento bug v NSS knihovně, a naučit prohlížeče správně detekovat a rozumět chainu SSL certifikátů. V blízké budoucnosti nás samozřejmě čeká nasazení SHA-2 root certifikátů autorit, avšak problém se starším "legacy" chainem to neřeší; ten se určitě nezmění. Provozovatel certifikátu s tím bohužel nic nenadělá.

Přílišná aktivita Googlu je kontraproduktivní

V posledních měsících je bohužel vývoj prohlížečů zaměřen na kvantitu místo kvality. Google v každé verzi Chrome připravuje nějaké (neplánované) překvapení, a bezpečnostní varování prohlížečů je v každé verzi jinak. Stejně nekvalitně a chaoticky je zatím implementována i funkce Certificate Transparency, o které jsme psali nedávno v článku Certificate transparency - ochrana proti podvrženému certifikátu.


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