Проверка на ISO файлове в Linux: контролни суми, GPG и най-добри практики

  • Проверката на ISO файл включва както проверка на неговата цялост с помощта на контролни суми, така и на неговата автентичност с помощта на GPG подписи.
  • Помощните програми md5sum, sha1sum и sha256sum ви позволяват лесно да изчислявате и проверявате хешове от терминала.
  • Файловете SHA256SUMS и SHA256SUMS.gpg са ключови за проверка дали изтеглянията съответстват на официалните изображения.
  • Генерирането и публикуването на ваши собствени файлове с контролни суми улеснява други потребители бързо и сигурно да проверяват своите изтегляния.

Проверка на ISO файлове в Linux с помощта на контролни суми и GPG

Когато изтегляме дистрибуция на GNU/Linux, обичайното нещо е да изтеглим Създайте ISO образ и започнете да създавате стартиращото USB устройство. Без да се замисляме много какво може да се е случило по пътя. Истината е, че въпреки че често нищо не се обърква, ние сляпо се доверяваме, че ISO файлът е легитимен. Че никой не го е пипал и че изтегленият файл не е повреден.

Ако говорим за цялостна операционна система, нещата се променят. Това са големи файлове, отнемат много време за изтегляне и най-вече, Повреда или манипулация в ISO може да компрометира целия екипЕто защо в света на Linux е толкова често срещано (и толкова препоръчително) да се проверява целостта и автентичността на ISO файловете, използвайки контролни суми и GPG подписи, преди да се запишат на DVD или USB устройство.

Какво означава да се провери ISO: цялост и автентичност

Когато проверявате ISO стандарт, не извършвате една проверка, а две отделни проверки, които не трябва да се смесват: целостта на файла и автентичността на неговия произходЦелостта ви казва дали ISO файлът, който имате на диска, е идентичен с този, който е бил на сървъра, бит по бит. Автентичността ви казва дали този ISO файл и неговите контролни суми действително идват от проекта, който твърдят, че представляват.

Целостта се проверява чрез хеш функция (контролна сума), изчислена върху целия файлАко резултатът, който получавате на компютъра си, съвпада с публикувания от дистрибуцията, това означава, че ISO файлът не е бил променян по време на изтеглянето или повреден при съхранение.

Автентичността се потвърждава чрез GPG цифрови подписи свързани с публичните ключове на разработчицитеНа практика дистрибуцията подписва файла, съдържащ контролните суми (например SHA256SUMS), а вие проверявате дали този подпис съответства на официалния ключ на проекта и дали не е бил модифициран.

Въпреки че много хора проверяват само контролната сума на MD5 или SHA и я считат за валидна, ако някой е компрометирал сървъра за изтегляне, той може също... Подменете ISO файла и публикувайте фалшива контролна сума.Следователно, добрата практика включва и валидиране на GPG подписа на файла със суми.

контролна сума iso linux

Какво е контролна сума и защо се използва в ISO файлове?

Контролната сума е резултат от прилагането ѝ към файл. криптографска хеш функция, която генерира уникален низ за това съдържание. Този низ обикновено е представен в шестнадесетичен вид (символи 0-9 и af) и има фиксирана дължина, независимо от размера на оригиналния файл.

В контекста на дистрибуциите на GNU/Linux, контролните суми се използват за проверете дали данните не са се променили, откакто проектът е публикувал изображениетоАко два файла генерират един и същ хеш, използвайки един и същ алгоритъм, те се считат (на практика) за идентични. Ако хешът не съвпада, един различен бит е достатъчен, за да промени напълно стойността и да ни позволи да открием проблема.

Има много хеш алгоритми, но тези, които най-често ще видите свързани с ISO файлове, са: MD5, SHA-1 и семейството SHA-2 (SHA-256, SHA-384, SHA-512…)На страниците за изтегляне на Debian, Ubuntu, Fedora или други дистрибуции, те често предлагат файлове с имена като MD5SUMS, SHA1SUMS или SHA256SUMS, заедно с ISO файловете.

Процедурата е проста: изтегляте ISO файла и неговия хеш файл, изчислявате ISO хеша на вашата машина и Проверявате дали резултатът съвпада със стойността, публикувана във файла с контролна сума.Ако съвпада, можете да сте сравнително сигурни, че изображението не е повредено или отрязано.

MD5 се счита за алгоритъм днес остаряло за тежки охранителни приложениязащото са открити практически колизии. Въпреки това, той остава полезен за основна проверка на целостта. За големи изтегляния, особено ISO файлове, е по-добре да се използва... SHA-256, който в момента е препоръчителният стандарт. в повечето дистрибуции.

Видове файлове, които ще намерите при изтегляне на ISO файл

