Para proteger la información de identificación personal (PII) en una base de datos SQL, hemos implementado el cifrado a nivel de campo. Sin embargo, debemos permitir la búsqueda de texto completo en algunos de esos datos.
Una idea que estaba considerando era crear un índice de búsqueda de Lucene de los valores no cifrados, pero asegurando que todos los campos que contienen PII estén indexados pero no almacenados.
El proceso funcionaría así:
- El usuario envía, por ejemplo, un número de identificación nacional parcial en un formulario de búsqueda en la aplicación.
- La aplicación envía la consulta a Lucene.
- Lucene devuelve una colección de documentos. Los documentos no contienen ninguna PII; más bien, cada documento contiene el valor PK del registro correspondiente en la base de datos SQL.
- La aplicación recupera los registros correspondientes de la base de datos y descifra los valores para mostrarlos al usuario.
Sin embargo, esto deja abierta la pregunta, si alguien tuviera acceso de lectura a los archivos de índice de Lucene, ¿podrían reconstruir los valores sin cifrar?