Какво представляват хешовете MD5, SHA-1 и SHA-256 и как да ги проверя?
Понякога ще виждате хешове MD5, SHA-1 или SHA-256, които се показват заедно с изтеглянията по време на вашите пътувания по интернет, но не са наистина известни какви са те. Тези на пръв поглед случайни низове от текст ви позволяват да проверявате файловете, които изтегляте, не са повредени или подправени. Можете да направите това с командите, вградени в Windows, MacOS и Linux.
Как работят хешовете и как се използват за проверка на данните
Хешовете са продукти от криптографски алгоритми, проектирани да произвеждат низ от символи. Често тези струни имат фиксирана дължина, независимо от размера на входните данни. Разгледайте горната таблица и ще видите, че и двете „Fox“ и „Red fox скачат над синьото куче“ дават една и съща дължина на изхода..
Сега сравнете втория пример в таблицата с третия, четвъртия и петия. Ще видите, че въпреки много малка промяна във входните данни, получените хешове са много различни един от друг. Дори ако някой промени много малка част от входните данни, хешът ще се промени драстично.
MD5, SHA-1 и SHA-256 са различни хеш функции. Създателите на софтуер често вземат файл за изтегляне - като Linux .iso файл или дори .exe файл на Windows - и го изпълняват чрез хеш функция. След това те предлагат официален списък на хешовете на техните уебсайтове.
По този начин можете да изтеглите файла и да стартирате хеш функцията, за да потвърдите, че имате реалния, оригинален файл и че не е бил повреден по време на процеса на изтегляне. Както видяхме по-горе, дори и малка промяна в файла ще промени драстично хеша.
Те също могат да бъдат полезни, ако имате файл, който сте получили от неофициален източник и искате да потвърдите, че това е законно. Да кажем, че имате Linux .ISO файл, който сте получили от някъде и искате да потвърдите, че не е бил подправен. Можете да намерите хеша на този конкретен ISO файл онлайн на уебсайта на дистрибуцията на Linux. След това можете да го стартирате чрез хеш функцията на вашия компютър и да потвърдите, че тя съответства на хеш стойността, която бихте очаквали. Това потвърждава, че файлът, който имате, е същият, който се предлага за изтегляне от сайта на Linux дистрибуцията, без никакви модификации.
Имайте предвид, че „сблъсъците“ са открити с функциите MD5 и SHA-1. Това са няколко различни файла - например безопасен файл и злонамерен файл - които водят до едно и също MD5 или SHA-1 хеш. Затова трябва да предпочитате SHA-256, когато е възможно.
Как да сравните хеш функции на всяка операционна система
Имайки това предвид, нека да разгледаме как да проверим хеша на изтегления файл и да го сравним с това, което ви е дадено. Тук са описани методи за Windows, MacOS и Linux. Хешовете винаги ще бъдат идентични, ако използвате същата хешираща функция в същия файл. Няма значение коя операционна система използвате.
Windows
Този процес е възможен без софтуер на трети страни в Windows благодарение на PowerShell.
За да започнете, отворете прозорец на PowerShell, като стартирате прекия път на "Windows PowerShell" в менюто "Старт".
Изпълнете следната команда, като замените "C: path.iso" с пътя към всеки файл, който искате да видите в хеша на:
Get-FileHash C: \ t
Ще отнеме известно време, за да генерира хеша на файла, в зависимост от размера на файла, алгоритъма, който използвате, и скоростта на диска, на който е включен файлът.
По подразбиране командата ще покаже SHA-256 хеш за файл. Можете обаче да посочите алгоритъма за хеширане, който искате да използвате, ако се нуждаете от MD5, SHA-1 или друг тип хеш.
Изпълнете една от следните команди, за да зададете различен алгоритъм за хеширане:
Get-FileHash C: file.iso -Algorithm MD5
Get-FileHash C: file.iso -Algorithm SHA1
Get-FileHash C: file.iso -Algorithm SHA256
Get-FileHash C: файл.iso -Algorithm SHA384
Get-FileHash C: файл.iso -Algorithm SHA512
Get-FileHash C: файл.iso -Algorithm MACTripleDES
Get-FileHash C: файл.iso -Algorithm RIPEMD160
Сравнете резултата от хеш функцията с резултата, който очаквате да видите. Ако е със същата стойност, файлът не е повреден, подправен или по друг начин променен от оригинала.
MacOS
macOS включва команди за разглеждане на различни типове хешове. За да получите достъп до тях, стартирайте терминален прозорец. Ще го намерите в Finder> Applications> Utilities> Terminal.
Най- md5
команда показва MD5 хеш на файл:
md5 / път / към / файл
Най- shasum
командата показва SHA-1 хеш на файл по подразбиране. Това означава, че следните команди са идентични:
shasum / път / към / файл
shasum -a 1 / път / към / файл
За да покажете SHA-256 хеш на файл, изпълнете следната команда:
shasum -a 256 / път / към / файл
Linux
На Linux влезте в терминал и изпълнете една от следните команди, за да видите хеш за файл, в зависимост от вида на хеша, който искате да видите:
md5sum / път / към / файл
sha1sum / път / към / файл
sha256sum / път / към / файл
Някои хеши са криптографски подписани за още по-голяма сигурност
Докато хешовете могат да ви помогнат да потвърдите, че файлът не е бил подправен, тук все още има един път на атака. Нападателят може да получи контрол върху уебсайта на дистрибуцията на Linux и да модифицира хешовете, които се появяват в него, или хакер може да извърши атака „човек в средата“ и да промени уеб страницата в транзит, ако сте влезли в сайта чрез HTTP криптиран HTTPS.
Ето защо модерните дистрибуции на Linux често предоставят повече от хешовете, изброени на уеб страниците. Те криптографски подписват тези хешове, за да помогнат за защита срещу атакуващите, които могат да се опитат да модифицират хешовете. Ще искате да проверите криптографския подпис, за да сте сигурни, че хеш файлът е действително подписан от дистрибуцията на Linux, ако искате да сте абсолютно сигурни, че хешът и файлът не са били променени.
Проверката на криптографския подпис е по-ангажиран процес. Прочетете нашето ръководство за проверка на Linux ISOs не са били подправени за пълни инструкции.
Автор на снимката: Хорхе Столфи / Уикимедия