betreft:
https://www.security.nl/posting/490722/Expert%3A+Gebruik+wachtwoord+van+minstens+32+karaktersHa, antwoorden, fijn! :-)
En meer vragen en kritiek ook?... Terecht!
Hier mijn nieuwe bijdrage over dit onderwerp:
Uit:
http://www.faqs.org/rfcs/rfc2104.html:
"The cryptographic strength of HMAC depends on the properties of the underlying hash function."
Een hash met HMAC berekenen doet men als volgt:
H(K XOR opad, H(K XOR ipad, text)).
Hierin is "H" de gebruikte hashfunctie. Dus in geval van HMAC.SHA1 zoals gebruikt in PBFKDF2 (in WPA2):
(waarbij K wordt verondersteld het wachtwoord te zijn, en "text" de SSID, zie:
http://stackoverflow.com/questions/2465690/pbkdf2-hmac-sha1, krijgen we dan dus:
SHA1(password XOR opad, SHA1(password XOR ipad, SSID)
)Uiteindelijk is HMAC-SHA1 dus ook maar gewoon een ordinaire SHA1 hash van één of ander "door elkaar geschud" gegeven. Voor verkrijgen van maximale security:
"In any case the minimal recommended length for K is L bytes (as the hash output length)"
(dit geldt in ieder geval voor een enkele HMAC-hash, maar levert mogelijk ook de sterkste PSK-waarde in WPA2 op(?))
Ik kan niet geloven dat door de hash een flink aantal malen te herhalen er opeens een PSK met sterkte 256 bits uitrolt.
(ik heb nl. de laatste financiële crisis meegemaakt met zijn obfuscerende derivaten...) ;-P
Laat ik het dus liever houden op een sterkte van 80 bit die "obfuscerend verdeeld zijn" over de 256 bit PSK.
Als iemand weet dat het heel anders is, dan hoor ik graag zijn (of haar~?) wijs bewijzend betoog.
----------------------------------------------------------------------------------------------------------------------------------------------------------
Voor wat betreft mijn bericht van 14-11-2016 00:43 : dit klopt inderdaad niet helemaal.
In mijn herinnering stond 96 bit, maar specifiek gaat het bij WPA2 over een MIC (Message Integrity Code) van 128 bit.
Bij WPA(1) is de MIC 64 bits; ik zat er dus met mijn 96 bits precies tussenin.
Om de MIC uit te rekenen wordt ook met HMAC.SHA1 gehasht, dus neem 128 bits maar weer met een bus zout.
Maar voor zover ik weet zijn er bij WPA2 geen wachtwoorden bekend met botsende MIC's.
Dus voor het grootste deel klopt het verder wel. Lees bijv.:
http://security.stackexchange.com/questions/66008/how-exactly-does-4-way-handshake-cracking-work:
stap 5:
Computed MIC is compared to the MIC obtained at step 1.
If they match then candidate password is reported as correct._Jij_ hebt betoogd dat een 32 byte wachtwoord _minder_ security zou opleveren dan een ~20 byte wachtwoord 'wegens meer collisions' .
Dat heb ik eerder inderdaad totaal verkeerd gedacht.
Sterker nog: geen 20 maar ik had eerder zelfs beweerd dat (16 - SSID-lengte) karakters veiliger is, en 3 of 4 chars.SSID.
Was toen nog onwetend dat kleinere wachtwoorden ook vele collisions hadden. Die zitten van nature al in SHA1.
Verder verkeek ik mij op de grote getallen, en kon ik destijds niet achter de exacte "salt" methode van SSID komen.
Een eye-opener was opeens dat elk wachtwoord gemiddeld wel ca. 2^80 collisions moet hebben!
Want 2^160 is een immens groot getal.
M.a.w.: het blijft zoeken als een speld in een hooiberg om van de 2^80 collisions in de hooiberg één te vinden.
Het is wel een hooiberg die ca. 2^80 keer zo groot is dan die 2^80 collisions van dat ene wachtwoord...(!!!)
De kans is daarom hoe dan ook ca. 1 op 2^80 per trial dat je een collission van een bepaald wachtwoord vindt.
Zelfs zware brute force attacks kunnen hier weinig mee, tenzij je bijzonder korte of gemakkelijk te raden wachtwoorden
zou kiezen. ("dictionary attacks")
Brute force attacks van honderdduizenden of zelfs miljoenen wachtwoorden per seconde hebben bijna geen kans
om binnen afzienbare tijd een origineel sterk wachtwoord met een sterkte van 80 bits te kraken.
Zeg nooit: "Nooit". Maar als het toch wordt gekraakt zou dat wel héééééééééél toevallig zijn:
1 miljard state-of-the-art WPA2-crack machines zouden daar gemiddeld 10 jaar mee bezig zijn!
Het zijn bijna altijd onze creatiefloze, te korte of te voorspelbare wachtwoordkeuzes, die maken dat het relatief
toch nog vaak lukt om een wachtwoord met een brute force dictionary attack succesvol te kraken.
En een toevallige collision van het wachtwoord binnen een "kraakbare" range van minder karakters is in theorie wel mogelijk, maar is veel onwaarschijnlijker dan ik eerst dacht. Het heeft nauwelijks invloed: te verwaarlozen.
Volgens mij is 13 random karakters al heel erg moeilijk om te kraken. log(95^13)/log(2)= ca. 85 bits
Bij de oorspronkelijke officiële WPA aanbeveling van 8-63 karakters is 8 karakters nu wel erg aan de lage kant
vanwege de sterke brute force mogelijkheden, waar ontwerpers oorspronkelijk geen rekening mee hadden gehouden.
Neem dus liefst 13 of meer karakters. Met 20 karakters zit je helemaal veilig.
Groter mag, maar heeft weinig zin, tenzij je je wachtwoord uit een nogal beperkt aantal karakters wilt kiezen.
Ik hoop dat u allen het hier nu wel grotendeels mee eens kan zijn,
maar als het toch weer heel erg anders blijkt te zijn, dan eet ik mijn hoedjes op! ;-)
Goeroehoedjes.