Hlavní navigace

Firefox 57 bude mít formálně ověřenou kryptografii

David Ježek

Bezpečnostní engine Firefoxu dostane s verzí 57 důležitá vylepšení. I v jiných ohledech pro Firefox přelomová verze nabídne kryptografickou knihovnu HACL* a podporu křivky Curve25519 pro výpočet Diffie-Helman nad eliptickými křivkami.

Jak Benjamin Beurdouche poznamenává na blogu Mozilly, tradičně je software napsán tak, že někdo napíše kód, možná proběhne nějaká kontrola, pustí se unit testy a doufá se, že to stačí. Zkušenost ale říká, že obecně je pro programátory těžké psát (automaticky) kód bez chyb. Takové chyby se někdy podaří podchytit během manuálního testování, ale mnoho nikoli a ty tak míří k uživatelům v hotovém produktu, je potřeba je časem opravovat aktualizacemi atd.

Takto to může přijatelně fungovat pro běžné programy, ale kryptografický software je jiný. Uživatelé očekávají a zaslouží si garanci toho, že kód je bezpečný a nenarušuje soukromí. Přitom i některé neškodně vypadající chyby v kryptografických primitivech mohou vést k narušení bezpečnosti celého systému.

Díky vývoji v poslední době lze ale nasadit nové lepší implementace kryptografických algoritmů. Ty jsou sice stále psány „v ruce“, ale mohou být automaticky analyzovány během kompilace na přítomnost řady různých typů chyb. Výsledkem tak je program, u kterého je daleko vyšší jistota, že je bez chyb.

Mozilla na vývoji takových technologií spolupracuje s INRIA (Francouzský institut pro výzkum v počítačových vědách a automatizaci) a projektem Everest (Everest VERified End-to-end Secure Transport; členy jsou Microsoft Research, Carnegie Mellon University a INRIA). Cílem je zahrnutí kryptografické knihovny HACL* do Network Security Services (Mozilla NSS – balík knihoven pro SSL v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3).

Firefox se tak stane patrně prvním velkým webovým prohlížečem, který bude mít formálně ověřená kryptografická primitiva. Prvním výstupem ze spolupráce je implementace algoritmu výměny klíče metodou Diffie-Hellman nad eliptickou křivkou Curve25519 (dále viz RFC7748), která se již objevila v nočních sestaveních Firefoxu. Curve25519 je používán v TLS 1.3 (zatím draft) a navíc je jeho HACL* implementace o dobrých 20 % rychlejší než dosavadní implementace v NSS (na 64bit platformě). Ve výsledku je tak nový přístup jak rychlejší, tak bezpečnější.

V nadcházejících měsících bude Mozilla dále na začlenění HACL* do NSS pracovat. První věci přinese již zmíněný Firefox 57. Ten přinese řadu dalších novinek – už jsme psali o skrytí vyhledávacího políčka, dále se objeví například upravený vzhled nástrojů pro vývojáře, stihnout by to měl též paralelní CSS engine Stylo. Prakticky všechny novinky lze zkoušet v rámci nočních sestavení, případně pro méně odvážné je tu možnost počkat do 19. září, kdy je v plánu vydání beta verze.

Našli jste v článku chybu?