La crittografia AES 256 supporta una chiave master e le chiavi generate (time-bombed)?

1

Ho uno scenario in cui i dati semi-sensibili [1] per un'applicazione Web aziendale devono essere archiviati nella memoria localizzata del browser (il DB indicizzato deve essere specifico, tramite JavaScript).

L'intenzione è crittografare i dati ( AES 256 ) a livello di server con una chiave / passphrase " master ", ma poi inviare un "bombardamento temporale" generato che consente di decrittografare i dati ... ma solo per un certo periodo di tempo, ad es 2-4 ore.

Sono stato indotto a credere che sia possibile - tuttavia non ho trovato alcuna documentazione che indichi come generare chiavi temporanee.

Se questo concetto è possibile, sarebbe utile un collegamento a, o l'indicazione di ciò che la chiamata API / metodo sarebbe chiamata. Se questo è possibile, ma solo in altri schemi di crittografia (ad esempio SHA-512?), Sarei grato per una spinta nella giusta direzione.

[1] - Nessuna carta di credito, materiale finanziario o altro. Solo cose che l'utente potrebbe non volere che una persona casuale che cammina sia in grado di leggere. Sì, sono pienamente consapevole del fatto che "sicurezza" e "JavaScript" non dovrebbero essere pronunciati nella stessa frase, ma si tratta di offerte HTML5.

    
posta David 11.05.2015 - 22:54
fonte

1 risposta

4

In primo luogo, AES-256 in particolare: AES-256 è un criptosistema simmetrico. La decrittazione e la crittografia utilizzano la stessa chiave; se si cripta roba con una chiave master, si deve dare quella chiave master a qualsiasi cosa decifri la roba oppure non può decifrare la roba. Potresti aver letto delle chiavi master e di sessione, ma si tratta di cose che accadono prima della crittografia AES - per decodificare l'output di AES-Encrypt(k,m) , il client deve sapere k .

In secondo luogo, per la decrittografia basata sul tempo: gli algoritmi di crittografia e decrittografia sono funzioni matematiche. Non hanno idea di un'ora; non possono essere costretti a lavorare in un modo oggi e in un modo diverso in sei settimane. Una funzione accetta un input e fornisce un'uscita; dà sempre lo stesso risultato se viene fornito lo stesso input, indipendentemente da dove o quando viene eseguito. Dal momento che né la chiave né il testo cifrato si deteriorano nel tempo a meno che non lo si distrugga attivamente, non c'è modo di avere una decrittazione "time-bombed" che avviene interamente sul lato client. Questo non è specifico per AES; nel sistema di crittografia ogni , se disponi delle informazioni necessarie per decrittografare i dati ora, puoi utilizzare tali informazioni tutte le volte che vuoi.

L'unico modo per ottenere una sorta di crittografia a bomba a orologeria è di fare in modo che il client non abbia semplicemente tutte le informazioni di cui ha bisogno per decifrare. Hai bisogno di un sistema in cui non possa decifrare senza contattare un server che controlli e ottenere informazioni che altrimenti non potrebbero essere rilevate. Anche in questo caso, se tali informazioni sono memorizzate localmente, un utente malintenzionato non è tenuto a contattarti per utilizzarlo una seconda volta, a meno che non venga nuovamente crittografato i dati.

    
risposta data 12.05.2015 - 00:03
fonte

Leggi altre domande sui tag