¿Es seguro usar una extensión Php escrita personalizada para manejar las claves de hashing (db)?

0

Estoy diseñando la seguridad de una nueva aplicación e intento averiguar cuál es la mejor manera de almacenar las claves del cifrado AES de mysql en el sistema de archivos. He visto varias opciones como almacenarlo fuera del directorio web en un directorio restringido en el sistema de archivos. También puede almacenar la clave en la memoria del sistema (¿cómo hace esto y cómo la utiliza en php / mysql)? Mi opinión fue: ¿por qué no escribir una extensión php personalizada con una función de hash y también el almacén de claves, y restringir el uso de estas funciones personalizadas en la dirección IP de los servidores? Entonces esta extensión personalizada se compila y se carga en Apache.

¿Es seguro lo anterior? ¿Se puede descompilar una extensión php? ¿Qué sucede si un pirata informático obtiene acceso al servidor y ejecuta un script php que hace uso de esta función personalizada? (o como la otra opción: lee la clave almacenada en el sistema de archivos)

Por cierto: el servidor web + db y la base de datos segura serán 2 servidores separados.

Espero que alguien pueda ayudar! Gracias :)

    
pregunta Symtex 11.03.2013 - 10:26
fuente

1 respuesta

2

Una extensión de PHP es solo un código compilado. Si el atacante puede ver el código compilado, entonces puede, de hecho, descompilarlo. Una clave almacenada en el código compilado que el atacante puede ver, no se puede considerar como realmente secreto . De lo contrario, DRM sería un problema resuelto.

Almacenar la clave en un "directorio restringido" es una buena idea (no desea que la clave sea recuperable con un simple subvertido GET ); el uso de una extensión personalizada y la colocación de la propia DLL de extensión en ese directorio restringido no ofrecerá sustancialmente más seguridad. Esa extensión sería el agregado de la clave y el algoritmo criptográfico que usa la clave. Es una práctica razonable suponer que el atacante ya conoce el algoritmo (que es el principio de Kerckhoffs ), por lo que vuelve a almacenar la clave en ese directorio.

Por lo tanto, recomendaría la extensión personalizada, ya que no ofrece beneficios de seguridad, pero agrega complejidad (y la complejidad es mala).

    
respondido por el Thomas Pornin 11.03.2013 - 12:30
fuente

Lea otras preguntas en las etiquetas