hashing algoritmes voor beveiliging

De belangrijkste en (on)veiligste Hashing Algoritmes

Verstuur jij wel eens bestanden of gegevens over het internet die vertrouwelijk zijn? Die kans is groot, want we sturen allemaal wel eens paspoortgegevens, wachtwoorden of medische informatie. Vaak wil je dat iemand anders dan de bedoelde ontvangen deze informatie zou kunnen inzien. Daar kun je nooit 100% zeker van zijn, maar er is wel een techniek die je een handje kan helpen.

Hashing algoritmes kunnen gebruikt worden om data beveiligd te versturen. Wanneer je informatie met een hashing algoritme beveiligd, kun je ervan uit gaan dat de data onveranderd bij de daadwerkelijk bedoelde ontvanger aankomt.

Toch zien we dat maar weinig mensen bewust gebruik maken van hashing. Wel maken we vaak onbewust gebruik van hashing. Wanneer we bijvoorbeeld cryptocurrencies over het blockchainnetwerk versturen. Laten we daarom eens gaan kijken naar wat hashing is, maar vooral naar wat de belangrijkste en (on)veiligste hashing algoritmes zijn.

Bekijk snel 

Wat is een hashing algoritme?

Een hashing algoritme is een technologie waarmee gegevens worden omgezet naar een cryptografische output. Hoe deze output eruit ziet, is geheel afhankelijk van de inhoud. Wanneer één bit van deze inhoud veranderd, ziet de output er al geheel anders uit. Dit zorgt ervoor dat het makkelijk is om te zien of de inhoud tijdens het transport is gewijzigd: wanneer de hash er bij ontvangst anders uitziet dan bij verzending, is de data dus aangepast.

Bij het hashen van gegevens, wordt een string van iedere lengte omgezet naar een string van een vaste lengte. Met een string bedoelen we een reeks getallen/letters, die op het eerste gezicht in een willekeurige volgorde lijken te staan.

Toch is de uitkomst helemaal niet zo willekeurig als we misschien zouden denken. Er zit namelijk een algoritme achter de hashing die voor de logica zorgt. We noemen dit een hashing algoritme, waarvan er ontzettend veel verschillende zijn. Zo maakt Bitcoin (BTC) bijvoorbeeld van het SHA-256 algoritme. Een ander bekend algoritme is MD5.

Hoe werkt hashing op de blockchain?

Je zou een hashing algoritme kunnen zien als een soort machine voor het creëeren van een geheimschrift. Hieronder zie je hoe zo'n hash eruit ziet, waar gebruik is gemaakt van het SHA-256 hashing algoritme.

Invoer Hash uitkomst
Hallo 753692ec36adb4c794c973945eb2a99c1649703ea6f76bf259abb4fb838e013e
Hoe gaat het met jou? 815cbea3d1a07b54f7eb75ad237234bf1e2996c23d94b60c50663ede13374e26
Met mij gaat het goed. c5c96770ac7745c653d73bf03e42ef1b5babfc3d58839d33dbe80d20340286e5

Op de blockchain wordt hashing veelvuldig gebruikt. Zo wordt een transactie vaak weergegeven als een hash, zoals op de blockchain van Bitcoin. We noemen dit een transaction hash, en kan gezien worden als een transactiebewijs.

Je kunt de hash gebruiken binnen de blockchain explorer. Wanneer je een transactie maakt op een crypto exchange, zie je hier de transaction hash staan. Deze kun je kopiëren en in de block explorer plakken, waarna je meer informatie over de transactie ziet staan. Deze informatie is namelijk middels een hashing algoritme omgezet naar een hash. Het opslaan van deze data gebeurt door middel van een Merkle Tree.

Hieronder zie je een video waarin op een eenvoudige manier wordt uitgelegd wat een hashing algoritme is en hoe hashing werkt.

Wat is een Merkle Tree?

Een Merkle Tree is een data-structuur waarmee gegevens op de blockchain opgeslagen worden. Deze data-structuur lijkt op een boom, zoals je in onderstaande afbeelding kunt zien.

Image
Merkle Tree blockchain
De Merkle Tree

Van iedere transactie wordt een hash gemaakt (de transaction hash). In de afbeelding zie je dat er onderaan vier verschillende hashes zijn. Vervolgens wordt iedere hash samengevoegd met een andere hash, waarna deze twee hashes worden samengevoegd tot een hoofdhash.

