Wat al deze MD5 Hash Stuff eigenlijk betekent [technologie verklaard]
In een recent artikel over het controleren of u werd getroffen door het hackincident van Gawker. Hoe u erachter komt of uw e-mailadres is weggelekt door de Gawker-database Hoe u erachter komt of uw e-mailadres werd gelekt door de database van Gawker Meer lezen, een van de stappen was het converteren van uw e-mailadres in een MD5-hash.
We hadden enkele vragen van lezers die precies vroegen wat er aan de hand was en waarom dit proces noodzakelijk was. Het is niet onze stijl om jullie vragen te laten stellen, dus hier is een volledige run van MD5, hashing en een klein overzicht van computers en cryptografie..
Cryptografische hashing
MD5 staat voor MBERICHT Digste algoritme 5, en werd uitgevonden door de beroemde Amerikaanse cryptograaf professor Ronald Rivest in 1991 om de oude MD4-standaard te vervangen. MD5 is simpelweg de naam voor een soort cryptografische hash-functie die Ron bedacht, helemaal in '91.
Het idee achter cryptografisch hashen is om een willekeurig gegevensblok te nemen en een vaste grootte terug te geven “hachee” waarde. Dit kunnen willekeurige gegevens van elke grootte zijn, maar de hash-waarde wordt altijd vastgesteld. Probeer het zelf hier.
Cryptografisch hashen kent een aantal toepassingen en er zijn een groot aantal algoritmen (anders dan MD5) die zijn ontworpen om een vergelijkbare taak uit te voeren. Een van de belangrijkste toepassingen voor cryptografisch hashen is het verifiëren van de inhoud van een bericht of bestand na overdracht.
Als je ooit een bijzonder groot bestand hebt gedownload (Linux-distributies, dat soort dingen), dan heb je waarschijnlijk de hash-waarde opgemerkt die daarmee gepaard gaat. Nadat dit bestand is gedownload, kunt u de hash gebruiken om te controleren of het bestand dat u hebt gedownload op geen enkele manier verschilt van het geadverteerde bestand.
Dezelfde methode werkt voor berichten, waarbij de hash controleert of het ontvangen bericht overeenkomt met het verzonden bericht. Op een heel basaal niveau, als jij en een vriend elk een groot bestand hebben en willen verifiëren dat ze exact hetzelfde zijn zonder de forse overdracht, zal de hash-code het voor je doen.
Hashing-algoritmen spelen ook een rol bij de identificatie van gegevens of bestanden. Een goed voorbeeld hiervan zijn peer-to-peer netwerken voor het delen van bestanden, zoals eDonkey2000. Het systeem gebruikte een variant van het MD4-algoritme (beneden) die ook de bestandsgrootte in een hash combineerde om snel naar bestanden op het netwerk te wijzen.
Een goed voorbeeld hiervan is de mogelijkheid om snel gegevens te vinden in hashtabellen, een methode die vaak door zoekmachines wordt gebruikt.
Een ander gebruik van hashes is de opslag van wachtwoorden. Het opslaan van wachtwoorden als duidelijke tekst is om begrijpelijke redenen een slecht idee, maar in plaats daarvan worden ze omgezet naar hash-waarden. Wanneer een gebruiker een wachtwoord invoert, wordt het geconverteerd naar een hash-waarde en vergeleken met de bekende opgeslagen hash. Omdat hashen een eenrichtingsproces is, mits het algoritme correct is, is er theoretisch weinig kans dat het originele wachtwoord wordt ontcijferd uit de hash.
Cryptografische hashing wordt ook vaak gebruikt bij het genereren van wachtwoorden en afgeleide wachtwoorden van een enkele zin.
Message Digest-algoritme 5
De MD5-functie biedt een 32-cijferig hexadecimaal nummer. Als we 'makeuseof.com' veranderen in een MD5 hash-waarde, zou het er als volgt uitzien: 64399513b7d734ca90181b27a62134dc. Het was gebouwd op een methode genaamd de Merkle”“DamgÃ¥rd structuur (beneden), die wordt gebruikt om te bouwen wat bekend staat als “botsbeveiligde” hash-functies.
Geen enkele beveiliging is alles-proof, echter en in 1996 werden mogelijke tekortkomingen gevonden in het MD5-hashing-algoritme. Destijds werden deze niet als fataal beschouwd en werd MD5 nog steeds gebruikt. In 2004 werd een veel ernstiger probleem ontdekt nadat een groep onderzoekers had beschreven hoe twee afzonderlijke bestanden dezelfde MD5-hash-waarde moesten hebben. Dit was de eerste keer dat een aanvalsaanval werd gebruikt tegen het MD5-hashing-algoritme. Een aanvalsaanval probeert twee arbritary-outputs te vinden die dezelfde hash-waarde produceren - dus een botsing (twee bestanden met dezelfde waarde).
In de loop van de volgende jaren trachtten pogingen om verdere beveiligingsproblemen binnen MD5 te vinden, en in 2008 slaagde een andere onderzoeksgroep erin de aanvalsmethode voor botsingen te gebruiken om de geldigheid van SSL-certificaten te vervalsen. Dit kan gebruikers doen denken dat ze veilig browsen, terwijl dat niet het geval is. Het Amerikaanse ministerie van Binnenlandse Veiligheid heeft aangekondigd dat: “gebruikers moeten voorkomen dat ze het MD5-algoritme in welke hoedanigheid dan ook gebruiken. Zoals eerder onderzoek heeft aangetoond, moet het worden beschouwd als cryptografisch onderbroken en ongeschikt voor verder gebruik“.
Ondanks de waarschuwing van de overheid, gebruiken veel diensten nog steeds MD5 en lopen als zodanig technisch gevaar. Het is echter mogelijk om “zout” wachtwoorden, om te voorkomen dat potentiële aanvallers woordenboekaanvallen gebruiken (testen van bekende woorden) tegen het systeem. Als een hacker een lijst met willekeurige vaak gebruikte wachtwoorden en uw gebruikersaccountdatabase heeft, kunnen deze de hashes in de database vergelijken met die in de lijst. Zout is een willekeurige reeks, die is gekoppeld aan bestaande wachtwoordhashes en vervolgens opnieuw gehashed. De zoutwaarde en resulterende hash worden vervolgens opgeslagen in de database.
Als een hacker de wachtwoorden van uw gebruikers wilde achterhalen, moest hij eerst de salt hashes ontcijferen en dit maakt een woordenboek behoorlijk nutteloos. Zout heeft geen invloed op het wachtwoord zelf, dus u moet altijd een moeilijk te raden wachtwoord kiezen.
Conclusie
MD5 is een van de vele verschillende methoden voor het identificeren, beveiligen en verifiëren van gegevens. Cryptografisch hashen is een belangrijk hoofdstuk in de geschiedenis van beveiliging en houdt dingen verborgen. Zoals met veel dingen die zijn ontworpen met het oog op veiligheid, is er iemand weg die het heeft gebroken.
Je zult je waarschijnlijk niet al te druk hoeven te maken om hashing en MD5 checksums in je dagelijkse surfgedrag, maar nu weet je tenminste wat ze doen en hoe ze het doen.
Ooit nodig gehad om iets te hashen? Verifieer je de bestanden die je downloadt? Kent u goede MD5 web-apps? Laat het ons weten in de comments!
Intro afbeelding: Shutterstock
Meer informatie over: versleuteling, online privacy.