Uitspraak van verwijderd op dinsdag 3 mei 2011 om 22:07:
Meh? Bij ons worden voor alle applicaties de wachtwoorden opgeslagen in de database, dan wel gehashed. Gebruiker logt in en stuurt user en pass, applicatie matched dit met user en pass binnen eigen database, als het matched dan slaagt authenticatie, anders niet. Hoe wil je dit gaan doen als het wachtwoord niet opgeslagen is?
De applicatie hoort geen wachtwoord te sturen maar een hash; de hash kan dan gebruikt worden om te verifiëren of het wachtwoord klopt. Dit is vrij gebruikelijk en er zijn weinig (nieuwe) authenticatie protocollen die een password in clear text over sturen.
Overigens wil het gebruik van hashes niet zeggen dat het wachtwoord veilig is; het geeft de slachtoffers meer tijd om hun wachtwoord aan te passen, gezien de aanvaller eerst de wachtwoorden moet afleiden van de hashes. Bij een goed hashing algoritme is dit onmogelijk; wat inhoud dat het uitrekenen langer duurt als het simpel weg uit proberen van alle mogelijkheden.
Wat aanvallers dan ook meestal doen is een dictionary of bruteforce aanval op de password hashes. De eerste is meestal al effectief genoeg op 80% van de wachtwoorden, gezien de meeste mensen vrij eenvoudige wachtwoorden kiezen. (123456 is de meeste gebruikte

Een aanvaller kan de snelheid aanzienlijk verhogen door van te voren hashes uit te rekenen voor heel veel mogelijkheden en dan gewoon de hash te vergelijken (rainbow tables). Om dat te voorkomen moet je een
salt gebruiken.