We noemen de hoofdhash de Merkle Root, of ook wel de Root Hash, en is dus de hash van alle transacties die in een blok staan. Wijzigt een transactie die onderaan in de Merkle Tree staat? Dan ziet de uitkomst van alle bovenstaande hashes er compleet anders uit. Dit maakt dat het gebruik van hashes bijdraagt aan de veiligheid van de blockchaintechnologie.

Kan een hashing algoritme breken?

Het is mogelijk dat een hashing algoritme breekt. Bij een veilig algoritme is het mogelijk om slechts één kant op te gaan. Stel dat we de wachtwoorden in een database beveiligen door ze om te zetten naar een hash. Wanneer een hacker toegang krijgt tot de database, kan deze niks met de wachtwoorden die hier staan. De hacker ziet namelijk slechts en alleen de hash staan.

Wanneer een gebruik wil inloggen, voert hij zijn wachtwoord in. Vervolgens wordt het wachtwoord via het gebruikte hashing algoritme omgezet naar een hash. De website kijkt dan of de hash klopt met de hash die in de database staat. De hash in de database wordt dus niet teruggezet naar het wachtwoord. Dat zou onveilig zijn.

Dit is alleen mogelijk wanneer het algoritme niet gekraakt is. Dat houdt in dat niemand de logica achter het algoritme zou mogen kennen. Dit geldt ook voor de ontwikkelaars van het algoritme. Wanneer iemand de logica heeft gekraakt, is het mogelijk om hashes terug te zetten naar de inhoud ervan. Dat zou betekenen dat alle wachtwoorden die in de database (van bovenstaand voorbeeld) staan, ingezien kunnen worden door mensen die deze niet zouden mogen inzien.

Wat zijn de bekendste hashing algoritmes?

Hieronder zien we een overzicht van de bekendste en meest gebruikte hashing algoritmes. Niet al deze hashing algoritmes zijn even veilig, zoals we zullen bespreken. Verder in het artikel vertel ik je wat het veiligste hashing algoritme ter wereld is en welke hash functies op dit moment gebroken zijn.

MD5

Misschien is MD5, ontstaan in 1991, wel het bekendste hashing algoritme, al wordt het ondertussen vrijwel niet meer gebruikt. Waarom? Omdat het algoritme gebroken is!

Toch zien we dat nog veel applicaties van MD5 gebruikmaken. Dit zijn voornamelijk oude applicaties en websites die al lang geen update meer hebben gehad. Maar sinds het is gebroken, wordt MD5 niet meer als veilig algoritme gezien. Het is daarom alles behalve aan te raden om MD5 nog te gebruiken voor het maken van een applicatie, laat staan voor de beveiliging van wachtwoorden.

Omdat MD5 kapot is, is het mogelijk om de hash makkelijk terug te draaien. Bij een veilig algoritme is het alleen mogelijk om één kant op te gaan. Dit betekent dat de inhoud moet matchen met de inhoud van de hash. Alleen dan kan men toegang toegang krijgen.

Wanneer je een MD5 hash ziet staan, kun je de inhoud ervan binnen enkele seconden inzien. Er zijn speciale websites waar je dat kunt doen, zoals op www.md5online.org, waar je ook MD5 hashes kunt maken.

MD5 produceert een 128-bit hash. Encrypten wij de string 'allesovercrypto' met de MD5 hashing functie, dan ziet de MD5 output er zo uit:

d8938da7815b5080dd9ed11604f1707f

In onderstaande video leer je meer over het MD5 hashing algoritme.

SHA-1

Het SHA-1 algoritme produceert een 160-bit hash en is in 1995 ontstaan, toen de NSA het heeft ontworpen. Het algoritme is onderdeel van de SHA-familie, waarbij SHA staat voor Secure Hashing Algoritme. Ondanks zijn naam, is SHA-1 niet meer zo veilig als het ooit was. Het algoritme is namelijk kwetsbaar voor brute force attacks, en wordt daarom vrijwel niet meer gebruikt. Ook accepteren Microsoft, Google en Mozilla geen SSL-certificaten meer die met het SHA-1 hashing algoritme ondertekend zijn.

