Bereikbaar van 09:00 - 18:00 (ma-vrij)

Magento Hash Waardes

Door Hipex | 18 mei 2020 |
  1. Nieuws & informatie
  2. Security
  3. Magento Hash Waardes

Security is bij Magento vanzelfsprekend een speerpunt. Een van de wijzigingen ten opzichte van Magento 1 is de opslag van wachtwoord hashes in de database. Magento heeft in versie 2 onder meer bescherming ingebouwd tegen GPU aanvallen.

GPU Aanvallen

De chip op je grafische kaart verwerkt extreem snel heel veel informatie. Speel een moderne game, kijk een actiefilm en de reden voor die snelheid zal duidelijk zijn.

De GPU maakt hierbij gebruik van honderden zo niet duizenden kernen (cores). Een kern is dan weer een locatie op een chip die zelfstandig code verwerkt.

Grafische code wordt dan uitgevoerd door vele van die kernen en op die manier kan de hardware de toestroom van code opvangen en je film blijven afspelen.

Als een aanvaller in staat is om al die kernen in te zetten om een hash waarde te kraken, dan kan deze meer dan een miljoen waardes per seconde checken. In feite is een GPU attack een zeer krachtige brute force aanval.

Magento 2 heeft maatregelen getroffen om dit soort aanvallen te voorkomen. Deze maatregelen staat bekend als Argon2 en beschermt tegen deze brute force aanvallen. We gaan dieper in op wat een hash waarde nu eigenlijk is.

De hash waarde

In principe is een hash waarde de uitkomst van een algoritme. De bekendste hashing algoritmes zijn MD5 en de SHA-familie, SHA1 en SHA2. Uiteraard zijn er nog vele anderen, maar MD5 en SHA worden veruit het meest gebruikt in databases.

De hash waarde vertegenwoordigt een unieke waarde die bij precies één reeks bits behoort. Van iedere reeks kan een hash waarde worden berekend. Dit kan een bestand zijn van een paar bytes of van een Terabyte, een woord of een hele harde schijf.

Je kunt van letterlijk iedere bit reeks een hash waarde berekenen.

De hash waardes hebben vier zeer belangrijke eigenschappen.

  1. Iedere bit reeks heeft een unieke hash waarde.
  2. De hash waardes (binnen een familie) zijn altijd even lang.
  3. Uit de unieke hash waarde van een bestand kan nooit het bestand worden herberekend.
  4. De hash waardes zijn bij bijna gelijke tekst toch totaal verschillend.

We bekijken een voorbeeld, bezoek maar eens: www.xorbin.com.

  • Klik op use bij de MD5 calculator.
  • Bereken de md5 waardes (deze zijn 128 bits lang) van de woorden hieronder
  • Typ de woorden hieronder in en klik op calculate
  • Vergelijk de uitkomsten met de hash waardes hieronder

bit wordt 67169dfbf72c4ca285e9ee12e3e9ac5

buit wordt 5b622fe356d3a0f4c74a5ed7297a1f38

bid wordt 12879fe24168807c1ef38cd5e580ee3a

pit wordt 721f99927350450e076a57d4c74221e1

Ondanks de gelijkenis van de woorden, zijn de MD5 waardes zeer verschillend en allemaal even lang. Ieder woord heeft een eigen hash waarde, want ieder woord bestaat uit een unieke reeks bits.

Magento berekent de zogenaamde SHA256 van een wachtwoord en slaat dan dit wachtwoord op in de database. Als de database gekraakt wordt en de wachtwoorden gestolen, dan beschikt de aanvaller alleen over de (onkraakbare) hash waardes.

Die zijn alleen brute force te kraken en dat kan heel lang duren. Als je de megasnelheid van de GPU hierbij betrekt dan kan dit wellicht in een acceptabele tijd plaatsvinden. Dit is dan vooral theorie, omdat Magento het SHA256 algoritme gebruikt, wat tweemaal zo lang is en qua algoritme veel complexer.

Een 256 bit code kraken kan maar zo een Eeuw duren. Letterlijk. Hieronder zie je de verschillende algoritmes aan het werk in een Linux omgeving

Onder Windows is het wat lastiger en moet de FCIV tool worden gedownload en geïnstalleerd.

MD5:

SHA2:

De Aanval

De meest gebruikte en eenvoudige manier om een hash waarde te kraken is deze op te zoeken. Dit toont meteen de waarde van een sterk wachtwoord aan.

Voor alle duidelijkheid hash waardes zijn onkraakbaar, je kunt deze alleen aanvallen met brute force (alles proberen tot je de juiste treft) of opzoeken in een database omdat bij hetzelfde wachtwoord altijd dezelfde hash waarde behoort.

Ga naar de https://www.xorbin.com/ en bereken de SHA256 waarde van het wachtwoord hello123.

Natuurlijk geen sterk wachtwoord. Ga nu naar https://www.hashkiller.co.uk

Klik hier op Hash Cracker in het menu en kies SHA256 . De waarde van dit wachtwoord zit in de database, Hello123 (met hoofdletter) en !Hello123 (met leesteken) zitten niet in de database.

De twee extra waardes zie je wel in het plaatje van de gekraakte MD5 waardes.

Bedenk wel dat van het veel gebruikte MD5 er miljarden hash waardes bekend zijn.

De kracht van hashing en Magento

Een hash waarde biedt een unieke waarde voor ieder wachtwoord en kan niet worden herberekend. Vanuit de hashwaarde kan je geen wachtwoorden terugrekenen.

Wel kan je wachtwoorden met hashwaardes opzoeken (hashkiller) of brute forcen (GPU attack). Voor het door Magento gebruikte SHA256 algoritme zijn complexe wachtwoorden niet bekend in databases zoals die van hashkiller.

Magento biedt bescherming tegen GPU attacks door de implementatie van Argon2 in PHP in te bouwen. In principe maakt Argon2 het voor de aanvaller moeilijker om de GPU te gebruiken als resource voor brute forcing.

De reden dat veel aanvallers zich richten op SHA256 hashing heeft niet zo zeer te maken met Magento’s opslag van wachtwoorden, maar vooral omdat het het onderliggende algoritme van Bitcoins is. Die lange bitcoins nummers zijn hash waardes.