Puncte:0

În ce măsură un număr mare de iterații PKBDF-HMAC-SHA1 compensează o entropie slabă a frazei de acces?

drapel cn

Am pierdut un laptop criptat cu LUKS la sfârșitul anului 2019 și acum încerc să-mi dau seama care sunt șansele ca un atacator foarte sofisticat să poată pătrunde.

Containerul LUKS a fost creat la jumătatea anului 2017 cu setările implicite LUKS1.

CPU-ul pe care l-am folosit atunci era un Intel Core i7-6700K pe care o mai am.

Am rulat niște benchmark-uri cu benchmark cryptsetup care a produs următoarea valoare pentru PBKDF2-sha1.

PBKDF2-sha1 1659139 iterații pe secundă pentru cheie pe 256 de biți

Nu-mi amintesc parola exactă pe care am folosit-o (am prea multe), cu excepția faptului că are cel puțin 14 caractere și conține [a-z0-9] și nu este inclus în niciun dicționar (bifat rockyou2021.txt).

Am găsit un tabel de referință pe GitHub folosind Nvidia GeForce RTX 3090.

Mod hash: 12000 - PBKDF2-HMAC-SHA1 (iterații: 999)
Viteză.#1.........: 9240,9 kH/s (47,48 ms) @ Accel:16 Bucle:499 Thr:1024 Vec:1

Mod hash: 12001 - Atlassian (PBKDF2-HMAC-SHA1) (iterații: 9999)
Viteză.#1.........: 923,3 kH/s (72,49 ms) @ Accel:8 Bucle:1024 Thr:1024 Vec:1

Mod hash: 22600 - Codul de acces al aplicației desktop Telegram (PBKDF2-HMAC-SHA1) (iterații: 3999)
Viteză.#1.........: 328,7 kH/s (63,58 ms) @ Accel:8 Bucle:128 Thr:1024 Vec:1

Pe baza acestor numere am ajuns la concluzia că GPU-ul poate calcula 9249 kH/s pentru 1000 de iterații. Dacă numărul de iterații crește de la 1659 la 1659139, aceasta ar însemna că viteza GPU-ului va scădea la: $\frac{9249 kH/s}{1659}$ = 5575 H/s. Asta înseamnă că un atacator poate verifica efectiv doar 5575 de parole pe secundă cu acel singur GPU.

Parolele posibile bazate pe setul de caractere ([a-z0-9], lungime=14) sunt: $36^{14}$. De dragul simplității, să o tăiem în jumătate, ceea ce ne lasă cu un caz mediu de: $\frac{36^{14}}{2}=3*10^{21}$.

Asta înseamnă că ar fi nevoie în medie de un atacator $\frac{3*10^{21}}{5575}=5*10^{17}$ secunde pentru a găsi parola potrivită care echivalează cu $3*10^{9}$ ani. Asta înseamnă că chiar dacă atacatorul ar avea 1 milion din acele GPU-uri, ar dura totuși 300 de ani pentru a sparge parola.

Întrebările mele sunt:

  1. În ce măsură numărul relativ mare de iterații compensează entropia relativ slabă a parolei mele, luând în considerare un atac de forță brută sau de dicționar asupra unui GPU modern?
  2. Am omis vreun detaliu important în analiza mea?
Puncte:1
drapel in

Spațiul pentru parole nu este considerat mic $36^{14}$ este pentru parole foarte puternice, aceasta este 72 de biți de entropie.

Spațiile mici de parole sunt cele care se fac cu atacuri de dicționar, inclusiv dicționare cu transformări. Pana si XKCD metoda promite doar 44 de biți de entropie.

Este puțin probabil să memorați o parolă aleatorie de 14 caractere, așa că dacă utilizați un manager de parole și folosiți parole aleatoare puternice, chiar și un KDF destul de slab ar fi suficient.

Cu toate acestea, de exemplu, entropia de 44 de biți ar duce la doar câteva sute de ore pe GPU-ul pe care l-ați menționat, pe care majoritatea le consideră insuficiente.

Puteți crește numărul de iterații, dar rețineți că atacatorul are un avantaj, va face loturi, va face bitslicing și GPU și FPGA.Cred că o regulă de bază presupunând că atacatorul are un avantaj x1000 sau chiar x10K este rezonabilă. Dacă utilizați un KDF cu memorie, este posibil să puteți reduce acest lucru și să vă asumați un avantaj mai mic (să zicem 100x). Când creșteți numărul de iterații, vă încetiniți și dvs. și trebuie să vă asigurați că experiența utilizatorului și propriile costuri de calcul rămân rezonabile.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.