Когато изтегляте дистрибуция от официалния ѝ сървър, е обичайно да откриете, освен самия образ, и поредица от допълнителни файлове. Всеки един от тях има своето предназначение и е важно да знаете какви са те. Каква функция изпълнява всеки тип файл и как е свързан с проверката? което ще направите.

Обикновено ще намерите нещо подобно (имената може да се различават леко между дистрибуциите):

  • име-на-дистрибуция-версия-архитектура.isoСамото изображение, което ще запишете на USB устройство или DVD. Например, ubuntu-20.04-desktop-amd64.iso, което показва дистрибуцията, версията, изданието (настолна/сървърна) и архитектурата.
  • MD5SUMSТекстов файл, който включва списък с MD5 хешове за изображенията, налични в тази директория. Всеки ред свързва хеш с име на файл.
  • MD5SUMS.gpgGPG подпис на MD5SUMS файла, генериран с ключа на разработчиците. Той служи за проверка дали MD5 хеш файлът действително идва от проекта и не е бил променян.
  • SHA256SUMS: еквивалентно на MD5SUMS, но използващо алгоритъма SHA-256. Това е файлът, на който трябва да дадете приоритет, ако е наличен.
  • SHA256SUMS.gpgSHA256SUMS GPG цифров подпис, използван за гарантиране на неговата автентичност.

В някои дистрибуции ще видите също SHA1SUMS, SHA512SUMS или подобни файлове. Всички те следват един и същ принцип: списък със суми и, по избор, свързан GPG подпис за да можете да проверите дали списъкът не е бил подправен.

Ако вместо да изтегляте ISO файла чрез HTTP/HTTPS, го правите, използвайки BitTorrent, повечето клиенти вече имат интегрирана система за проверка Вътрешната обработка се основава на части и частични хешове, така че шансовете да се окажете с повреден ISO файл са значително намалени. Въпреки това, ако искате да сте абсолютно сигурни в неговата автентичност, все пак има смисъл да проверите GPG подписа на хеш файла.

Хеш функции на Linux

Как работят хеш функциите (MD5, SHA-1, SHA-256…)

На практика не е нужно да разбирате математиката зад хешовете, но е полезно да разберете няколко основни понятия, за да имате ясно разбиране. Защо са толкова полезни за проверка на ISO изображения?Криптографската хеш функция приема файл с произволен размер и връща низ с фиксирана дължина; промяната на един бит от файла води до напълно различен хеш.

Изискванията за добра хеш функция включват лесна за изчисляване в един смисъл, но почти невъзможно е да се инвестираче е много трудно да се намерят два различни файла с един и същ хеш (колизия) и че е устойчив на опити за генериране на злонамерено съдържание, което отговаря на специфичен хеш.

MD5 беше в продължение на години де факто стандартът за този тип проверка, но напредъкът в криптографията показа, че Възможно е да се изградят различни файлове с един и същ MD5 хешСледователно, въпреки че това остава обичайна практика в някои проекти, от съображения за сигурност се препоръчва използването на по-надеждни алгоритми.

SHA-1 подобри някои от слабостите на MD5, но бяха идентифицирани и проблеми със сблъсъци и се счита, че Не е подходящ за нови реализации, изискващи висока сигурностСемейството SHA-2 (особено SHA-256) в момента е най-балансираният вариант между сигурност и производителност за ISO проверка.

На практика, ако дистрибуцията предлага няколко sum файла, най-добрият вариант е да изберете един. SHA-256 или SHA-512 като първа опцияОставете SHA-1 само за случаите, когато няма друга опция, а MD5 прехвърлете на основна проверка за целостта, когато нямате алтернатива.

Linux инструменти за изчисляване и проверка на контролни суми

Добрата новина е, че не е нужно да инсталирате нищо необичайно: повечето съвременни GNU/Linux дистрибуции вече ги включват. помощни програми от командния ред за изчисляване и проверка на хешовеТези инструменти обикновено са част от coreutils или други основни пакети.

Най-често срещаните команди, с които ще се сблъскате, са:

  • md5sum: изчислява и проверява MD5 суми.
  • sha1sum: изчислява и проверява SHA-1 суми.
  • sha256sum: изчислява и проверява SHA-256 суми.
  • sha512sum: изчислява и проверява SHA-512 суми.

Използването им е много лесно. Ако искате да изчислите хеша на конкретен файл, просто изпълнете следната команда в терминала от директорията, където се намира ISO файлът:

cd Descargas
sha256sum nombre-de-tu-imagen.iso

Командата ще отпечата ред с хеша и името на файла, които можете да сравните със стойността, публикувана на уебсайта. Ако предпочитате MD5 или SHA-1, Форматът на командата е идентичен, променяйки помощната програма (md5sum, sha1sum, sha512sum…).

