Estamos almacenando datos confidenciales en MySQL, y quiero usar AES_ENCRYPT (datos, 'my-secret-key-here') y luego AES_DECRYPT que funciona muy bien. Mi mayor pregunta es ¿cómo puedo asegurar la clave? Anteriormente yo sólo eras almacenar la clave en un archivo web PHP, así que algo como:Cómo almacenar datos de manera segura en MySQL usando AES_ENCRYPT
define("ENCRYPTION_KEY", 'my-secret-key-here');
Esto realmente no funciona, sin embargo, como nuestro servidor MySQL y el servidor web son la misma máquina física, por lo que si alguien obtiene acceso para el servidor, pueden obtener tanto los datos cifrados almacenados en MySQL como la clave.
¿Alguna idea? Estoy pensando que necesito mover la llave a un servidor separado y leerla de forma remota. O bien, ¿qué hay de generar la clave de cifrado de forma dinámica para cada dato? Por ejemplo, tomar el customer_id y ejecutar md5 en él, y luego usarlo como la clave.
¿Podría decirnos cuáles serían los permisos de archivos específicos? – mozgras