Kai atsisiunčiame GNU/Linux distribuciją, įprastai atsisiunčiame Sukurkite ISO atvaizdą ir pradėkite kurti įkrovos USB atmintinę. Per daug nesusimąstydami, kas galėjo nutikti pakeliui. Tiesa ta, kad nors dažnai nieko blogo ir nevyksta, mes aklai pasitikime, kad ISO yra teisėtas. Kad niekas jo nelietė ir kad atsisiuntimas nebuvo sugadintas.
Jei kalbame apie visą operacinę sistemą, viskas pasikeičia. Tai dideli failai, jų atsisiuntimas užtrunka ilgai ir, svarbiausia, ISO gedimas ar manipuliavimas gali pakenkti visai komandaiŠtai kodėl „Linux“ pasaulyje taip įprasta (ir rekomenduojama) patikrinti ISO vientisumą ir autentiškumą naudojant kontrolines sumas ir GPG parašus prieš įrašant juos į DVD arba USB atmintinę.
Ką reiškia ISO patvirtinimas: vientisumas ir autentiškumas
Tikrindami ISO standartą, atliekate ne vieną patikrinimą, o du skirtingus patikrinimus, kurių nereikėtų maišyti: failo vientisumas ir jo kilmės autentiškumasVientisumas parodo, ar diske esantis ISO failas yra identiškas tam, kuris buvo serveryje, bitas po bito. Autentiškumas parodo, ar tas ISO failas ir jo kontrolinės sumos iš tikrųjų yra iš projekto, kurį jie tariamai reprezentuoja.
Vientisumas tikrinamas naudojant maišos funkcija (kontrolinė suma), apskaičiuota visam failuiJei jūsų kompiuteryje gautas rezultatas atitinka platinimo programos paskelbtą rezultatą, tai reiškia, kad ISO nebuvo pakeistas atsisiuntimo metu arba pažeistas saugykloje.
Autentiškumas patvirtinamas per GPG skaitmeniniai parašai susietas su kūrėjų viešaisiais raktaisPraktiškai platinimo programa pasirašo failą, kuriame yra kontrolinės sumos (pavyzdžiui, SHA256SUMS), o jūs patikrinate, ar šis parašas atitinka oficialų projekto raktą ir ar jis nebuvo modifikuotas.
Nors daugelis žmonių tikrina tik MD5 arba SHA kontrolinę sumą ir laiko ją galiojančia, jei kas nors pažeidė atsisiuntimo serverį, jie taip pat galėjo... Pakeiskite ISO ir paskelbkite netikrą kontrolinę sumą.Todėl gera praktika apima ir sumų failo GPG parašo patvirtinimą.

