Pagina principala » HOWTO » Care sunt razele MD5, SHA-1 și SHA-256 și cum le verific?

    Care sunt razele MD5, SHA-1 și SHA-256 și cum le verific?

    Uneori veți vedea șanțurile MD5, SHA-1 sau SHA-256 afișate alături de descărcări în timpul călătoriilor pe internet, dar nu știți cu adevărat ce sunt. Aceste șiruri de text aparent aleatoare vă permit să verificați dacă fișierele pe care le descărcați nu sunt corupte sau manipulate. Puteți face acest lucru cu comenzile construite în Windows, MacOS și Linux.

    Cum lucrează Hashes și cum sunt folosite pentru verificarea datelor

    Hashes sunt produse de algoritmi criptografici concepuți pentru a produce un șir de caractere. Adesea, aceste șiruri au o lungime fixă, indiferent de mărimea datelor de intrare. Uitați-vă la graficul de mai sus și veți vedea că ambele "Fox" și "Foxul sărută roșu peste câinele albastru" produc aceeași ieșire de lungime.

    Comparați acum al doilea exemplu din diagramă cu al treilea, al patrulea și al cincilea. Veți vedea că, în ciuda unei modificări foarte minore a datelor de intrare, hașurile rezultate sunt foarte diferite una de cealaltă. Chiar dacă cineva modifică o mică parte din datele de intrare, hash-ul se va schimba dramatic.

    MD5, SHA-1 și SHA-256 sunt diferite funcții de tip hash. Creatorii de software depun adesea un fișier de descărcare, cum ar fi un fișier .iso Linux sau chiar un fișier .exe Windows și executați-l printr-o funcție hash. Apoi oferă o listă oficială a hash-urilor pe site-urile lor.

    În acest fel, puteți să descărcați fișierul și apoi să executați funcția hash pentru a confirma că aveți fișierul original, real și că acesta nu a fost corupt în timpul procesului de descărcare. După cum am văzut mai sus, chiar și o mică modificare a fișierului va schimba dramatic hash-ul.

    Acestea pot fi, de asemenea, utile dacă aveți un fișier primit de la o sursă neoficială și doriți să confirmați că este legitim. Să presupunem că aveți un fișier .ISO Linux pe care l-ați primit de undeva și doriți să confirmați că nu a fost manipulat. Puteți căuta hash-ul acestui fișier ISO specific on-line pe site-ul distribuției Linux. Puteți rula apoi prin intermediul funcției hash de pe computer și confirmați că se potrivește cu valoarea hash pe care ați aștepta să o aibă. Acest lucru confirmă faptul că fișierul pe care îl aveți este exact același fișier oferit pentru descărcare pe site-ul distribuției Linux, fără modificări.

    Rețineți că s-au găsit "coliziuni" cu funcțiile MD5 și SHA-1. Acestea sunt mai multe fișiere diferite - de exemplu, un fișier sigur și un fișier rău intenționat - care au ca rezultat același hash MD5 sau SHA-1. De aceea ar trebui să preferați SHA-256 când este posibil.

    Cum de a compara funcțiile Hash pe orice sistem de operare

    Având în vedere acest lucru, să examinăm cum să verificați hash-ul unui fișier descărcat și să îl comparați cu cel pe care l-ați dat. Iată metode pentru Windows, MacOS și Linux. Cheile vor fi întotdeauna identice dacă utilizați aceeași funcție de tip hashing în același fișier. Nu contează ce sistem de operare utilizați.

    ferestre

    Acest proces este posibil fără software de la terți pe Windows datorită PowerShell.

    Pentru a începe, deschideți o fereastră PowerShell lansând comanda rapidă "Windows PowerShell" din meniul Start.

    Rulați următoarea comandă, înlocuind "C: \ path \ to \ file.iso" cu calea către orice fișier pe care doriți să îl vizualizați:

    Obțineți FileHash C: \ path \ to \ file.iso

    Va dura ceva timp pentru a genera hash-ul fișierului, în funcție de mărimea fișierului, de algoritmul pe care îl utilizați și de viteza unității în care este pornit fișierul.

    În mod implicit, comanda va afișa hash-ul SHA-256 pentru un fișier. Cu toate acestea, puteți specifica algoritmul de ștergere pe care doriți să îl utilizați dacă aveți nevoie de un tip de hash MD5, SHA-1 sau de alt tip.

    Rulați una din următoarele comenzi pentru a specifica un algoritm de hashing diferit:

    Get-FileHash C: \ cale \ pentru \ file.iso -Algoritmul MD5
    Obțineți FileHash C: \ path \ to \ file.iso -Algoritm SHA1
    Obțineți FileHash C: \ path \ to \ file.iso -Algoritm SHA256
    Obțineți FileHash C: \ path \ to \ file.iso -Algoritm SHA384
    Obțineți FileHash C: \ path \ to \ file.iso -Algoritm SHA512
    Obțineți FileHash C: \ path \ to \ file.iso - Algoritmul MACTripleDES
    Obțineți FileHash C: \ path \ to \ file.iso - Algoritmul RIPEMD160

    Comparați rezultatul funcției hash cu rezultatul dorit. Dacă este aceeași valoare, fișierul nu a fost corupt, modificat sau modificat în alt mod decât originalul.

    MacOS

    MacOS include comenzi pentru vizualizarea diferitelor tipuri de hashes. Pentru a le accesa, lansați o fereastră Terminal. Veți găsi la Finder> Aplicații> Utilitare> Terminal.

    MD5 comanda afișează hash-ul MD5 al unui fișier:

    md5 / path / to / file

    shasum comanda arată SHA-1 hash a unui fișier în mod implicit. Aceasta înseamnă că următoarele comenzi sunt identice:

    shasum / cale / către / fișier
    shasum -a 1 / path / to / file

    Pentru a arăta SHA-256 hash-ul unui fișier, executați următoarea comandă:

    shasum -a 256 / calea / către / dosar

    Linux

    Pe Linux, accesați un Terminal și executați una dintre următoarele comenzi pentru a vizualiza hash-ul pentru un fișier, în funcție de tipul de hash pe care doriți să-l vizualizați:

    md5sum / path / to / file
    sha1sum / path / to / file
    sha256sum / path / to / fișier

    Unele Hashes sunt semnate în mod criptografic pentru o securitate mai mare

    În timp ce hash-urile vă pot ajuta să confirmați că un fișier nu a fost modificat, există încă o cale de atac aici. Un atacator ar putea să obțină controlul asupra unui site web al distribuției Linux și să modifice hash-urile care apar pe el sau un atacator ar putea efectua un atac în mijloc și poate modifica pagina web în tranzit dacă accesați site-ul prin HTTP în loc de criptate HTTPS.

    De aceea distribuțiile moderne de Linux furnizează de multe ori mai mult decât hashes listate pe paginile web. Acestea semnează cryptographically aceste hashes pentru a proteja împotriva atacatorilor care ar putea încerca să modifice hashes. Veți dori să verificați semnătura criptografică pentru a vă asigura că fișierul hash a fost efectiv semnat de distribuția Linux dacă doriți să fiți absolut siguri că hash-ul și fișierul nu au fost modificate.

    Verificarea semnăturii criptografice este un proces mai implicat. Citiți ghidul nostru pentru a verifica dacă ISO-urile Linux nu au fost modificate pentru instrucțiuni complete.

    Credit de imagine: Jorge Stolfi / Wikimedia