Puncte:0

Cum să protejați o cheie secretă neextractabilă în indexedDB?

drapel cn

Am date criptate în AES-GCM cu cripto API. The vector de inițializare este apoi adăugat la date, formând un șir criptat unic stocat în stocarea locală. În cele din urmă, cheia secretă este stocată în IndexedDB.

Deoarece cheia secretă nu poate fi extrasă, am crezut că era suficient de sigură pentru majoritatea cazurilor de utilizare. După înțelegerea mea, un atacator ar trebui să jefuiască atât stocarea locală, cât și DB-ul indexat, să găsească vectorul de inițializare în interiorul datelor, să-l convertească într-o matrice de buffer și apoi să efectueze direct decriptarea în browser înainte de a trimite datele înapoi la serverul său. . Într-adevăr, se pare că natura neextractabilă a cheii secrete înseamnă că el nu ar putea trimite cheia secretă brută către serverul său și astfel nu ar putea finaliza decriptarea.

Dar mi s-a spus că am greșit foarte mult și că strategia mea a fost de fapt abia mai sigură decât a lăsa toate datele să fie citite direct în stocarea locală.

Deci, cum aș putea îmbunătăți acest flux de lucru? Este chiar atât de nesigur? Ar fi posibilă criptarea și decriptarea cheii secrete datorită unei parole unice furnizate de utilizator? Parola ar fi în a .env fișier și, prin urmare, niciodată expus unui atacator. Cum ai face-o?

Iată cum este generată cheia secretă până acum:

crypto.subtle.generateKey(
      { nume: „AES-GCM”, lungime: 256 },
      fals,
      [„criptare”, „decriptare”]
    );

Multumesc pentru ajutor!

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.