Mi piacerebbe sapere / sapere come le altre aziende affrontano il problema dell'archiviazione delle chiavi di crittografia. Voglio crittografare l'indirizzo email dell'utente (e altre informazioni sensibili) ma (perché voglio essere in grado di inviare un'email all'utente) ho bisogno di una crittografia bidirezionale per decrittografarlo.
Ho fatto qualche ricerca ma non la capisco ancora del tutto. è per questo che sono per la tua esperienza.
La domanda, che cosa dovresti usare come chiave di crittografia (come la password con hash) o dove / come dovresti memorizzare una chiave generata.
Sarebbe inutile archiviare la chiave nello stesso database perché se venisse compromessa la chiave sarebbe anche trapelata e i dati sarebbero decifrabili. Ma i dati devono essere accessibili dal programma ...
Quindi stavo pensando ( e per favore condividi la tua opinione / competenza ) su un database sqLite che collega la (bcrypt hashed password + mt_rand stringa di caratteri a 64 bit di chiave di crittografia a lunghezza variabile) a un id_utente. Il file sarà accessibile solo dal codice (o dall'esterno se nginx / linux è compromesso). E se un utente richiede dati crittografati, il sistema usa l'id dell'utente per cercare la chiave di crittografia all'interno del database sqlite e usa quella chiave per decodificare i dati dal database mysql.
Un modo migliore sarebbe che anche io non sarei in grado di accedere ai dati (come l'hashing) ma che il sistema sarebbe in grado di decrittografarlo, ma non penso che sia possibile.
nota a piè di pagina, anche se risolverebbe questo problema lasciando la risposta, per favore condividi anche le risorse , non solo aiuterebbe a risolvere il mio problema. Ma anche per imparare a migliorare la sicurezza.