Když stahujeme distribuci GNU/Linuxu, obvykle si stáhneme Vytvořte ISO obraz a spusťte vytváření bootovacího USB disku. Aniž bychom se příliš zamýšleli nad tím, co se mohlo cestou stát. Pravdou je, že i když se často nic nepokazí, slepě věříme, že ISO soubor je legitimní. Že se ho nikdo nedotkl a že stažený soubor nebyl poškozen.
Pokud mluvíme o kompletním operačním systému, věci se mění. Jsou to velké soubory, jejich stahování trvá dlouho a především... Chyba nebo manipulace v ISO může ohrozit celý tým.Proto je ve světě Linuxu tak běžné (a tak doporučované) ověřovat integritu a pravost ISO souborů pomocí kontrolních součtů a GPG podpisů před jejich vypálením na DVD nebo na USB disk.
Co znamená ověřit ISO: integrita a autenticita
Při ověřování normy ISO neprovádíte jednu kontrolu, ale dvě odlišné kontroly, které by se neměly míchat: integrita souboru a autenticita jeho původuIntegrita vám říká, zda je ISO soubor na disku identický s tím, který byl na serveru, bit po bitu. Pravost vám říká, zda daný ISO soubor a jeho kontrolní součty skutečně pocházejí z projektu, který údajně reprezentují.
Integrita je ověřena prostřednictvím hašovací funkce (kontrolní součet) vypočítaná z celého souboruPokud výsledek, který získáte na svém počítači, odpovídá výsledku publikovanému distribucí, znamená to, že ISO soubor nebyl během stahování změněn ani poškozen při ukládání.
Pravost je ověřena prostřednictvím Digitální podpisy GPG spojené s veřejnými klíči vývojářůV praxi distribuce podepíše soubor obsahující kontrolní součty (například SHA256SUMS) a vy ověříte, zda tento podpis odpovídá oficiálnímu klíči projektu a zda nebyl upraven.
Ačkoli mnoho lidí kontroluje pouze kontrolní součet MD5 nebo SHA a považuje ho za platný, pokud někdo narušil stahovací server, mohl by také... Nahraďte ISO a publikujte falešný kontrolní součet.Proto je součástí osvědčených postupů také ověření GPG podpisu souboru součtů.

