Bezpečnost

Cloudflare odkládal aktualizaci BoringSSL čtyři roky, po ní přibyly chyby 526

Cloudflare 29. července oznámil, že spojení mezi svou sítí a servery zákazníků umí ověřovat postkvantovými podpisy ML-DSA. Ve stejném textu přiznal, že kvůli tomu musel poprvé po čtyřech letech aktualizovat kryptografickou knihovnu BoringSSL v jedné ze svých proxy. Po nasazení začaly části zákazníků chodit chyby 526.

· 3 zhlédnutí

Kdo si nechá web proxovat Cloudflarem, má v cestě dvě spojení. První vede z prohlížeče návštěvníka do sítě Cloudflare, druhé z Cloudflare na server zákazníka. Tomu druhému se říká origin a bere se z něj obsah, který není v mezipaměti. Šifrování odolné proti kvantovým počítačům zapnula firma na prvním spojení v roce 2022 a na druhém v roce 2023. Ověření protistrany, tedy podpisy pod certifikáty, zůstávalo klasické.

Stěna s regály plnými barevných lávových lamp ve vstupní hale, na zdi pod nimi nápis Cloudflare
Stěna lávových lamp ve vstupní hale kanceláří Cloudflare na 101 Townsend Street v San Francisku, snímaná z ulice přes sklo. Foto: HaeB, Wikimedia Commons (CC BY-SA 4.0)

29. července Cloudflare oznámil, že u druhého spojení už je postkvantové i ověření. Produkty Authenticated Origin Pulls a Custom Origin Trust Store přijímají certifikáty podepsané algoritmem ML-DSA, který popisuje americká norma FIPS 204. Podporované jsou všechny tři sady parametrů, tedy ML-DSA-44, ML-DSA-65 i ML-DSA-87. Pro většinu nasazení Cloudflare doporučuje tu nejmenší: je nejrychlejší a bezpečnostní úroveň má podle něj pohodlnou.

Co jde zapnout hned

Custom Origin Trust Store nahrazuje výchozí seznam důvěryhodných certifikačních autorit vlastním a nově do něj jde vložit autoritu s klíčem ML-DSA. Vyžaduje ale zapnutý Advanced Certificate Manager a režim SSL Full (strict). Authenticated Origin Pulls míří opačným směrem: Cloudflare se serveru zákazníka prokáže klientským certifikátem, takže server může odmítnout všechno ostatní. Ten je zdarma na všech tarifech, ML-DSA se ale zatím dá nahrát jen na úrovni zóny a jednotlivého hostitelského jména. Globální nastavení je podle firmy složitější změna a přijde později.

Certifikáty se podle návodu generují v OpenSSL 3.5.0 nebo novějším a soukromý klíč musí být v zápisu, kterému FIPS 204 říká seed. Jiný formát Cloudflare při nahrání nepřijme. Samo zapnutí navíc nestačí: dokud ověřující strana důvěřuje i klasickým podpisům, útočník na trase ji k nim může stlačit zpátky. Cloudflare na to upozorňuje a odkazuje na čtyřfázový plán bezpečnostního týmu Chromia pro totéž na veřejném webu.

Aktualizace, která čtyři roky ležela

Zajímavější než výčet funkcí je oddíl, který si Cloudflare nadepsal jako nudné detaily. Řídicí vrstvu, která certifikáty přebírá a rozesílá po síti, má firma napsanou v Go. Standardní knihovna jazyka ML-DSA neuměla, takže podporu doplnili přes vlastní kryptografickou knihovnu CIRCL.

Datová vrstva je jiný příběh. Spojení na servery zákazníků obstarává služba Pingora Origin postavená na stejnojmenném otevřeném rámci a o kryptografii se v ní stará BoringSSL od Googlu. Podpora ML-DSA do knihovny přibyla 15. dubna 2026. Aby ji Cloudflare dostal do provozu, musel BoringSSL aktualizovat. A tady přišlo přiznání: aktualizaci té knihovny v Pingora Origin odkládal čtyři roky a místo ní si udržoval vlastní větev, do které si potřebné věci dopisoval sám. Fungovalo to prý dobře, protože BoringSSL je klidná knihovna, která podle Cloudflare za několik posledních let nemá žádné CVE ani větší změny.

Chyba 526

Mezi čtyřmi roky nahromaděných změn ale byl i commit ze 14. dubna 2023, který ve výchozím stavu zapíná vynucování pole KeyUsage u RSA certifikátů. To pole podle RFC 5280 říká, k čemu se klíč v certifikátu smí použít. Změna odpovídá normě. Potíž je, že ne všechny certifikáty, které v provozu jsou, tu normu dodržují.

Testovalo se týdny a nasazovalo pomalu právě proto, aby se takový případ ukázal. Neukázal se. 10. června začaly části zákazníků s platnými certifikáty chodit chyby 526. Tím kódem Cloudflare podle vlastní dokumentace hlásí neplatný certifikát původního serveru. Na stavové stránce firma zapsala, že o problému ví, v 9:36 UTC, příčinu měla v 10:20 a hotovo hlásila v 11:41. Změnu vrátila zpět.

Trvalá oprava má podobu přepínače, který starým RSA certifikátům s technicky vadným KeyUsage podporu vrací. Cloudflare o ní v článku píše jako o hotové věci. Pull request s tím přepínačem byl přitom v jeho veřejném repozitáři 1. srpna pořád otevřený a nesloučený, šest týdnů po založení. Co běží uvnitř firmy, z veřejné historie poznat nejde.

Zbytek ekosystému

Go 1.27, které se čeká v srpnu, přinese balík crypto/mldsa přímo ve standardní knihovně. Poznámky k vydání uvádějí i podporu klíčů a podpisů ML-DSA v balíku crypto/x509 a hodnoty MLDSA44, MLDSA65 a MLDSA87 v crypto/tls. Cloudflare počítá s tím, že pak závislost na CIRCL zahodí a ostatní jeho služby v Go dostanou postkvantové podpisy pouhým povýšením verze.

Na spojení mezi návštěvníkem a Cloudflare zůstává ověření klasické. Na postkvantové certifikáty pro veřejný web pracuje firma s Googlem v IETF pod názvem Merkle Tree Certificates a první nasazení míří na rok 2027. Plnou postkvantovou bezpečnost si Cloudflare vytkl na rok 2029.

Naše hodnocení: nejužitečnější věta v celém textu není o ML-DSA, ale o těch čtyřech letech. Odkládaná aktualizace knihovny, která se skoro nemění, vypadá jako rozumná úspora práce až do dne, kdy ji něco vynutí. Pak se čtyři roky cizích změn nasadí najednou a testování jich několik minout musí.

Zdroje

Bezpečnost

Diskuse

Zatím tu nikdo nediskutuje.

Diskutovat mohou přihlášení čtenáři – přihlaste se nebo si založte účet.

← zpět na výpis