Door Anoniem: Door Erik van Straten: Desgewenst toon ik aan waarom langer onzin is.
Als algemene regel geldt volgens mij juist wel dat langere wachtwoorden veiliger zijn [...]
93^8 voor een wachtwoord van 8 tekens. Met name deze "exponentiele stijging" maakt een langer wachtwoord sterker.
Klopt! Dank voor het aankaarten, maar ook voor het aanleveren van bewijs ;-)
Een wachtwoord van 15 tekens van 93 mogelijke karakters kent dus 93^15 = 3 * 10^29 mogelijke combinaties, een astronomisch getal. Bij een volstrekt random wachtwoord zal de aanvaller gemiddeld de helft van de mogelijke combinaties moeten proberen om dit wachtwoord te brute-forcen. In de basis heb je gelijk: hoe langer het wachtwoord, hoe meer pogingen nodig zijn om het te achterhalen. Maar zoals zo vaak is de zaak ingewikkelder dan je op het eerste gezicht zou kunnen denken...
Belangrijke aspecten bij het kiezen voor een minimale wachtwoordlengte zijn m.i. in elk geval:
1) Hoeveel karakters kan en wil een gebruiker onthouden en redelijk snel invoeren (zonder dat dit tot zoveel foute pogingen leidt dat het account wordt gelocked, al is dat "maar" voor 30 minuten), inclusief voor mensen met allerlei handicaps en/of devices met kleine afmetingen;
2) Leidt de eis voor een langer wachtwoord, gecombineerd met andere eisen daaraan (zoals verplicht elke maand wijzigen) daadwerkelijk tot veiliger wachtwoorden en een veiliger omgang daarmee;
3) Wat valt er "te halen" bij specifieke soorten gebruikers;
4) Vanaf welke lengte wordt "kraken" (achterhalen) van een wachtwoord redelijkerwijs
onrealistisch;
5) Hoe "
niet random" mag een wachtwoord daarbij (punt 4) zijn, d.w.z. bestaan er trucs waarbij specifieke wachtwoorden, of delen daarvan, sneller kunnen worden achterhaald dan met brute force;
6) Bij passphrases: hoe groot is de woordenschat en worden de woorden daaruit daadwerkelijk random gekozen (of kiezen de meeste mensen voor "Correct-Battery-Horse-Staple" of een vergelijkbare "how to tip" in het universiteitsblad, omdat ze iets anders niet kunnen onthouden - m.i. een risico van "diceware" waarbij gebruikers, na het dobbelen, ervoor kunnen kiezen om 'lastige" woorden te vervangen);
7) Vanaf welke lengte heeft een
langer wachtwoord geen zin, bijv. vanwege een gebruikt hashalgoritme of een bepaald toepassingsscenario (zie PtH verderop).
In het (m.i. uitstekende, dank!) artikel waar je naar verwijst (
https://medium.com/@ScatteredSecrets/how-to-crack-billions-of-passwords-6773af298172), staat, in het kader van het "kraken" van
afgeleiden van wachtwoorden:
Brute force, dictionary attacks and advanced rulesets are used for fast hashes. Advanced dictionary attacks and basic rules are used for medium speed salted hashes. Simple dictionary attacks and simple rules are used for slow hashes.
M.a.w. als er geen fast hashes worden gebruikt, is brute force sowieso niet realistisch meer (alhoewel ik er nog niet van overtuigd ben dan een 16-bytes lange cryptografische hash van een wachtwoord van 15 random karakters in een redelijke tijd gekraakt kan worden, maar laten we er maar even vanuit gaan dat dit klopt).
Sterker,
het maakt niet uit hoe lang je wachtwoord is als de hash ervan
zo zwak is dat je die sneller kunt kraken dan het wachtwoord zelf! (Brute-forcen van het wachtwoord
zelf hoort overigens onrealistisch gemaakt te worden door een fatsoenlijk account-lockout algoritme). En bij het "kraken" van wachtwoord-afgeleiden maakt het niets uit of je het
daawerkelijke wachtwoord achterhaalt of een
collision (een schijnbaar wikkekeurige reeks karakters die toevallig dezelfde hash oplevert), wat de slagingskans van de aanval vergroot.
Tet illustratie daarvan: iedereen die wel eens een Excel 2003 wachtwoord heeft gekraakt met VBA code, weet dat dit meestal een wachtwoord oplevert dat geen mens zal bedenken, maar wel werkt (om daarna van een collega te horen dat hij "1234" had ingesteld - waar gebeurd overigens).
Met andere woorden, als zwakke en/of snelle hashes worden gebruikt, ben je sowieso kansloos - ongeacht hoe lang jouw wachtwoord is.
Een ander aandachtspunt is dat in veel SSO (Single Sign On) omgevingen het probleem van PtH (Pass the Hash) speelt. De reden daarvoor is dat gebruikers niet elke keer als ze van een resource gebruik willen maken, een wachtwoord willen invoeren. Hoewel het vermoedelijk nog steeds voorkomt (voor resources die geen PtH ondersteunen), wordt het in het algemeen als zeer onverstandig beschouwd om daarom maar het plain-text wachtwoord van de gebruiker in het geheugen (en/of op schijf) te bewaren.
Voor dit probleem is een "briljante" oplossing bedacht: in plaats van
het werkelijke wachtwoord voor elke resource in het domein, bewaar je gewoon de hash daarvan. En zodra een gebruiker op zo'n resource wil inloggen (bij netwerkdrives gebeurt mounten vaak al automatisch op het moment dat de gebruiker interactief inlogt), wordt
die hash als "wachtwoord" (als bewijs van identiteit) naar de resource gestuurd. Het uitgangspunt hierbij is dat andere devices in een domein de PC, waarop de gebruiker aanvankelijk en
met een echt wachtwoord zijn/haar identiteit heeft aangetoond,
onvoorwaardelijk vertrouwen.
Maar ja, zodra malware kan wat die gebruiker kan, kan ook die malware, gebruikmakend van (cached) hashes i.p.v. echte wachtwoorden, inloggen op (als dat al niet automatisch is gebeurd) en misbruik maken van allerlei andere resources in het domein. En dat is vaak wat malware, zoals gebruikt in Maastricht, doet om zich binnen een domein te verspreiden. Ook in dit scenario hebben langere wachwoorden geen enkele meerwaarde.
Lang verhaal kort (ik ben ook al weer te lang bezig ;-) : alles afwegende denk ik dat voor doorsnee gebruikers een langer wachtwoord dan 15 karakters onzin is, mits ongevoelig voor dictionary attacks, en mits er geen slechte authenticatiemethodes worden gebruikt. Maar ik laat me graag overtuigen met steekhoudende argumenten die mijn ongelijk bewijzen!