Estoy considerando las opciones de cifrado para un nuevo proyecto de Sybase (solo con orientación interna, en nuestra intranet) para un cliente que tiene una política de seguridad que requiere que todos los datos confidenciales utilicen el cifrado de base de datos y solo esté disponible para unos pocos de confianza. Estoy pensando que el cifrado de Sybase es la estrategia equivocada porque a) los dba pueden ingresar fácilmente, yb) si y cuando migramos a SQL Server u Oracle, no quiero tratar con diferentes estrategias de cifrado.
Por lo tanto, estoy pensando en mantener una sola tabla de datos confidenciales y cifrar esa columna (cifrado simétrico) en mi código Java antes de almacenarlo en la base de datos.
Ahora, es mejor que los campos encriptados no cambien su clave de encriptación, excepto en un entorno muy controlado, lo que para mí significa "nunca". Así que será una contraseña permanente.
La pregunta es, dónde guardarlo. Si está en un archivo de propiedades, cualquier desarrollador con acceso a nuestro repositorio de Git podría verlo.
Podríamos codificarlo en el código fuente, pero buena ley, esa es una mala práctica.
¡Podríamos generarlo en la fuente, como el 10º Fibonacci o 3! +8! eso sería difícil de localizar, pero aún está bastante expuesto.
Podríamos hacer que las sa lo mantengan en el entorno, pero ¿dónde lo archivan para futuras consultas?
Tantas malas elecciones. ¿Hay alguna buena?