TLDR: Vi kräver redan tvåfaktorautentisering för vissa användare. Jag hasar, saltar och gör saker för att uppmuntra långa lösenfraser. Jag är inte intresserad av fördelarna med regler för lösenordskomplexitet i allmänhet. En del av detta krävs enligt lag och en del av det krävs av kunden. Min fråga är ganska smal: Ska jag upptäcka leetspeak-lösenord som Tr0ub4dor&3 som ett ordboksord och misslyckas därför med lösenord som huvudsakligen består av ett enda ordboksord (även om det är läst). Flera ord lösenfraser accepteras alltid oavsett om de har tagits bort eller inte, det här är bara en fråga om de som väljer att använda mer traditionella korta lösenord.
Jag är ledande utvecklare för en kommande statlig webbplats som kommer att avslöja känsliga personliga information (kriminell historia, SSN: er, etc. främst). Webbplatsen kommer att konsumeras av allmänheten, för att göra bakgrundskontroller av anställda osv.
På backend lagrar jag lösenorden hashade med PBKDF2 saltat per användare med mycket höga iterationer , så brute force-hashattacker mot starkare lösenord är inte realistiska (för närvarande), och webbplatsen låser ut användaren i 10 minuter efter fem dåliga försök, så du kan inte heller göra brutal kraft heller.
Jag får lite pushback från mina kunder / partners om hur allvarliga de lösenordsregler jag har implementerat.
Självklart vill jag att folk ska använda 16-20 + lösenordsfraser, men det här är en långsamt byråkrati . Så förutom att tillåta / uppmuntra dessa bra lösenord, måste jag tillåta några kortare "hårda" lösenord. Jag försöker bara begränsa vår exponering.
Särskilt orsakar kravet på "inget ordboksord" frustration för människor, eftersom jag inte tillåter de klassiska leetspeak-lösenorden som XKCD: s berömda Tr0ub4dor&3. (För de nyfikna kör jag det föreslagna lösenordet genom en leetspeak-permutationsöversättare (inklusive att släppa röd) och jämför sedan varje permutation mot en ordlista.
Är jag för svår? Jag är en stor förespråkare för "Avids regel om användbarhet" - Säkerhet på bekostnad av användbarhet kommer på bekostnad av säkerhet. Men i det här fallet tror jag att det är mer en fråga om vana / utbildning. Jag tillåter lösenord för diceware / läsbar lösenfras utan begränsningar, bara de "normala" lösenorden får starkare krav. XKCD # 936: Kortt komplext lösenord eller lång lösenordsfras för ordbok?
Ska jag försöka lösa detta med bara bättre UI-hjälp? Ska jag hålla fast vid vapnen? De flera senaste högprofilerade hackarna, särskilt de som exponerade lösenord, får mig att tro att jag har rätt, men jag vill inte göra saker dumma utan anledning. Eftersom jag är skyddad från brute force attacker ganska bra (tror jag / hoppas), är detta onödig komplexitet? Eller bara bra försvar på djupet?
För de som inte kan grok lösenfraser eller riktigt slumpmässiga lösenord verkar lösenorden "två ord plus num / symboler" vara både lätt nog och åtminstone svårare att hacka , om jag kan få folk att läsa instruktionerna ...
Idéer:
- Bättre lösenordstips / visas mer framträdande (för subjektivt?)
- Bättre hållfasthetsmätare (något baserat på zxcvbn? - skulle misslyckas ordboksorden på klientsidan snarare än efter en inlämning)
- Tillåt inte alla "korta" lösenord, tvinga människor att bara använda lösenfraser, vilket gör reglerna enklare?
- "gör mig till ett lösenord" -knapp som genererar en lösenfras för dem och får dem att kopiera den till lösenordsfälten.
- Ge upp och släpp lösenords lösenord igenom?
Här är vad jag för närvarande har i mina lösenordsinstruktioner / regler:
-
16 tecken eller längre lösenfras (obegränsat max)
eller
-
Minst åtta tecken
- Innehåller tre av följande
- UPPERCASE
- gemener
- Siffror 0123456789
- Symboler! @ # $% ^ & * () _ - + =,. / <>?;: '"
- Inte baserat på ordboksord
- Inte ditt användarnamn
Exempel på lösenord som inte kommer att accepteras
- Troubador (enstaka ordord)
- Troubador&3 (Enstaka ordord plus siffror och symboler)
- Tr0ub4dor&3 (Baserat på ett enda ordord)
- 12345678 (Innehåller inte 3/4 teckentyper)
- abcdefgh (Innehåller inte 3/4 teckentyper)
- ABCDEFGH (inte innehåller 3/4 teckentyper)
- ABCDEFGH (inte innehåller 3/4 teckentyper)
- ABC @ # $%! (Does innehåller inte 3/4 teckentyper)
- ab12CD (för kort)
Exempel på lösenord som kommer att accepteras (använd inte något av dessa passord ds):
- rätt häst batteristapelvara (Diceware lösenord)
- bör flytande saker mode mandat (läsbar lösenordsfras - länk till makemeapassword.org)
- Bra lösenord4! (Flera ord, övre, lägre, siffror, symboler)
- Yyqlzka6IAGMyoZPAGpP (slumpmässig sträng med användning av versaler, gemener och siffror)