Kas yra kontrolinė suma ir kodėl ji naudojama ISO standartuose?
Kontrolinė suma yra kontrolinės sumos taikymo failui rezultatas. kriptografinė maišos funkcija, kuri sukuria unikalią eilutę tam turiniui. Ta eilutė paprastai pateikiama šešioliktaine sistema (0–9 ir af simboliai) ir yra fiksuoto ilgio, neatsižvelgiant į pradinio failo dydį.
GNU/Linux distribucijų kontekste kontrolinės sumos naudojamos patikrinkite, ar duomenys nepasikeitė nuo tada, kai projektas paskelbė vaizdąJei du failai, naudojant tą patį algoritmą, sukuria tą patį maišos kodą, jie (praktiškai) laikomi identiškais. Jei maišos kodas nesutampa, pakanka vieno skirtingo bito, kad reikšmė visiškai pasikeistų ir problema būtų aptikta.
Yra daug maišos algoritmų, tačiau dažniausiai su ISO matysite šiuos: MD5, SHA-1 ir SHA-2 šeima (SHA-256, SHA-384, SHA-512…)„Debian“, „Ubuntu“, „Fedora“ ar kitų platinamųjų versijų atsisiuntimo puslapiuose jie dažnai kartu su ISO siūlo failus su tokiais pavadinimais kaip MD5SUMS, SHA1SUMS arba SHA256SUMS.
Procedūra paprasta: atsisiunčiate ISO ir jo maišos failą, apskaičiuojate ISO maišą savo kompiuteryje ir Patvirtinate, kad rezultatas atitinka kontrolinės sumos faile paskelbtą reikšmę.Jei sutampa, galite būti pakankamai tikri, kad vaizdas nėra sugadintas ar sutrumpintas.
MD5 šiandien laikomas algoritmu nebenaudojamas sunkiems saugumo tikslamsnes buvo rasti praktiniai susidūrimai. Nepaisant to, jis išlieka naudingas pagrindiniam vientisumo tikrinimui. Dideliems atsisiuntimams, ypač ISO, geriau naudoti... SHA-256, kuris šiuo metu yra rekomenduojamas standartas. daugumoje paskirstymų.
Failų tipai, kuriuos rasite atsisiųsdami ISO
Atsisiunčiant platinamą paketą iš oficialaus serverio, įprasta rasti, be paties atvaizdo, ir keletą papildomų failų. Kiekvienas iš jų turi savo paskirtį, todėl svarbu žinoti, kokie jie yra. Kokią funkciją atlieka kiekvienas failo tipas ir kaip jis susijęs su patikrinimu? kad ketini daryti.
Paprastai rasite kažką panašaus į tai (pavadinimai gali šiek tiek skirtis skirtinguose distribucijose):
- platinimo-pavadinimas-versijos-architektūra.isoPats atvaizdas, kurį įrašysite į USB atmintinę arba DVD diską. Pavyzdžiui, ubuntu-20.04-desktop-amd64.iso, kuriame nurodomas platinimas, versija, leidimas (darbalaukis/serveris) ir architektūra.
- MD5SUMSTekstinis failas, kuriame yra tame kataloge esančių vaizdų MD5 maišos kodai. Kiekviena eilutė susieja maišą su failo pavadinimu.
- MD5SUMS.gpgMD5SUMS failo GPG parašas, sugeneruotas naudojant kūrėjo raktą. Jis skirtas patikrinti, ar MD5 maišos failas iš tikrųjų yra iš projekto ir nebuvo pakeistas.
- SHA256SUMS: atitinka MD5SUMS, bet naudojant SHA-256 algoritmą. Tai failas, kuriam turėtumėte teikti pirmenybę, jei jis yra prieinamas.
- SHA256SUMS.gpgSHA256SUMS GPG skaitmeninis parašas, naudojamas jo autentiškumui garantuoti.
Kai kuriuose distribuciniuose paketuose taip pat matysite SHA1SUMS, SHA512SUMS arba panašius failus. Jie visi vadovaujasi tuo pačiu principu: sumų sąrašas ir, pasirinktinai, susijęs GPG parašas kad galėtumėte patikrinti, ar sąrašas nebuvo pakeistas.
Jei vietoj ISO atsisiuntimo per HTTP/HTTPS tai darote naudodami „BitTorrent“ dauguma klientų jau integruoja patvirtinimo sistemą Vidinis apdorojimas pagrįstas fragmentais ir daliniais maišos kodais, todėl tikimybė gauti sugadintą ISO failą yra labai sumažinta. Nepaisant to, jei norite būti visiškai tikri dėl jo autentiškumo, vis tiek prasminga patikrinti maišos failo GPG parašą.
Kaip veikia maišos funkcijos (MD5, SHA-1, SHA-256…)
Praktiškai jums nereikia suprasti maišos matematinių principų, tačiau norint aiškiai suprasti, naudinga suprasti keletą pagrindinių sąvokų. Kodėl jie tokie naudingi tikrinant ISO?Kriptografinė maišos funkcija paima bet kokio dydžio failą ir grąžina fiksuoto ilgio eilutę; pakeitus vieną failo bitą, gaunama visiškai kitokia maišos funkcija.
Gerai maišos funkcijai keliami reikalavimai, kad ją būtų lengva apskaičiuoti viena prasme, bet praktiškai neįmanoma investuotikad labai sunku rasti du skirtingus failus su ta pačia maišos verte (susidūrimas) ir kad jis yra atsparus bandymams generuoti kenkėjišką turinį, kuris atitinka konkrečią maišos vertę.
MD5 daugelį metų buvo faktinis šio tipo patvirtinimo standartas, tačiau kriptografijos pažanga parodė, kad Galima sukurti skirtingus failus su ta pačia MD5 maišos funkcija.Todėl, nors kai kuriuose projektuose tai išlieka įprasta praktika, dėl saugumo priežasčių rekomenduojama naudoti patikimesnius algoritmus.
SHA-1 patobulino kai kuriuos MD5 trūkumus, tačiau taip pat buvo nustatytos susidūrimų problemos, ir tai laikoma Netinka naujoms diegimo sistemoms, kurioms reikalingas didelis saugumasSHA-2 šeima (ypač SHA-256) šiuo metu yra labiausiai subalansuotas pasirinkimas tarp saugumo ir našumo ISO patikrai.
Praktiškai, jei distribucija siūlo kelis sum failus, geriausias variantas yra pasirinkti vieną. SHA-256 arba SHA-512 kaip pirmasis variantasSHA-1 palikite tik tais atvejais, kai nėra kitos išeities, o MD5 – tik pagrindiniam vientisumo patikrinimui, kai neturite kitos išeities.
„Linux“ įrankiai kontrolinėms sumoms apskaičiuoti ir patikrinti
Geros naujienos yra tai, kad jums nereikia diegti nieko neįprasto: daugumoje šiuolaikinių GNU/Linux distribucijų jie jau yra. komandinės eilutės įrankiai maišos reikšmių skaičiavimui ir tikrinimuiŠie įrankiai paprastai yra „coreutils“ arba kitų pagrindinių paketų dalis.
Dažniausiai pasitaikančios komandos yra šios:
- Aš esu md5: apskaičiuoja ir patikrina MD5 sumas.
- suma1: apskaičiuoja ir patikrina SHA-1 sumas.
- suma256: apskaičiuoja ir patikrina SHA-256 sumas.
- suma512: apskaičiuoja ir patikrina SHA-512 sumas.
Juos naudoti labai paprasta. Jei norite apskaičiuoti konkretaus failo maišos kodą, tiesiog terminale, iš katalogo, kuriame yra ISO failas, paleiskite šią komandą:
cd Descargas
sha256sum nombre-de-tu-imagen.iso
Komanda atspausdins eilutę su maišos kodu ir failo pavadinimu, kuriuos galite palyginti su svetainėje paskelbta reikšme. Jei pageidaujate MD5 arba SHA-1, Komandos formatas yra identiškas, pakeičiant naudingumą (md5sum, sha1sum, sha512sum...).
Be atskirų maišos verčių skaičiavimo, tie patys įrankiai leidžia vienu metu patikrinti kelis failus naudojant tikrinimo režimas su -c parinktimiŠtai čia praverčia MD5SUMS arba SHA256SUMS failas, kurį atsisiuntėte kartu su ISO failais.
ISO vientisumo tikrinimas naudojant suminius failus
Įprastu atveju iš oficialios distribucijos svetainės atsisiunčiate ir ISO atvaizdą, ir jo SHA256SUMS failą (ir, jei yra, MD5SUMS arba SHA1SUMS). Šio failo struktūra labai paprasta: kiekvienoje eilutėje yra maišos simbolis, tarpas, pasirinktinai žvaigždutė arba papildomas tarpas ir failo pavadinimas.
Norėdami patikrinti ISO su sum failu, jums tereikia eiti į aplanką, kuriame turite ir atvaizdą, ir SHA256SUMS failą ir paleiskite:
sha256sum -c SHA256SUMS
Įrankis peržiūri visas SHA256SUMS eilutes ir palygina lokaliai kiekvienam išvardytam failui apskaičiuotą maišos kodą su dokumente esančiu kodu. Jei viskas tvarkoje, bus rodomas maždaug toks vaizdas:
nombre-distro.iso: OK
Neatitikimų atveju, nesvarbu, ar dėl ISO sugadinimo, ar dėl to, kad Failas neatitinka sumų sąrašoPamatysite tokius pranešimus:
nombre-distro.iso: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match
Ta pati procedūra taikoma MD5 ir SHA-1, pakeičiant atitinkamą įrankį ir failą, pavyzdžiui:
md5sum -c MD5SUMS
sha1sum -c SHA1SUMS
Šis metodas ypač patogus atsisiunčiant kelis ISO arba kelis failus vienu metu, nes Visus failus galite patikrinti vienu metu naudodami vieną komandą. ir sistema jums pasakys, kurie iš jų išlaikė testą, o kurie ne.
GPG parašai: sumų autentiškumo tikrinimas
Iki šiol kalbėjome tik apie sąžiningumą, bet trūksta antrojo komponento: įsitikinkite, kad sumų failas iš tikrųjų yra iš projekto o ne iš asmens, kuris užkrėtė serverį. Čia ir praverčia „GnuPG“ (gpg) – standartinė priemonė viešojo rakto kriptografijai tvarkyti GNU/Linux sistemoje.
Dauguma pagrindinių platinamųjų programų savo maišos sumų failus (pvz., SHA256SUMS.gpg) pasirašo privačiu raktu, susietu su kūrėjais. Jūs, kaip vartotojas, atsisiunčiate šį parašą ir jį naudojate. projekto viešasis raktas patikrinimui kad SHA256SUMS failas nebuvo modifikuotas.
Įprastas darbo procesas naudojant tokią distribuciją kaip „Ubuntu“, kai įdiegiate „gpg“ ir esate atsisiuntimų kataloge:
gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS
Jei jūsų kompiuteryje jau yra teisingai importuotas ir patikimas „Ubuntu“ viešasis raktas, „gpg“ parodys pranešimą, nurodantį, kad galiojantis parašas ir rakto identifikatoriusTačiau labai dažnai pirmą kartą paleidus programą pranešama, kad ji nežino to viešojo rakto.
Tokiu atveju kitas žingsnis būtų importuoti viešąjį raktą iš patikimo raktų serverio. Pavyzdžiui, naudodami „Ubuntu“ galite atlikti tokius veiksmus:
gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0xD94AA3F0EFE21092
Tai atsisiunčia raktą su nurodytu identifikatoriumi iš oficialaus raktų serverio. Importavę dar kartą paleiskite parašo patvirtinimo komandą naudodami SHA256SUMS ir turėtumėte gauti patvirtinimas, kad parašas yra teisingas ir yra susietas su raktu „Ubuntu CD Image Automatic Signing Key (2012)“ "arba kitas panašus, priklausomai nuo distribucijos."
GPG gali rodyti įspėjimus, pvz., „Nėra jokių požymių, kad parašas priklauso savininkui“, o tai iš esmės reiškia, kad Jūs nepažymėjote to rakto kaip absoliučiai patikimo.Tai nėra kritinė klaida: jei kitais būdais (oficialia svetaine, dokumentais ir kt.) patvirtinote, kad rakto piršto atspaudas yra tas, kurį deklaravo projektas, galite tęsti.
Praktinis pavyzdys: naujausio „Ubuntu ISO“ patikrinimas
Kad tai aiškiai suprastumėte, įsivaizduokite, kad iš oficialios svetainės atsisiunčiate „Ubuntu ISO“ (pavyzdžiui, naujausią LTS versiją). Tame puslapyje rasite nuorodas į ISO, SHA256SUMS failą ir jo parašą SHA256SUMS.gpg, visus tame pačiame arba netoliese esančiame kataloge.
Jūsų atlikti veiksmai iš esmės būtų tokie:
Pirma, Atsisiųskite savo architektūrai tinkamą ISO failą (pavyzdžiui, 64 bitų AMD64 darbalaukio atvaizdą), be tos versijos atitinkamų failų SHA256SUMS ir SHA256SUMS.gpg.
Toliau, įdiegę „gpg“ sistemoje, patikrinkite sumų failo parašą naudodami:
gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS
Jei „gpg“ praneša, kad neranda rakto, galite jį gauti iš su projektu susieto raktų serverio, paleisdami panašią komandą:
gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0xD94AA3F0EFE21092
Kai raktas importuotas ir SHA256SUMS failo parašas patvirtintas, galite patikrinti ISO pagal tą sąrašą naudodami:
sha256sum -c SHA256SUMS
Komanda patikrins visus įrašus ir parodys pranešimą apie kiekvieną išvardytą failą. Naujai atsisiųstą ISO failą turėtumėte matyti maždaug taip: „ubuntu-XX.XX-desktop-amd64.iso: Sumos atitikmenys“ arba „Gerai“, patvirtindamas, kad vietinis vaizdas tiksliai atitinka kūrėjų paskelbtą.
Rankinis vienos kontrolinės sumos patikrinimas
Kartais neturite viso sumų failo arba atsisiuntimo puslapyje matėte tik vieną maišos kodą. Tokiu atveju galite atlikti ir „senamadišką“ patikrinimą. apskaičiuojant vietinę kontrolinę sumą ir ją lyginant rankiniu būdu su paskelbta verte.
Įsivaizduokite, kad atsisiuntėte „Red Hat“ ISO failą ir svetainėje rodoma tik to vaizdo SHA-1 maišos versija. Savo darbo kataloge paleidžiate:
sha1sum redhat7-x64.iso
Komanda grąžins kažką panašaus į:
2ac2f3368e6c9fe4d7201d85ad85528698aeaf08 redhat7-x64.iso
Iš ten tereikia palyginkite vizualiai arba nukopijuodami / įklijuodami tą maišos kodą Palyginkite failo pavadinimą su nurodytu svetainėje arba atsisiųstame mažame tekstiniame faile. Jei jie sutampa simbolis po simbolio, failo vientisumas garantuojamas; jei jie skiriasi, turėsite jį atsisiųsti dar kartą.
Patikrinkite daug ISO vienu metu
Pasitaiko situacijų, kai ketinate atsisiųsti kelis atvaizdus vienu metu (pavyzdžiui, skirtingas versijas ar architektūras) ir nenorite jų tikrinti po vieną. Laimei, MD5SUMS, SHA1SUMS arba SHA256SUMS failai paprastai juos sugrupuoja. visos katalogo sumos viename dokumente, kad galėtumėte atlikti masinį patvirtinimą vienu žingsniu.
Tarkime, kad aplanke yra šeši skirtingi ISO failai ir atsisiuntėte MD5SUM, SHA1SUM ir SHA256SUM failus. MD5 patikrinimams atlikite tokius veiksmus:
md5sum -c MD5SUM
Išvestyje bus nurodytas kiekvienas ISO kartu su „OK“ arba „FAILED“, priklausomai nuo to, ar suma sutampa, ar ne. Tas pats pasakytina apie SHA-1 ir SHA-256, keičiant tik įrankį ir failą:
sha1sum -c SHA1SUM
sha256sum -c SHA256SUM
Jei kada nors tyčia modifikuosite ISO arba jei jis bus sugadintas dėl disko gedimo, pamatysite, kad Tik tas konkretus įrašas nebuvo įvertintas Nors visa kita lieka gerai, programos įspės jus pranešimu, pvz., „ĮSPĖJIMAS: 1 apskaičiuota kontrolinė suma NEATITIKO“, kad žinotumėte, jog kažkas negerai.
Kaip sugeneruoti savo kontrolinės sumos failus
Be to, kad tikrintumėte kitų paskelbtą informaciją, taip pat galite sukurti savo kontrolinės sumos failus, jei planuojate bendrinti ISO ar bet kokio kito tipo failus su daugiau žmonių. Tai taip paprasta, kaip naudoti tuos pačius įrankius, bet standartinės išvesties nukreipimas į failą kurį vėliau galite įkelti kartu su atsisiuntimais.
Pavyzdžiui, jei kataloge paruošėte kelis ISO atvaizdus ir norite sugeneruoti MD5SUM failą su jais visais, galite atlikti šiuos veiksmus:
md5sum *.iso > MD5SUM
Komanda nuskaitys visus aplanke esančius ISO failus ir išsaugos maišos kodų bei pavadinimų sąrašą MD5SUM faile. Panašiai galite kurti dokumentus naudodami SHA-1 arba SHA-256:
sha1sum *.iso > SHA1SUM
sha256sum *.iso > SHA256SUM
Paskelbus šiuos patvirtinimo failus kartu su savo failais, kiekvienas galės paleisti md5sum -c, sha1sum -co sha256sum -c ant jų ir patikrinkite, ar atsisiuntimai vyko sklandžiai ir ar niekas jų nepakeitė perdavimo metu.
Jei norite žengti dar vieną žingsnį ir pasiūlyti autentiškumo garantijas, galite netgi skaitmeniniu būdu pasirašyti tuos suminius failus Naudojant savo GPG raktą, panašiai kaip tai daro dideli projektai. Tokiu būdu medžiagą gaunantis asmuo gali patikrinti ne tik tai, kad duomenys yra išsamūs, bet ir tai, kad jie tikrai gauti iš jūsų.
Įprotis tikrinti kontrolines sumas ir GPG parašus prieš diegiant „Linux“ platinimą užima labai mažai laiko ir mainais suteikia svarbų saugumo lygmenį, užkertant kelią diegimui su sugadintais ar manipuliuojamais ISO ir padedant aptikti problemas, kol jos nepaveikė jūsų kompiuterio.
