Ako preveriť pravosť stiahnutého súboru

Priznám sa, že niekedy dávno som po stiahnutí ISO obrazu nejakého distra okamžite vytváral bootovateľne USB a následne inštaloval, alebo spustil live distro, nikdy som nekontroloval md5sum, príp. sha256.

Určite si pamätáte, že 21.02.2016 bol hacknutý web kde sú uložené ISO obrazy Linux Mint. Napadnutý, resp. hacknutý bol len Linux Mint 17.3 Cinnamon edition. Táto verzia mala údajne obsahovať backdoor. Web stránky Linux Mint fungovali na známom CMS WordPress, ktorý sa podarilo hackerom prelomiť a akonáhle získali práva užívateľa www-data, tak linky presmerovali do Bulharska, resp. Bulharskú IP adresu 5.104.175.212.

Ďalšou príčinou preverenia kontrolného súčtu nemusí byť hacknutý sťahovaný súbor, ale poškodenie súboru pri sťahovaní. Preto je potrebné po každom sťahovaní dôležitého súboru preveriť jeho kontrolný súčet. Vo väčšine prípadov je to tak, že spoločnosť, alebo vývojár ak vydá nejaký nový produkt (ISO obraz, alebo nejaký software), tak vygeneruje z neho aj kontrolný súčet md5sum, sha256. Tento vygenerovaný súčet potom zverejní na webe pri sťahovanom súbore. Napr. na posledy som sťahoval z webu MXLinux MX-19.1_x64.iso. Vedľa tohto distra boli uvedené aj kontrolné súčty

md5sum : d34cc2c52abfd8db68ee54d36f3c8da8
sha256 : 18e880f55d83abb19f042310f46a2738807ed8dd48c86e2ef0a5a083672e9e2d

Čiže so sťahovaným súborom je potrebné stiahnuť aj jeden z kontrolných súčtov a po sťahovaní súboru skontrolujeme, či sa vygenerovaný kontrolný súčet zhoduje s tým uvedeným na webe. Kontrola je veľmi jednoduchá. Otvoríme si terminál (kláv. skratka Ctrl+ Alt + T) a prejdeme do adresára, kde sme stiahli súbor a kontrolný súčet. V mojom prípade je to:

  • MX-19.1_x64.iso
  • MX-19.1_x64.iso.sha256

Následne spustíme generovanie kontrolného súčtu.

cd /path/download/files
sha256sum MX-19.1_x64.iso

Podľa veľkosti súboru nám druhý príkaz vygeneruje kontrolný súčet do niekoľkých sekúnd (na menej výkonných CPU, alebo pri väčších súboroch to môže trvať dlhšie). Hex číslo, ktoré sa vygeneruje potom skontrolujeme s tým číslom, ktoré je na webe, resp. ktoré sme stiahli. Porovnávané čísla sa musia zhodovať. Ak by sme sťahovaný súbor veľmi nepatrne pozmenili, úplne by stačilo v ISO súbore pozmeniť čo i len názov súboru, alebo pridať do nejakého konfiguračného súboru bodku „.“ tak suma kontrolného súčtu by sa oproti originálu výrazne zmenila (v sume by sa nezmenil len nejaký znak, ale zmenili by sa všetky znaky). Vtedy by sa potvrdilo, že stiahnutý súbor nezodpovedá originálu, ktorý sme sťahovali. Potom nám neostáva nič iné ako stiahnuť súbor znovu.

Ak sa nám nechce kontrolný súčet kontrolovať vizuálne, môžeme na to použiť niektorý z linuxových príkazov, napr. diff. Znova si vygenerujeme sumu kontrolného súčtu a výsledok štandardného vstupu presmerujeme do súboru s názvom napr. suma.sha256

sha256sum MX-19.1_x64.iso > suma.sha256

Teraz máme v našom pracovnom adresáre 3 súbory

  • MX-19.1_x64.iso
  • MX-19.1_x64.iso.sha256
  • suma.sha256

a môžeme tieto 2 súbory porovnať. Najzákladnejší test porovnania je diff súbor1 súbor2

diff MX-19.1_x64.iso.sha256 suma.sha256

Ak výstupom je nič, tak súbory majú identicky obsah. Ak náhodou zámerne zmením jeden znak vo výslednej sume, tak diff na výstup pošle výsledok, že obsah súborov sa nezhoduje. V jednom súbore som zámerne zmenil jeden znak a výsledkom diffu bolo

1c1
< 18e880f55d83abb19f042310f46a2738807ed8dd48c86e2ef0a5a083672e9e2d  MX-19.1_x64.iso
---
> 18e880f55d83abb19f042310f46a2738807ed8dd48c86e2ef0a5a083672e9e2x  MX-19.1_x64.iso

Všimnite si v druhej sume na konci riadku znak „x“ a v prvej sume je „d“. Ešte pred tým sú však 3 znaky „1c1“, ktoré hovoria to, že v prvom riadku prvého súboru je zmena „c“ (change). Utilita diff má veľa parametrov pozri diff – – help. Nám úplne stačí, keď použijeme diff bez parametrov, alebo použijeme parameter -q ktorý na výstup v prípade zhody nevyhodí nič, ale ak sa súbory nezhodujú tak na výstupe uvidíme niečo také:

Files MX-19.1_x64.iso.sha256 and suma.sha256 differ

Záver

Takže ponaučenie z tohto krátkeho blogu je také, že ak sťahujem nejaký ISO obraz Linuxu (alebo iný dôležitý súbor, software a pod.), tak sumy kontrolných súčtov vedľa ISO obrazov nie sú na srandu, ale na kontrolu korektného stiahnutia.

Leave a Reply

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *