Přeskočit na obsah
Tech-Blog Chatujme.cz Chatujme.cz
Bezpečnost

Vývojář Canonicalu navrhl do APT kontrolní součty SHA3 pro případ, že SHA-2 padne

V repozitáři APT leží od 29. září 2026 žádost o začlenění, která k dnešním kontrolním součtům SHA-256 a SHA-512 přidává druhou rodinu, SHA3-256 a SHA3-512. Důvodem není kvantový počítač, ale délka podpory Ubuntu 24.04 LTS: klienti rozeseté po světě musí jinou rodinu hashů umět dřív, než na ni archiv přejde. Začleněná zatím není.

· 19 zhlédnutí

Schéma houbové konstrukce se vstupem zprávy, nasávací a vymačkávací částí a výstupním otiskem
Houbová konstrukce, na které stojí SHA-3. Zpráva se po kusech nasává do vnitřního stavu a otisk se z něj pak vymačkává. Foto: Guido Bertoni, Joan Daemen, Michael Peeters, Gilles Van Assche, Wikimedia Commons (CC BY-SA 3.0)

Když APT stahuje balíček, nespoléhá se na jeho jméno. V indexových souborech archivu jsou ke každému souboru uložené kontrolní součty a klient po stažení ověří, že dostal přesně to, co archiv ohlásil. Dnes jsou to součty z rodiny SHA-2, tedy SHA-256 a SHA-512. Vývojář Canonicalu Gian-piero Carpinelli otevřel 29. září 2026 v repozitáři APT na Salse žádost o začlenění číslo 626, která vedle nich zavádí druhou rodinu: SHA3-256 a SHA3-512.

Co by se v archivu změnilo

Knihovna libapt-pkg nové součty rozpozná a ověří, a to v souborech Release, Packages i Sources. Nástroj apt-ftparchive, kterým se archiv staví, je umí vygenerovat přepínači --sha3-256 a --sha3-512 nebo stejnojmennými konfiguračními klíči. Ve výchozím stavu zapnuté nejsou. Pole se v Release a Packages jmenují SHA3-256 a SHA3-512, v Sources pak Checksums-Sha3-256 a Checksums-Sha3-512.

V pořadí, podle kterého si APT vybírá, kterému součtu dá přednost, stojí nové typy první. Když archiv zveřejní obě rodiny, klient si nejdřív řekne o cestu by-hash/SHA3-*/ a teprve když neuspěje, sáhne po té obyčejné. Podpisy OpenPGP, kterými je soubor Release podepsaný, nechává návrh být.

Rozmanitost, ne kvantové počítače

Důvod stojí v popisu žádosti. Ubuntu 24.04 LTS má před sebou dlouhou podporu, a kdyby v té době SHA-2 padla, musí klienti, kteří už někde běží, rozumět jiné rodině hashů dřív, než na ni archiv přejde. Správce dpkg Guillem Jover se autora v konferenci debian-dpkg přímo zeptal, jestli jde o rozmanitost algoritmů, nebo o obavu z kvantových počítačů. Odpověď byla jednoznačná: rozmanitost.

Obě rodiny se neliší délkou otisku. SHA3-256 dává stejně dlouhý výsledek jako SHA-256. Liší se stavbou. SHA-3 vyhlásil americký úřad NIST v normě FIPS 202 v srpnu 2015 a postavil ji na algoritmu Keccak, vítězi veřejné soutěže. Keccak pracuje takzvanou houbovou konstrukcí: zprávu po kusech nasává do vnitřního stavu a otisk z něj pak vymačkává. Norma sama píše, že obě rodiny vedle sebe dávají odolnost proti budoucímu pokroku v analýze hashovacích funkcí právě proto, že stojí na zásadně odlišných konstrukčních principech. SHA-3 nebyla míněná jako náhrada SHA-2, ale jako její doplněk.

Že taková výměna trvá roky a stará funkce u ní hned nezmizí, ukazuje protokol CMC pro vydávání certifikátů: na SHA-256 přešel, ale SHA-1 v něm zůstala.

Jak dlouho Ubuntu 24.04 LTS vlastně vydrží, se zdroje rozcházejí. Tabulka Canonicalu uvádí běžnou bezpečnostní údržbu do května 2029, s předplatným Ubuntu Pro do května 2034 a s doplňkem Legacy do května 2039. Popis žádosti mluví o deseti až dvanácti letech. Phoronix napsal, že podpora končí v roce 2036, a u nových součtů uvedl dvojici SHA3-256 a SHA3-384; v žádosti je SHA3-512.

Dpkg bude mít práci

Názvy polí si Carpinelli nechal předem potvrdit. Jover mu 29. září odpověděl, že velká písmena v dnešních polích MD5sum, SHA1 a SHA256 jsou oproti zbytku pojmenování nedůsledná a dpkg je kvůli tomu musí ošetřovat zvlášť. Přesto doporučil držet se zavedeného tvaru, aby nová pole nevyčnívala; sám má na větvi rozdělanou podporu SHA512 a rozhodl se u ní stejně.

Pro dpkg to bude složitější než pro APT. Perlový modul Digest::SHA3 není součástí základní instalace, takže podpora bude nepovinná a podmíněná tím, že modul na stroji opravdu je. Jover zároveň upozornil, že varianty s 512 bity metaindexy archivu znatelně nafouknou, obzvlášť když se přidají obě. Carpinelli s tím souhlasil a odhadl, že Debian a Ubuntu by si nakonec přidaly nanejvýš SHA3-256.

Co to stojí a co se po cestě opravilo

Starší klienti neznámá pole ignorují, takže archiv může obě rodiny zveřejňovat vedle sebe hned. Klient počítá jen ty otisky, které archiv opravdu publikuje, takže dokud SHA-3 žádný archiv nezveřejní, nestojí změna nic. Nástroj apt-ftparchive si ale rozšíří záznam ve své cache: starší verze novou cache odmítne hláškou „Cache record size mismatch“, a návrat na starší verzi tedy znamená cache smazat. Totéž se podle popisu žádosti stalo, když přibývala SHA512. Nově je při konfiguraci potřeba OpenSSL alespoň ve verzi 1.1.1.

Při zkoušení archivů, které vydávají jen SHA-3, vyplavaly dvě starší chyby apt-ftparchive. S vypnutou MD5 nedostal soubor Sources u balíčku bez vlastních součtů žádné, a jednou uložené otisky se objevovaly ve výstupu i poté, co je někdo vypnul. Autor je opravil v prvních dvou commitech a testy k nim napsal jen nad SHA-2, aby se daly přenést do stabilních větví. Celá žádost má sedm commitů a sahá na dvaadvacet souborů.

Začleněná zatím není a jednu věc nechal autor otevřenou: jestli má apt-ftparchive nové součty generovat sám, nebo až na vyžádání. V žádosti jsou zatím vypnuté, i když u SHA512 se to kdysi udělalo obráceně.

Zdroje

Bezpečnost

Debian APT Ubuntu SHA-3 Canonical

← zpět na výpis