Jeg snublet rundt og skjedde på dette essayet av Bruce Schneier og hevdet at XKCD-passordskjema var effektivt dødt.
Moderne passordsprekker kombinerer forskjellige ord fra ordbøkene deres : […]
Dette er grunnen til at den ofte siterte XKCD-ordningen for generering av passord – strenger sammen enkeltord som » correcthorsebatterystaple » – er ikke lenger gode råd. Passordkrakkerne holder på med dette trikset.
Angriperen vil føre all personlig informasjon han har tilgang til om passordskaperen, inn i passordkrakkerne. En god passordknekker vil teste navn og adresser fra adresseboken, meningsfulle datoer og all annen personlig informasjon den har. […] hvis programmet ditt noen gang lagret det i minnet, vil denne prosessen ta tak i det.
Hans påstand ser ut til å være det fordi det er kjent at folk kan konstruere passordene sine på en slik måte at det gjør det mottakelig å angripe, men det virker som styrken bare ligger i eksponenters makt. Jeg antar at han henviser til at folk ikke velger ordene virkelig tilfeldig, noe som kanskje ikke er «t helt uheldig, ettersom jeg» har rullert et par ganger for å få noe som ikke er alle adverb og adjektiv. Imidlertid antar jeg at å senke entropien med en faktor på 2-10 ikke er veldig viktig (hvis ordlisten er doblet til 4000, ikke så vanskelig, tapet er mer enn gjenopprettet).
Det andre spørsmålet om » hvis programmet ditt noen gang lagret det i minnet » er litt foruroligende skjønt … er ikke alle passordene lagret i minnet på en eller annen gang? Det virker litt bredt; hva refererer han egentlig til til?
Kommentarer
Svar
Den hellige krigen
Jeg tror du vil oppdage at den riktige måten å generere passord kan starte en hellig krig der hver gruppe tror den andre lager en veldig enkel matematisk feil eller mangler poenget. Hvis du får 10 datasikkerhetsfagfolk i et rom og spør dem hvordan du kan komme med gode passord, får du 11 forskjellige svar.
Misforståelsen
En av de mange grunnene til at det er ingen konsekvente råd om passord er alt kommer til et spørsmål om trusselmodellering . Hva prøver du egentlig å forsvare deg mot?
For eksempel: prøver du å beskytte deg mot en angriper som spesifikt retter seg mot deg og kjenner systemet ditt for å generere passord? Eller er du bare en av millioner av brukere i en eller annen lekkert database? Forsvarer du deg mot GPU-basert passordsprekking eller bare en svak webserver? Er du på en vert infisert med skadelig programvare [1]?
Jeg tror du burde anta at angriperen vet nøyaktig hvilken metode du genererer passord og bare målretter mot deg. [2] Xkcd-tegneserien antar i begge eksemplene at alle detaljene i generasjonen er kjent.
Matematikken
Matematikken i xkcd-tegneserien er riktig, og den kommer ikke til å endre seg .
For passord må jeg skrive og huske at jeg bruker et python-skript som genererer xkcd-passord som er virkelig tilfeldige. ordbok med 2 ^ 11 (2048) vanlige, enkle å stave, engelske ord. Jeg kunne gi full kildekode og en kopi av ordlisten min til en angriper, det vil fortsatt være 2 ^ 44 mulige passord.
Som tegneserien sier:
1000 gjetninger / sek Plausibelt angrep på en svak ekstern nettjeneste. Ja, å knekke en stjålet hasj er raskere , men det er ikke hva den gjennomsnittlige brukeren bør bekymre seg for.
Det gir en fin balanse mellom lett å huske og vanskelig å knekke.
Hva om vi prøvde mer kraft ?
Sikker på at 2 ^ 44 er ok, men GPU-sprekker er raskt, og det vil bare bli raskere. Hashcat kan knekke en svak hash [3] av den størrelsen på flere dager, ikke år. Dessuten har jeg hundrevis av passord å huske. Selv xkcd-stil blir det vanskelig etter noen få.
Det er her passordadministratorer kommer inn, jeg liker KeePass men det er mange andre som i utgangspunktet er de samme. Da kan du generere bare en lengre xkcd pass-setning som du kan huske (si 10 ord). Da lager du et unikt 128-biters virkelig tilfeldig passord for hver konto (hex eller base 64 er bra). 128-bits kommer til å være sterke nok til lang tid. Hvis du vil være paranoid, gå større, er det ikke noe ekstra arbeid å generere 256-biters hex-passord.
[1] Det er her minnet ting kommer inn, hvis du er på en kompromittert vert du har mistet. Det spiller ingen rolle om du skriver det eller bruker et program som KeePass for å kopiere og lime det inn hvis en angriper kan nøkkellogge / lese minne.
[2] Snarere enn det svakere (men mer sannsynlig) antagelse om at angriperen nettopp har truffet en ordbok kalt » Top Passw0rdz 4realz 111! «.
[3] Visst vi burde alle bruke PBKDF2 osv … men mange nettsteder er fremdeles på SHA1. (Og de er de gode)
Kommentarer
- @ Dick99999 moderne GPU-er kan ha 6 GB minne på et enkelt kort (selv om det tar to spor) og kan enkelt lagre en ordbok på noen få tusen ord.
- @NateKerkhofs Dette er skummelt og fantastisk på samme tid. Min første (programmerbare) maskin hadde 1mHz og 64kb ram, og du snakker om 6GB videominne …
- » 128-biters virkelig tilfeldig passord … » Virkelig tilfeldig? Er det ikke ‘ t det fortsatt er pseudorandom?
- Dette burde være akseptert svar hvis det ikke er noen annen grunn enn den hellige krig-delen.
- @Doorknob Når du velger meningsfulle kombinasjoner forsvinner det meste av entropien. Jeg vant ‘ t å prøve å estimere hvor mange setninger du kan velge, men dette er sannsynligvis nærmere en av en milliard enn en av 2 ^ 44.
Svar
Schneier skriver dette:
Dette er grunnen til den ofte siterte XKCD-ordningen for å generere passord – streng sammen enkeltord som «correcthorsebatterystaple» – er ikke lenger et godt råd. Passordkrakkerne holder på med dette trikset.
men nøkkelen til å forstå hva han egentlig er ute etter er litt lenger i essayet:
Det er fremdeles en ordning som fungerer. Tilbake i 2008 beskrev jeg «Schneier-ordningen «
slik at» s det. Ole «Bruce vil hevde at hans ordningen er den eneste, den beste, vinneren, den ultimate ordningen. Derfor trenger han å si nedsettende ting om» konkurrentene «, uansett om slike påstander er vitenskapelig fornuftige eller ikke.
I dette tilfellet har det alltid vært antatt at passordgenereringsmetoden er kjent for angriperen. Det er hele poenget med entropiberegninger ; se analysen . At angripere er «på dette trikset» endrer ingenting i det hele tatt (når en angriper kjenner til generering av passord, beskriver entropi-beregningen nøyaktig passordstyrken; når angriperen er inkompetent og kjenner ikke metoden for generering av passord, passordstyrken er bare høyere, med et beløp som er nesten umulig å tallfeste).
Quip om «passord i minnet» er bare mer usammenhengende vandringer. Passord går nødvendigvis til RAM på et tidspunkt, enten du skriver dem eller kopierer og limer dem inn fra et passordsikkert eller noe lignende.
Jeg antar at Bruce var full.
Oppdater : Schneier ble spesifikt bedt om å kommentere sin fordømmelse av passordfrasen i en Reddit AMA som fant sted 2. august 2016. Han fortsatte å argumentere for sitt passordskapingssystem som et overlegen alternativ til tilfeldige ordpassord. Schneier sa at ordningen hans «gir deg mer entropi per minneverdig karakter enn andre metoder», noe som er sant når det sammenlignes med tegn som lager ord. Men dette er også irrelevant når et system er avhengig av å huske ord i stedet for tegn, og du har lov til å kombinere nok ord for å generere tilstrekkelig «entropi» for passordfrasen som helhet.
Kommentarer
- Ja, jeg syntes kommentarene hans var en merkelig avvik fra hans typiske gode råd.Hans anbefalte opplegg er sannsynligvis ikke ‘ t dårlig, men har ikke ‘ ikke blitt utsatt for mye faktisk testing. Passfrase-tilnærmingen er ganske enkel å teste i sammenligning, og du ‘ tror at det vil appellere til kryptografen i ham. Kanskje han bare skummet over nyhetene om å knekke naturlige språkpassord og ikke ‘ ikke kunne skille mellom disse og tilfeldige ordpassord.
- Ditt argument om at han trenger denigrere konkurransen mislykkes, siden han umiddelbart etter å ha beskrevet ordningen hans, sier » Enda bedre er å bruke tilfeldige, minneverdige alfanumeriske passord (med symboler, hvis nettstedet tillater det), og en passordbehandling som Password Safe for å opprette og lagre dem «.
- @wfaulk Password Safe er Bruce Schneier ‘ s skapelse, så argumentasjonen hans om konkurransen står fortsatt. Mislykket utsagn mislykkes 😉
- @AviD: Jeg visste det ikke helt. 😳
- Det du ‘ mangler, og tilsynelatende også Schneier, er at det ikke er noe » triks » til » ta tak i «. Sikkerheten til Diceware antar allerede at angriperen vet om ordningen , faktisk antar den at ordboken i seg selv er kjent. Det betyr ikke ‘ om angriperen har nøyaktig ordbok og antall ord: det er rett og slett for mange kombinasjoner å gå gjennom for å gjøre noen form for vellykket angrep før solen eksploderer. / li>
Svar
[Opplysning: Jeg jobber for AgileBits, skaperne av 1Password]
En av grunnene til at jeg gikk inn for et XKCD-lignende opplegg (før det ble kalt det) i Mot bedre hovedpassord tilbake i 2011, er nettopp fordi styrken gjør det ikke stole på at angriperen vet hvilket skjema du brukte. Hvis jeg kan sitere meg selv
Det som er bra med Diceware er at vi vet nøyaktig hvor sikkert det er, selv om vi antar at angriperen kjenner systemet som brukes. Sikkerheten kommer fra den ekte tilfeldigheten med å kaste terningen. Å bruke fire eller fem ord bør være tilstrekkelig mot de sannsynlige angrepene de neste årene gitt observert hastighet for passordkrakkere [mot 1Password Master Password]
Det XKCD-tegneserien ikke kommuniserer effektivt, er at valg av ord må være (jevnt) tilfeldig . Hvis du ber mennesker om å velge ord tilfeldig, får du en tung skjevhet for konkrete substantiver. Slike skjevheter kan og vil bli utnyttet.
Hvor mye styrke du vil ha
I en perfekt verden ønsker vi å styrke passordet vårt for å være like sterke som nøklene vi beskytter med den. Si 128 biter. Men til tross for disse teknikkene, kommer ikke menneskene til å oppnå det. Så la oss se realistisk på angrep og hva vi kan få våre små skamfulle hjerner til å gjøre.
Med den originale Diceware-ordlisten med 7776 oppføringer, du får omtrent 12,9 bits per ord du bruker. Så hvis du vil ha minst 64 bits for passordet ditt, vil fem ord gjøre det.
Gjette passord er tregere enn å gjette nøkler
I denne delen kommer jeg til en veldig grov rygg av konvolutten anslår at det for en konstant sum av dollar er 2 ^ 13 ganger tregere å teste et passord enn det er å teste en AES-nøkkel.
Merk at testing av passord er mye tregere enn å teste et nøkkel. Hvis riktig type passordhashing-ordninger brukes, er det mulig å holde de fleste angripere nede på under 100000 gjetninger per sekund. Så selv om vi kanskje aldri vil bruke 50-biters nøkler, kan det fortsatt være fornuftig å bruke 50-biters passord.
Hvis vi ikke vil begrense oss til å kaste terninger som i Arnold Reinhold «s original Diceware-ordning fra 1995, så kan vi bruke en lengre ordliste. Den sterke passordgeneratoren i 1Password for Windows bruker en liste med 17679 engelske ord mellom 4 og 8 bokstaver inkludert (fjernet fra tabuord og ord som involverer en apostrof eller bindestreker). Dette gir omtrent 14 biter per ord. Så fire av disse gir deg 56 biter, fem gir deg 70.
Igjen, du trenger å ta hensyn til sprekkhastigheter. Deep Crack tilbake i 1997 var i stand til å kjøre 92 milliarder DES-tester per sekund. Forutsatt at en spesialutviklet PC kan utføre en million gjetninger per sekund mot et rimelig godt hashpasset passord, kan gjøre 1 million gjetninger per sekund, så er passord i dag omtrent 16 biter vanskeligere å knekke enn DES-tastene var i 1997.
Så la oss se på dette Stack Exchange-estimatet for en dual core 3,8 GHz prosessor: 670 millioner nøkler per sekund.Hvis vi skulle anta $ 5000 i maskinvare, kan vi enkelt overstige 10 milliarder nøkler per sekund. Så til en lignende maskinvarekostnad er nøkkelknusing fortsatt mer enn 2 ^ 13 ganger raskere enn passordknusing.
Revidert mål for styrke for passord
Arbeider med mitt estimat at det er 2 ^ 13 ganger dyrere å teste et godt hashpasset passord enn det er å teste en AES-nøkkel, bør vi vurdere et rimelig godt hashpasset passord som 13 bits sterkere enn dets faktiske entropi med hensyn til sprekker. Hvis vi ønsker å oppnå 90 bits «effektiv styrke», bør 77 bit passordstyrke gjøre det. Det oppnås med et seks ord Diceware-passord (77,5-bits) fra den opprinnelige listen og 84,6 bits med seks ord hentet fra en liste med 17679 ord.
Jeg forventer ikke at folk flest bruker passord som Jeg forventer at folk vil bruke ting som er 4 eller 5 ord lange. men hvis du er oppriktig bekymret for at NSA skal passe på passordene dine, bør seks ord være tilstrekkelig forutsatt at du bruker et ordentlig passordhashingsystem.
Bare veldig grove estimater
Jeg brukte ikke mye tid på å undersøke kostnader og referanser. Det er mange ting i estimatene mine å snakke med. Jeg prøvde å være konservativ (pessimistisk med hensyn til ordningen jeg anbefaler). Jeg har også vært vag om «velhashede passord». Igjen, jeg er veldig konservativ med hensyn til passordhashing i 1Password. (For vårt nye dataformat har angripere blitt holdt under 20.000 gjetninger per sekund, og for vårt eldre dataformat har de nådd 300.000 gjetninger per sekund for multi -GPU-maskiner. I mine estimater her har jeg plukket 1 million gjetninger per sekund for et «rimelig godt hashpasset passord».)
Noen flere historiske notater
Det samlede ideen til «XKCD-lignende» passord går minst like langt tilbake som S / Key engangspassord fra tidlig på 1980-tallet. Disse brukte en liste med 2048 ett gjennom fire bokstavsord. S-nøkkelpassordet på seks ord fikk deg 66 biter. Jeg vet ikke om ideen om å bruke tilfeldig valgte ord fra en liste for en passordfrase forut for S / nøkkel.
I 1995 , Arnold Reinhold foreslo Diceware . Jeg vet ikke om han var klar over S / Key på det tidspunktet. Diceware ble foreslått i sammenheng med å utvikle pass-setninger for PGP. Det var også før de fleste datamaskiner hadde kryptografisk passende tilfeldige tallgeneratorer. Så det innebærer faktisk å kaste terninger. (Selv om jeg stoler på CSPRNG-ene på maskinene jeg bruker, liker jeg fortsatt å «rulle opp et nytt passord»).
I juni 2011 gjenopplivet jeg interessen for Diceware i Mot bedre masterpassord med noen ekstra modifikasjoner. Dette resulterte i berømmelsen på 15 minutter. Etter at XKCD-tegneserien kom ut, produserte jeg en geek-utgave som gikk gjennom noe av matematikken.
I juli 2011 hadde Randall Monroe plukket opp Diceware-lignende ordninger og publisert sine nå berømte tegneserie . Da jeg ikke er oppfinneren av ideen, har jeg ikke noe imot å bli satt opp av tegneserien. Som jeg sa i oppfølgingsartikkelen
Hva tok meg nesten 2000 ord å si i ikke-tekniske termer, Randall Monroe var i stand til å oppsummere i en tegneserie. Dette viser bare kraften i matematikk …
Men det er en ting om hvordan tegneserien har blitt tolket som bekymrer meg. Det er klart for meg og folk som allerede har forstått ordningen at ordene må velges gjennom en pålitelig enhetlig tilfeldig prosess. Å velge ord «tilfeldig» ut av hodet ditt er ikke en pålitelig enhetlig prosess .
Kommentarer
- Flott at du nevner Diceware i et historisk perspektiv og samtidig erkjenner den flotte markedsføringsjobben XKCD gjorde for passfraser. Om din modifiserte ordning, er det noen steder forklart hvorfor ord på 3 eller 2 bokstaver ikke er inkludert i ordlistene? se blog.agilebits.com/2013/04/16/… . Er det fordi ordene som ‘ av ‘ og ‘ linje ‘ kan også bli angrepet av 1 ord offline? Se kommentarene mine til innlegget til Raestloz. Den originale Diceware-listen inneholder mange ord på 1, 2 og 3 bokstaver.
- Utmerket spørsmål! Min (muligens feilaktige) tankegang den gangen var at jeg også ønsket at passordfraser skulle være minst mulig. Jeg ønsket å forsikre meg om at hvis noen brukte en passordfrase på tre ord, ville den overstige minimum 12 tegn. Jeg bemerker at S / Key også tillater ord på 1, 2 og 3 bokstaver.
- Jeg sjekket raskt ordlistene som SimThrow-passordfrasegeneratoren og testeren bruker.Den opprinnelige Diceware-listen har minst 1400 av disse kollisjonene som ‘ hvilken som helst ‘ ‘ hvordan ‘ og ‘ uansett ‘. Det kan forringe en setning på 4 ord til 3 ord, hvis ingen skilletegn brukes. Det ‘ er et høyt kollisjonsnummer fordi listen inneholder alle bokstaver og to bokstavskombinasjoner. Så det ser ut til at du tok det riktige valget å ikke inkludere ord på 2 bokstaver. Diceware anbefaler en minimum setningslengde på 17. Min generator estimerer både ord- og tegnbaserte gjenopprettingstider for å takle nettsteder som bare tillater korte passord (20).
- Jeg sjekket også følgende ordlister. S / Key : > 93 kollisjoner, utvidede dicelister USA : > 190 og min nederlandske liste: > 750. En måte å håndtere dette på er å anbefale å inkludere et skilletegn mellom ordene i en setning.
- Vokt dere, rullende terning er ikke helt tilfeldig. forbes.com/sites/davidewalt/2012/09/06/… Og insidescience.org/blog/2012/09/12/…
Svar
XKCD-passordskjemaet er like bra som det noen gang var. Sikkerheten kommer ikke av at det er ukjent, men fra at det er en god måte å generere minneverdige passord fra et stort søkeområde. Hvis du velger ordene du vil bruke i stedet for å generere dem tilfeldig, er denne fordelen tapt – mennesker er ikke god til å være tilfeldig. fei opp alt tekstlignende fra RAM og harddisken for å bruke i et rettet angrep på kontoene dine.
Kommentarer
- +1 Jeg don ‘ t tror XKCD-teknikken er død – det ‘ er ikke ‘ et triks ‘ at kjeks ‘ er på ‘. Du kan kjenne teknikken ut og inn, men det gjør ikke ‘ t gjør det noe mer sprekkbart hvis det ‘ er tilfeldig nok.
- @PiTheNumber hvis du ‘ bruker ikke nok ord eller en liten ordbok, så ‘ t bruker i det hele tatt xkcd-teknikken; men nei, selv i xkcd-tegneserien er det ‘ klart at du IKKE mister fordelen din hvis du forteller alle » hei, jeg ‘ m bruker correcthorsebatterystaple stil passord » – mengden veriasjoner / entropi bits er høyere enn de fleste vanlige passord, selv om metoden er kjent.
- Forutsatt at du ikke ‘ t også bruker XKCD ‘ s tilfeldige tallgenerator (jeg vant ‘ t link, alle vet det).
- @PiTheNumber konseptet med ‘ 11 bokstaver virkelig tilfeldig passord ‘ er irrelevant, da det ikke er et rimelig alternativ til passord. Passord er et alternativ til minneverdige passord, og de er akkurat så svake som xkcd beskriver. Visst, hvis du bruker et passord som er lagret i en passordbehandling, så passer helt tilfeldige passord, men i så fall er det ‘ egentlig ikke ‘ passordet ditt ‘ som i noe som du vil bruke eller se, men heller en ‘ autogenerert tilfeldig nøkkel token ‘ lik ssh-nøkler.
- @PiTheNumber Ordene er ikke menneskelige, de velges tilfeldig. Ordboken som ordene er valgt fra, er selv valgt av mennesker, men det er en annen sak. Det er ikke noe «mest sannsynlig» – matematikken i xkcd-tegneserien er riktig.
Svar
Som andre har sagt, angrepet Bruce Schneier beskriver er effektivt når brukeren velger flere ord selv, ikke bruker et verktøy. Schneier skriver vanligvis til et publikum generelt, noe som neppe vil forstå forskjellen mellom selvvalgte «tilfeldige» ord og programvalgte tilfeldige ord.
Jeg legger til at selv om du bruker et skript eller annet verktøy for å tilfeldig velge ord fra en ordbok, du må bruke den første sekvensen det gir deg . Hvis du bestemmer deg, » Jeg liker ikke den, og kjører den igjen til du liker den, den er ikke lenger en tilfeldig passordfrase den er menneskelig valgt.
Også selv om du bruker et skript, og selv om du ikke skader tilfeldigheten ved å velge din favoritt av flere sekvenser, er det fortsatt muligheten for at en angriper kan utnytte PRNG (pseudo-tilfeldig Hvis angriperen kan lære når du opprettet passordet, og hva PRNG du brukte, og kanskje annen informasjon om PRNG-en din, for eksempel nettverkstrafikk som ble produsert ved hjelp av PRNG-en din på samme tid, kan det redusere den effektive entropien til din tilfeldige passfrase.
Kanskje litt esoterisk, men hvis PRNG-en din kan utnyttes, vil ikke 2 ^ 44-figuren bli fullstendig realisert. (Og hvis du antar at «ingen vil prøve å utnytte min PRNG», hvorfor bryr du deg om å bruke en virkelig sikker passordfrase?)
Kommentarer
- +1 Interessant vinkel. Å utnytte PRNG er åpenbart i sammenheng med kryptering nøkler – det er ‘ interessant at det ser ut til å være praktisk talt en ettertanke her. Jeg antar at typiske passord er så dårlige at PRNG-er føles trygge ved sammenligning. Antagelig, hvis en angriper kan stjele en liste over hashede passord, ville det være trivielt å finne pwdChangedTime eller tilsvarende? En annen grunn til å avslutte bruken av passord aldring?
- Rask bak på konvolutten. Hvis du oppdaterer passordet i løpet av et minutt etter at det er generert, og den eneste entropikilden i PRNG er systemtiden, kan du se på å kutte ned ting så langt som 2 ^ 35 for nanosekundoppløsning. Høres rimelig ut?
- Anta at jeg avviser et uttrykk fordi jeg ikke ‘ ikke liker et ord og gjør det 1000 ganger. Da har jeg redusert ordboken med 1000 ord. Er valget fra den reduserte ordboken fortsatt tilfeldig? Hvis det fortsatt er, så gir en setning på 4 ord fra en så redusert 7776 ord Diceware-ordbok fremdeles (7776-1000) ^ 4 = 2.1E15 / 50.9 muligheter / entropibiter, ned fra 3.7E15 / 51,7 muligheter / entropibiter for hele ordbok. Jeg er ikke i stand til å bedømme innflytelsen fra den tilfeldige generatoren. Jeg bruker den fra www.random.org
- @ Dick99999 Jeg tror ikke ‘ det ‘ om antall tilbudte valg du ekskluderer når du velger ett passord. Det ‘ handler om mønsteret av hvilke setninger du ville ekskludert hvis de blir presentert for deg. En angriper kan gjette at brukeren foretrekker kortere ord, ord som er lettere å skrive på et QWERTY-tastatur og ord uten store bokstaver eller tegnsetting. denne strategien kan i stor grad krympe plassen for passfraser å utforske. I utgangspunktet er det ‘ det samme problemet som bare å gjette favorittidrettslag, fødselsdager og barn ‘ navn.
- @wberry Jeg tror ikke ‘ t tror matematikken ordner seg med det. Anta at du avviser 1000 passord fra før du finner en du liker. Så er det ‘ et rimelig estimat at du bare liker 1/1000 av den mulige passordplassen. Anta nå at en angriper er i stand til å gjette helt hvilken 1/1000 av plassen som er din favoritt – det reduserer antall muligheter fra 2 ^ 44 til 2 ^ 34, noe som er betydelig, men ikke så mye at et ekstra ord kan ‘ t tapp ut tapet. I tillegg, hvis du begrenser avvisningene dine, er dette ikke nødvendig.
Svar
Det kommer an på. En ting du trenger å forstå er at dette ikke er sikkerhet for uklarhet: entropiverdiene som brukes i tegneserien, antar at angriperen allerede vet at du bruker denne metoden . Hvis angriperen ikke vet hvordan du genererer passfrasen, blir entropien går massivt opp.
Trikset til XKCD-metoden er at du faktisk må bruke en tilfeldig tallgenerator og en god ordliste: plukk aldri ordene deg selv, ikke engang «tilfeldig» (i sitater fordi mennesker faktisk er veldig dårlige til å velge ting tilfeldig, og det er derfor du ikke burde gjøre det). Diceware har verktøy som hjelper deg med å gjøre dette, og tar til og med det tilfeldige elementet ut av datamaskinens rekkevidde ved å bruke vanlige terninger.
Mot et bredt angrep – den slags ting der en angriper fikk en liste over passord fra et nettsted og ikke vet noe om passordene som er på listen – dette er like sterkt som det noen gang var. Akkurat som du sier, kommer styrken fra kraften til eksponenter (og en god ordliste).
Schneiers angrep kan fungere, men bare i en helt annen sammenheng. Angrepet hans antar at du blir spesifikt målrettet av en angriper som allerede vet mye om deg .Dette virker kanskje ikke spesielt bekymringsfullt i begynnelsen, fordi den stereotypiske målrettede angriperen er en etterretningsagent bak en skjerm, og de fleste av oss trenger ikke å bekymre seg så mye for dem: det er bare så mange av dem, og hver og en kan bare har råd til å bry seg om så mange mennesker. Men det er faktisk mer et problem enn det først kunne virke, takket være adventen av sofistikert malware. En installasjon av skadelig programvare har råd til å bry seg om deg selv om angriperen ikke gjør det, og slik at du fortsatt havner overfor en ekstremt bestemt angriper. Enda mer bestemt enn et menneske kan faktisk være, men langt mindre kreativt.
Skadelig programvare som samler informasjon om deg, vil gi ord som virker viktige for deg veldig høy prioritet i ordlisten. Det gjør dette fordi folk flest velger de «tilfeldige» ordene selv, men på den måten forvirrer de faktisk ganske sterkt mot ordene som er viktigst for dem: det kan fremdeles «føles» tilfeldig, men noen ord er mye mer komme opp enn andre. Å gi disse ordene høy prioritet resulterer ofte i relativt raske treff, og dette er «trikset» som Schneier snakker om.
Imidlertid du kan fortsatt hindre Schneiers angrep ved å bruke ekte tilfeldighet . Fangsten er at dette krever disiplin: alle avgjørelser om hvilke ord du skal bruke i passordfrasen (bortsett fra å velge et godt ord må tas helt ut av hendene dine. Det er her ting som Diceware kan hjelpe deg.
Kommentarer
- @Gilles: Grunnen til at entropien går ned hvis angriperen vet at metoden er at den endrer hele strukturen i passordet. Hvis du ikke ‘ ikke vet metoden, så » riktig hestebatteri stift » ser ut som 216 symboler fra et 2-symbol alfabet: med andre ord 216 bits. Hvis du vet at det ‘ s fire engelske ord (og kjenner XKCD
s ordliste), så ser det ut som 4 symboler fra et 2048-symbol alfabet. 2048 ^ 4 er stort, men det ‘ er mindre enn 2 ^ 216, som er hvor mange byte entropi en virkelig tilfeldig bitstreng av den lengden ville ha. Men XKCD ‘ s krav står allerede for det: 2048 ^ 4 = 2 ^ 44.
Svar
Styrken matematikk er ganske enkelt hvis ordvalget er tilfeldig: (antall ord i ordboken) ^ (antall ord i setningen), forutsatt at angriperen vet antallet i ordboken. Så en setning på 5 ord som bruker en kjent ( av angriperen !) 7776 ord Diceware-ordbok: har 7776 ^ 5 = 2.8E19 eller 64 biter entropi.
Det er ett element som ikke er nevnt i skjemaet: ved å legge til bare 1 (tilfeldig) tegn på et tilfeldig sted i hele setningen, er styrken opp med omtrent 10 biter , se Diceware, valgfrie ting .
Den ovennevnte matematikken tar heller ikke hensyn til skilletegn mellom ordene. Det kan legge til ytterligere 5 biter.
Kommentarer
- Poenget (eller minst en av dem) i XKCD-tegneserien er at å legge til et tilfeldig tegn på et tilfeldig sted øker vanskeligheten å huske passordet mer enn det øker vanskeligheten med å knekke det.
- Sant for å huske generelt, ikke sant for et hovedpassord for et hvelv, tror jeg. Jeg ser ‘ lett å skrive ‘ som den største fordelen. Jeg støter på flere og flere situasjoner der passordadministratorer ikke kan fylle ut passordet (apper, WifI-gjestenettverk), og jeg må skrive dem.
- @Mark – de ekstra tilfeldige (eller bare ikke-ordboken) tegnene være den samme på tvers av alle passordene dine, noe som betyr at du ikke vil glemme ‘. Du ‘ Tjen ekstra entropibit i det minste til flere andre av passordene dine er kompromittert, og passordet er fremdeles xkcd-styrke …
- @imsotiredicantsleep – Det er et veldig interessant forslag. Har alltid sett etter en løsning for å gjøre denne styrkingsteknikken enklere å bruke. Det kan kalles sikkerhet ved uklarhet fordi angriperen kan dra nytte av kunnskapen om den tilfeldige karakteren og posisjonen. En liten avveining, tenker jeg mellom brukervennlighet og sikker.
- @ Dick99999 absolutt, det ‘ er en avveining. Men til den konstante komponenten er kompromittert, vil den beseire et na ï et ordbokangrep, og redusere en mer sofistikert. Jeg er ikke ‘ ikke enig i at det ‘ er sikkerhet ved uklarhet, da jeg kan fortelle deg at jeg bruker teknikken uten å miste entropien som de mulige verdiene gir meg. Hovedsvakheten er at når den konstante delen er kjent, har du ofret passord eiendommer som kunne vært randomisert.
Svar
Jeg vil også legge til et ja svar også, men for av andre grunner. Det er ikke et godt råd [generelt] på grunn av lengdebegrensninger:
- Nettsteder som Skype, ING, eBay og i mitt land begrenser Binckbank og KPN passord til 20 tegn. (Den bankgrensen er 15, men den brukte 2-faktor autorisasjon)
- Med en gjennomsnittlig lengde på 4,5 tegn / ord for en kort ordbok på 3000-8000 ord, er det bare mulig å bruke 3-4 ordfraser.
- Ved bruk av store ordbøker kan gjennomsnittet være 6-7: 3 ord bare
- Hvis nettstedet insisterer på å bruke et symbol og et nummer i passordet, er det bare 18 tegn tilgjengelig for uttrykket.
Disse lengdene beskytter bare mot angrep på nettet. For off-line-angrep avhenger av nøkkelavledningen og hashfunksjonen, iterasjonsteller og sprekkende maskinvare som brukes av appens side, om en setning på 3-4 ord gir tilstrekkelig beskyttelse.
Kommentarer
- Nettsteder som begrenser lengden på passord, er ofte en god indikator på at passordlagringssystemet er veldig usikkert. Stikk av. Alt i alt pleier kravene til passordstyrke å være mer skadelige enn nyttige, IMO (både for sikkerhet og minneverdighet).
- Legg til Suntrust i listen over passord som er begrenset til 15 tegn. Jeg lurer på hva som skjer med den bransjen ..
- På baksiden er det ‘ betydelig lettere å skrive ‘ correcthorsebatterystaple ‘ på en smarttelefon enn å veksle mellom små og store bokstaver, tall og tegnsetting.
- Lav passordgrense ikke ‘ t betyr bare usikre lagringsmetoder for passord – de betyr at passord lagres i ren tekst eller er kryptert (ikke hash). @ Á ngel Passordene mine for alle Microsoft-relaterte kontoer er lengre enn det, så jeg ringer BS. For alderen siden, før NTLM, var Windows-passord begrenset til 16 tegn, iirc. Det er forut for XP og er neppe relevant.
- @Zenexer Når det gjelder Microsoft-kontoer: Microsofts online-kontoer (live.com, Office 365 osv.) Er begrenset til 16 tegn (bokstaver, tall og noen symboler er tillatt. ).
Svar
Det er viktig å ha riktig kontekst. xkcd-tegneserie sammenligner Tr0ub4dor&3
ved en antatt 28-biters entropi (selv om jeg beregner det som 34.6) til correcthorsebatterystaple
og antatte 44 biter entropi (en fire ord diceware -kode er 51,7 bits … men et av disse ordene er ikke «diceware». Ved å bruke en enkel staveordbok på 100 000 ord, beregner jeg den til 66,4 bits).
Først skal vi gjøre dette lettere å forstå. Det er 94 utskrivbare tegn. Ett passord med ett tegn har log₂(94) = 6.55
biter av entropi. To tegn har log₂(94²) = 13.10
biter av entropi.Du kan dele den endelige entropien til et passordskjema med 6,55 for å bestemme ekvivalent kompleksitet av et rent tilfeldig passord, målt i tegn.
Derfor:
- 28 bits av entropi ≈ 4,3 tegnpassord (veldig dårlig!)
- 44 bit entropi ≈ 6,7 tegnpassord (også dårlig)
- 66,4 bit entropi ≈ 10,1 tegnpassord (ok for 2016)
Hvis du stoler på xkcd-tallene, kan du se hvorfor Schneier var bekymret. Dette virker litt overblåst, ettersom de fleste angripere fortsatt vil gi opp etter ti eller så tegn [sitering nødvendig] —Det bør ta noen år for en stor klynge å bryte et 10-risset MD5-hashpassord – men hvis en god angriper kjenner ordningen din, er absolutt tegnlengde ikke noe problem.
Den totale kompleksiteten i skjemaet er viktigst. Du må anta det verste tilfellet (at angriperen vet nøyaktig hvilket skjema du har) . Det er en god ide å i tillegg sørge for at passordet ditt er over 11 tegn ( når det er tillatt ), men at det er en sekundær prioritet (og det kommer gratis med pass-setninger ).
Lag passord med fire ord pluss passord
Her er mitt passfarlige råd (med entropiestimater):
- Lag en meningsløs «setning» på 4+ ord på 4+ tegn hver (100.000⁴)
- Ingen av disse ordene kan kobles til dere –eller hverandre– på noen måte
- Bruk store bokstaver, mellomrom og minst to symboler eller skilletegn (32²)
- Minst ett ord skulle mislykkes stavekontrollen (f.eks. leetspeak, fremmede ord, hver 64)
- Inkluder minst en annen «feil» (staving / grammatikk / syntaks, entropi ukjent)
- Mellom to ord, legg til en tradisjonell «tilfeldig» passordkode på 7+ (92⁷)
Dette bør være minst log₂(100000⁴ × 32 × 3 × 64 × 92⁵) = 112
biter av entropi (som er veldig sterk, Ch17 tegn). Jeg hoppet over store bokstaver (jeg antar at bare den første tegnet er stor) og ett symbol (jeg antar at det ender med .
, !
, eller ?
, så det andre symbolet har en kompleksitet på 3) og jeg antok også at «tilfeldig» ikke er ganske tilfeldig og beregnet koden som et ekvivalent på fem tegn (streng overholdelse av ovennevnte formel vil gi deg 128+ biter av entropi ved ≈20 tegn).
Det siste punktet er verdt å gjenta:
Mennesker er veldig dårlige til å generere tilfeldighet
Svært få menneskelig-genererte «tilfeldige» passord til og med tilnærming ekte tilfeldighet. Det vil være mønstre i koden til personens tastatur, favorittnumre og / eller en antagelse om at et bestemt uklart ord ikke er mulig.
Jeg utformet denne ordningen for å være robust mot folks iboende mangel på tilfeldighet, forutsatt et begrenset ordforråd (si de 2600 ordene i Basi c engelsk ), bruk av beslektede ord (straffet ved å telle bare tre ord), og en passord begrenset til bare entropien til seks alfanumerikk, log₂(2600³ × 62⁶)
er fortsatt sterk på 70 bits (≈10,6 tegn).
Ikke la dette vanne ned passordfrasen! Denne delen er til stede for å demonstrere at denne ordningen har en viss motstand mot den begrensede menneskelige entropien valg, ikke for å oppmuntre til dårlige valg.
De eneste virkelige problemene kommer fra folk som tar sitater eller tekster som sine fire ord. Disse pass-setningene blir trivielt beseiret hvis sitatet eller lyrikken kan gjettes (si ved å se på Facebook-liker) eller ellers ville ha en entropi på rundt 6 tilfeldige tegn på en sprekktid på 30 sekunder (MD5) til 17 dager (PBKDF2) .
Du kan bruke min entropytabell til beregne entropien til passordfrasskjemaet ditt.
(Ikke bekymre deg for at passord kort lever i minnet med mindre du er en utvikler
Kommentarer
- Det bør også bemerkes at ikke- ASCII tegn er som sølvkuler, og beseirer de fleste angrep automatisk. Et passord på
•••••••••
(ni punkttegn) er pinlig sikkert (og ser ut som den samme maskerte som umasket!) På grunn av lengde og uklarhet, selv om det ‘ d være en fryktelig idé å faktisk være avhengig av akkurat dette faktum. Sett et tegn som ikke er ASCII i passordet ditt + 4ord og kompleksiteten skyrockets (for å beregne, bruk unicode-verdien), men kanskje på bekostning av bærbarhet (hva om du ‘ bruker du en venn ‘ sin smarttelefon?)
Svar
Nei, det tror jeg ikke.
Det faktiske rådet i at xkcd comic er å bruke mnemonics som er enkle for deg å huske og generer passord så lenge du kan huske dem . Dette er grunnleggende råd om passord hvor som helst, og vil alltid være sanne (selv den siterte Schneier-metoden bruker disse to grunnleggende fakta). Tegneserien bruker faktisk vanlige engelske ord, men implementeringen din trenger ikke å være, og gjorde ikke tegneserien antyder at du burde.
Selvfølgelig er de sikreste passordene helt tilfeldige strenger som hvordan en MD5-streng ser ut, og du kan sannsynligvis bruke en passordbehandling til å lagre alle passordene, men så hvilket passord skal du bruke for den ansvarlige? ¯ \ (ツ) / ¯
Kommentarer
- » Selvfølgelig er de sikreste passordene helt tilfeldige strenger » NO, se for en sammenligning en.wikipedia.org/wiki/Password_strength#Random_passwords
- Nei, at ‘ er ikke det xkcd anbefaler, jeg foreslår at du leser det igjen – og analysen i det aktuelle spørsmålet her (lenket over).
- Din signatur » ¯ \ (ツ) / ¯ » er et utmerket passord: kort, enkelt å huske, veldig vanskelig å bryte, vanskelig å oppdage som et passord på en logg.
- @Daniel Azuelos, … trivielt å legge til i en liste over strenger i vanlig bruk …
- @Raestloz En person som snakker et språk som ikke ‘ t bruk tegn som ligger i ASCII-området, er ikke ‘ t til å bruke et ASCII-passord. Tror du alle disse menneskene i asiatiske land bruker to tastaturer, ett til daglig skriving og ett til passord? I motsetning til tretti år gamle operativsystemer, som DOS, håndterer alle moderne OS ‘ Unicode og andre tegnsett / sider helt fint, og ethvert nettsted skal støtte dem (så lenge ‘ t koder skjemaet ved hjelp av et tilfeldig tegnsett hver gang, eller lar nettleseren velge). Passord er bare biter som betyr noe for mennesker.
correcthorsebatterystaple
, ble det nå mye mindre sikkert!correcthorsebatterystaple
, må du passe på at du ikke ‘ ikke logger på et system som stille avkutt det! Et passord somcorrecth
er sannsynligvis lettere å gjette ennN#y;f8eR
.