Hi,

Deze morgen las ik alweer dat een site 100.000den paswoorden en logins verkreeg via een hack.

Hoe kunnen ze nu de paswoorden vinden. Deze moeten toch versleuteld staan in een database???
Zelf werk ik met: hash('sha512', $pwsite)

Jan
Er is voor zover ik weet geen wet die dwingt dat iedereen inloggegevens gecodeerd moet opslaan. Er zijn helaas ook nog sites die ze in plain-text opslaan. Treurig maar waar.

Verder zijn er ook zgn. rainbow-tables met hele woordenboeken waarmee wachtwoorden in een zwakke encryptie, zoals md5(), kunnen worden 'gekraakt'. Daarom wordt het altijd iedereen aanbevolen om een sterk wachtwoord te nemen, en geen '12345' of 'welkom'.
Rainbow tables zijn alleen niet minder effectief op een zwakke hash dan een sterkere, zoals sha512. Het gaat daarbij puur om de lengte van je wachtwoord. Bcrypt is dan interessanter, doordat je geen hashes vergelijkt, maar een wachtwoord met een hash, en deze afhankelijk van de hash instellingen vrij lang kan duren per vergelijking. Eindresultaat: geen gevoeligheid voor rainbow tables, alleen een dure brute force ronde.
Mensen hergebruiken wachtwoorden en ezelsbruggetjes. Als je alleen de SHA-1- of SHA-512-hash opslaat, loop je daardoor een verhoogd risico: een elders bij een hack gevonden hash is dan 1 op 1 te vergelijken met jouw hash. Vandaar dat je een unieke salt toe moet voegen aan elke wachtwoordhash: in plaats van bijvoorbeeld sha512($password) in pseudo-code gebruik je sha512($password . $salt).

Er circuleren op internet lijsten die naar schatting 80 tot 90 procent van alle gebruikte wachtwoorden dekken, inclusief de gangbare hashes daarvan. Ik gebruik zelf een class die dergelijke wachtwoorden resoluut weigert. Voor een admin-omgeving is dat wel aan te bevelen, maar voor gewone eindgebruikers heeft het ook een duidelijk nadeel: het werpt een extra hindernis op bij het openen van een account en dat kan je klanten kosten.
Bedankt voor de verduidelijkingen

Reageren