Aalard99 schreef:
Ben geen expert hoor, probeer het alleen te begrijpen.
Ook ik leer elke dag bij van anderen!
Aalard99 schreef:
Maar het hele punt van een salt is toch dat je deze gescheiden opslaat?. Mocht het gehashde wachtwoord gestolen worden dan heb je hier niets aan zonder de salt.
Om te beginnen: het beschermen van wachtwoorden (of "éénweg"-afgeleiden daarvan) moet en mag
nooit een primair doel worden: dat is het beveiligen van de
gegevens die per account worden opgeslagen.
Daarbij, voor mensen die
sterke (dus unieke) wachtwoorden gebruiken, zou zelfs een MD5 hash prima zijn.
De enige reden voor "iets sterkers" dan MD5 is dat veel mensen
zwakke wachtwoorden
hergebruiken. Alles wat je daar tegen probeert te doen is vooral symptoombestrijding.
M.i. moet je naar de historie kijken hoe het e.e.a. is "gegroeid". Aanvankelijk waren computers traag, was geheugen beperkt en alleen redelijke grote opslag betaalbaar. Grote dictionaries bestonden nog niet en wachtwoorden waren vaak zo kort dat brute force ("aaaaa", "aaaab", "aaaac" etc., ook met cijfers en enkele symbolen) te doen viel. Vooral als relatief veel servers MD5 gebruikten, was het lucratief om de MD5 hashes van die opeenvolgende karakterreeksen in een rainbow table op te slaan; die tabel kon dan voor elke gekopiejatte database worden gebruikt.
Daarmee achterhaal je zelden alle wachtwoorden, maar meestal voldoende om daarmee ("dankzij" hergebruikte ww) accounts van die mensen op andere servers te hacken. En vanuit gehackte e-mailaccounts nepmails te verzenden en zo meer slachtoffers te maken (en uiteindelijk bijv. rekeningen te plunderen).
Door een random salt per server in te zetten, moesten aanvallers
per server een rainbow table genereren.
Als je een random salt (plain text)
naast het wachtwoord en user-ID (naast evt. andere gegevens)
per account opslaat, zou een aanvaller
per account een rainbow table moeten genereren, maar dat is natuurlijk onzinnig. Dus is ww-hash + salt een perfect wapen tegen rainbow tables.
Maar ondertussen vorderde de techniek en werd mogelijk wat ik eerder
hierboven schreef.
Het nadeel van PBKDF2 en Argon2 met voldoende effectieve parameters is dat zij
ook op de server veel performance en geheugen vreten, elke keer als iemand inlogt. Een vraag is dus ook waar deze wapenwedloop moet stoppen.
In plaats van een (plain text opgeslagen) salt kan een serverbeheerder kiezen voor een
pepper dat lastiger of niet te bereiken valt voor hackers, maar daar is vaak prijzige techniek (zoals een HSM, Hardware Security Module) voor nodig die niet door alle gebruikelijke serversoftware wordt ondersteund.
Persoonlijk heb ik liever dat beheerders hun servers dichttimmeren, databases segmenteren met sterke monitoring, bijtijds updaten etc. dan allerlei fratsen uit te halen in een slechte poging om een
gebruikersprobleem op te lossen.
Als gebruikers hun eigen apparatuur zo veilig mogelijk houden (een voorwaarde voor eigenlijk alles) en een betrouwbare wachtwoordmanager gebruiken (en backuppen), die zij per webaccount een sterk en uniek wachtwoord laten genereren, zou MD5 prima zijn.
Als die wachtwoordmanager credentials alleen vrijgeeft als de domeinnaam van de server klopt, zit je qua sterkte al heel dicht in de buurt van passkeys. Daarmee zijn de meeste phishingaanvallen (bedoeld om jouw credentials van een andere server te bemachtigen) kansloos.
Aanvulling 10:06: voordat iemand roept dat MD5 gekraakt is: cryptografisch klopt dat, maar waarom dat voor wachtwoordhashes geen probleem is
beschreef ik eerder hier (lees dat svp eerst voordat je deze post op -1 mod of reageert).
[Reactie gewijzigd door Anoniem: 1576590 op 22 juli 2024 17:58]