В допълнение към изчисляването на отделни хешове, същите тези инструменти ви позволяват да проверявате множество файлове едновременно, използвайки проверете режима с опцията -cТук е мястото, където файлът MD5SUMS или SHA256SUMS, който сте изтеглили заедно с ISO файловете, влиза в действие.

Проверка на целостта на ISO файл с помощта на sum файлове

В типичен сценарий изтегляте както ISO образа, така и неговия SHA256SUMS файл (и, ако е наличен, MD5SUMS или SHA1SUMS) от официалния уебсайт на дистрибуцията. Структурата на този файл е много проста: всеки ред съдържа хеш, интервал, по избор звездичка или допълнителен интервал и името на файла.

За да проверите ISO файла със sum файла, просто трябва да отидете в папката, където имате както изображението, така и SHA256SUMS файла и изпълнете:

sha256sum -c SHA256SUMS

Помощната програма итерира през всички редове на SHA256SUMS и сравнява хеша, който изчисли локално за всеки посочен файл, с този в документа. Ако всичко е наред, ще покаже нещо подобно:

nombre-distro.iso: OK

В случай на несъответствия, независимо дали поради повреден ISO файл или защото Файлът не съответства на списъка със сумиЩе видите съобщения като това:

nombre-distro.iso: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match

Същата процедура се прилага и за MD5 и SHA-1, като се заместват съответният инструмент и файл, например:

md5sum -c MD5SUMS
sha1sum -c SHA1SUMS

Този подход е особено удобен при едновременно изтегляне на множество ISO файлове или множество файлове, защото Проверявате всички файлове наведнъж с една команда. и системата ви казва кои са преминали теста и кои не.

GPG подписи: проверка на автентичността на сумите

Досега говорихме само за почтеност, но вторият компонент липсва: Уверете се, че файлът със суми действително идва от проекта а не от някой, който е компрометирал сървъра. Тук се намесва GnuPG (gpg), стандартният инструмент за работа с криптография с публичен ключ в GNU/Linux.

Повечето големи дистрибуции подписват своите hashsum файлове (напр. SHA256SUMS.gpg) с частен ключ, свързан с разработчиците. Вие, като потребител, изтегляте този подпис и го използвате. публичният ключ на проекта за проверка че SHA256SUMS файлът не е бил модифициран.

Типичният работен процес с дистрибуция като Ubuntu би бил следният, след като сте инсталирали gpg и сте в директорията за изтегляния:

gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS

Ако вашият компютър вече има правилно импортиран и надежден публичен ключ на Ubuntu, gpg ще покаже съобщение, показващо валиден подпис и идентификатор на ключНо е много често срещано първия път, когато го стартирате, да ви каже, че не знае този публичен ключ.

В този случай следващата стъпка би била да импортирате публичния ключ от надежден сървър за ключове. Например, с Ubuntu можете да направите нещо подобно:

gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0xD94AA3F0EFE21092

Това изтегля ключа с посочения идентификатор от официалния сървър за ключове. След импортиране, изпълнявате командата за проверка на подписа отново, използвайки SHA256SUMS, и сега би трябвало да получите потвърждение, че подписът е правилен и е свързан с ключа „Ubuntu CD Image Automatic Signing Key (2012)“ "или друг подобен, в зависимост от дистрибуцията."

GPG може да показва предупреждения като „Няма индикация, че подписът принадлежи на собственика“, което основно означава, че Не си маркирал този ключ като абсолютно надежден.Това не е фатална грешка: стига да сте проверили чрез други средства (официален уебсайт, документация и др.), че ключовият пръстов отпечатък е този, деклариран от проекта, можете да продължите.

Практически пример: проверка на скорошен ISO файл на Ubuntu

За да разберете това ясно, представете си, че изтегляте ISO файл на Ubuntu (например, скорошна LTS версия) от официалния уебсайт. На тази страница ще намерите връзки към ISO файла, SHA256SUMS файла и неговия SHA256SUMS.gpg подпис, всички в една и съща или близка директория.

Стъпките, които ще следвате, биха били по същество следните:

На първо място, Изтеглете подходящия ISO файл за вашата архитектура (например, 64-битовото изображение на работния плот на AMD64), в допълнение към файловете SHA256SUMS и SHA256SUMS.gpg, съответстващи на тази версия.

След това, с инсталиран gpg на вашата система, ще проверите подписа на файла sums с:

gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS

Ако gpg ви каже, че не може да намери ключа, можете да го получите от сървър за ключове, свързан с проекта, като изпълните команда, подобна на:

gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0xD94AA3F0EFE21092

