Миналия месец сайтът на Linux Mint беше хакнат и модифициран ISO бе предложен за изтегляне, който включваше задна врата. Докато проблемът бе коригиран бързо, той демонстрира значението на проверката на Linux файлове, които изтегляте, преди да стартирате и инсталирате. Ето как.
Линукс дистрибуциите публикуват контролни суми, така че можете да потвърдите, че файловете, които изтегляте, са тези, за които се твърди, че са, и те често са подписани, за да можете да проверите самите контролни суми, които не са били подправени. Това е особено полезно, ако изтеглите ISO от някъде другаде освен от основното огледало на трети страни, или чрез BItTorrent, където е много по-лесно хората да се намесват в файлове.
Процесът на проверка на ISO е малко сложен, така че преди да се впишем в точните стъпки, нека обясним точно какъв е процесът:
Процесът може да се различава малко за различните ISO, но обикновено следва този общ модел. Например има няколко различни вида контролни суми. Традиционно MD5 сумите са най-популярни. Въпреки това SHA-256 сумите са по-често използвани от съвременните Linux дистрибуции, тъй като SHA-256 е по-устойчив на теоретични атаки. Ще обсъдим най-вече сумите от SHA-256, въпреки че подобен процес ще работи за суми по MD5. Някои Linux дистрибуции също могат да осигурят SHA-1 суми, въпреки че те са дори по-рядко срещани.
По същия начин някои дистрибуции не подписват контролните си суми с PGP. Трябва само да изпълните стъпки 1, 2 и 5, но процесът е много по-уязвим. В края на краищата, ако нападателят може да замени ISO файла за изтегляне, той може също да замени контролната сума.
Използването на PGP е много по-сигурно, но не и безпроблемно. Нападателят все още може да замени този публичен ключ със собствените си, те все още могат да ви подмамят да мислите, че ISO е легитимен. Ако обаче публичният ключ се хоства на друг сървър, какъвто е случаят с Linux Mint, това става много по-малко вероятно (тъй като те би трябвало да хакнат два сървъра вместо само един). Но ако публичният ключ се съхранява на същия сървър като ISO и контролната сума, какъвто е случаят с някои дистрибуции, то не предлага толкова сигурност.
Все пак, ако се опитвате да потвърдите подписа на PGP във файл с контролна сума и след това да потвърдите изтеглянето си с тази контролна сума, това е всичко, което можете разумно да направите като краен потребител, който изтегля Linux ISO. Все още си много по-сигурна от хората, които не се притесняват.
Ние ще използваме Linux Mint като пример тук, но може да се наложи да потърсите уебсайта на вашата Linux дистрибуция, за да намерите опциите за потвърждение, които предлага. За Linux мента са предоставени два файла заедно с изтеглянето на ISO върху огледалата за изтегляне. Изтеглете ISO и след това изтеглете файловете "sha256sum.txt" и "sha256sum.txt.gpg" на вашия компютър. Щракнете с десния бутон на мишката върху файловете и изберете "Save Link As", за да ги изтеглите.
На работния плот на Linux отворете прозореца на терминала и изтеглете PGP ключа. В този случай ключът PGP на Linux Mint се хоства на ключовия сървър на Ubuntu и трябва да изпълним следната команда, за да го получим.
gpg -keyserver hkp: //keyserver.ubuntu.com - речни ключове 0FF405B2
Уеб сайтът на вашия Linux дистрибутор ще ви насочи към ключа, от който се нуждаете.
Сега имаме всичко, от което се нуждаем: ISO, файлът на контролната сума, файлът с цифров подпис на контролната сума и ключът PGP. След това променете папката, в която са изтеглени ...
cd ~ / Изтегляния
... и изпълнете следната команда, за да проверите подписа на файла на контролната сума:
gpg - verify sha256sum.txt.gpg sha256sum.txt
Ако командата GPG ви уведоми, че изтегленият sha256sum.txt файл има "добър подпис", можете да продължите. В четвъртия ред на снимката по-долу, GPG ни информира, че това е "добър подпис", който твърди, че е свързан с Клемент Лефебер, създател на Linux Mint.
Не се притеснявайте, че ключът не е сертифициран с "доверен подпис". Това се дължи на начина, по който работи функцията за шифроване на PGP - не сте настроили мрежа за доверие, като импортирате ключове от доверени хора. Тази грешка ще бъде много често.
Накрая, сега, когато знаем, че контролната сума е създадена от поддръжниците на Linux Mint, изпълнете следната команда, за да генерирате контролна сума от изтегления .iso файл и да я сравните с текущия файл на TXT на контролната сума, която сте изтеглили:
sha256sum - check sha256sum.txt
Ще видите много от съобщенията "няма такъв файл или директория", ако сте изтеглили само един ISO файл, но трябва да видите съобщение "OK" за файла, който сте изтеглили, ако съответства на контролната сума.
Можете също да стартирате командите на контролната сума директно върху .iso файл. Ще разгледа файла .iso и ще изплюе контролната си сума.След това можете просто да проверите дали тя съответства на валидната контролна сума, като погледнете и двете с очите си.
Например, за да получите SHA-256 сума на ISO файл:
sha256sum / path / to /file.iso
Или, ако имате стойност md5sum и трябва да получите md5sum на файл:
md5sum /path/to/file.iso
Сравнете резултата с файла TXT на контролната сума, за да видите дали те съвпадат.
Ако изтегляте ISO на Linux от машина с Windows, можете също да проверите контролната сума там, въпреки че Windows не разполага с необходимия софтуер. Така че ще трябва да изтеглите и инсталирате инструмента Gpg4win с отворен код.
Намерете файла с ключ за подписване на Linux дистрибуцията и файловете с контролна сума. Тук ще използваме Fedora като пример. Сайтът на Fedora предоставя изтегляния на контролна сума и ни казва, че можем да изтеглим ключа за подписване на Fedora от https://getfedora.org/static/fedora.gpg.
След като изтеглите тези файлове, ще трябва да инсталирате подписващия ключ, използвайки програмата Kleopatra, включена в Gpg4win. Стартирайте Kleopatra и кликнете върху File> Import Certificates. Изберете изтегления от вас файл .gpg.
Вече можете да проверите дали файлът на контролната сума е бил подписан с един от вашите важни файлове. За целта кликнете върху File> Decrypt / Verify Files. Изберете изтегления файл с контролна сума. Премахнете отметката от опцията "Входният файл е отделен подпис" и кликнете върху "Декриптиране / Потвърждаване".
Сигурен сте, че виждате съобщение за грешка, ако го направите по този начин, тъй като не сте преминали през проблемите с потвърждаването на тези сертификати на Fedora, са всъщност легитимни. Това е по-трудна задача. Това е начинът, по който PGP е проектиран да работи - срещате се и обменяте ключове лично например и комбинирайте мрежа от доверие. Повечето хора не го използват по този начин.
Можете обаче да видите повече подробности и да потвърдите, че файлът на контролната сума е бил подписан с един от внесените ключове. Това е много по-добре, отколкото просто да се доверите на изтегления файл ISO без проверка, така или иначе.
Сега трябва да можете да изберете File> Verify Files Checksum и да потвърдите, че информацията в контролния файл съвпада с изтегления .iso файл. Обаче това не ни помогна - може би това е просто начина, по който се оформя файла на контролната сума на Fedora. Когато се опитахме това с файла sha256sum.txt на Linux Mint, той свърши работа.
Ако това не работи за вашата Linux дистрибуция по избор, ето едно решение. Първо кликнете върху Настройки> Конфигуриране на Клеопатра. Изберете "Crypto Operations", изберете "File Operations" и задайте Kleopatra, за да използвате програмата "sha256sum" за контролна сума, тъй като с това се генерира тази конкретна контролна сума. Ако имате контролна сума MD5, изберете "md5sum" в списъка тук.
Сега щракнете върху Файл> Създаване на файлове с контролен максимум и изберете изтегления ISO файл. Клеопатра ще генерира контролна сума от изтегления .iso файл и ще го запише в нов файл.
Можете да отворите и двата файла - изтегления файл с контролна сума и този, който току-що създадохте - в текстов редактор като Notepad. Потвърдете, че контролната сума е идентична както със собствените ви очи. Ако това е идентично, потвърдихте, че изтегленият ви ISO файл не е бил подправен.
Тези методи за проверка не бяха предназначени първоначално за защита срещу злонамерен софтуер. Те са предназначени да потвърдят, че вашият ISO файл е изтеглен правилно и не е бил повреден по време на изтеглянето, така че можете да го изгорите и да го използвате, без да се притеснявате. Те не са съвсем безупречно решение, тъй като трябва да имате доверие на PGP, който изтегляте. Това обаче осигурява много по-голяма увереност, отколкото просто да използвате ISO файл, без да го проверявате изобщо.
Image Credit: Едуардо Куалято на Flickr