MD5, SHA-1 of SHA-256: welke hash gebruik je voor downloads?
Gebruik voor het controleren van een download SHA-256 of SHA-512 als de uitgever er een aanbiedt. MD5 en SHA-1 vangen nog steeds onbedoelde beschadigingen op, zoals een afgebroken download, maar onderzoekers hebben aangetoond dat twee verschillende bestanden dezelfde MD5- of SHA-1-hash kunnen krijgen. Een overeenkomst met die algoritmes bewijst dus niet dat een bestand het bestand is dat de uitgever heeft gemaakt. Een hash is een vingerafdruk, geen versleuteling, en hij heeft alleen betekenis als hij van een bron komt die je vertrouwt.
HashgeneratorKomt mijn download overeen?Gratis doenWat een hash wel en niet doet
Een hashfunctie maakt van gegevens van elke omvang een vingerafdruk met een vaste lengte. Dezelfde invoer levert altijd dezelfde vingerafdruk op, en als je één byte wijzigt, ontstaat er een totaal andere. Daardoor is een hash handig om te vergelijken: als de vingerafdruk van jouw kopie overeenkomt met de gepubliceerde, dan zijn de twee bestanden vrijwel zeker identiek.
Een hash is geen versleuteling. Hij kan niet worden teruggedraaid om het bestand te herstellen en hij gebruikt geen sleutel. Hij verbergt niets, en op zichzelf zegt hij niets over wie het bestand heeft gemaakt. Een checksum is gewoon een hash die een uitgever naast een download zet, zodat jij kunt vergelijken.
De vier gangbare opties
| Algoritme | Uitvoerlengte | Gebruik het voor |
|---|---|---|
| MD5 | 128 bits, 32 hexadecimale tekens | Alleen het opsporen van onbedoelde beschadiging |
| SHA-1 | 160 bits, 40 hexadecimale tekens | Oude controles; vermijd voor beveiliging |
| SHA-256 | 256 bits, 64 hexadecimale tekens | De gebruikelijke keuze voor downloads |
| SHA-512 | 512 bits, 128 hexadecimale tekens | Dezelfde familie, met langere uitvoer |
Waarom MD5 en SHA-1 niet genoeg zijn
Een botsing betekent dat twee verschillende invoeren dezelfde hash hebben. Botsingen in MD5 zijn sinds 2004 bekend. In 2017 publiceerden onderzoekers een praktische botsing van SHA-1: twee verschillende pdf-bestanden met één hash.
Bij een download is dit belangrijk, omdat een aanvaller die een bestand in handen heeft een kwaadaardige versie kan maken met dezelfde MD5- of SHA-1-hash als het echte bestand. Als een uitgever alleen MD5 of SHA-1 vermeldt, bewijst een overeenkomst niet meer dat het bestand echt is. De FAQ van de hashgenerator maakt hetzelfde punt: gebruik SHA-256 of SHA-512 voor alles wat met beveiliging te maken heeft.
Op het moment van schrijven is er geen praktische botsing in SHA-256 bekend, en daarom is SHA-256 de gebruikelijke keuze. De gids voor het controleren van een SHA-256-checksum loopt de stappen door.
Kies de juiste
- Biedt de uitgever SHA-256 of SHA-512 aan, gebruik dan die, en laat MD5 en SHA-1 voor beveiliging buiten beschouwing.
- Wordt alleen MD5 of SHA-1 aangeboden, controleer het dan toch met de hashgenerator. Dat vangt nog steeds een beschadigde of onvolledige download op. Beschouw een overeenkomst als "niet beschadigd", niet als "echt".
- Wordt geen hash aangeboden, dan kun je de integriteit op deze manier niet controleren. Download dan van de officiële pagina via HTTPS, en controleer de handtekening als het project ondertekende checksumbestanden publiceert.
De hashgenerator berekent MD5, SHA-1, SHA-256, SHA-384 en SHA-512 tegelijk, voor tekst of voor één bestand. Het bestand wordt in je browser gelezen en er wordt niets geüpload. Plak de hash van de uitgever in het veld Verwachte hash. De tool verwijdert spaties en negeert hoofdletters voordat hij vergelijkt, dus een hash die met hoofdletters of in groepjes is afgedrukt, komt nog steeds overeen. Heel grote bestanden kunnen het geheugen van de browser belasten. Gebruik in dat geval een tool op de opdrachtregel, zoals sha256sum op Linux of shasum -a 256 op een Mac.
Wat een overeenkomst je vertelt
Een overeenkomende hash betekent dat je kopie vrijwel zeker identiek is aan het bestand waarvan de hash is berekend. Het zegt niet wie de hash heeft berekend, en ook niet dat het gehashte bestand het bestand was dat de uitgever wilde uitbrengen. Daarvoor is de bron belangrijker dan het algoritme. Als de hash van de releasepagina van de uitgever zelf komt, en je die pagina rechtstreeks hebt geopend en niet via een link in een bericht, dan is een overeenkomst sterk bewijs. Komt de hash uit een reactie, een mirror of een forum, beschouw hem dan als onbevestigd totdat je hem op een betrouwbare pagina hebt gevonden.
Een checksum heeft een betrouwbare bron nodig
Een checksum die op dezelfde server staat als het bestand bewijst alleen dat de kopie overeenkomt met wat die server bevat. Als een aanvaller het bestand vervangt, kan hij de checksum ernaast ook vervangen. Een checksum helpt als hij van een aparte plek komt, zoals de ondertekende releasenotities van het project, of een pagina die je onafhankelijk van de downloadlink hebt bereikt.
Hashes voor wachtwoorden zijn anders
Ook bij het opslaan van wachtwoorden wordt gehasht, maar daarvoor heb je een trage hash nodig die speciaal voor wachtwoorden is ontworpen, met een unieke salt per wachtwoord. Een snelle hash zoals SHA-256 is daar het verkeerde gereedschap. Bij downloads is het doel vergelijken, en dat doet SHA-256 goed.
Randgevallen
- Hoofdletters. De hexadecimale letters A tot en met F zijn in beide vormen gelijk, dus vergelijk zonder op hoofdletters te letten.
- Afgekapte hashes. Sommige sites tonen alleen het begin van een hash. Een korte overeenkomst zegt weinig, dus vergelijk de volledige waarde.
- Meerdere bestanden. Sommige projecten publiceren één checksumbestand voor een hele release. Zoek de regel met de exacte bestandsnaam, want een overeenkomst op de regel van een ander bestand bewijst niets.
Vertaald uit de Engels origineel met hulp van AI.
Reacties
Nog geen reacties. Wees de eerste.


