md5 wachtwoorden op het internet

Laatst had ik op google+ een grappige discussie waarbij vooral een posting van Sam Rijver de aanleiding was om eens een stukje te schrijven over wachtwoorden die worden opgeslagen op het internet. Er kwamen nog wat leuke side effects bij naar voren, uiteindelijk beloofde ik om eens een stukje over wachtwoorden gebruik te schrijven
in een blogposting.

Historisch gezien zijn er enorm veel oss oplossingen die vooral md5 als versleuteling gebruiken om wachtwoorden op te slaan. Dit was van oudsher een goede keuze, zeker  omdat het internet nog niet over krachtige machine’s beschikte die een md5sum konden kraken. Toen midden jaren 90 vooral thuis gebruikers een eigen server zijn gaan draaien met standaard oplossingen kwam dit wel aan de orde. Hackers zijn toen langzamerhand gaan werken aan een oplossingen om rainbow tables facaliteren op het internet. Dit zijn eigenlijk zoekmachine’s waar je woorden kunt invoeren die je een wachtwoord en de md5 hash geven om te vergelijken met met een lijst van wachtwoorden die is opgeslagen in een md5 formaat.

Men zag dit jaren ervoor al enigsinds aankomen en dus verzon men een manier om dit link te verbeteren. Daarvoor gebruikte men een salt string. Dit is een string die men gebruikt om bijvoorbeeld het wachtwoord te concatten met de string en het dan te versleutelen naar md5. Een mooie oplossing maar er bestaat 1 groot probleem met deze oplossing. Sites die het gebruiken hebben vaak de hele authentication onder 1 account draaien, vaak omdat ze met goedkope hosting maar 1 database account krijgen en default oplossingen zoals applicatie xyz geen oplossingen hebben om dit voor gebruiker xyz te verbergen.

Om dit gedeeltelijk op te lossen bedachten bepaalde applicatie schrijvers dat je rollen kon toekennen op een database. Het komt er op neer dat je aparte rollen hebt die alleen maar toegang hebben op bepaalde tabellen en objecten. Dit is nog maar zelden gebruikt binnen software, zeker als je kijkt naar de oss oplossingen. Het geeft echter ook geen echte oplossing voor het probleem waar men eigenlijk mee te maken heeft.
Het feit blijft dat een webserver vaak maar als 1 user draait en dat alle mensen die daar tegen moeten authenticaten nog steeds dezelfde rechten hebben als
user ‘nobody’ (oftewel de bezoeker).

Al met al maakt het gebruik van een salt het iets lastiger om te hacken. Het is echter
geen oplossing voor het probleem. SSL kan zaken verbloemen omdat het niet te sniffen is zonder flink je best te doen. Uiteindelijk moet er echter worden nagedacht over een andere manier van werken (PKI voor alle website? en wat doen we dan met verisign dat gehackt wordt?).

Een leuke discussie die ik al eens aanging is om isp’s meer rechten te laten weggeven op bijvoorbeeld een database. Dit om het gebruik van rollen te kunnen laten toestaan. Vaak doen ze dat niet door kennis gebrek over het specifieke product (stel je voor dat je grant rechten geeft aan een simpele gebruiker). Ze zouden natuurlijk kunnen overwegen om dit alleen op die ene database te doen :-)

Rainbow tables, wat verstaat men daar onder.

Rainbow tables kun je tegenwoordig al online raadplegen. Je zoekt een wachtwoord dat je snift en voert die in op een specifieke zoekmachine die het vertaalt naar een md5hash, zodra je de vergelijking hebt kun je dus weten met welke wachtwoorden je moet inloggen.
Bozocrack

Dit is een vrij eenvoudig script dat veel md5 encrypted wachtwoorden direct kan vertalen naar de plain text wachtwoorden. Het zoekt op google, maar dat kan natuurlijk ook op een andere zoekmachine, naar strings van 32 chars hashes en kijkt daar naar het eigenlijke wachtwoord. Ze staan namelijk vaak gewoon online.

Tips.

1. Verwerk eens spaties in wachtwoorden.
2. Gebruik tools als bozocrack om een wachtwoord te zoeken dat niet bekend is.
3. Schrijf de makers van het door jouw gebruikte product eens aan om iig rollen te defineren. Dit maakt het al iets lastiger.
4. Gebruik je verstand :-)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: