Понякога ще видите, че MD5, SHA-1 или SHA-256 хешове се показват заедно с изтегляния по време на вашите интернет пътувания, но не е известно какви са те. Тези привидно произволни струни от текстове ви позволяват да проверите дали файловете, които изтегляте, не са повредени или подправени. Можете да направите това с командите, вградени в Windows, MacOS и Linux.
Hashes са продукти на криптографски алгоритми, предназначени да произвеждат низ от знаци. Често тези струни имат фиксирана дължина, независимо от размера на входните данни. Обърнете внимание на горепосочената схема и ще видите, че и "Fox", и "Червената лисица скокове над синьото куче", дават същата дължина продукция.
Сега сравнете втория пример в графиката с третия, четвъртия и петия. Ще видите, че въпреки много малка промяна във входните данни, получените хешове са много различни един от друг. Дори ако някой промени много малка част от входните данни, хеш ще се промени драматично.
MD5, SHA-1 и SHA-256 са различни хеш функции. Софтуерните създатели често вземат файла за изтегляне - например Linux .iso файл или дори Windows .exe файл - и го пускат чрез хеш функция. След това те предлагат официален списък с хешове на техните уеб сайтове.
По този начин можете да изтеглите файла и след това да изпълните хеш функцията, за да потвърдите, че имате истинския оригинален файл и че не е бил повреден по време на процеса на изтегляне. Както видяхме по-горе, дори малка промяна в файла ще промени драстично хеш.
Те също могат да бъдат полезни, ако имате файл, който сте получили от неофициален източник и искате да потвърдите, че това е легитимно. Да приемем, че имате файл .ISO на Linux, който сте получили от някъде и искате да потвърдите, че не е бил подправен. Можете да търсите хашиш на този конкретен ISO файл онлайн на уеб сайта на дистрибуцията на Linux. След това можете да го стартирате чрез хеш функцията на компютъра си и да потвърдите, че тя съответства на хеш стойността, която бихте очаквали да има. Това потвърждава, че файлът, който имате, е точно същия файл, който се предлага за изтегляне на уеб сайта на дистрибуцията на Linux, без никакви промени.
Имайте предвид, че са открити "сблъсъци" с функциите MD5 и SHA-1. Това са няколко различни файла - например безопасен файл и злонамерен файл, които водят до същия хеш MD5 или SHA-1. Ето защо трябва да предпочитате SHA-256, когато е възможно.
С оглед на това, нека да разгледаме как да проверяваме хеш файла, който сте изтеглили, и да го сравнявате с този, който сте дали. Ето методи за Windows, MacOS и Linux. Хешовете винаги ще бъдат идентични, ако използвате един и същ функция за хеширане на същия файл. Няма значение коя операционна система използвате.
Този процес е възможен без софтуер на трети страни на Windows благодарение на PowerShell.
За да започнете, отворете прозореца PowerShell, като стартирате прекия път "Windows PowerShell" в менюто "Старт".
Изпълнете следната команда, замествайки "C: \ path \ to \ file.iso" с пътя към всеки файл, който искате да видите на хеш:
Get-FileHash C: \ път \ към \ file.iso
Ще ви отнеме известно време, за да генерирате хеш файла, в зависимост от размера на файла, алгоритъма, който използвате, и скоростта на диска, който файлът е включен.
По подразбиране командата ще покаже SHA-256 за файл. Можете обаче да зададете алгоритъма за хеширане, който искате да използвате, ако имате нужда от MDH, SHA-1 или друг тип хеш.
Изпълнете една от следните команди, за да определите различен алгоритъм за хеширане:
Get-FileHash C: \ път \ към \ file.iso - алгоритъм MD5
Get-FileHash C: \ path \ to \ file.iso -Алгоритъм SHA1
Get-FileHash C: \ path \ to \ file.iso -Алгоритъм SHA256
Get-FileHash C: \ path \ to \ file.iso -Алгоритъм SHA384
Get-FileHash C: \ path \ to \ file.iso -Алгоритъм SHA512
Get-FileHash C: \ път \ към \ file.iso -Алгоритъм MACTripleDES
Get-FileHash C: \ path \ to \ file.iso -Алгоритъм RIPEMD160
Сравнете резултата от хеш функцията с резултата, който очаквахте да видите. Ако това е една и съща стойност, файлът не е бил повреден, променен или променен по друг начин от оригинала.
macOS включва команди за разглеждане на различни видове хешове. За да получите достъп до тях, стартирайте прозореца на терминала. Ще го намерите на Finder> Приложения> Помощни програми> Терминал.
Най- md5
командата показва MD5 хеш файла:
md5 / path / to / file
Най- shasum
командата показва SHA-1 хеш на файл по подразбиране. Това означава, че следните команди са идентични:
shasum / path / to / file
shasum -a 1 / path / to / file
За да покажете SHA-256 хеш файла, изпълнете следната команда:
shasum -a 256 / path / to / file
В Linux отворете терминал и изпълнете една от следните команди, за да видите хеш файла, в зависимост от вида хеш, който искате да прегледате:
md5sum / път / към / файл
sha1sum / path / to / file
sha256sum / път / към / файл
Докато хешове може да ви помогне да потвърдите, че файлът не е бил подправен, тук има още една алея на атака. Атакуващият би могъл да получи контрол над уебсайта на дистрибуцията на Линукс и да променя хешове, които се появяват върху него, или хакер може да извърши атака "човек-на-средата" и да променя транзитната уеб страница, ако сте имали достъп до уебсайта чрез HTTP вместо криптиран HTTPS.
Ето защо модерните дистрибуции на Linux често осигуряват повече от хешове, изброени в уеб страници. Те криптографски подписват тези хешове, за да предпазват от нападателите, които биха могли да се опитат да променят хешове.Ще искате да проверите криптографския подпис, за да сте сигурни, че хеш файлът всъщност е подписан от дистрибуцията на Линукс, ако искате да сте абсолютно сигурни, че хеш и файлът не са били подправени.
Проверката на криптографския подпис е по-ангажиран процес. Прочетете нашето ръководство за проверка на Linux ISO не са били подправени за пълни инструкции.
Image Credit: Хорхе Столфи / Wikimedia