Mă poticneam și m-am întâmplat cu acest eseu de Bruce Schneier susținând că Schema de parole XKCD a fost efectiv moartă.
Cracker-urile moderne de parole combină diferite cuvinte din dicționarele lor : […]
Acesta este motivul pentru care schema XKCD, adesea citată, pentru generarea parolelor – înșiră cuvinte individuale precum ” correcthorsebatterystaple ” – nu mai este un sfat bun. Cracker-urile de parolă sunt pe acest truc.
Atacatorul va introduce orice informație personală la care are acces despre creatorul de parole în crackerele de parole. Un bun cracker de parole va testa numele și adresele din agendă, datele semnificative și orice alte informații personale pe care le are. […] dacă programul dvs. l-a stocat vreodată în memorie, acest proces îl va prelua.
Susținerea sa pare să fie aceea pentru că este cunoscut că oamenii și-ar putea construi parolele în așa fel încât să permită atacul, dar se pare că puterea stă pur și simplu în puterea exponenților. Presupun că face aluzie la faptul că oamenii nu aleg cuvintele cu adevărat aleatoriu, ceea ce probabil nu este „Nu este total lipsit de conștiință, întrucât„ m-am derulat de câteva ori pentru a obține ceva care nu este „toate adverbele și adjectivele. Totuși, presupun că scăderea entropiei cu un factor de 2-10 nu este„ semnificativă (dacă lista de cuvinte este dublat la 4000, nu atât de greu, pierderea este mai mult decât recuperată).
Cealaltă știre despre ” dacă programul dvs. a stocat-o vreodată în memorie ” este un pic desconcertant, totuși … nu sunt toate parolele stocate în memorie la un moment dat sau altul? Asta pare puțin extins; la ce se referă el de fapt la?
Comentarii
Răspuns
Războiul Sfânt
Cred că veți găsi că modul corect de a genera parole ar putea începe un război sfânt în care fiecare grup crede că celălalt face o greșeli matematice foarte simple sau lipsa ideii. Dacă primiți 10 profesioniști în securitatea computerelor într-o cameră și îi întrebați cum să găsească parole bune, veți primi 11 răspunsuri diferite.
Neînțelegerea
Unul dintre numeroasele motive există nu există sfaturi consistente cu privire la parole, totul se rezumă la o problemă a modelării amenințărilor . De ce anume încercați să vă apărați?
De exemplu: încercați să vă protejați împotriva unui atacator care vă vizează în mod specific și care vă cunoaște sistemul pentru generarea parolelor? Sau ești doar unul dintre milioanele de utilizatori dintr-o bază de date scursă? Vă apărați împotriva cracării parolelor bazate pe GPU sau doar a unui server web slab? Sunteți pe o gazdă infectată cu programe malware [1]?
Cred că ar trebui să presupuneți că atacatorul cunoaște metoda exactă de generare a parolelor și doar vă vizează. [2] Comicul xkcd presupune în ambele exemple că toate detaliile generației sunt cunoscute.
Matematica
Matematica din comicul xkcd este corectă și nu se va schimba .
Pentru parole trebuie să scriu și să îmi amintesc că folosesc un script python care generează parole de stil xkcd care sunt cu adevărat aleatorii. Am un dicționar de 2 ^ 11 (2048) obișnuit, ușor de scris, cuvinte în limba engleză. Aș putea da codul sursă complet și o copie a listei mele de cuvinte unui atacator, vor exista încă 2 ^ 44 de parole posibile.
Așa cum spune benzi desenate:
1000 Guesses / Sec. Atac plauzibil asupra unui serviciu web slab la distanță. Da, spargerea unui hash furat este mai rapidă , dar nu este ceea ce ar trebui să-și facă griji utilizatorul mediu.
Aceasta creează un echilibru frumos între ușor de reținut și greu de spart.
Ce se întâmplă dacă am încerca mai multă putere ?
Sigur 2 ^ 44 este ok, dar fisurarea GPU este rapidă și va deveni mai rapidă. Hashcat ar putea sparge un hash slab [3] de acea dimensiune în câteva zile, nu în ani. De asemenea, am sute de parole de reținut. Chiar și stilul xkcd devine greu după câteva.
Aici intervin managerii de parole, îmi place KeePass , dar există multe altele care sunt practic aceleași. Apoi, puteți genera doar o expresie de trecere xkcd mai lungă pe care o puteți memora (spuneți 10 cuvinte). Apoi creați o parolă unică aleatorie de 128 de biți pentru fiecare cont (hex sau 64 de bază sunt bune). 128 de biți va fi suficient de puternic pentru o mult timp. Dacă doriți să fiți paranoic, măriți-vă, nu este nevoie să creați 256 de biți de parole hexagonale.
[1] Aici este memoria Lucrul tău intră, dacă te afli pe o gazdă compromisă, ai pierdut-o. Nu contează dacă îl tastați sau utilizați un program precum KeePass pentru a-l copia și lipi dacă un atacator poate juca / citi memorie.
[2] Mai degrabă decât cel mai slab (dar mai probabil) presupunerea că atacatorul tocmai a lansat un dicționar numit ” Top Passw0rdz 4realz 111! „.
[3] Sigur, ar trebui să folosim cu toții PBKDF2, etc … dar multe site-uri sunt încă pe SHA1. (Și sunt cele bune)
Comentarii
- @ Dick99999 GPU-urile moderne pot avea 6 GB de memorie pe un singur card (deși ar fi nevoie de 2 sloturi) și pot stoca cu ușurință un dicționar de câteva mii de cuvinte.
- @NateKerkhofs Acest lucru este înfricoșător și uimitor în același timp. Prima mea mașină (programabilă) avea 1mhz și 64kb RAM și vorbești despre memorie video de 6 GB …
- ” Parolă cu adevărat aleatorie pe 128 de biți … ” Cu adevărat aleatoriu? Nu ‘ este încă pseudorandom?
- Acesta ar trebui să fie răspuns acceptat dacă nu din alt motiv decât partea Războiului Sfânt.
- @Doorknob Odată ce ați ales combinații complete, majoritatea entropiei dispare. Am câștigat ‘ să încerc să estimez câte propoziții ai putea alege, dar aceasta este probabil mai aproape de una dintr-un miliard decât de una din 2 ^ 44.
Răspuns
Schneier scrie acest lucru:
Acesta este motivul pentru care schema XKCD des citată pentru generarea parolelor – înlănțuie cuvinte individuale precum „correcthorsebatterystaple” – nu mai este un sfat bun. Cracker-urile de parolă fac acest truc.
dar cheia pentru a înțelege ce urmărește el este puțin mai departe în eseul său:
Există încă o schemă care funcționează. În 2008, am descris „schema Schneier „
astfel încât” s it it. Ole „Bruce vrea să afirme că schema lui este singurul, cel mai bun, câștigătorul, schema finală. Prin urmare, trebuie să spună lucruri disprețuitoare despre” concurenți „, indiferent dacă astfel afirmațiile sunt sau nu științifice.
În acest caz, s-a presupus întotdeauna că metoda de generare a parolelor este cunoscută de atacator. Acesta este întregul punct al calculelor entropiei. ; consultați analiza . Faptul că atacatorii „acceptă acest truc” nu schimbă nimic deloc (atunci când un atacator cunoaște metoda de generare a parolei, calculul entropiei descrie exact puterea parolei; incompetent și nu cunoaște metoda de generare a parolei, puterea parolei este doar mai mare, cu o cantitate aproape imposibil de cuantificat).
Știrea despre „parolele în memorie” este doar divergențe mai incoerente. Parolele merg neapărat la memoria RAM la un moment dat, fie că le tastați, fie că le copiați-lipiți dintr-o parolă sigură sau ceva similar.
Cred că Bruce a fost beat.
Actualizați : Lui Schneier i s-a cerut în mod special să comenteze despre condamnarea expresiei sale de acces într-un un Reddit AMA care a avut loc la 2 august 2016. El a continuat să pledeze pentru sistemul său de creare a parolei alternativă superioară cuvintelor de acces aleatorii. Schneier a spus că schema sa „îți oferă mai multă entropie pe caracter memorabil decât alte metode”, ceea ce este adevărat în comparație cu personajele care alcătuiesc cuvinte. Dar acest lucru este, de asemenea, irelevant atunci când un sistem se bazează pe memorarea cuvintelor, mai degrabă decât pe caractere și vi se permite să combinați suficiente cuvinte pentru a genera o „entropie” adecvată pentru fraza de trecere în ansamblu.
Comentarii
- Da, am crezut că comentariile sale sunt o abatere ciudată de la sfaturile sale tipice bune.Schema sa recomandată nu este probabil ‘ t rea, dar nu ‘ nu a fost supusă unor teste reale. Abordarea expresiei de acces este destul de ușor de testat în comparație și credeți că ‘ credeți că acest lucru ar atrage criptograful din el. Poate că a trecut doar peste știrile despre cracarea frazelor de acces în limbaj natural și nu ‘ nu a văzut o distincție între acele expresii de trecere și cuvinte aleatorii. denigrează competiția eșuează, deoarece imediat după descrierea schemei sale, el spune ” Chiar mai bine este să folosiți parole alfanumerice aleatorii nememorabile (cu simboluri, dacă site-ul le va permite), și un manager de parole precum Password Safe pentru a le crea și stoca „.
- @wfaulk Password Safe este Bruce Schneier ‘ creație, așa că argumentul său despre concurență rămâne în continuare. Declarația dvs. de eșuare eșuează 😉
- @AviD: Nu știam acest lucru. 😳
- Ceea ce îți lipsește ‘ și, se pare, de asemenea, Schneier este că nu există ” truc ” to ” catch on to „. Securitatea Diceware presupune deja că atacatorul știe despre schemă , de fapt presupune că dicționarul însuși este cunoscut. ‘ nu contează dacă atacatorul are exact dicționarul și numărul de cuvinte: există pur și simplu prea multe combinații de parcurs pentru a face orice fel de atac de succes înainte ca soarele să explodeze.
Răspuns
[Dezvăluire: Lucrez pentru AgileBits, factorii de decizie 1Password]
Unul dintre motivele pentru care am pledat pentru o schemă asemănătoare XKCD (înainte să se numească așa) în Către parole mai bune mai bune în 2011 este tocmai pentru că nu te baza pe atacator știind ce schemă ai folosit. Dacă mă pot cita
Marele lucru legat de Diceware este că știm exact cât de sigur este chiar presupunând că atacatorul cunoaște sistemul utilizat. Securitatea provine din întâmplarea reală a aruncării zarurilor. Folosirea a patru sau cinci cuvinte ar trebui să fie suficientă împotriva atacurilor plauzibile din următorii câțiva ani dată fiind viteza observată a crackerelor de parole [împotriva 1Password Master Password]
Ce nu comunică în mod efectiv banda desenată XKCD este că selecția cuvintelor trebuie să fie (uniform) aleatorie . Dacă cereți oamenilor să aleagă cuvinte la întâmplare, veți obține o tendință puternică pentru substantivele concrete. Astfel de prejudecăți pot și vor fi exploatate.
Câtă forță doriți
Într-o lume perfectă, am dori ca forța parolei noastre să fie la fel de puternică precum cheile cu care protejăm aceasta. Spuneți 128 de biți. Dar, în ciuda acestor tehnici, oamenii nu vor realiza acest lucru. Deci, să privim realist atacurile și ceea ce putem face creierele noastre mici.
Cu lista originală de cuvinte Diceware de 7776 de intrări, primiți aproximativ 12,9 biți pe cuvânt pe care îl utilizați. Deci, dacă doriți cel puțin 64 de biți pentru parola dvs., atunci cinci cuvinte o vor face.
Ghicirea parolelor este mai lentă decât ghici tastele
În această secțiune ajung la un spate foarte dur din plic estimează că pentru o sumă constantă de dolari este de 2 ^ 13 ori mai lent să testezi o parolă decât să testezi o cheie AES.
Reține că testarea unei parole este mult mai lentă decât testarea unei cheie. Dacă se utilizează tipurile potrivite de scheme de hashare a parolei, este posibil să păstreze majoritatea atacatorilor sub 100000 presupuneri pe secundă. Așadar, deși s-ar putea să nu dorim niciodată să folosim chei de 50 de biți, folosirea parolelor de 50 de biți ar putea avea totuși sens.
Dacă nu ne vom limita la aruncarea zarurilor ca în Arnold Reinhold s schema originală Diceware din 1995, atunci putem folosi o listă mai lungă de cuvinte. Generatorul de parole puternice din 1Password pentru Windows folosește o listă de 17679 de cuvinte în limba engleză între 4 și 8 litere inclusiv (dezbrăcate de cuvinte tabu și cuvinte care implică un apostrof sau cratime). Acest lucru oferă aproximativ 14 biți pe cuvânt. Deci, patru dintre acestea vă oferă 56 de biți, cinci vă oferă 70.
Din nou, trebuie să acordați atenție vitezei de fisurare. Deep Crack în 1997 a reușit să ruleze 92 de miliarde de teste DES pe secundă. Presupunând că un PC specializat de ultimă generație poate efectua un milion de presupuneri pe secundă în raport cu o parolă cu un nivel rezonabil de bine ar putea face 1 milion de presupuneri pe secundă, atunci parolele sunt astăzi cu 16 biți mai greu de spart decât erau cheile DES în 1997.
Deci, să vedem această estimare Stack Exchange pentru un procesor dual core de 3,8 GHz: 670 milioane de taste pe secundă.Dacă ar fi să presupunem 5000 de dolari în hardware, putem depăși cu ușurință 10 miliarde de chei pe secundă. Deci, la un cost hardware similar, cracarea cheii este încă de peste 2 ^ 13 ori mai rapidă decât cracarea parolei.
Obiectivele revizuite privind intensitatea parolei
Lucrând la estimarea mea că este 2 ^ 13 de multe ori mai scump pentru a testa o parolă bine hash decât pentru a testa o cheie AES, ar trebui să considerăm o parolă hash rezonabilă ca fiind cu 13 biți mai puternică decât entropia sa reală cu privire la cracking. Dacă dorim să obținem 90 de biți de „putere eficientă”, atunci 77 de biți de putere trebuie să o facă. Acest lucru se realizează cu o parolă de șase cuvinte Diceware (77,5 biți) din lista originală și 84,6 biți cu șase cuvinte extrase dintr-o listă de 17679 de cuvinte.
Nu mă aștept ca majoritatea oamenilor să folosească parole care lung. Mă aștept ca oamenii să folosească lucruri care au 4 sau 5 cuvinte. Dar dacă sunteți îngrijorat cu adevărat de faptul că NSA urmărește parolele dvs., atunci șase cuvinte ar trebui să fie suficiente, presupunând că utilizați un sistem decent de hash de parole.
Numai estimări foarte aproximative
Nu am petrecut mult timp cercetând costuri și valori de referință. Există o mulțime de lucruri în estimările mele cu care să mă cert. Am încercat să fiu conservator (pesimist cu privire la schema pe care o susțin). Am fost vagă și despre „parolele bine hash”. Din nou, sunt foarte conservator în ceea ce privește hashing-ul parolei în 1Password. (Pentru noul nostru format de date, atacatorii au fost menținuți sub 20.000 de presupuneri pe secundă, iar pentru formatul nostru de date mai vechi au ajuns la 300.000 de presupuneri pe secundă pentru multi -Machine GPU. În estimările mele aici, am „ales 1 milion de presupuneri pe secundă pentru o„ parolă destul de bine pusă la punct ”.)
Alte câteva note istorice
În general ideea de parole „asemănătoare cu XKCD” se întoarce cel puțin înapoi cu parolele S / Key de la începutul anilor 1980. Acestea foloseau o listă de 2048 una prin cuvinte cu patru litere. O parolă S / Key cu șase cuvinte a obținut 66 de biți. Nu știu dacă această idee de a folosi cuvinte selectate aleatoriu dintr-o listă pentru o expresie de trecere este anterioară S / Key.
În 1995 , Arnold Reinhold a propus Diceware . Nu știu dacă era la curent cu S / Key la acea vreme. Diceware a fost propus în contextul dezvoltării frazelor de trecere pentru PGP. De asemenea, înainte ca majoritatea computerelor să aibă generatoare de numere aleatorii adecvate criptografic. Deci implică de fapt aruncarea zarurilor. (Deși am încredere în CSPRNG-urile de pe mașinile pe care le folosesc, îmi face plăcere să „completez o nouă parolă”).
În iunie 2011, am reînviat interesul pentru Diceware în Către mai bune parole master cu unele modificări suplimentare. Acest lucru a dus la 15 minute de faimă. După apariția benzii desenate XKCD, am produs o ediție geek care a parcurs unele dintre matematică.
În iulie 2011, Randall Monroe a preluat schemele tip Diceware și și-a publicat faimosul său faimos comic . Deoarece nu sunt inventatorul ideii, nu mă deranjează deloc să fiu supărat de comic. Într-adevăr, așa cum am spus în articolul de urmărire
Ce m-a luat aproape 2000 de cuvinte de spus în termeni non-tehnici, Randall Monroe a reușit să rezume într-un comic. Acest lucru arată doar puterea matematicii …
Dar există un lucru despre modul în care a fost interpretat comicul care mă îngrijorează. Este clar pentru mine și pentru oamenii care au înțeles deja schema că cuvintele trebuie alese printr-un proces aleatoriu uniform uniform. Alege cuvintele „la întâmplare” din capul tău este nu un proces uniform și fiabil .
Comentarii
- Minunat că menționați Diceware într-o perspectivă istorică și, în același timp, recunoașteți marea muncă de marketing pe care a făcut-o XKCD pentru frazele de acces. Despre schema dvs. modificată, se explică oriunde de ce cuvintele de 3 sau 2 litere nu sunt incluse în acele liste de cuvinte? consultați blog.agilebits.com/2013/04/16/… . Este pentru că cuvintele precum ‘ off ‘ și ‘ line ‘ ar putea fi atacat și de un cuvânt offline? Vezi comentariile mele la postarea lui Raestloz. Lista originală Diceware conține multe cuvinte de 1, 2 și 3 litere.
- Întrebare excelentă! Gândirea mea (posibil eronată) la vremea respectivă a fost că și eu doream ca expresiile de acces să aibă o lungime minimă. Am vrut să mă asigur că, dacă cineva folosește o expresie de acces cu trei cuvinte, aceasta va depăși minimum 12 caractere. Observ că S / Key permite, de asemenea, cuvinte cu 1, 2 și 3 litere.
- Am verificat rapid listele de cuvinte pe care le folosește generatorul și fraza de testare SimThrow.Lista originală Diceware are cel puțin 1400 dintre aceste coliziuni, cum ar fi ‘ orice ‘ ‘ ‘ și ‘ oricum ‘. Aceasta poate degrada o propoziție de 4 cuvinte la 3 cuvinte, dacă nu se folosește niciun separator. ‘ este un număr mare de coliziune, deoarece acea listă include toate literele și combinațiile de 2 litere. Deci, se pare că ați făcut alegerea corectă de a nu include cuvinte cu 2 litere. Diceware recomandă o lungime minimă a frazelor de 17. Generatorul meu estimează atât timpul de recuperare bazat pe cuvinte, cât și pe caractere, pentru a face față site-urilor care permit doar parole scurte (20).
- Am verificat și următoarele liste de cuvinte. S / Key : > 93 coliziuni, expand-dicelists SUA : > 190 și lista mea olandeză: > 750. O modalitate de a gestiona acest lucru este să recomandăm includerea unui caracter separator între cuvintele unei fraze.
- Atenție, aruncarea zarurilor nu este perfect întâmplătoare. forbes.com/sites/davidewalt/2012/09/06/… Și insidescience.org/blog/2012/09/12/…
Răspuns
Schema de parole XKCD este la fel de bună pe cât a fost vreodată. Securitatea nu derivă din faptul că este necunoscută, ci din faptul că este o modalitate bună de a genera parole memorabile dintr-un spațiu mare de căutare. Dacă selectați cuvintele de utilizat, mai degrabă decât să le generați aleatoriu, totuși, acest avantaj este pierdut – oamenii Nu sunt pricepuți să fii aleatoriu.
Aspectul despre memorie este slab menționat, dar este o preocupare: dacă malware-ul care fură parolele ajunge vreodată pe computerul tău, va fi măturați tot textul de pe RAM și de pe hard disk pentru a folosi într-un atac direcționat asupra conturilor dvs.
Comentarii
- +1 Nu ‘ nu cred că tehnica XKCD este moartă – ‘ nu este ‘ un truc ‘ că crackerele ‘ sunt pe ‘. Puteți cunoaște tehnica din afară, dar asta nu ‘ nu-l face mai crackabil dacă ‘ este suficient de aleatoriu.
- @PiTheNumber dacă ‘ re utilizând cuvinte insuficiente sau un dicționar mic, atunci nu ‘ aplicați deloc tehnica xkcd; dar nu, chiar și în benzi desenate xkcd ‘ este clar clar că NU îți pierzi avantajul dacă le spui tuturor ” hei, eu ‘ m folosind parola de stil corecthorsebatterystaple ” – cantitatea de verificări / entropie biți este mai mare decât majoritatea parolelor normale, chiar dacă metoda este cunoscută.
- Cu condiția să nu utilizați ‘ nu utilizați și XKCD ‘ generator de numere aleatorii (am câștigat ‘ t link, toată lumea îl știe).
- @PiTheNumber conceptul de ‘ Parola cu 11 litere cu adevărat aleatorie ‘ este irelevantă, deoarece nu este o alternativă rezonabilă la frazele de acces. Expresiile de acces sunt alternative parolelor memorabile și acestea sunt la fel de slabe precum descrie xkcd. Sigur, dacă utilizați o parolă stocată într-un manager de parole, atunci se potrivesc parole complet aleatorii, dar în acest caz ‘ nu este în esență ‘ parola ‘ ca în ceva pe care tu l-ai folosi sau vedea, ci mai degrabă o ‘ cheie aleatorie autogenerată token ‘ similar cu cheile ssh.
- @PiTheNumber Cuvintele nu sunt alese de om, sunt alese la întâmplare. Dicționarul din care sunt alese cuvintele este el însuși ales de om, dar aceasta este o problemă diferită. Nu există „cel mai probabil” – matematica din banda desenată xkcd este corectă.
Răspuns
Ca alții au spus, atacul pe care Bruce Schneier îl descrie este eficient atunci când utilizatorul își alege mai multe cuvinte, nu folosind un instrument. Schneier scrie de obicei către un public larg, ceea ce este puțin probabil să înțeleagă diferența dintre cuvintele „aleatorii” alese de sine și cuvintele aleatorii alese de program.
Voi adăuga că, chiar dacă utilizați un script sau alt instrument pentru a alege în mod aleatoriu cuvinte dintr-un dicționar, trebuie să utilizați prima secvență pe care vi-o oferă . Dacă decideți, ” „Nu-mi place” și o rulez din nou până îți place, nu mai este o expresie de acces întâmplătoare , este aleasă de om.
De asemenea, chiar dacă utilizați un script și chiar dacă nu deteriorați randomitatea alegând preferința dvs. din mai multe secvențe, există încă posibilitatea ca un atacator să vă exploateze PRNG (pseudo-random) dacă atacatorul poate afla când ați creat parola și ce PRNG ați folosit și poate și alte informații despre PRNG-ul dvs., cum ar fi traficul de rețea care a fost produs folosind PRNG-ul dvs. în același timp, care ar putea reduce entropia efectivă a fraza dvs. de acces aleatoare.
Poate un pic ezoteric, dar dacă PRNG-ul dvs. este exploatabil, cifra 2 ^ 44 nu va fi realizată pe deplin. (Și dacă presupuneți că „nimeni nu va încerca să exploateze PRNG-ul meu” de ce îți pasă să folosești o expresie de acces cu adevărat sigură?)
Comentarii
- +1 Unghi interesant. Exploatarea PRNG este evidentă în contextul criptării tastele – este ‘ interesant faptul că pare să fie practic un gând ulterior aici. Cred că parolele tipice sunt atât de rele că PRNG-urile se simt în siguranță prin comparație. Probabil, dacă un atacator poate fura o listă de parole hash, găsirea pwdChangedTime sau echivalent ar fi banală? Un alt motiv pentru a pune capăt practicii de îmbătrânire a parolelor?
- Spate rapid al plicului. Dacă actualizați parola într-un minut de la generarea acesteia și singura sursă de entropie din PRNG este timpul sistemului, este posibil să vă uitați la reducerea lucrurilor până la 2 ^ 35 pentru rezoluția nanosecundei. Sunteți rezonabil?
- Să presupunem că resping o frază pentru că nu ‘ îmi place un cuvânt și fac asta de 1000 de ori. Apoi am redus dicționarul cu 1000 de cuvinte. Alegerea din dicționarul redus este încă întâmplătoare? Dacă este încă, atunci o propoziție de 4 cuvinte dintr-un dicționar Diceware astfel redus de 7776 oferă încă (7776-1000) ^ 4 = 2.1E15 / 50.9 posibilități / biți de entropie, în scădere de la 3.7E15 / 51.7 posibilități / biți de entropie dicţionar. Nu sunt în stare să judec influența generatorului aleatoriu. Eu îl folosesc pe cel de pe www.random.org
- @ Dick99999 Nu cred că ‘ cred că ‘ este cu adevărat despre numărul de opțiuni oferite pe care le excludeți în alegerea unei parole. ‘ se referă la tiparul al expresiilor pe care le-ați exclude , dacă vi se prezintă. Un atacator ar putea ghici că utilizatorul va prefera cuvinte mai scurte, cuvinte mai ușor de tastat pe o tastatură QWERTY și cuvinte fără majuscule sau punctuație; această strategie ar putea micșora foarte mult spațiul frazelor de acces de explorat. Practic, este ‘ aceeași problemă cu ghicirea doar a echipelor sportive preferate, a zilelor de naștere și a copiilor ‘ nume.
- @wberry Nu cred că ‘ cred că matematica funcționează în acest sens. Să presupunem că respingeți 1000 de expresii de acces înainte de a găsi una care vă place. Apoi, ‘ este o estimare rezonabilă că vă place doar 1/1000 din spațiul posibil al parolei. Acum, să presupunem că un atacator este capabil să ghicească complet care este 1/1000 din spațiul preferat – ceea ce reduce numărul de posibilități de la 2 ^ 44 la 2 ^ 34, ceea ce este semnificativ, dar nu atât de mult încât un cuvânt suplimentar poate ‘ t tamponați pierderea. În plus, dacă vă limitați respingerile, chiar și acest lucru nu este necesar.
Răspundeți
Depinde. Un lucru pe care trebuie să îl înțelegeți este că aceasta nu este securitate-prin-obscuritate: valorile entropiei folosite în banda desenată presupun că atacatorul știe deja că folosiți această metodă . Dacă atacatorul nu știe cum generați fraza de acces, atunci entropia crește masiv.
Trucul metodei XKCD este că trebuie să utilizați de fapt un generator de numere aleatorii și o listă bună de cuvinte: nu alegeți niciodată cuvintele dvs., nici măcar „la întâmplare” (între ghilimele, deoarece oamenii sunt de fapt foarte răi în a alege lucrurile la întâmplare, motiv pentru care nu ar trebui să o faceți). Diceware are instrumente care vă ajută să faceți acest lucru și chiar scoate elementul aleatoriu din acoperirea computerului folosind zaruri obișnuite.
Împotriva unui atac pe scară largă – genul de lucruri în care un atacator a primit o listă de parole de pe un site web și nu știe nimic despre ale căror parole sunt în listă – acest lucru este la fel de puternic ca și până acum. Așa cum spui, puterea sa provine din puterea exponenților (și o listă bună de cuvinte).
Atacul lui Schneier poate funcționa, dar numai într-un context complet diferit. Atacul său presupune că sunteți vizat în mod specific, de către un atacator care știe deja multe despre dvs. .Acest lucru s-ar putea să nu pară deosebit de îngrijorător la început, deoarece atacatorul stereotip determinat este un agent de informații din spatele unui ecran, iar majoritatea dintre noi nu trebuie să ne îngrijorăm atât de mult cu privire la acestea: sunt doar atât de mulți, iar fiecare dintre ei poate doar permiteți-vă să vă intereseze atât de mulți oameni. Dar este de fapt mai mult o problemă decât ar putea părea mai întâi, datorită apariției unor programe malware sofisticate. O instalare de programe malware își poate permite să aibă grijă de tine, chiar dacă atacatorul nu, așa că vei continua să te confrunți cu un atacator extrem de hotărât. Chiar și mai hotărât decât un om ar putea fi, de fapt, deși mult mai puțin creativ.
Programele malware care compilează informații despre dvs. vor da cuvinte care vi se par importante pentru dvs. cu o prioritate foarte mare în lista de cuvinte. Face acest lucru pentru că majoritatea oamenilor aleg cuvintele „aleatorii” singuri, însă, făcând acest lucru, ei înclină destul de puternic spre cuvintele care sunt cele mai importante pentru ei: s-ar putea „simți” aleatoriu, dar unele cuvinte au mult mai multe șanse să urcă decât alții. Din acest motiv, acordarea acestor cuvinte prioritate ridicată duce adesea la accesări relativ rapide și acesta este „trucul” despre care vorbește Schneier.
Cu toate acestea, încă poți contracara atacul lui Schneier folosind aleatorie reală . Prinderea este că aceasta necesită disciplină: toate deciziile cu privire la ce cuvinte să folosești în fraza de acces (în afară de alegerea unui cuvânt bun listă) trebuie scos complet din mâinile dvs. Aici vă pot ajuta lucruri precum Diceware.
Comentarii
- @ Gilles: Motivul pentru care entropia scade dacă atacatorul știe că metoda este că schimbă întreaga structură a parolei. Dacă nu ‘ nu cunoașteți metoda, atunci ” capsa corectă a bateriei calului ” arată ca 216 simboluri dintr-un alfabet cu 2 simboluri: cu alte cuvinte, 216 biți. Dacă știți că este ‘ s patru cuvinte în limba engleză (și știu XKCD
s wordlist), atunci arată ca 4 simboluri dintr-un alfabet cu 2048 de simboluri. 2048 ^ 4 este mare, dar ‘ este mai mic decât 2 ^ 216, adică câți octeți de entropie ar avea un șir de biți cu adevărat aleatoriu de acea lungime. Dar afirmația XKCD ‘ explică deja acest lucru: 2048 ^ 4 = 2 ^ 44.
Răspuns
Puterea matematica este destul de simplă dacă alegerea cuvântului este la întâmplare: (numărul de cuvinte din dicționar) ^ (numărul de cuvinte din propoziție), presupunând că atacatorul știe numărul din dicționar. Deci, o frază de 5 cuvinte folosind un cunoscut ( de către atacator !) 7776 cuvânt dicționar Diceware: are 7776 ^ 5 = 2.8E19 sau 64 de biți de entropie.
Există un element care nu este menționat în schemă: adăugând doar 1 caracter (aleatoriu) la un loc aleatoriu în întreaga frază, puterea crește cu aproximativ 10 biți , consultați Diceware, opțional .
Matematica de mai sus nu ține cont nici de simbolul separator între cuvinte. Asta poate adăuga încă 5 biți.
Comentarii
- Punctul (sau cel puțin unul dintre ele) al benzii desenate XKCD este că adăugarea unui caracter aleator la un loc aleator crește dificultatea memorarea parolei mai mult decât crește dificultatea de a o sparge.
- Este adevărat pentru memorarea în general, nu este adevărat pentru o parolă master a unui seif, cred. Văd ‘ ușor de tastat ‘ ca principal avantaj. Întâlnesc din ce în ce mai multe situații în care administratorii de parole nu pot completa parola (aplicații, rețeaua de oaspeți WifI) și trebuie să le introduc.
- @Mark – caracterele suplimentare aleatoare (sau doar non-dicționare) fiți la fel în toate parolele, ceea ce înseamnă că nu ați uitat ‘. ‘ veți câștiga bucăți suplimentare de entropie cel puțin până când alte câteva parole vor fi compromise, moment în care parola este încă puternică xkcd …
- @imsotiredicantsleep – Aceasta este o sugestie foarte interesantă. Am căutat întotdeauna o soluție pentru a face această tehnică de întărire mai ușor de utilizat. Ar putea fi numită securitate prin obscuritate, deoarece atacatorul poate beneficia de cunoștințele despre caracterul aleatoriu și poziția. Un ușor compromis, cred că între ușurința de utilizare și siguranță.
- @ Dick99999 absolut, este ‘ un compromis. Dar până când componenta constantă nu este compromisă, va învinge un atac de dicționar na ï ve și va încetini semnificativ unul mai sofisticat. ‘ nu sunt de acord că securitatea ‘ este de obscuritate, deoarece vă pot spune că folosesc tehnica fără a pierde entropia pe care mi-o dau valorile posibile . Principalul punct slab este că, odată ce se cunoaște partea constantă, ați sacrificat parola imobiliară care ar fi putut fi randomizată.
Răspuns
Aș dori, de asemenea, să adaug un răspuns da , de asemenea, pentru alte motive. Nu este un sfat bun [în general] din cauza constrângerilor de lungime:
- Site-uri precum Skype, ING, eBay și în țara mea Binckbank și KPN limitează parolele la 20 de caractere. (Acea limită bancară este de 15, dar a folosit autorizarea cu 2 factori)
- Cu o lungime medie de 4,5 caractere / cuvânt pentru un dicționar scurt de 3000-8000 de cuvinte, care permite utilizarea numai a 3-4 expresii de cuvinte.
- Când utilizați dicționare mari, media poate fi de numai 6-7: 3 cuvinte
- Dacă site-ul insistă să folosească un simbol și un număr în parolă, doar 18 caractere sunt disponibile pentru fraza.
Aceste lungimi protejează numai împotriva atacurilor online. Pentru atacurile off-line depinde de derivarea cheii și funcția hash, numărul de iterații și hardware-ul de fisurare utilizat de site-ul aplicației, indiferent dacă o frază de 3-4 cuvinte oferă o protecție suficientă.
Comentarii
- Site-urile care limitează lungimea parolelor sunt adesea un indicator excelent că sistemul lor de stocare a parolelor este foarte nesigur. Fugi. Una peste alta, cerințele de consolidare a parolelor tind să fie mai mult decât utile, IMO (atât pentru securitate, cât și pentru memorabilitate).
- Adăugați Suntrust la lista parolelor limitate la 15 caractere. Mă întreb ce se întâmplă cu industria respectivă.
- Pe de altă parte, este ‘ semnificativ mai ușor să tastați ‘ correcthorsebatterystaple ‘ pe un smartphone decât să comutați între litere mici, majuscule, numere și punctuație.
- Limitele scăzute ale parolelor nu ‘ t înseamnă doar metode nesigure de stocare a parolelor – înseamnă că parolele sunt stocate în text simplu sau sunt criptate (nu sunt hash). @ Á ngel Parolele mele pentru toate conturile legate de Microsoft sunt mai lungi de atât, așa că sun BS. Cu veacuri în urmă, înainte de NTLM, parolele Windows erau limitate la 16 caractere, iirc. Acest lucru este anterior XP și nu este relevant.
- @Zenexer În ceea ce privește conturile Microsoft: conturile online Microsoft (live.com, Office 365 etc.) sunt limitate la 16 caractere (litere, numere și unele simboluri sunt permise ).
Răspuns
Este important să aveți contextul potrivit. comic xkcd compară Tr0ub4dor&3
la o entropie presupusă de 28 de biți (deși eu calculez it as 34.6) to correcthorsebatterystaple
și presupusele sale 44 de biți de entropie (un cod de patru cuvinte diceware este de 51,7 biți … Dar unul dintre aceste cuvinte nu este „software-ul de zaruri. Folosind un dicționar de ortografie simplu de 100.000 de cuvinte, îl calculez la 66,4 biți).
Mai întâi, să simplificăm acest lucru. Există 94 caractere imprimabile. O parolă cu un singur caracter are log₂(94) = 6.55
biți de entropie. Două caractere au log₂(94²) = 13.10
biți de entropie.Puteți împărți entropia finală a unei scheme de parole la 6,55 pentru a determina complexitatea echivalentă a unei parole pur aleatorii măsurată în caractere.
Prin urmare:
- 28 de biți de entropie password 4,3 caractere parolă (foarte rău!)
- 44 de biți de entropie ≈ 6,7 caractere parolă (de asemenea, rău)
- 66,4 biți de entropie password 10,1 caractere parolă (bine pentru 2016)
Având încredere în numerele xkcd, puteți vedea de ce era îngrijorat Schneier. Acest lucru pare un pic exagerat, deoarece majoritatea atacatorilor vor renunța în continuare după aproximativ zece caractere [este necesară o citare] – ar trebui să dureze câțiva ani pentru ca un cluster mare să rupă o parolă MDH cu 10 caractere – deși, evident, dacă un atacator bun știe schema dvs., lungimea absolută a caracterelor nu este o problemă.
Complexitatea totală a schemei este cea mai importantă. Trebuie să vă asumați cel mai rău caz (ca atacatorul să vă cunoască schema exactă) . „Este o idee minunată să vă asigurați în plus că parola dvs. conține peste 11 caractere ( atunci când este permis ), dar că„ este o prioritate secundară (și vine gratuit cu fraze de acces) ).
Creați expresii de trecere cu patru cuvinte plus un cod de acces
Iată sfatul meu de creare a parolei de acces (cu estimări de entropie):
- Faceți o „propoziție” fără sens de 4+ cuvinte de 4+ caractere fiecare (100.000⁴)
- Niciunul dintre aceste cuvinte nu poate fi conectat la vă –sau unul pe celălalt– în orice fel
- Folosiți majuscule, spații și cel puțin două simboluri sau semne de punctuație (32²)
- Cel puțin un cuvânt ar trebui să nu reușească verificarea ortografică (de exemplu, leetspeak, cuvinte străine, fiecare 64)
- Includeți cel puțin o altă „eroare” (ortografie / gramatică / sintaxă, entropie necunoscută)
- Între două cuvinte, adăugați o parolă tradițională „aleatorie” de 7+ caractere (92⁷)
Acesta ar trebui să fie cel puțin log₂(100000⁴ × 32 × 3 × 64 × 92⁵) = 112
biți de entropie (care este foarte puternic, ≈17 caractere). Am omis scrierea cu majuscule (presupun că doar primul caracter este majuscul) și un simbol (presupun că se termină cu .
, !
sau ?
, deci al doilea simbol are o complexitate de 3) și am presupus, de asemenea, că „random” nu este destul de aleator și am calculat codul ca un echivalent de cinci caractere (respectarea strictă a celor de mai sus formula vă va oferi peste 128 de biți de entropie la at20 caractere).
Acest punct final merită să fie repetat:
Oamenii sunt foarte răi în ceea ce privește generarea aleatoriei
Foarte puține coduri de trecere de caractere „aleatorii” generate de oameni chiar și abordează aleatoritatea adevărată. Vor exista modele în cod la tastatura persoanei, numerele preferate și / sau presupunerea că un anumit cuvânt obscur nu poate fi ghicit.
Am conceput această schemă pentru a fi robustă împotriva lipsei inerente de aleatorie a oamenilor; presupunând un vocabular limitat (spune cele 2600 de cuvinte din Basi c engleză ), utilizarea cuvintelor înrudite (penalizate prin numărarea a doar trei cuvinte) și o parolă limitată doar la entropia a șase alfanumerice, log₂(2600³ × 62⁶)
în sine este încă puternică la 70 de biți (.610,6 caractere).
Nu lăsați această apă să scape din fraza de acces! Această secțiune este prezentă pentru a demonstra că această schemă are o anumită rezistență la entropia limitată a omului. alegeri, nu pentru a încuraja alegerile slabe.
Singura problemă reală vine de la oameni care iau citate sau versuri drept patru cuvinte. Aceste fraze de trecere sunt înfrânte în mod banal dacă citatul sau versiunea pot fi ghicite (să zicem uitându-vă la aprecierile dvs. de pe Facebook) sau altfel ar avea o entropie de aproximativ 6 caractere aleatorii la un timp de crack de 30 de secunde (MD5) până la 17 zile (PBKDF2) .
Puteți utiliza tabelul meu de entropie pentru calculați entropia schemei dvs. de expresie de acces.
(Nu vă preocupați de faptul că parolele trăiesc scurt în memorie , cu excepția cazului în care sunteți un dezvoltator)
Comentarii
- De asemenea, trebuie remarcat faptul că non- ASCII personajele sunt ca gloanțele de argint, învingând automat majoritatea atacurilor. O parolă de
•••••••••
(nouă caractere glonț) este jenant de sigură (și arată la fel mascat ca demascat!) Datorită lungimii și obscurității, deși ‘ ar fi o idee oribilă de a depinde de fapt doar de acest fapt. Introduceți un caracter care nu este ASCII în codul dvs. de acces + 4 cuvinte și complexitatea crește (pentru a calcula, utilizați valoarea sa unicode), deși poate în detrimentul portabilității (ce se întâmplă dacă ‘ folosești un smartphone ‘ al unui prieten?)
Răspunde
Nu, nu cred.
Sfaturile reale din acea bandă desenată xkcd sunt să utilizați mnemonice ușor de reținut și generați parola atâta timp cât le puteți aminti . Acestea sunt sfaturi de bază pentru parolă oriunde și vor rămâne întotdeauna adevărate (chiar și metoda citată de Schneier folosește aceste două fapte de bază). Într-adevăr, banda desenată folosește cuvinte obișnuite în engleză, dar implementarea dvs. nu trebuie să fie, nici nu comicul implică că ar trebui.
Desigur, cele mai sigure parole sunt șiruri total aleatorii, cum arată aspectul unui șir MD5 și probabil că puteți utiliza un manager de parole pentru a stoca toate acele parole, dar apoi ce parolă veți folosi pentru acel manager? ¯ \ (ツ) / ¯
Comentarii
- ” Desigur, parolele cele mai sigure sunt șiruri total aleatorii ” NU, vezi pentru o comparație en.wikipedia.org/wiki/Password_strength#Random_passwords
- Nu, ‘ nu este ceea ce recomandă xkcd, vă sugerez să îl citiți din nou – și analiza în întrebarea relevantă aici (legată mai sus).
- Semnătura dvs. ” ¯ \ (ツ) / ¯ ” este o parolă excelentă: scurtă, ușoară de reținut, foarte greu de rupt, greu de detectat ca parolă un jurnal.
- @Daniel Azuelos, … banal pentru a adăuga la o listă de șiruri de utilizare obișnuită …
- @Raestloz O persoană care vorbește o limbă care nu ‘ nu utilizați caractere care se află în intervalul ASCII ‘ nu va folosi o parolă ASCII. Credeți că toți acei oameni din țările asiatice folosesc două tastaturi, una pentru tastarea zilnică și una pentru parole? Spre deosebire de sistemele de operare vechi de treizeci de ani, cum ar fi DOS, toate sistemele de operare moderne ‘ se ocupă foarte bine de Unicode și alte seturi / pagini de caractere și orice site web ar trebui să le accepte (atât timp cât dezvoltatorul nu ‘ nu codifică formularul folosind de fiecare dată un set de caractere aleatoriu sau lasă browserul să aleagă). Parolele sunt doar biți care înseamnă ceva pentru oameni.
correcthorsebatterystaple
, acum este mult mai puțin sigură!correcthorsebatterystaple
, aveți grijă să nu vă conectați la ‘ într-un sistem care o trunchiază în tăcere! O parolă precumcorrecth
este probabil mai ușor de ghicit decâtN#y;f8eR
.