След като ключът бъде импортиран и подписът на SHA256SUMS файла бъде валидиран, можете да проверите ISO файла спрямо този списък, като използвате:

sha256sum -c SHA256SUMS

Командата ще провери всички записи и ще покаже съобщение за всеки посочен файл. За новоизтегления ISO образ би трябвало да видите нещо подобно: „ubuntu-XX.XX-desktop-amd64.iso: Сума на съвпаденията“ или „OK“, потвърждавайки, че локалното изображение съвпада точно с публикуваното от разработчиците.

Ръчна проверка на единична контролна сума

Понякога нямате пълния файл със суми или на страницата за изтегляне ви е даден само един хеш. В този случай можете да извършите и „старомодната“ проверка. изчисляване на локалната контролна сума и ръчното ѝ сравняване с публикуваната стойност.

Представете си, че сте изтеглили ISO файл на Red Hat и уебсайтът показва само SHA-1 хеша на този образ. В работната си директория изпълнявате:

sha1sum redhat7-x64.iso

Командата ще върне нещо подобно:

2ac2f3368e6c9fe4d7201d85ad85528698aeaf08 redhat7-x64.iso

Оттам нататък просто трябва да сравнете визуално или чрез копиране/поставяне на този хеш Сравнете името на файла с това, показано на уебсайта или в малкия текстов файл, който сте изтеглили. Ако съвпадат символ по символ, целостта на файла е гарантирана; ако се различават, ще трябва да го изтеглите отново.

Проверете много ISO файлове едновременно

Има ситуации, в които ще изтегляте няколко изображения наведнъж (например, различни версии или архитектури) и не искате да ги проверявате едно по едно. За щастие, файловете MD5SUMS, SHA1SUMS или SHA256SUMS обикновено ги групират заедно. всички суми от директория в един документ, само за да можете да извършите груповата проверка наведнъж.

Да предположим, че имате шест различни ISO файла в папка и сте изтеглили файловете MD5SUM, SHA1SUM и SHA256SUM. За MD5 проверки бихте направили нещо подобно:

md5sum -c MD5SUM

Изходът ще изброи всеки ISO файл заедно с „OK“ или „FAILED“ в зависимост от това дали сумата съвпада или не. Същото важи и за SHA-1 и SHA-256, като се променят само инструментът и файлът:

sha1sum -c SHA1SUM
sha256sum -c SHA256SUM

Ако някога умишлено промените ISO файл или той се повреди поради повреда на диска, ще видите, че Само този конкретен запис маркира НЕУСПЕХ Въпреки че всичко останало остава наред, програмите ще ви предупредят със съобщение като „ПРЕДУПРЕЖДЕНИЕ: 1 изчислена контролна сума НЕ съвпада“, така че знаете, че нещо се е объркало.

Как да генерирате свои собствени файлове с контролни суми

В допълнение към проверката на публикациите на другите, можете също да създадете свои собствени файлове с контролни суми, ако планирате да споделяте ISO файлове или друг тип файлове с повече хора. Просто е като да използвате същите инструменти, но... пренасочване на стандартния изход към файл които след това можете да качите заедно с изтеглянията.

Например, ако сте подготвили няколко ISO образа в директория и искате да генерирате MD5SUM файл с всички тях, можете да направите следното:

md5sum *.iso > MD5SUM

Командата ще сканира всички ISO файлове в папката и ще запише списъка с хешове и имена във файла MD5SUM. По подобен начин можете да създавате документи, използвайки SHA-1 или SHA-256:

sha1sum *.iso > SHA1SUM
sha256sum *.iso > SHA256SUM

Чрез публикуване на тези файлове за потвърждение заедно с вашите файлове, всеки ще може да изпълнява md5sum -c, sha1sum -co sha256sum -c върху тях и проверете дали изтеглянията са преминали добре и че никой не ги е променил по време на пренос.

Ако искате да направите още една крачка напред и да предложите гаранции за автентичност, бихте могли дори цифрово подписвам тези файлове със суми Използване на ваш собствен GPG ключ, подобно на начина, по който го правят големите проекти. По този начин, който получи материала, може да провери не само дали данните са пълни, но и дали наистина идват от вас.

Придобиването на навика за проверка на контролни суми и GPG подписи преди инсталиране на Linux дистрибуция отнема много малко време и в замяна осигурява важен слой сигурност, предотвратявайки инсталации с повредени или манипулирани ISO файлове и помагайки ви да откриете проблеми, преди те да засегнат компютъра ви.

Лесно създаване на USB устройство с множество зареждащи устройства с Ventoy
Свързана статия:
Как лесно да създадете USB устройство с множество зареждащи устройства с Ventoy