Esta es una pregunta que respondo en casi todas las reuniones a las que asisto.
El mayor desafío del cifrado es la gestión de claves. En otras palabras, el cifrado es solo un subproducto de una buena gestión de claves.
La mejor manera de hacer esto es usar un Administrador de claves (Gemalto KeySecure, Vormetric Key Manager son pocos para nombrar) O usar un HSM (Módulo de seguridad de hardware).
- ¿Por qué Netflix insiste tanto en hacerte poner tu número de teléfono en la cuenta?
- ¿Cómo podría eliminar el virus big farm y big bang de mi computadora?
- ¿Se pueden usar blockchains para crear sistemas de autenticación seguros?
- ¿Bootcamp le pide su contraseña de firmware?
- ¿Qué tan fácil es para un empleado promedio de Google ver mi historial de búsqueda?
Key Manager generará y almacenará la clave dentro de sí mismo. Y en muchos casos también realizará cifrado / descifrado en su memoria segura.
Una vez que elija un administrador de claves, puede decidir cifrar los datos en cualquier nivel
- nivel de aplicación: use API para cifrar los datos almacenados antes de que se almacenen en la base de datos.
- Nivel de base de datos: use TDE (si está disponible) o use cifrado de nivel de columna (si está disponible).
- Carpeta de archivos: si no se pueden realizar más de dos, cifre la base de datos a nivel de carpeta. Esta opción no es encriptar los datos en la base de datos sino encriptar la carpeta de la base de datos.
En todos los casos anteriores, ni la aplicación ni la base de datos tienen acceso completo a las claves. En caso de que alguien copie todo el servidor de la base de datos, nunca podrá recuperar los datos, ya que la clave con la que está cifrada se encuentra en el Administrador de claves.