Să spunem că am o parolă. Și este sigur. Dar este un șir de 10 caractere.
Dacă presupunem că toate cele 10 caractere sunt ASCII (nu extinse), veți obține cel mult Spațiu de căutare pe 64 de biți pentru atacator. Aceasta înseamnă că utilizați efectiv o cheie pe 64 de biți pentru AES-128. Regula este
- Nu numai dimensiunea cheii, ci și entropia sursei cheii este importantă.
Modul comun este generarea de 128 de biți aleatori uniformi pentru cheia AES-128. Acest lucru este ușor dacă utilizați un schimb de chei, cum ar fi DH (în cele din urmă, și el hash - Se scurge Legendre) sau ECDH (hash it, de asemenea, punctele nu sunt aleatoare uniforme)
Dacă utilizați o parolă, atunci aveți nevoie și de o sursă bună de entropie pentru parolele dvs. Utilizare Diwewire cu 10 cuvinte pentru a obține entropie de 128 de biți. Odată ce ai acest lucru, nu contează cu adevărat să folosești algoritmi de hashing a parolei pentru a încetini atacatorii, deoarece ai deja 128 de biți (mai trebuie să-l hashing, deoarece este foarte lung). Dacă utilizați hashingul parolei, atunci metoda atacatorului va fi cea mai rapidă; vor forța brută cheia, nu parola.
Acum, dacă nu aveți șansa de a crește sursa de entropie a parolei dvs., atunci cu siguranță aveți nevoie de algoritmi de hashing a parolei precum Argon2 și hashing Balloon. Au parametri ca
- repetare; crește timpul de atac proporțional cu iterația.
- duritatea memoriei; elimină/reduce căutarea masivă de parole a căutării ASIC/PFGA/GPU unde memoria nu este legată ca procesoare
- și, contor de fire; reduce paralelizarea programelor de căutare a parolelor.
Toți parametrii trebuie ajustați pentru a vă atinge securitatea țintă. De exemplu, dacă parola dvs. are securitate de 100 de biți, atunci aveți nevoie $2^{28}$ iterație pentru a forța atacatorul să caute pe 128 de biți.
Cum se creează o cheie pentru AES într-o lungime a cheii de 192 de biți dintr-o parolă?
Folosiți 15 cuvinte Dicewire, tăiați-l apoi tăiați la 192 de biți sau
Folosește-ți parola cu salt și hash-o cu algoritmi de hashing a parolei precum Argon2 cu parametri bine reglați. Sunt deja proiectate și le puteți găsi biblioteci acea ieșire lungimea dorită (rețineți că Securitatea lui Argon2 este delimitată de 512 biți ). Și;
- Utilizați sare unică pentru fiecare cheie generată
- Folosiți cât mai multă entropie mai mare
- Utilizați cât mai mulți parametri mai mari