Op verschillende websites kun jij data met SHA-1 encrypten en decrypten, zoals op www.md5decrypt.nl/en/Sha1. Beveiligingsexperts raden aan om het algoritme niet meer te gebruiken.

Wanneer we 'allesovercrypto' met de SHA-1 hash functie encrypten, ziet de SHA-1 output er zo uit:

fda881bf4e0efd5f0a94065358f500caf0e1fa40

SHA-256

Veel applicaties en websites gebruiken dagelijks het SHA-256 hashing algoritme om zijn veiligheid. Het is een variant op de SHA-2 functie en onderdeel van de SHA-familie. Het National Institute of Standards and Technology (NIST) raad het gebruik van dit hashing algoritme zelfs aan.

De veiligheid wordt gewaarborgd doordat het erg gecompliceerd werkt. Het algoritme is 30% langzamer dan zijn voorganger (SHA-2), maar is hierdoor des te moeilijker te kraken. Het algoritme is tot op dit moment niet gebroken, en daarom veilig te gebruiken.

Je kunt verschillende websites, zoals hier, gebruiken om data met SHA-256 te encrypten. Het is niet mogelijk om SHA-256 hashes te decrypten. SHA-256 produceert een 256-bit hash. Encrypten wij de string 'allesovercrypto' met de SHA-256 hashing functie, dan ziet de SHA-256 output er zo uit:

68f96ae80dea69dbe6e8196fa79fb27e9bcc2a170ca4ba9080948dc0874d35a1

Wil je meer te weten komen over het SHA-256 hashing algoritme? Onderstaande video geeft je meer informatie over wat dit algoritme is en hoe het werkt!

Whirlpool

Onder techneuten is Whirlpool een bekend hashing algoritme, al is de kans groot dat het je misschien niks zegt. De Belg Vincent Rijmen heeft Whirlpool in 2000 ontworpen en wordt door veel instanties, zoals ISO en IEC, aangeraden. Het voldoet namelijk aan de vastgestelde veiligheidsstandaarden.

Het algoritme wordt veelvuldig binnen applicaties gebruikt, ook omdat het algoritme is geadopteerd binnen programmeertalen als C en Java. Ook de cryptografische programma's FreeOTFE, TrueCrypto en VeraCrypt hebben het algoritme toegevoegd aan hun applicatie.

Er zijn verschillende websites waar je data kunt encrypten met de Whirlpool hash functie, zoals deze website. Wanneer je Whirlpool gebruikt, ontvang je een 512-bit output hash. Encrypten wij de string 'allesovercrypto' met de Whirlpool hashing functie, dan ziet de Whirlpool output er zo uit:

977fe5e20318d6ac1a4f630b1eaebac5b801e9a5b63e5e058cc859450cca44563f74e61fb1e0cc8220cb4eabcc7e6ae1daa1569d19e556037607e86232d69ce4

PBKDF2

Het PBKDF2 hashing algoritme wordt door de NIST aangeraden. Volgens deze organisatie is het een veilig algoritme dat door applicaties en websites gebruikt kan worden ter beveiliging van wachtwoorden. Het algoritme werkt langzamer dan SHA, waardoor het extra veilig is. Ook wordt er gebruik gemaakt van salt. Dit is een techniek waarbij hashes meermaals opnieuw gehasht worden. Voordat er een nieuwe hash plaatsvindt, wordt er nog een extra string toegevoegd, waardoor de waarde extra afhankelijk is van deze extra string.

Hier kun je PBKDF2 gebruiken en een 256-bit output genereren. Wanneer je de string 'allesovercrypto' met PBKDF2 encrypt, dan ziet de PBKDF2 output er zo uit:

F9o2rpaVNqoG9W9cmDDsoRQWMnLhLC+v7FPJGsQKhTQ=

Waarom dit hashing algoritme zo veilig is, leer je in onderstaande video. Hier wordt meer uitleg gegeven over wat PBKDF2 is en hoe het werkt.

Wat is het veiligste hashing algoritme?

SHA-256 wordt door veel experts gezien als het veiligste hashing algoritme. De NIST raad het gebruik van dit algoritme aan, dankzij de hoge mate van veiligheid. Veel overheden maken gebruik van het SHA-256 algoritme, waaronder die van de Verenigde Staten en Australië.

Ook veel cryptocurrencies maken gebruik van het SHA-256 hashing algoritme, waarvan Bitcoin de bekendste is.

