Puncte:0

Gestionarea cheilor principale utilizate în PBKDF2 și HMAC (stocare, rotire)

drapel in

Cazul meu de utilizare:

Am câteva chei principale, le folosesc pe fiecare pentru o anumită operațiune (de exemplu, una pentru criptarea datelor utilizatorului și alta pentru crearea semnăturilor JWT etc...).

Folosesc aceste chei principale în două lucruri specifice:

  1. în PBKDF2 ca intrare + o sare pentru a obține cheile simetrice și nonces (iv) și apoi stocați sarea numai cu textul cifrat în baza de date
  2. în HMAC ca cheie secretă (piper)

Trebuie să rotesc aceste chei principale când vor îmbătrâni.

Întrebări pentru a clarifica ceea ce trebuie să știu:

  1. Când aceste chei principale devin vechi sau trebuie rotite?
  2. Cum să rotiți aceste chei și, de asemenea, să recuperați cheile vechi de la noile chei pentru a decripta datele criptate sau pentru a verifica hashurile care au fost făcute de aceste chei vechi? Cred că ar trebui să fac un bit-XOR pe vechea cheie cu noua ei cheie corespunzătoare
  3. În prezent, nu am privilegiul de a folosi HSM-uri (Module de securitate hardware) sau enclave securizate, stocarea acestor chei principale în fișiere de lângă API-ul aplicației este suficient de sigură? Ce lucruri ar trebui să țin cont?
  4. Sunt bine cu PBKDF2 sau mai bine aș folosi un HKDF? Dacă da, ce alte recomandări ar trebui să fac când folosesc HKDF?
  5. Ce lungime este recomandată pentru cheia principală într-un astfel de caz de utilizare?
  6. Există fluxuri, probleme sau îmbunătățiri în întregul lucru?
Swashbuckler avatar
drapel mc
De ce mai exact încerci să te aperi de unde trebuie să rotiți cheia în acest fel? În general, o rotație a cheilor implică utilizarea cheilor actualizate pentru date noi, dar nu încercarea de a proteja din nou datele existente? Se pare că doriți să actualizați acea protecție existentă, dar fără recriptare. În funcție de ceea ce încercați să vă protejați, acest lucru poate fi imposibil (cel puțin din cunoștințele mele).
Mohamed Waleed avatar
drapel in
@Swashbuckler nu este o practică bună să rotiți cheile în mod regulat? De asemenea, știu că aceste chei au un ciclu de viață limitat. Tipul de criptare pe care îl fac este criptarea datelor private ale utilizatorilor într-un serviciu normal, iar tipul de hashing este generarea de semnături pentru token-uri pentru utilizatori și hashing-ul parolelor acestora și orice alte date care trebuie să fie private și nu ar trebui să știu
Mohamed Waleed avatar
drapel in
@Swashbuckler Știu că ciclul de viață al unei chei în general este legat de utilizarea acesteia. Am chei care sunt folosite doar pentru a cripta unele date dintr-o bază de date, când ar trebui să le rotesc? când există o scurgere de date? De asemenea, am câteva chei care sunt folosite foarte des în hashing și crearea de semnături pentru token, când ar trebui să le rotesc și pe acestea?
Mohamed Waleed avatar
drapel in
@Swashbuckler Mă gândesc la rotația tastelor, deoarece cred că este util să îngreuneze un atacator să obțină informații și, de asemenea, voi găzdui o astfel de aplicație pe un vps
Mohamed Waleed avatar
drapel in
@Swashbuckler Sunt bine cu datele criptate cu cheile vechi, întreb cum să rotesc cheile pentru a actualiza date noi cu o cheie nouă și, de asemenea, să pot decripta datele vechi fără a stoca cheia veche completă făcând un lucru de genul un XOR de exemplu
SAI Peregrinus avatar
drapel si
Cheile de criptare TREBUIE să aibă o entropie ridicată (foarte aproape 1 bit de entropie per bit de date). Asta înseamnă că nu pot fi comprimate, așa că TREBUIE să stocați întreaga cheie pentru a decripta datele vechi dacă nu recriptați cu o cheie nouă. Aceasta este [teorema de codificare a sursă a lui Shannon](https://en.wikipedia.org/wiki/Shannon_source_coding_theorem).

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.