Puncte:1

Valoarea sării în algoritmul scrypt

drapel gf
cjd

Văd că există o mulțime de întrebări legate de manipularea valorii de sare, dar nimic din ceea ce am văzut până acum nu a clarificat următoarea întrebare.

Când utilizați un KDF, un astfel de scrypt, cred că valoarea sării ar trebui să fie aleatorie și să se schimbe de fiecare dată chiar și pe bază de utilizator (același utilizator generând două chei diferite în momente diferite de timp). Din acest motiv, este sigur să stocați sarea generată aleatoriu într-o depozitare persistentă?

Folosesc scrypt pentru a genera o cheie pentru AES. Nu stochez cheia folosită pentru criptare. Ca atare, pentru a decripta datele, trebuie să folosesc din nou scrypt pentru a genera cheia. Pentru a face acest lucru trebuie să iau parola utilizatorilor (aceasta este introdusă de utilizator de fiecare dată) și sarea. Având în vedere că cheia trebuie să se potrivească cu cheia utilizată pentru criptare, trebuie să fi stocat sarea pentru a deriva din nou aceeași cheie?

Similar cu un vector de inițializare, această sare poate fi stocată în public? Pentru cazul meu de utilizare, șirul criptat și IV vor fi ambele stocate în public, sarea poate fi stocată și așa?

JAAAY avatar
drapel us
Da, toți cei, cu excepția parolei, se numesc parametri publici și pot fi stocați în mod public.
kelalaka avatar
drapel in
De câte ori veți folosi această parolă pentru diferite fișiere? Care este modul de operare de criptare pe care doriți să îl utilizați? Există o mulțime de întrebări/capcane atunci când doriți să criptați fișierele. Chiar și [o actualizare a fișierului poate fi periculoasă dacă nu schimbați cheia...](https://crypto.stackexchange.com/a/84440/18298)
Puncte:3
drapel kr

Scopul sării este de a preveni utilizarea meselor curcubeu. Mai simplu spus, utilizați diferite săruri pentru hashing a diferitelor parole. Sarea nu trebuie să fie secretă. Este o practică comună ca sarea să fie depozitată într-o formă ușor accesibilă.

Pentru a obține aceeași cheie AES cu scrypt, ar trebui să utilizați aceeași intrare. Nu numai sare ar trebui să fie la fel, dar și alți parametri precum numărul de iterații ar trebui să fie la fel și de aceea ar trebui să fie și depozitate. Și acești parametri, precum și sarea nu trebuie să fie secreti.

kelalaka avatar
drapel in
OP vorbește despre o cheie AES, nu despre derivarea parolelor... De asemenea, IV-ul poate fi derivat și împreună cu cheia (nu există nicio mențiune pe IV pe postarea ta)
drapel kr
@kelalaka: Ești sigur? OP spune: *"Folosesc scrypt pentru a genera o cheie pentru AES... Pentru a face acest lucru trebuie să iau parola utilizatorilor (aceasta este introdusă de utilizator de fiecare dată) și sarea"*. Autorul cere utilizatorului o parolă, apoi adaugă sare (presupun că ceilalți parametri sunt niște constante) și generează o cheie, care este apoi folosită pentru criptare/decriptare cu AES. Aceasta este procedura standard în KeePass și în alte instrumente.
drapel kr
@kelalaka: Și uită-te la titlu: OP întreabă și anume despre manipularea sării pentru criptare.
kelalaka avatar
drapel in
Folosiți „Pentru a obține aceeași parolă cu scrypt, ar trebui să utilizați aceeași intrare.” Ar trebui să fie _Pentru a obține aceeași cheie AES cu scrypt, ar trebui să utilizați aceeași intrare._ Pentru partea IV, greșeala mea..
cjd avatar
drapel gf
cjd
Da, acesta răspunde la întrebarea @mentallurg. Deci este sigur să depozitați sarea (precum și IV) în public?
drapel kr
@kelalaka: OK, ai dreptate, mă refeream la „pentru a obține aceeași ieșire, ai nevoie de aceeași intrare”. Dar folosirea cuvântului „parolă” în acest context nu este o idee bună. OP vorbește despre cheia AES, așa că ar trebui să rămânem la ea. Mi-am editat răspunsul. Mulțumesc
drapel kr
@cjd: Da, este sigur să stocați publicul de sare. Dar, așa cum a subliniat *kelalaka* într-un alt comentariu, o sare poate să nu fie suficientă pentru o bună securitate. De exemplu, dacă utilizați aceeași sare pentru mai multe parole, acest lucru va reduce eficiența sării. De asemenea, este important ce faceți exact cu AES, de ex. criptați un fișier cu o anumită parolă o singură dată sau actualizați acest fișier din când în când. De asemenea, este important cât de exact folosești AES, așa cum a cerut *kelalaka*. Astfel, luați în considerare și alte aspecte în afară de sare.

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.