Wat is het onveiligste hashing algoritme?

Ieder algoritme dat is gebroken, is onveilig. Dit zijn alle hashing algoritme die gebroken en onveilig zijn:

  • MD2;
  • MD4;
  • MD5;
  • Message Authenticator Algorithm;
  • SHA-1;
  • GOST;
  • LAN Manager;
  • Panama;
  • Snefru. 

Veel organisaties en experts raden ontwikkelaars en gebruikers aan om deze algoritmes niet meer te gebruiken. Wanneer je gevoelige data met deze functies beveiligd, kunnen andere de inhoud vrij makkelijk inzien.

Conclusie

Een hashing algoritme wordt gebruikt om data om te zetten naar een hash. Je zou een hash kunnen zien als een soort geheimschrift dat maar één kant op werkt. Het is niet mogelijk om een hash terug te draaien naar de oorspronkelijke inhoud, mits de hashing functie niet gebroken is. Op het moment dat een hashing functie is gebroken, is het wel mogelijk om de uitkomst terug te draaien.

Er zijn verschillende hashing functies die niet meer veilig zijn, waaronder MD2, MD4, MD5 en SHA1. Op dit moment wordt SHA-256 door veel experts als het veiligste hashing algoritme gezien.

Ben je op zoek naar meer informatie of heb je nog vragen over hashing algoritmes of andere crypto onderwerpen? Of wil je graag andere cryptoliefhebbers ontmoeten? In de gratis Discordkanalen van ons product Money Mastery van AllesOverCrypto kun je vragen stellen en kom je in gesprek met duizenden andere liefhebbers van crypto. Heb je andere crypto gerelateerde vragen? Het makkelijkste is om jouw vraag in onze FAQ op te zoeken. Wat je ook kunt doen, is dat je jouw vraag + AllesOverCrypto googelt. Laat vooral weten wat jouw gedachten over dit artikel is.

Headerfoto door tdhster


Wij vieren heel december feest! Vier jij met ons mee?

Open elke dag je adventskalender en claim je gratis prijs!

Ontdek je prijs!

 

December Feestmaand!

 

Alle uitingen van AllesOverCrypto, waaronder begrepen alle producten (o.a. Crypto Signalen en de Crypto Masterclass), berichten en e-mails, zijn de professionele mening van AllesOverCrypto en kan op géén enkele wijze worden opgevat als een persoonlijke uitnodiging, een advies of enige aanbeveling om tot aankoop van één of meer cryptovaluta over te gaan en daarin te beleggen. AllesOverCrypto is geen financieel adviseur en beoogt dat uitdrukkelijk ook niet te zijn.

De uitingen van AllesOverCrypto hebben uitsluitend een educatief karakter en kunnen op geen enkele wijze als financieel, juridisch of fiscaal advies worden opgevat. AllesOverCrypto is geen financieel, juridisch- en/of fiscaal adviseur. Er komt geen adviesrelatie tot stand tussen jou en AllesOverCrypto.

De door AllesOverCrypto gepresenteerde informatie is door haar met de grootste aandacht en zorg samengesteld. AllesOverCrypto kan echter niet instaan voor de juistheid en/of volledigheid ervan. Het gebruik van deze informatie gebeurt op jouw eigen risico. Je dient ervan bewust te zijn dat de gepresenteerde informatie, mede door de snelheid waarmee de cryptomarkt zich beweegt, al snel achterhaald is dan wel kan zijn. Wees hiervan bewust bij het bestuderen van de informatie. Daarnaast wordt uitdrukkelijk verzocht de informatie zelf te verifiëren.

Eenieder die in één of meer cryptovaluta wil beleggen dient zijn/haar eigen onderzoek te doen alvorens een beslissing te nemen tot aan- of verkoop van cryptovaluta. AllesOverCrypto is op geen enkele wijze bij dit proces betrokken. Uitsluitend jijzelf bent verantwoordelijk voor jouw eigen aan-en verkoopbeslissingen. Het aankopen van cryptovaluta brengt vanwege de aard van het product en de volatiliteit van de cryptomarkt grote risico’s met zich mee. Deze risico’s zijn zo groot dat het zelfs mogelijk is je hele aankoopbedrag te verliezen. Koop dus geen cryptovaluta die je niet kunt veroorloven te verliezen.