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).