Esigenza: Devo essere in grado di memorizzare dati utente crittografati AES (voci di diario) nel mio database e tali voci devono essere ricercabili in testo semplice.
Problema: MySQL invia query ai suoi log in testo semplice.
Cronologia: ho già realizzato il comportamento desiderato lasciando che MySQL gestisca la crittografia e la ricerca con AES_DYCRYPT
e LIKE
, ma significa che MySQL sta emettendo le voci dei miei utenti insieme al mio AES digita il testo in chiaro nei suoi registri.
Possibile soluzione: ho tentato di spostare il mio passo di crittografia sul server prima di inviare dati a MySQL, ma non di essere in grado di gestire la decrittografia del DB e quindi la ricerca in testo semplice complica davvero le cose. Non voglio dover inserire tutte le voci di un utente specifico e quindi filtrarle in base alla query di testo dal server.
Domanda: Quanto è grande il buco della sicurezza nel fatto che MySQL restituisce tutte le query ai log in testo normale quando decide di utilizzare la funzione AES_ENCRYPT
di MySQL? Dovrei semplicemente usare le funzioni di crittografia di MySQL così posso anche usare la sua funzione LIKE
, o dovrei cifrare sul server e cercare altre soluzioni come la memorizzazione di un indice di parola hash come una nuova colonna, così posso ancora fornire una sorta di testo ricercare?
Devo notare che sto usando una soluzione MySQL ospitata che, al prezzo che sto pagando attualmente, non mi consente di gestire da solo le impostazioni di amministrazione. La società di hosting ha accesso ai log.