Almacenar la clave maestra en el servidor de aplicaciones binario

3

Imagine que tiene una clave maestra para cifrar / descifrar los datos guardados en su base de datos de su servicio de aplicaciones. ¿Cuál es el riesgo de tener esta clave incrustada en el código de servicio de la aplicación para almacenar esta clave en los archivos binarios del servidor de la aplicación? ¿Pueden los piratas informáticos obtener esta clave del binario de su servidor de aplicaciones?

Si no, ¿cuál es la mejor manera de proteger esta clave maestra si está ejecutando en la nube?

El lenguaje utilizado es C.

    
pregunta iCode 07.05.2014 - 13:26
fuente

2 respuestas

5

Los piratas informáticos pueden obtener esta clave cuando obtienen acceso al servidor binario.

Cuando no hay ninguna razón por la cual los usuarios necesiten un acceso legítimo a los archivos binarios del servidor (que debería ser el caso cuando interactúan con el servidor a través de la red), debería ser posible reforzar el servidor lo suficiente para hacer que el acceso sea imposible.

Pero tenga en cuenta que cuando codifica una clave secreta en su aplicación, cualquier persona que tenga acceso al código fuente puede pasar la clave a un tercero, de manera intencional o accidental. Por esa razón, sería mucho más inteligente leer la clave de un archivo de configuración. De esa manera, el equipo de desarrollo puede trabajar con su propia clave de desarrollo, mientras que el servidor de producción usa una clave diferente que solo está disponible para el administrador de sistema que implementa y mantiene el servidor en producción.

Otra cosa que podría morderte es usar C para una aplicación de servidor relevante para la seguridad. No quiero iniciar un lenguaje de programación flamewar, pero el lenguaje de programación C es conocido por ciertas características , que ofrece seguridad para el rendimiento y conduce fácilmente a vulnerabilidades como desbordamientos de búfer que permiten el acceso de memoria arbitrario o incluso código. ejecución. Un error descuidado en una parte completamente no relacionada de su código de red podría permitir fácilmente que un atacante extraiga la memoria que almacena su clave (no importa si está codificada o leída de un archivo de configuración). Pero cuando insiste en escribir una aplicación que sea relevante para la seguridad en C, al menos tenga cuidado con ciertas funciones como memcpy , strcpy , sprintf y varias otras que tratan con matrices y no realizan encuadernación automática. verificación (qué, cómo y por qué es suficiente para otra pregunta).

    
respondido por el Philipp 07.05.2014 - 15:02
fuente
2

No debería ser peor que almacenarlo en un archivo de configuración en el servidor. Desafortunadamente, si alguien obtiene el control de su servidor, no será demasiado complicado para ellos encontrar las claves en ninguno de los dos casos, pero no hay ninguna razón en particular para que incrustarlo en el programa deba dañar su seguridad en comparación con el uso de un servidor. archivo de configuración almacenado en otro lugar en el servidor. Simplemente tampoco gana nada.

    
respondido por el AJ Henderson 07.05.2014 - 15:27
fuente

Lea otras preguntas en las etiquetas