Fråga:
Lösenordsregler: Ska jag inte tillåta "leetspeak" -ordbokslösenord som XKCD: s Tr0ub4dor & 3
Jason Coyne
2015-07-10 23:13:49 UTC
view on stackexchange narkive permalink

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)
Jag är lite förvånad över att du inte har en hårdkodad regel som blockerar "rätt hästbatteri"
_ "16 tecken eller längre lösenfras (obegränsad max)" _ Så, om jag lägger GB tecken i det fältet, tillåter du mig att skicka det till servern? Intressant...
@KevinCoulombe Om du gör det tvingar du praktiskt taget * människor att skriva ner lösenordet som du tvingar dem att använda. Och gillar det eller inte, många av de människor som lagrar lösenordet någonstans för att de inte kommer ihåg det, kommer att lägga det någonstans som deras Google-kontaktdatabas.
Kommentarer är inte för längre diskussion; den här konversationen har [flyttats till chatt] (http://chat.stackexchange.com/rooms/25819/discussion-on-question-by-jason-coyne-password-rules-should-i-disallow-leetspe).
När en användare väljer ett lösenord, sök efter det på Google och avvisa det om det ger resultat. Men det är typ av en stor läcka ...
Min universitetslärare sa många gånger att alltför komplexa lösenord är dåliga eftersom människor tält för att skriva ner dem på "post-it" och hålla dem till bildskärmar eftersom de inte kan memorera dem.
"Men i det här fallet tror jag att det är mer en fråga om vana / utbildning." Att återutbilda alla dina användare kan vara en ädel sak, men en idiotisk sak. Att försöka ändra vanor hos bara en person är jävligt nästan omöjligt.
@Tony Ja, det är en helvetes läcka. Fortsätt och lägg upp det på TheDailyWTF
Glöm inte `SlowEquals ()`.
@FallenAngel: Jag har hört så mycket, och undrar hela tiden är det den största faran idag?Jag menar, om någon kom förbi säkerheten till mitt skrivbord, kunde de antagligen också bara ha en fysisk nyckellogger på mitt tangentbord, vilket ger en stor del av säkerheten.Å andra sidan, fortsätt och försök att fjärrhacka en post-it-anteckning.
@sharur varför den bästa lösningen är ett långt slumpmässigt skitlösenord, lagrat i en lösenordshanterare, skyddad av en lång men lätt att memorera lösenfras.Det skyddar från både fjärr- / hashattacker och lokala / sociala teknikattacker
Med tanke på [detta svar] (https://security.stackexchange.com/a/45852/10990) verkar det som om "Tr0ub4d0ur" är sårbar för "regelbaserade ordlistaattacker".
Elva svar:
Tom Leek
2015-07-10 23:55:19 UTC
view on stackexchange narkive permalink

Felet här är att tro att extra lösenordsregler ökar säkerheten. De gör inte. De ökar användarnas irritation; och de får användarna att välja lösenord som är svårare att memorera. Av någon konstig psykologisk anledning tror de flesta att ett lösenord med symboler som inte är bokstäver är "säkrare" på något ontologiskt sätt än ett lösenord med endast bokstäver. Detta är dock helt obefogat.

Det finns en "lösenordsregel" som inte är skadlig för säkerheten: en minsta lösenordslängd. Detta beror på kombinationen av två saker:

  • De mest dumma brutala kraftattacken räknar upp alla symbolsekvenser, som börjar med sekvenser på 1, sedan 2 och så vidare. I den meningen kan ett lösenord som endast innehåller fyra symboler sägas vara omöjligt att försvaga.

  • Användare förstår tanken att räkna upp alla små lösenord. De är redo att acceptera att de behöver skriva minst 6 eller 7 bokstäver.

Alla andra regler kommer i bästa fall vara neutrala, men de flesta kommer att faktiskt minskar säkerheten, eftersom de kommer att få användare att:

  1. utforma och dela med varandra "metoder" för att generera lösenord som din server kommer att acceptera, metoder som vanligtvis har mycket skiljetecken tecken men väldigt lite entropi;

  2. skriv ner sina lösenord som är svåra att komma ihåg;

  3. återanvänd lösenord på andra system , av samma anledning till svår memorering.

"Lösenordsstyrkemätare" är också skadliga eftersom:

  • De är inte och kan inte vara pålitlig. En mätare för lösenordsstyrka mäter bara hur länge ett givet lösenord skulle stå mot den exakta brute force-strategin som inkarneras av mätarkoden, men ingen angripare är begränsad att följa exakt samma strategi. > Lösenordsstyrkemätare kan inte mäta entropin som rådde i lösenordsvalet, eftersom de bara ser resultatet (lösenordet i sig).

  • De förvandlar lösenordsval till ett spel som uppmuntrar kvicka strategier från användarens sida, och intelligens är precis vad vi inte vill ha för lösenord. Säkra lösenord strävar efter slumpmässighet.

Vad kan kan hjälpa mycket är att tillhandahålla ett lösenordsgenereringssystem. Var noga med att göra systemet frivilligt : du vill att användare villigt vill använda det, inte tvinga det på dem, för att de inte skulle göra uppror (och skriva ner lösenord, dela och återanvända).


Så min rekommendation skulle vara:

  • Avvisa lösenord som är kortare än 7 tecken (eftersom du har ett lindringssystem mot online-attacker - nämligen autolås i 10 minuter efter 5 fel försök - du kan tolerera relativt korta lösenord). MEN INGEN ANNAN REGEL. Varje sekvens med 7 eller fler tecken är bra.
  • Ange en eller, ännu bättre, flera valfria lösenordsgenereringsmekanismer, t.ex. diceware, "rätt häst", och så vidare.
  • Uppmuntra användningen av lösenordshanterare.
  • Om möjligt, försök hitta något annat än lösenord för autentisering av användare.

Mitt påstående är att du skjuter saker i en något sned riktning, inte precis rätt. I synnerhet är lösenordsregler som insisterar på vissa specifika tecken en dålig sak (en vanlig sak, men en dålig sak ändå).

Offlineattacker mot ett lösenord med 7 tecken utan regler skulle gissa många lösenord mycket snabbt.
OP nämnde att de arbetar på en regeringsplats. Om det är för den amerikanska regeringen måste de följa NIST-riktlinjerna som kräver minimum 12 tecken - 7 gör inte alls.
I detta specifika fall är vi föremål för CJIS-riktlinjerna som är 8 och inte ett ordboksord. Att tvinga symboler implicit gör det inte till ett ordboksord, men jag försökte göra det lite säkrare än så
Wow. Jämfört med NIST är de oftast ganska slappa. 8 tecken kontra 12. 90-dagars utgångsdatum kontra 60. Lösenordshistorik 10 mot 24. Endast saker som förstärker det är bitarna om inga ordboksord eller egennamn och inte är samma som användar-ID.
För att eliminera spelanpassning, låt helt enkelt ditt program meddela alla på kontoret vilka dåliga lösenord människor försöker använda. Det är osannolikt att människor experimenterar om människor ser dem experimentera.
Jag skulle lägga till ytterligare två regler: lösenordet kan inte vara detsamma som användarnamnet och lösenordet kan inte visas i en ordlista eller en lista över de vanligaste lösenorden. En lockout med fem försök hjälper inte om lösenordet är en av de fem första sakerna som en angripare kommer att försöka.
@Mark: Inte tillåt "lösenord" som ett lösenord.
Av intresse, finns det någon relevant komprimeringsalgoritm (kanske en som använder en förbyggd ordbok med naturligt språk) så att vi inte bara kan begränsa lösenordslängden utan begränsa * komprimerad * lösenordslängd? Min rädsla är att det i världen vi pratar om, 7 eller 12 byte eller vad som helst, det finns inga bra komprimeringsalgoritmer, men man vet aldrig. Och det kan utesluta människor som går, "" 123 fungerar inte, hur är det med "123123123"? Sorterat ".
@SteveJessop LZW eller något liknande skulle göra ett anständigt jobb med att testa komprimering som du föreslår, men det skulle bara testa direkt för repetition.
@JasonCoyne: Rätt nog, `len (list (lzw.compress ('123123123'))) == 8 '. Så det är en början i att det har identifierats åtta bitar av "slack" i lösenordet. Som du säger skulle testning för repetition identifiera mycket mer.
Om den enda regeln verkligen är "minst 7 tecken" tror jag att vi alla kan komma överens om att mängden triviala ordboksord kommer att vara extremt höga. Och eftersom vi vet att en av dem är ungefär lika säker som fyra slumpmässiga alfanumeriska bokstäver (jag är riktigt generös där) varför inte acceptera dem också? Att acceptera ett riktigt dåligt lösenord men inte det andra är ganska orättvist. Personligen är jag allt för människor som skriver ner sina komplexa lösenord för online-system - i allmänhet kan alla som kan få så mycket fysisk tillgång för att stjäla ett av dessa pappersrester lika enkelt installera en keylogger hur som helst.
På en mer konceptuell nivå är huvudproblemet att försöka _tvinga_ användaren att välja ett "starkt" lösenord. För att få anständig säkerhet bör användaren _förstå_ vad som gör ett lösenord bra eller inte. "Lösenordsregler" som att tvinga fram ett skiljetecken är inte effektiva för det; i själva verket får de användaren att tro att '.' är på något sätt "säkrare" än en bokstav som "k", och det är kontraproduktivt (det gör det _mindre_ troligt att användaren faktiskt förstår saker). Säkerhet kräver användarsamarbete, som matar på _freed_ och _pedagogy_, inte _regler_.
Jag gillar mycket av detta svar (FWIW), men det verkar bara vara en halvhjärtad utmaning av frågan. Å ena sidan säger du att du inte kan lagstifta bra lösenord, istället måste användarna utbildas för att välja bra. Detta motiverar ditt starka råd att lösenordet 'lösenord' inte ska avvisas av systemet. Men då rekommenderar du att förbjuda lösenord med 6 bokstäver. Jag följer inte logiken: om du som en policy vill tillåta fruktansvärda lösenord som du vet skulle falla snabbt för att tappa kraft, eftersom det är på användaren att inte välja ett, varför avvisa 6 bokstäver?
Är det bara för att det är så lätt (i kod) att genomdriva en längdgräns, medan det är relativt tungt att kontrollera mot en lista över kända vanliga lösenord som angripare försöker först?
Nåväl, längd (speciellt när du kommer till 12/16/20 etc) löser bara problemet helt. Allt annat löser en del av det och lämnar kryphål och platser för människor att göra dumma saker. Det tar tid att få användare (och webbplatsägare) att ta fart. "8-komplexa" regeln närmar sig ett decennium gammalt nu, icke nördar förstår inte varför det fortfarande inte skulle vara tillräckligt bra.
@SteveJessop: enligt min logik bör det inte finnas någon nedre gräns för lösenordslängd. Men om systemet accepterar (till exempel) lösenord med tre bokstäver, kommer en hel del användare att känna sig investerade i det heliga uppdraget att varna dig (sysadmin) om dårskapen med tre bokstäver och bara läsa alla dessa klagomål. kommer att ta mycket tid. Att genomdriva en minimal längd är något som genomsnittliga användare förstår och accepterar och fungerar som en signal om att du faktiskt bryr dig om säkerhet.
@Voo, såvida de inte behövde root / admin-åtkomst för att installera en keylogger ..... som de skulle behöva ett lösenord för ... bekvämt tejpade på skärmen.
@Paul Hardware keyloggers finns och är otroligt billiga och snabba och enkla att installera. Och det är bara det enklaste av många tillgängliga alternativ. Slå upp alla onda städers attacker. Det finns en anledning till att säkerhet 101 säger om angriparen har fysisk tillgång till din maskin du har förlorat.
"[Lösenordsstyrkemätare] är inte och kan inte vara pålitliga" - det verkar som en överförenkling för mig. Visst, [zxcvbn] (https://blogs.dropbox.com/tech/2012/04/zxcvbn-realistic-password-strength-estimation/) är inte * perfekt *, men det är utan tvekan bättre än ingenting.
@TomLeek är din senaste kommentar, så du säger i grunden att lösenordets minimilängd är en form av * säkerhetsteater *, men den goda typen som mildrar en specifik (mänsklig) kostnad? Jag tror att du litar för mycket på kompetensen hos genomsnittliga användare.
Min huvudsakliga poäng är att användare ska välja icke-svaga lösenord _ på egen hand_ - ju fler regler du tillämpar, desto fler användare kommer att hitta kreativa sätt att generera svaga lösenord, istället för att producera starka lösenord. Systemet måste dock fortfarande projicera idén att starka lösenord är viktiga, och en minimal längd är enligt min mening den bästa kompromissen: inte för skadligt eftersom användarna är redo att acceptera en sådan begränsning (de känner att de förstår det), och fortfarande en bra förmedlare av tanken att det finns en sak som säkerhet.
Jag håller med om att det är bäst att få användare att verkligen grok säkerhet och göra det på egen hand. Men verkligheten visar att de allra flesta användare inte gör det. Om detta var en intern webbplats kunde jag utbilda dem, men det här är en webbplats som är tillgänglig för allmänheten, men ändå måste den vara säker. Mina enda val är att genomdriva saker och försöka utbilda så mycket jag kan genom UI-tipsen, samtidigt som jag balanserar vad jag tycker är rätt, vad lagen kräver och vad kunden kräver (och dessa tre begränsningar är ofta inte överens)
@JasonCoyne Du saknar poängen. Ökade begränsningar = mindre säkra lösenord och lösenordsvanor. Det spelar ingen roll om användaren har ett 16-siffrigt slumpmässigt genererat lösenord som ditt system gjorde för honom om han bara skriver ner det och klistrar det på sitt skrivbord.
@TonyEnnis Tyvärr är "Utbilda användare" nummer 5 på listan över dåliga strategier http://www.ranum.com/security/computer_security/editorials/dumb/
Adam Katz
2015-07-11 01:10:21 UTC
view on stackexchange narkive permalink

Ett index över entropi -värden ( dela gånger med antalet noder —statliga aktörer har massor av noder):

 BIT ~ RAND CRACK CRACKDICTIONARY COUNT ENTROPY CHARS MD5 PBKDF2̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ph Alfabetiska siffror (bokstäver, siffror) 62 5,95 0,9 0s 0s Random printable char (any tangent på ett amerikanskt tangentbord) 94 6,55 1,0 0s 0sDiceware-ordboksord 7776 12,92 2,0 0s 0sStandard amerikansk engelska (en_US) diktord 100k 16,61 2,5 0s 0sStor amerikansk engelsk ordbok 650k 19,31 2,9 0s 1sEtt ord i valfri Wikipedia (vilket språk som helst) 58.4M 25.80 3.9 0s 58sStandard sv_US-ordbok med raNDomIZED CASE 6.3M 22.60 3.4 0s 6sStandard en_US-ordbok med l33t-variationer 6.3M 22.60 3.4 0s 6sStd en_US w / typos + (antingen randfodral eller leet) 38M 25.18 3.8 0s 38sStd en_US w / randfodral + stavfel + leet 2.4B 31.18 4.8 0s 41mWikipedia-ord med raNDomIZed cASE (eller l33t) 3.7B 31.80 4.9 0s 1hWikipedia word w / typos + (rand case xor leet) 22B 34.39 5.2 0s 6 orderordning: 5 nedre, 1 special, 1 nummer, 1 övre 1e11 36.52 5.6 2s 1drandordning: 6 lägre och två av övre / num / special 4e11 38,67 5,9 10s 5drand ordning: 6 nedre, 1 spec / övre, år 1900-2100 4e12 41,70 6,4 1m 49drand ordning: 7 nedre och två av övre / num / special 1e13 43,37 6,6 4m 131drand ordning: 8 nedre och två av övre / num / special 3e14 48,07 7,3 2h 4y * 4 ord diceware lösenfras 4e15 51,70 7,9 2d 8y * 8 char (slumpmässigt utskrivbar) lösenord 6e15 52.44 8.0 2d 9y *
5-ords lösenordsfras 3e19 64,62 9,9 6y * 27y * 10 tecken (slumpmässigt utskrivbar) lösenord 5e19 65.55 10.0 6y * 29y * 4 standard sv_US-ord 1e20 66.44 10.1 7y * 31y * 3 st en_US-ord och ett stort en_US-ord 6e20 69.10 10.5 11y * 35y * 3 st en_US ord och 3 slumpmässiga utskrivbara tecken 8e20 69.46 10.6 12y * 35y * 6 ord diceware lösenfras 2e23 77.55 11.8 26y * 47y * 

"Alla Wikipedia" inkluderar Wiktionary, Wikibooks, etc, på alla språk, med 58,4 miljoner unika ord 2009. Diceware var grunden för xkcd-serierna. Jag antar en ordstorlek på sex tecken för slumpmässigt blandat skiftläge (så det finns 2⁶ extra iterationer) och jag antar att leetvariationer är lika rikliga som blandade skiftlägen. Jag använder ett värde på sex för avsiktliga stavfel / felstavningar.

Sprickor är uppskattningar för toppmoderna sprickningssystem med en nod, med uppgraderingar var 18: e månad för att ta hänsyn till Moores lag (när du ser en asterisk, * ). Ett utrymme anses vara knäckt när hälften av det har undersökts. GPU-baserad krackning kan testa MD5s vid 23B / s på en enskild datornod . PBKDF2 är mer robust, uppskattat till 300k / s på ett 4-GPU-system 2013 (för 27 månader sedan → 2 27/18 , så 300k × 2.828 = 849k / s → avrundat till 1M / s).

(Anmärkning till mig själv: läs och införliva / motbevisa Jeffrey Goldbergs lösenordssprickande matematik i Quora)

Frågan klargjordes i kommentarer till mitt andra svar (som jag lämnar eftersom det fortfarande kan vara hjälpsam). Det frågar egentligen bara om leetspeak ska tillåtas eller inte. Tvåfaktorautentisering används redan för områden med hög säkerhet.

Ordet "troubador" finns inte i min ordlista utan i min stora ordbok. Att använda den första bokstaven i ett ord är inte slumpmässigt blandat skiftläge (det är en vanlig lösenordstopologi), så det fördubblar bara antalet. Dess slumpmässiga utskrivbara teckenekvivalent är därför log₂ (650k × 2⁶ × 2) / 6.55 som bara är fyra tecken!

Därför Tr0ub4dor&3 motsvarar sex slumpmässiga utskrivbara tecken av komplexitet. Ett svagt lösenord, men ändå ungefär lika starkt som de flesta lösenord som människor skapar för att minimalt passa komplexitetskrav.

Om sex slumpmässiga tecken är för svaga bör du inte tillåta "leetspeak" ordbokslösenord.

För att vara helt grundlig kanske du också vill ha en stor ordlista så att du kan räkna ord som jag har, annars ett lösenord som presidentclinton (33,22 bitar, 5 tecken, lägre i verkligheten på grund av att de är relaterade) accepteras av ditt system.

Ledsen för förklaringen av förvirring. Utmärkt svar. Medan jag ser tvåordsproblemet som verkligt, får jag så mycket pushback när jag inte tillåter ett ord, två ord är en icke-start. Små steg. Mitt mål är att uppmuntra diceware eller andra lösenfraser så mycket som möjligt genom UI-tipsen. Jag kommer att lägga till zxcvbn som åtminstone borde varna användarna om att de två ord är svaga.
Det är mycket viktigare att du stryker lösenordsförsök. Jag antar att du gör detta: 5 fel på 5 minuter från samma IP * eller * samma användarnamn blockerar IP och / eller låser kontot). Så länge din hash-db aldrig äventyras och din strypning aldrig överskridits spelar lösenordsstyrkan ingen roll. Därför, om du inte kan förbättra lösenordsstyrkan, förbättra säkerheten för den hash db.
Jag stryper försök online. det finns tillräckligt med exempel på sårbarheter i OS / DB / SSL etc att ha hashläckage är ett legitimt problem. Med korta lösenord är det rimligt att knäcka dem. Jag har föreslagit att kunden ska tappa alla krav på komplexitet, men gör minsta längd 16 kommer vi att se hur det går.
Whoa, avvisa upprepning i så fall, annars får du lösenord som `asdfasdfasdfasdf` och` hiiiiiiiiiiiiiii`. Om du kontrollerar det borde du ha det bra eftersom alla små bokstäver fortfarande ger 26 ^ 16 vilket är 75 bitar entropi (motsvarande 11,5 slumpmässiga utskrivbara tecken) ... eller, via en ordbokattack förutsatt tre ord, 100k ^ 3 på 49,9 bitar , (motsvarar 7,6 tecken, men med giltiga kombinationer av två ord och 4+ ord är du över 9 tecken). Det är synd att du inte kan googla varje fras för att kontrollera dess popularitet (för stor risk för informationsläckage).
@JasonCoyne: 16 bokstäver är alldeles för höga för den genomsnittliga användaren. Gör det mer rimligt (7-8 bokstäver) och använd bcrypt med ett [extremt stort antal omgångar] (http://security.stackexchange.com/a/83382/1508), om du är så orolig för det. På det sättet vilar den allmänna säkerheten på dina axlar och kan ökas senare om det behövs utan att det stör användaren.
Jag gillar hur askaren accepterade svaret han ville höra, och inte svaret med mer än fem gånger så många röster.
@KevinKrumwiede Även om jag kunde ha varit tydligare i min fråga om vad jag ställde, accepterade jag det svar som svarade direkt på min fråga. Jag frågade inte om lösenordsregler eller säkerhetsrutiner i allmänhet. Jag frågade specifikt om uppslagsfrågan och leetspeak. (Som jag sa kunde jag ha gjort det mer uppenbart i frågan ursprungligen)
@BlueRaja-DannyPflughoeft Jag använder PBKDF2 på grund av FIPS-certifieringsproblem, men konceptet är detsamma. Jag använder mycket höga omgångar, men att fördubbla omgångarna lägger till samma komplexitet för en cracker som en enda extra bit av lösenordskomplexitet. en längd på 8 utan några andra betydande komplexitetsregler kommer att lösenordet sprickas mycket lätt. Människor kommer absolut att använda lösenord som är lätta att knäcka, även med långsam hashing.
@AdamKatz Lockouts gör en trivial överbelastningsattack för alla som känner till ett användarnamn.
@JasonCoyne: Jag ifrågasätter ditt påstående att * "en längd på 8 [..] kommer att få lösenordet knäckt mycket enkelt." * Säg att användaren endast använder stora och små bokstäver, inga siffror eller specialtecken. Och säg att din PBKDF2 är inställd så att servern tar 0,3 sekunder för att hash ett lösenord. Och säg att angriparna har ett botnet 1000 gånger mer kraftfullt än din server. Då tar det fortfarande en angripare under förväntade 250 år att tvinga den ena användarens lösenord. Eftersom du saltar är det 250 år ** per användare **.
@BlueRaja-DannyPflughoeft För ett RANDOM 8-lösenord är du korrekt. Men vi vet för ett faktum att användare väljer riktigt dåliga lösenord. Leetspeak-lösenorden har en entropi på ~ 25 bitar. i ditt scenario, där det bara är bokstäver, kommer en mycket hög andel lösenord sannolikt bara att vara ord. Låt oss vara GENEROUS och säga mellan vokab för genomsnittliga användare (~ 10-20k), och tad bit entropi / caps / siffror de kommer att använda dess 50k-100k kombinationer. 100K x .3s = 8,3 timmar och i genomsnitt skulle du få ett lösenord halvvägs. Och det är inte ens redogör för botnet.
För leetspeak-enheterna skulle 25 bitar ge dig 4,5 års genomsnitt per lösenord före botnet. Förutsatt att botnet, ~ 1,5 dagar
båda dessa tider (~ 4 timmar, ~ 4,5 år) ignorerar det faktum att bra crackers skulle prova ord / kombinationer i frekvensordning och sannolikt skulle knäcka saker mycket tidigare för de flesta användare.
@DavidRicherby Ja det gör de. Det är också vad bankerna gör. Annars kan ett botnet brute tvinga ett kontouppgifter.
Min lockout är i 10 minuter, vilket räcker för att stoppa online-bruteforce, men inte tillräckligt för att permanent hålla ut användaren (om inte botnet är dedikerat till att hålla det igång)
@KevinKrumwiede Det är därför mekanismerna är oberoende. OP: n kan (och bör) välja vad som bäst svarar * deras specifika fråga. * Gemenskapens omröstning avgör vad som är bäst * för historikregisterna och framtida besökare. *
@Angew Inte riktigt, eftersom det accepterade svaret lyfts upp till toppen. De flesta människor bryr sig inte om att bläddra ner till det andra svaret. Jag vet att jag inte skulle förrän jag såg Kevins kommentar.
Att inte tillåta någon viss _ "typ" _ av lösenord är dumt och rent irriterande utan att ge dig någon verklig fördel.
@DavidRicherby, instämde. Låsningar är oacceptabla. Även en 10 minuters spärr kan effektivt låsa en riktig användare från sitt konto om någon skriver ett manus för att fortsätta skicka förfrågningar var tionde minut. Det är mer än tillräckligt att bara lägga till en liten fördröjning. Att sova under en kort tidsperiod är en acceptabel fördröjning för en människa, men gör brute tvingar nästan omöjligt.
blockeringen krävs enligt lag i det här fallet, så inget val.
@AdamKatz Bra uppdatering av ditt inlägg. 2 utgåva. 1) Troubador är verkligen stavad Troubadour, som kan sätta det i din lilla ordbok. 2) Jag tror att du kanske underskattar PKDBF2-hashhastigheter på GPU: er betydligt. De 1 lösenordsmännen uppskattar det till 1M / s https://blog.agilebits.com/2012/07/31/1password-is-ready-for-john-the-ripper/Det är faktiskt samma artikel länkad i det SO-svaret du länkade till, men de såg inte GPU-uppskattningen
@JasonCoyne ** 1) ** Korrekt, "Trubadur" förekommer i alla ordböcker, inklusive ordboken 100k ord, medan "Troubador" endast finns i lg 650k och wikipedia ordböcker. Om du skulle dubba den senare som en felstavning skulle den passa i ordlistan std + felstavningar (100k * 6) och dess entropi skulle sjunka milt. ** 2) ** Trevlig fångst, men siffran 1M / s hänvisar till 1k iterationer, inte 10k. Förutsatt att iterationskomplexiteten är linjär, skulle 10k-iterationer vara 400k / s (fortfarande 4000 gånger SO-svaret). Jag kan uppdatera min tabell och resultat w.r.t. den där.
@JasonCoyne 1. lockout via IP, inte av användare (verkar uppenbart) 2. upptäcka leet-style lösenord specifikt för att * ta bort * dem från lösenordsutrymmet. Kontraproduktivt. Jag är nybörjare men bevisen här tyder starkt på att du accepterade fel svar.
@StevenLu Ja, det tar bort dem från lösenordsutrymmet. Så gör någon form av lösenordskomplexbegränsning alls. Men lösenorden som finns kvar är de som kräver uttömmande sökning jämfört med de som kommer att fångas i regelbaserade attacker inom några timmar / dagar
Titta .... "Tr0ub4dor & 3" är ett * överlägset * lösenord för "Troubadore" eller "Troubadour" eller vad har du. Det är ingen mening att slå den döda hästen, för det andra svaret med 5 gånger fler röster gick redan bättre än jag kunde. Tänk på hur _ detta_ svar misslyckades med att använda någon logik för att ansluta rekommendationen att ta bort leet-lösenorden. Inget övertygande skäl angavs. Det fanns en massa snygg information (som jag inte tvekar är korrekt). Men slutsatsen på svaret är en icke-sequitur.
"Om sex slumpmässiga tecken är för svaga bör du inte tillåta 'leetspeak' ordbokslösenord." Du har just minskat entropin här (om användaren fortsätter med det ord de har i åtanke) med några fler bitar. Det är kontraproduktivt ... Någon mer kunnig kan använda ett lösenord som "rätt hästbatteri". Men du kan inte argumentera för mig med ett rakt ansikte att "C0rr3ct hOr5E b4773 | 2Y sT4P1e" är ett sämre lösenord. Det är ett mycket långt överlägset lösenord.
@StevenLu - Jag har aldrig hävdat det. Jag sa att ordets komplexitet i leetspeak-form ökar med 64, vilket är otillräckligt för att ett * enstaka * leetspeak-ord (22,6b entropi, 3,4 tecken) ska fungera som ett komplett lösenord. c-h-b-s har 66,4b entropi (10,1 tecken) medan leet (c-h-b-s) har en högre 90,4b entropi (13,8 tecken).
@StevenLu läser igen den sista meningen i första stycket. leetcheck är bara för att de är så svaga för KORTA lösenord. I lösenfraser bryr jag mig inte om leet.
Ok. Jag ber om ursäkt för att jag gjorde lite för mycket skumning igår kväll. Jag antar att du redan kontrollerar mot en ordbok för korta ord * och din fråga handlar om var du * ska rita linjen *. Verkar för mig på denna sofistikeringsnivå att du lika gärna kan delta i en talteoretisk beräkning av entropin (på klienten?) Med det angivna lösenordet / frasen. Inte säker på hur praktiskt det kan vara eller hur man verkligen kan förena / kombinera det med resultatet av testning mot ordboken. Men det skulle hjälpa till att få en entropikarakterisering för att fatta ett go / no-go-beslut.
Inte säker på om det hjälper men ibland när jag skriver frågor som blir ganska stora skulle jag upprepa huvudfrågan genom att upprepa den och skriva ut den i fetstil.
Jag har uppdaterat tabellen för att använda 1M pw / sek för PBKDF2 vid 10k iterationer. Jag är inte säker på> 64-bitars räkningar men de kan vara mycket högre.
Cort Ammon
2015-07-11 04:10:44 UTC
view on stackexchange narkive permalink

Ytterligare lösenordsregler bör alltid tempereras med följande regel:

"Ju svårare det är att få ett giltigt lösenord och hålla det aktuellt, desto mer troligt kommer folk att skriva ner dem i deras dagplanerare. "

Följaktligen är din fråga social. Hur mycket utbildning om bra lösenordshantering kan du ge kontra hur mycket efterlevnad du kan ge. Du måste balansera detta för ditt eget företag. Det låter som om du har viktig information att skydda ... är det någon som utbildar operatörer hur man arbetar med sådan känslig information? Eller förlitar de sig blint på dig och en hashalgoritm för att göra det åt dem.

Bara för att det är annorlunda skulle jag överväga att föreslå en inlärningsupplevelse när ett dåligt lösenord ges. Jag tror att det kan vara en balans mellan tillvägagångssätten. Ännu viktigare, det kan inspirera dig att hitta en ännu bättre lösning:

  • Ha en minsta lösenordslängd. Detta är kravet på bara ben, och du måste genomdriva det
  • Om ett lösenord är svagt, låt dem veta att det är svagt och erbjuda att låta dem använda det ändå ( med lite text som indikerar att du litar på dem för att skydda sina egna referenser ordentligt)
  • När du accepterar ett svagt lösenord, inkludera lite text som förklarar vad du anser vara svag vid det ("Det ser ut som att du använde l33t för att göra din lösenord ser säkrare ut. Gissa vad: det är det inte! Det här lösenordet är ungefär 45000 gånger svagare än du faktiskt tror att det är ")
Så vad sägs om människor som skriver ner sitt lösenord i sina dagplanerare? För att få tillgång till dem måste någon få ostörd tillgång till arbetsplatsen. Om du kan göra det är spelet över - det tar mindre tid att installera en keylogger (hårdvara inte programvara om vi vill vara snabb) än att hitta ett lösenord i en dagplanerare. Detta är regel 101 för datasäkerhet: Om maskinvaran äventyras har du tappat bort. För de flesta arbetsplatser är nedskrivning av lösenord ett utmärkt alternativ och förmodligen ungefär så säkert som man kan få.
@Voo det kräver definitivt att du förstår din hotmodell. Det finns dock många fall där platsen där lösenordet skrivs ner (dvs. dagplaneraren) lämnar den skyddade arbetsplatsen. Om du skriver ner alla dina lösenord, placerar dem i ett värdeskåp och skyddar det säkra lösenordet på nivå med ditt mest värdefulla lösenord, är det ett mycket säkert tillvägagångssätt.
* felaktigt * Borde ha varit "Om du skriver ner alla dina lösenord, placerar dem i ett värdeskåp och skyddar värdeskåpet på nivå med ditt mest värdefulla lösenord, är det ett mycket säkert tillvägagångssätt."
@Cort Definitivt. Det är inte rätt alternativ i alla situationer (och det beror verkligen på hur du gör det som du påpekar). Jag tycker bara att det blir för mycket för ofta och av fel skäl, eftersom det för många praktiska ändamål är den bästa säkerheten din lekman kommer att kunna uppnå.
@Voo Det stämmer, det blir ofta för ofta. Jag tror att jag basar det för att det verkar så enkelt att bara lägga till en ny lösenordsregel. Jag har arbetat med några ASININE lösenordssystem i mitt liv (jag förtalar fortfarande namnet på IT-idioten som skapade ett system som krävde att lösenord byttes var 60: e dag, minst ett nummer men det räknas inte i slutet, blandat fall men det första tecknet räknas inte som huvudstad, kan inte vara ett ordboksord eller l33t-ord och skulle inte tillåta uppenbara tangentbordsmönster ...
... men hade sedan ett MAXIMUM på 8 tecken eftersom den underliggande programvaran inte skulle ta mer än så)
På mitt tidigare företag skrev jag alla mina lösenord i min dagplanerare. Jag hade ungefär tio lösenord att komma ihåg, alla förändrades på orelaterade scheman, och naturligtvis inget centralt lösenordsförvar. Lösenorden jag skrev ner var lätt krypterade. Om mitt lösenord till exempel var "bluecolt" skrev jag ner "b45".
ztk
2015-07-10 23:24:19 UTC
view on stackexchange narkive permalink

Om du inte är rädd för att någon stjäl och råkar tvinga dina lösenord, är ditt mest troliga fall att ett lösenord upptäcks en phishing-attack. Krav på lösenordskomplexitet skyddar dig inte från nätfiskeattacker.

Om du använder mycket komplexa lösenord kommer användarna att hitta ett lösenord som fungerar och håller fast vid det, när det löper ut kommer de att göra den mest mindre ändringen och Fortsätt. Det betyder att en bestämd phisher kommer att kunna gissa det nya lösenordet ganska snabbt.

Överväg att använda tvåfaktorsautentisering eftersom inget lösenordskomplexitetsschema skyddar dig från användaråtgärder. (Kom ihåg att användare också är människor och vill få sina jobb klara utan att spendera hela dagen på ett lösenord)

BTW, här är några frågor relaterade:

Är regler för lösenordskomplexitet kontraproduktivt?

Rekommenderad policy för lösenordskomplexitet

För de säkraste uppgifterna har vi också 2FA. Jag antar att jag är orolig för brute forcing. Även med PBKDF2 om användare har galna lösenord, kommer de sannolikt att förekomma i näven 10k-100k gissningar vilket är en kort tid. Jag vill att folk ska använda lösenfraserna, vilket jag inte är orolig för. Men om de inte kommer att använda dem vill jag hindra John / hashcat från att få det i de enkla reglerna.
Människor gör inte komplexa lösenord särskilt bra, så tvinga dem inte. Kan du uppmuntra en lösenordshanterare som Lastpass? Det skulle sätta komplexa lösenord i ditt system utan att göra galna användare.
Tja, mitt mål är att tvinga lösenord för diceware-stil. De låter mig inte göra regeln "Måste vara 16+ tecken" och sluta där, så för de kortare grejerna försöker jag hålla den säker. Jag satte en länk till keepass och makemeapassword.org i mitt användargränssnitt, och de klagade över att länka till externa webbplatser :(
Komplexiteten kommer inte att leda till bättre säkerhet, bara frustrerade användare skapar uppenbara lösenord som minimalt passerar reglerna. siffrorna kommer alltid att vara 123 och symbolerna! @ #. Istället för att länka till en extern webbplats lägger du också till en ruta i användargränssnittet med förslag på hur du skapar starka lösenord och hänvisar till diceware- och lösenordsgeneratorsidor utan att använda en URL.
Jag föreslår också att du blockerar de 1000 eller så vanligaste lösenorden.
Den nedre delen av min OP är i huvudsak användargränssnittet från lösenordsskärmen. Det har reglerna och förslagen. Vad är det snabbaste / smärtsammaste sättet att utbilda människor som är vana vid Tr0ubad0r & 3 att korrigera häftbatteriets häftklammer tho?
Det finns inget snabbt eller smärtfritt sätt. Användarna vill inte bli utbildade, de flesta är ganska utbildade redan i saker som spelar roll för dem. De vill logga in och komma till jobbet.
ditt ursprungliga svar är sant, men både som individ, som anställd i ett konsultföretag och som byrån som äger webbplatsen är CYA / ansvar verkliga problem. Som du med rätta påpekar kan man aldrig plugga in alla hål, man kan bara flytta den mest utsatta vektorn till någon annanstans. Men att flytta den mest utsatta vektorn till en plats utanför vår kontroll sparar oss fortfarande från att bli stämd. Som anges i några av de andra kommentarerna använder vi 2factor för de mest känsliga uppgifterna, men det betyder inte att jag vill lämna dörrarna öppna för användare som inte tvingas använda TFA
Adam Katz
2015-07-10 23:40:08 UTC
view on stackexchange narkive permalink

Jag skulle säga att 8 är för låg, till och med 9 är en storleksordning säkrare (bokstavligen) för något liknande. Du vill verkligen överväga tvåfaktorautentisering med tanke på vad detta innehåll är.

Tänk också på hur människor närmar sig mandat som stora bokstäver (nästan alltid det första tecknet) och siffror (nästan alltid det sista tecknet). Dessa försvagar faktiskt din entropi. Jag skulle till och med föreslå att du använder ord, så länge du kan göra det klart att de inte ska vara relaterade och absolut inte ett citat av något slag.

Den säkraste men minnesvärda lösenfrasen du kan ha är en samling ord, varav en är lösenord. En angripare måste veta var man ska lägga den koden eller anta att det riktigt långa lösenordet kan ha koden var som helst.

Ett trick som banker använder för att undvika nyckelloggare är att ha bilder som du kan klicka på. Vissa, som ING Direct (innan CapitalOne köpte dem och ändrade metoden), använde ett stift-system; ditt lösenord var en fyrsiffrig stift som bara kunde matas in med en mus eller genom att trycka på slumpmässiga tangenter som är associerade med bilderna, och om en beständig cookie saknades måste du också svara på en säkerhetsfråga. Detta fungerar nästan lika bra som tvåfaktorautentisering.

Båda är föremål för kapning av sessioner. För att hantera det kan du försöka använda ett webbläsarfingeravtryck utöver det för en cookie. En något anständig tillnärmning utan att gå in i besväret med något som Panopticlick skulle vara att bara använda IP-adressen, User Agent-strängen, en SSL-cookie och en tidsgräns på tio minuter.

Att kräva lösenordsrotation över tid kan hjälpa till att bekämpa nätfiske och nyckelloggare, men de skadar åter lösenordskomplexiteten. Dessa hjälper bara i det avseendet om angriparen har en lång fördröjning innan han försöker utföra åtkomsten. Det är här extra säkerhetsfrågor för okända datorer kan hjälpa till.

Du kan också överväga klient-SSL-certifikat, även om de inte själva kanske är lösenordsskyddade (och du kan inte genomdriva det), vilket innebär att en förlorad dator är ett stort problem.

Jag rekommenderar flera lager . En säker lösenfras är ett lager, det andra lagret (behövs bara om webbläsarens fingeravtryck inte matchar) är antingen externt (två faktorer), en slumpmässigt placerad känd bildsekvens att klicka eller ett klient-SSL-certifikat (som skulle lindra behovet för fingeravtryck).

För många användare att använda klientcertifikat. 2-faktor krävs för de säkraste uppgifterna, men det är en relativt liten procent av de totala användarna. Om de använder ett lösenord för diceware-stil ignoreras alla regler. Jag skulle förmodligen kunna göra miniumum 9 utan problem, men det tar inte riktigt upp kärnan i frågan: Är det inte tillåtet med leetspeak-ordboksord som XKCD: s för allvarliga?
(mitt svar har flyttats till ett annat svar)
Vincent
2015-07-13 22:57:00 UTC
view on stackexchange narkive permalink

Varför hanterar du inte bara leetspeak-ord som vanliga? I dina exempel säger du att du accepterar GoodPassword4! , eftersom det har mer än ett ord (och symboler och siffror). Så den implicita regeln som du verkar tillämpa här är:

"Om du måste använda ordboksord, använd mer än bara ett (och även lite symbol och nummer)".

Jag antar att det är en regel som faktiskt är lätt att förstå och acceptera ur användarens synvinkel. Men än att det skulle vara ganska irriterande att få G00dP4ssword4! eller B4DTr0ub4dor1! avvisad enligt den regeln.

Så, nej, du borde inte tillåta "leetspeak" ordboksord i sig, men behandla dem som vanliga ordboksord.

Jag var kanske oklar i min formulering. Min avsikt var i huvudsak som du menar det. Det var inte riktigt tillåtet leetspeak, utan snarare i regeln som inte tillåter enstaka ordord, om jag skulle upptäcka leetspeak. Om du använder en lösenfras med flera ord och råkar utfärda några av orden, det är bra.
Loren Pechtel
2015-07-12 10:31:05 UTC
view on stackexchange narkive permalink

Vad sägs om en mellanväg?

De regler du anger säger i grunden antingen långa eller hårda utan mellanliggande mark.

Vad sägs om ett graderat system: Tilldela en viss komplexitet per karaktär och en viss multiplikator för de olika hårda funktionerna. Om antalet är tillräckligt högt accepterar du lösenordet. Således om du accepterar i princip något på 16 tecken skulle du acceptera 15 med en hård funktion.

Jag har föreslagit något liknande också för kunden. Stanfords politik är mycket lika. https://itservices.stanford.edu/service/accounts/passwords/quickguideMen detta svarar inte på frågan om de korta "komplexa" lösenorden, om ord fortfarande skulle tillåtas. det andra problemet med denna lösning är den delen av problemet är komplexitet / kommunikation. medan detta möjliggör graderad komplexitet är det ännu mer komplicerat att förklara för användaren (något som min kund klagade på även för mina "2-nivå" -komplexitetsregler. :)
Jag säger att ett leet-speak "ord" i grunden är ordbok + en viss komplexitet och bör göras i enlighet därmed. Den Stanford-policyn är en förenklad version av vad jag säger.
basic6
2015-07-13 19:29:00 UTC
view on stackexchange narkive permalink

Be din mormor (eller någon mormor inom gångavstånd) att definiera ett lösenord. Hon måste följa de strikta lösenordsreglerna (som du har skrivit ut för henne), men hon får inte prata med dig. Och det borde inte ta "för lång tid".

Berätta också för henne att hon kommer att behöva lösenordet de följande dagarna / veckorna (för att använda din webbtjänst), så att hon måste se till att kom ihåg det (förmodligen genom att skriva ner det).

(Kom ihåg att när du ser din mormor räcka efter ett papper, kan du be henne att inte skriva ner det och klistra det i kylen - du kommer inte att kunna berätta det för dina riktiga användare. Om du inte skriver en lista med regler på registreringsformuläret, som "skriv inte ditt lösenord i kylen" och "nej, inte heller på din bildskärm".)

Hur gick det nu? Om svaret är "inte så bra" (gav hon upp efter 5 minuter och frågade om du redan har ätit eftersom det också räknas som "inte så bra"), kan det vara en stark indikation på att dina lösenordsregler är för starka .

Jag instämmer i allmänhet med svaret som fick de flesta uppröstningarna och med flera av kommentarerna:

En grundregel, som är minsta längd, som 7 eller 12 eller 15 eller vad som helst. Ja, det gör att människor kan använda "aaaaaa" som lösenord men åtminstone kommer det inte att skrivas i klartext där andra kommer att se det för att de kommer ihåg det. Alla dessa regler gör förmodligen ingenting annat än att skada (ja, mestadels). Oavsett hur många miljoner ordboksord du utesluter, kommer någon att använda ett ord du inte har tänkt på (ja, inte "du" tekniskt, du kommer antagligen bara att få den listan någonstans). Och av någon anledning kommer en mänsklig angripare att lyckas eftersom rätt lösenord "Mugwump" eller "Smellfungus" är det första han försökte.

När det gäller de "du måste använda tre versaler, gemener, siffror och speciella tecken", kommer det bara att få många att skriva ABCabc012! @ # på ett papper eftersom de kan kommer inte ihåg det. (Om det inte finns något kylskåp i området, en bekväm vägg gör det också, se den här artikeln.)

Och för att vara rättvis är människor som förstår hur viktigt det är människor de kommer inte heller att kunna komma ihåg dessa (konstgjorda) lösenord och de kommer att bli irriterade. De flesta vanliga datoranvändare ("skriv ut Internet" -typ av användare) kommer att bli irriterade ändå (även det enda faktumet att ett lösenord är nödvändigt är "irriterande" för många, trots allt borde datorer kunna identifiera användaren magiskt 2015 ).

Utan dessa komplicerade regler har du åtminstone en chans att många faktiskt kommer ihåg sitt lösenord.

Men som vissa tjänster gör, ökar säkerheten om något fishy upptäcks kan vara en idé. Du blockerar redan autentisering helt efter några misslyckade försök, vilket är bra. Du kanske tänker på steg däremellan, till exempel efter ett eller två misslyckade försök kan du be om en captcha. Dessutom kan en specifik klient som fortsätter att försöka logga in (även om inloggningen redan är blockerad) automatiskt blockeras under en dag (på en lägre nivå, kanske till och med av en brandvägg).

berto
2015-07-14 21:08:50 UTC
view on stackexchange narkive permalink

Jag gillar inte lösenordsregler som har många, "det här, men inte det, en av dessa, men inte för många av dessa" regler.

Är jag för svår?

Jag tror det, här är varför. Jag använder 1Password. Det genererar slumpmässiga lösenord för mig. De ser ut så här:

  luaD / fcr61nt7A% NxBCRNeTtVL7uuAqmL5_j&cm1qwtlOjJsQor) 9nM1% zl2  

Vissa webbplatser har avvisat sådana lösenord. Varför? Godtyckliga regler.

Innan detta hade jag inte övervägt ett system som är det motsatta: snarare än att be mig att skapa ett lösenord, tilldelar systemet mig ett som uppfyller dess regler. Lösenordet hamnar alltid på papper eller klistras in i någon fil av personen, men det är unikt och inte i en ordlista.

IAM inom Amazon Web Services gör ganska mycket detta, så denna idé har till och med några tidigare konst där ute.

Se mitt svar i chatten.
Detta verkar inte ta itu med frågan.
@NeilSmithline Jag besvarar OP: s fråga om begränsningen är för sträng. Jag erbjuder dock en hel del ytterligare förslag / åsikter.
Ja. Jag antar att det svarar i början.
Atsby
2015-07-15 11:55:34 UTC
view on stackexchange narkive permalink

Här är en brute-force-lösning på problemet med brute force-lösenordssprickning: ägna några datorer till att faktiskt försöka knäcka lösenord med samma (få) sprickverktyg som angriparna använder. När ett lösenord har knäckt framgångsrikt, skicka ett mejl artigt och informera användaren om att deras lösenord upptäcktes för svagt och kräver att användaren byter lösenord.

Du kan försöka "bryta" det okrypterade lösenordet kanske;några sekunder av det borde motsvara en hälsosam tid att försöka knäcka en vettig lösenordshash.Inte säker på om det är lättare att förgenerera (tio / hundratals?) Miljoner lösenord och leta upp eller försöka återskapa dem dynamiskt.
user15249
2015-07-14 19:04:37 UTC
view on stackexchange narkive permalink

Återigen är jag ingen expert på informationssäkerhet på något sätt, men kanske kan du bara uppmuntra dina användare att använda LastPass eller Keeper för att generera och lagra stora (riktigt) slumpmässiga lösenord för dem och lagra dem på ett säkert sätt valv? Och att använda tvåfaktorautentisering också.

Jag inser att LastPass nyligen hackades, men användare som valde långa, säkra LastPass-lösenord bör fortfarande vara säkra från att öppna valvet. Användare som valde ett svagt lösenord som huvudlösenord kan ändå inte få hjälp.

Naturligtvis är det inte den bästa planen, men det borde åtminstone sätta dina användare på rätt spår. Det finns mycket inkonsekvens i säkerhet mellan webbplatser. Jag förstår det (till exempel tillåter min bank en maximal lösenordslängd på 16 tecken, men mitt reddit-lösenord är 100 tecken). Men 16 slumpmässiga tecken är fortfarande bättre än att behöva skriva ner lösenordet eftersom du inte kommer ihåg det.

Vi uppmuntrar sådana, men det är inte något du självklart kan genomdriva. Men det löser bara dem att komma ihåg lösenordet, tar inte upp den komplexitet / regler som lösenordet har.


Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...