Co je to kontrolní součet a proč se používá v ISO souborech?
Kontrolní součet je výsledkem použití kontrolního součtu na soubor. kryptografická hašovací funkce, která generuje unikátní řetězec pro daný obsah. Tento řetězec je obvykle reprezentován hexadecimálně (znaky 0-9 a af) a má pevnou délku bez ohledu na velikost původního souboru.
V kontextu distribucí GNU/Linux se kontrolní součty používají k ověřte, zda se data od doby, kdy projekt publikoval obrázek, nezměnilaPokud dva soubory vygenerují stejný hash pomocí stejného algoritmu, jsou (v praxi) považovány za identické. Pokud se hash neshoduje, stačí jeden rozdílný bit k úplné změně hodnoty a k detekci problému.
Existuje mnoho hašovacích algoritmů, ale ty, které nejčastěji uvidíte v souvislosti s ISO soubory, jsou: MD5, SHA-1 a rodina algoritmů SHA-2 (SHA-256, SHA-384, SHA-512…)Na stránkách pro stahování distribucí Debianu, Ubuntu, Fedory nebo jiných programů se vedle ISO souborů často nabízejí i soubory s názvy jako MD5SUMS, SHA1SUMS nebo SHA256SUMS.
Postup je jednoduchý: stáhnete si ISO soubor a jeho hash soubor, vypočítáte si hash ISO na svém počítači a Ověříte, zda výsledek odpovídá hodnotě publikované v souboru kontrolního součtu.Pokud se shoduje, můžete si být celkem jisti, že obrázek není poškozený ani zkrácený.
MD5 je dnes považován za algoritmus zastaralé pro náročné bezpečnostní účelyprotože byly nalezeny praktické kolize. I tak je stále užitečný pro základní kontrolu integrity. Pro velké soubory ke stažení, zejména ISO, je lepší použít... SHA-256, což je v současnosti doporučený standard. ve většině distribucí.
Typy souborů, které najdete při stahování ISO souboru
Při stahování distribuce z jejího oficiálního serveru je běžné, že kromě samotného obrazu najdete i řadu dalších souborů. Každý z nich má svůj účel a je důležité vědět, k čemu slouží. Jakou funkci plní jednotlivé typy souborů a jak se vztahují k ověřování? že se chystáš udělat.
Obvykle najdete něco jako toto (názvy se mohou v jednotlivých distribucích mírně lišit):
- název-distribuce-verze-architektura.isoSamotný obraz, který vypálíte na USB disk nebo DVD. Například ubuntu-20.04-desktop-amd64.iso, který označuje distribuci, verzi, edici (desktop/server) a architekturu.
- MD5SUMSTextový soubor, který obsahuje seznam MD5 hashů pro obrázky dostupné v daném adresáři. Každý řádek přiřazuje hash k názvu souboru.
- MD5SUMS.gpgGPG podpis souboru MD5SUMS, vygenerovaný pomocí klíče vývojáře. Slouží k ověření, zda hash soubor MD5 skutečně pochází z projektu a nebyl změněn.
- SHA256SUMS: ekvivalent MD5SUMS, ale s použitím algoritmu SHA-256. Pokud je tento soubor k dispozici, měli byste mu dát přednost.
- SHA256SUMS.gpgSHA256SUMS Digitální podpis GPG, používaný k zajištění jeho pravosti.
V některých distribucích se také setkáte se soubory SHA1SUMS, SHA512SUMS nebo podobnými. Všechny se řídí stejným principem: seznam součtů a volitelně přidružený GPG podpis abyste si mohli ověřit, že seznam nebyl pozměněn.
Pokud místo stahování ISO přes HTTP/HTTPS použijete BitTorrent, většina klientů již integruje ověřovací systém Interní zpracování je založeno na částech a částečných hashů, takže šance, že skončíte s poškozeným ISO, jsou výrazně sníženy. I tak, pokud si chcete být naprosto jisti jeho autenticitou, má smysl ověřit GPG podpis hash souboru.
Jak fungují hašovací funkce (MD5, SHA-1, SHA-256…)
V praxi nemusíte rozumět matematice hashů, ale pro jasnou představu je užitečné pochopit několik základních konceptů. Proč jsou tak užitečné pro kontrolu ISO?Kryptografická hašovací funkce bere soubor libovolné velikosti a vrací řetězec pevné délky; změna jediného bitu souboru má za následek zcela odlišný hash.
Mezi požadavky na dobrou hašovací funkci patří, že je v jistém smyslu snadno vypočítatelná, ale prakticky nemožné investovatže je velmi obtížné najít dva různé soubory se stejným hashem (kolize) a že je odolný vůči pokusům o generování škodlivého obsahu, který odpovídá specifickému hashu.
MD5 byl po léta de facto standardem pro tento typ ověřování, ale pokroky v kryptografii ukázaly, že Je možné sestavit různé soubory se stejným hašem MD5.Proto, ačkoliv je to v některých projektech běžnou praxí, se z bezpečnostních důvodů doporučuje používat robustnější algoritmy.
SHA-1 vylepšil některé slabiny MD5, ale byly také identifikovány problémy s kolizemi a je považován za... Není vhodné pro nové implementace vyžadující vysokou bezpečnostRodina algoritmů SHA-2 (zejména SHA-256) je v současnosti nejvyváženější volbou mezi zabezpečením a výkonem pro ověřování ISO.
V praxi, pokud distribuce nabízí několik souborů sum, nejlepší možností je vybrat si jeden. SHA-256 nebo SHA-512 jako první možnostSHA-1 ponechte pouze pro případy, kdy není jiná možnost, a MD5 přejděte k základní kontrole integrity, pokud nemáte jinou možnost.
Linuxové nástroje pro výpočet a ověřování kontrolních součtů
Dobrou zprávou je, že nemusíte instalovat nic neobvyklého: většina moderních distribucí GNU/Linuxu je již obsahuje. nástroje příkazového řádku pro výpočet a ověřování hashůTyto nástroje jsou obvykle součástí coreutils nebo jiných základních balíčků.
Nejčastější příkazy, se kterými se setkáte, jsou:
- md5sum: vypočítává a ověřuje součty MD5.
- sha1sum: vypočítává a ověřuje součty SHA-1.
- sha256sum: vypočítává a ověřuje součty SHA-256.
- sha512sum: vypočítává a ověřuje součty SHA-512.
Jejich použití je velmi jednoduché. Pokud chcete vypočítat hash konkrétního souboru, jednoduše spusťte v terminálu následující příkaz z adresáře, kde máte soubor ISO:
cd Descargas
sha256sum nombre-de-tu-imagen.iso
Příkaz vypíše řádek s hashem a názvem souboru, které můžete porovnat s hodnotou zveřejněnou na webových stránkách. Pokud dáváte přednost MD5 nebo SHA-1, Formát příkazu je identický, mění se utilita (součet md5, součet sha1, součet sha512…).
Kromě výpočtu jednotlivých hashů vám tyto nástroje umožňují ověřit více souborů najednou pomocí zkontrolujte režim s volbou -cA právě zde přichází na řadu soubor MD5SUMS nebo SHA256SUMS, který jste si stáhli spolu s ISO soubory.
Kontrola integrity ISO souboru pomocí sum souborů
V typickém scénáři si z oficiálních webových stránek distribuce stáhnete jak ISO obraz, tak i jeho soubor SHA256SUMS (a pokud je k dispozici, i MD5SUMS nebo SHA1SUMS). Struktura tohoto souboru je velmi jednoduchá: každý řádek obsahuje hash, mezeru, volitelně hvězdičku nebo další mezeru a název souboru.
Chcete-li zkontrolovat ISO soubor se součtem, stačí přejít do složky, kde máte jak obraz, tak soubor SHA256SUMS a spusťte:
sha256sum -c SHA256SUMS
Utilita projde všechny řádky algoritmu SHA256SUMS a porovná hash, který lokálně vypočítá pro každý uvedený soubor, s hashem v dokumentu. Pokud je vše v pořádku, zobrazí se něco jako:
nombre-distro.iso: OK
V případě nesrovnalostí, ať už z důvodu poškození ISO souboru nebo Soubor neodpovídá seznamu částek.Zobrazí se vám zprávy, jako je tato:
nombre-distro.iso: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match
Stejný postup platí pro MD5 a SHA-1, například nahrazením odpovídajícího nástroje a souboru:
md5sum -c MD5SUMS
sha1sum -c SHA1SUMS
Tento přístup je obzvláště vhodný při stahování více ISO souborů nebo více souborů najednou, protože Všechny soubory ověříte najednou jediným příkazem. a systém vám řekne, které testem prošly a které ne.
Podpisy GPG: ověření pravosti částek
Zatím jsme hovořili pouze o integritě, ale chybí druhá složka: ujistěte se, že soubor sums skutečně pochází z projektu a ne od někoho, kdo server kompromitoval. A právě zde přichází na řadu GnuPG (gpg), standardní nástroj pro práci s kryptografií s veřejným klíčem v GNU/Linuxu.
Většina hlavních distribucí podepisuje své hashovací soubory (např. SHA256SUMS.gpg) soukromým klíčem přidruženým k vývojářům. Vy, jako uživatel, si tento podpis stáhnete a použijete. veřejný klíč projektu k ověření že soubor SHA256SUMS nebyl upraven.
Typický pracovní postup s distribucí jako Ubuntu by byl tento, jakmile máte nainstalovaný gpg a nacházíte se v adresáři stažených souborů:
gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS
Pokud váš počítač již má správně importovaný a důvěryhodný veřejný klíč Ubuntu, gpg zobrazí zprávu s upozorněním na platný podpis a identifikátor klíčeAle je velmi běžné, že při prvním spuštění vám program oznámí, že daný veřejný klíč nezná.
V takovém případě by dalším krokem bylo importovat veřejný klíč z důvěryhodného serveru klíčů. Například v Ubuntu byste mohli udělat něco takového:
gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0xD94AA3F0EFE21092
Tím se stáhne klíč se zadaným identifikátorem z oficiálního klíčového serveru. Po importu znovu spusťte příkaz pro ověření podpisu pomocí SHA256SUMS a měli byste nyní získat potvrzení, že podpis je správný a je spojen s klíčem „Ubuntu CD Image Automatic Signing Key (2012)“ "nebo jiný podobný v závislosti na distribuci."
GPG může zobrazovat varování, například „Neexistuje žádný náznak, že podpis patří vlastníkovi“, což v podstatě znamená, že Neoznačil jsi ten klíč jako absolutně důvěryhodný.Není to fatální chyba: pokud jste si jinými prostředky (oficiální webové stránky, dokumentace atd.) ověřili, že otisk klíče je ten, který deklaroval projekt, můžete pokračovat.
Praktický příklad: ověření nedávného ISO souboru Ubuntu
Abyste to jasně pochopili, představte si, že si stáhnete ISO soubor Ubuntu (například novější verzi LTS) z oficiálních webových stránek. Na této stránce najdete odkazy na ISO soubor, soubor SHA256SUMS a jeho signaturu SHA256SUMS.gpg, vše ve stejném nebo blízkém adresáři.
Kroky, které byste měli dodržovat, by v podstatě byly následující:
Za prvé, Stáhněte si příslušný ISO soubor pro vaši architekturu (například 64bitový obraz plochy AMD64), a to navíc k souborům SHA256SUMS a SHA256SUMS.gpg odpovídajícím dané verzi.
Dále, s nainstalovaným gpg ve vašem systému, byste ověřili podpis souboru sums pomocí:
gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS
Pokud vám gpg oznámí, že klíč nemůže najít, můžete jej získat ze serveru klíčů přidruženého k projektu spuštěním příkazu podobného tomuto:
gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0xD94AA3F0EFE21092
Jakmile je klíč importován a podpis souboru SHA256SUMS ověřen, můžete ISO soubor zkontrolovat s tímto seznamem pomocí:
sha256sum -c SHA256SUMS
Příkaz zkontroluje všechny položky a zobrazí zprávu pro každý uvedený soubor. Pro nově stažený ISO soubor byste měli vidět něco jako toto: „ubuntu-XX.XX-desktop-amd64.iso: Součet shod“ nebo „OK“, čímž se potvrdí, že lokální obrázek přesně odpovídá obrázku publikovanému vývojáři.
Ruční kontrola jednoho kontrolního součtu
Někdy nemáte kompletní soubor se sumami nebo jste na stránce pro stahování obdrželi pouze jeden hash. V takovém případě můžete provést také „staromódní“ ověření. výpočet lokálního kontrolního součtu a jeho ruční porovnání s publikovanou hodnotou.
Představte si, že jste si stáhli ISO soubor Red Hat a webová stránka zobrazuje pouze SHA-1 hash daného obrazu. Ve svém pracovním adresáři spusťte:
sha1sum redhat7-x64.iso
Příkaz vrátí něco jako:
2ac2f3368e6c9fe4d7201d85ad85528698aeaf08 redhat7-x64.iso
Odtud už jen musíte porovnejte vizuálně nebo kopírováním/vkládáním daného hashe Porovnejte název souboru s názvem zobrazeným na webových stránkách nebo v malém textovém souboru, který jste si stáhli. Pokud se znaky shodují, je integrita souboru zaručena; pokud se liší, budete si jej muset stáhnout znovu.
Ověření více ISO souborů najednou
Existují situace, kdy si chcete stáhnout několik obrázků najednou (například různé verze nebo architektury) a nechcete je kontrolovat jeden po druhém. Naštěstí je soubory MD5SUMS, SHA1SUMS nebo SHA256SUMS obvykle seskupují. všechny součty adresáře v jednom dokumentu, abyste mohli hromadné ověření provést v jednom kroku.
Předpokládejme, že máte ve složce šest různých ISO souborů a stáhli jste si soubory MD5SUM, SHA1SUM a SHA256SUM. Pro kontroly MD5 byste udělali něco jako toto:
md5sum -c MD5SUM
Výstup uvede každou ISO podobu spolu s „OK“ nebo „FAILED“ v závislosti na tom, zda se součet shoduje či nikoli. Totéž platí pro SHA-1 a SHA-256, pouze se změní nástroj a soubor:
sha1sum -c SHA1SUM
sha256sum -c SHA256SUM
Pokud někdy úmyslně upravíte ISO soubor nebo pokud se poškodí v důsledku selhání disku, uvidíte, že Pouze tento konkrétní záznam označuje FAILED (neúspěšný) I když vše ostatní zůstane v pořádku, programy vás upozorní zprávou, například „VAROVÁNÍ: 1 vypočítaný kontrolní součet se NEODPORUJE“, abyste věděli, že se něco pokazilo.
Jak generovat vlastní soubory kontrolních součtů
Kromě ověřování příspěvků ostatních si můžete také vytvořit vlastní soubory kontrolních součtů, pokud plánujete sdílet ISO nebo jakýkoli jiný typ souboru s více lidmi. Je to stejně jednoduché jako použití stejných nástrojů, ale přesměrování standardního výstupu do souboru které pak můžete nahrát spolu se staženými soubory.
Například pokud jste si v adresáři připravili několik ISO obrazů a chcete z nich všech vygenerovat soubor MD5SUM, můžete provést následující:
md5sum *.iso > MD5SUM
Příkaz prohledá všechny ISO soubory ve složce a uloží seznam hashů a názvů do souboru MD5SUM. Podobně můžete vytvářet dokumenty pomocí SHA-1 nebo SHA-256:
sha1sum *.iso > SHA1SUM
sha256sum *.iso > SHA256SUM
Publikováním těchto ověřovacích souborů spolu s vašimi soubory bude moci kdokoli spustit md5sum -c, sha1sum -co sha256sum -c na ně a ověřit, zda stahování proběhlo v pořádku a zda je nikdo během přenosu nezměnil.
Pokud chcete jít ještě o krok dál a nabídnout záruky pravosti, můžete dokonce digitálně podepsat tyto soubory součtů Použití vlastního GPG klíče, podobně jako u velkých projektů. Tímto způsobem si kdokoli, kdo materiál obdrží, může ověřit nejen to, že jsou data úplná, ale také to, že skutečně pocházejí od vás.
Zvyk kontrolovat kontrolní součty a GPG podpisy před instalací linuxové distribuce zabere jen velmi málo času a na oplátku poskytuje důležitou vrstvu zabezpečení, zabraňuje instalacím s poškozenými nebo manipulovanými ISO soubory a pomáhá vám odhalit problémy dříve, než ovlivní váš počítač.
