Estoy usando algunas claves secretas para cifrar la fecha sensible. ¿Cuál es la mejor manera / lugar para proteger las claves? ¿En un archivo ubicado en mi servidor? ¿Dentro de la propia base de datos SGBG? O ...?
Estoy usando algunas claves secretas para cifrar la fecha sensible. ¿Cuál es la mejor manera / lugar para proteger las claves? ¿En un archivo ubicado en mi servidor? ¿Dentro de la propia base de datos SGBG? O ...?
Debe almacenar las claves de tal manera que minimice los riesgos de exposición de la clave a terceros no autorizados, al tiempo que permite un funcionamiento eficiente de los sistemas que deben utilizar la clave. Si tal sistema (su "servidor") está bajo control hostil, entonces ha perdido de todos modos. Entonces, la pregunta acerca de dónde se debe almacenar la clave realmente tiene sentido solo con respecto a las violaciones parciales , en las que un atacante obtiene algún acceso a una parte del servidor, no a todo el asunto.
Eso es lo más que se puede decir en general. El contexto importa.
Si su contexto es sobre algún tipo de servidor web, impulsado por algún marco programático (por ejemplo, PHP) con una base de datos SQL para el almacenamiento de datos, podemos argumentar que un tipo muy común de violación parcial es inyección de SQL , que principalmente permite al atacante obtener acceso de solo lectura (o lectura-escritura) a (partes de) la base de datos, sin afectar directamente La seguridad del propio servidor. En ese sentido, se puede decir que la base de datos está "más expuesta" que el resto del servidor; en consecuencia, las claves no deben almacenarse en la propia base de datos. Sin embargo, recuerde que esta es solo una afirmación muy genérica que necesariamente se aplica a su caso específico. El contexto importa .
Aún de forma genérica, podemos afirmar que si su sistema operativo ofrece algunas instalaciones dedicadas al almacenamiento de valores secretos, su uso probablemente sea una buena idea. En un sistema Windows, esto apunta a DPAPI . No está claro si lo ayudará realmente (de nuevo, depende del contexto, el contexto importa), pero no debería causar daño.
Lea otras preguntas en las etiquetas encryption