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:
- î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
- î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:
- Când aceste chei principale devin vechi sau trebuie rotite?
- 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
- Î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?
- 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?
- Ce lungime este recomandată pentru cheia principală într-un astfel de caz de utilizare?
- Există fluxuri, probleme sau îmbunătățiri în întregul lucru?