Per proteggere le informazioni personali identificabili (PII) in un database SQL, abbiamo implementato la crittografia a livello di campo. Tuttavia, dobbiamo consentire la ricerca di testo completo rispetto ad alcuni di questi dati.
Un'idea che stavo considerando era la creazione di un indice di ricerca Lucene dei valori non crittografati, ma assicurando che tutti i campi contenenti PII siano indicizzati ma non memorizzati.
Il processo funzionerebbe in questo modo:
- L'utente invia per esempio un numero ID nazionale parziale in un modulo di ricerca nell'applicazione.
- L'applicazione invia la query a Lucene.
- Lucene restituisce una raccolta di documenti. I documenti non contengono alcuna informazione personale; piuttosto ogni documento contiene il valore PK del record corrispondente nel database SQL.
- L'applicazione recupera i record corrispondenti dal database e decodifica i valori da visualizzare all'utente.
Tuttavia, questo lascia aperta la domanda, se qualcuno dovesse ottenere l'accesso in lettura ai file di indice di Lucene, potrebbe ricostruire i valori non crittografati?