Cómo almacenar una clave secreta para el cifrado

Estoy construyendo un sistema de autenticación en el que parte de la información se almacena cifrada para que no pueda ser legible por humanos. Debido a que está encriptado, necesito usar el generateSecretKey() función (ya que no estoy usando el método CFMX_COMPAT). Estoy nervioso de simplemente crear esto cuando un usuario está registrado en el sistema y usarlo todo el tiempo, así que pensé en crear uno nuevo cada vez que el usuario inicia sesión, pero no estaba seguro de si eso era realmente necesario. Ya estoy llamando a un método para actualizar la marca de tiempo de inicio de sesión de los usuarios en cada inicio de sesión, por lo que agregar una nueva clave secreta no está mal, pero quería asegurarme de no excederme, así que mi pregunta es la siguiente:

Al generar claves secretas para que los usuarios cifren información, ¿es mejor crear una nueva cada vez que inician sesión o simplemente crear una al registrarse y usarla para siempre?

preguntado el 22 de mayo de 12 a las 15:05

1 Respuestas

Tu respuesta (como le dijeron los elfos a Frodo) es tanto sí como no. O tal vez en las palabras de Bob Dole cuando le preguntaron si usaba boxers o breifs... "depende".

Lo que está preguntando está estrictamente relacionado con los requisitos. Aparentemente, la segunda opción, "generar una nueva clave", sería más seguros que reutilizar la misma clave. En el primer caso tienes una clave por usuario. En el segundo tu clave es más efímera y desaparece tras una sesión. Así que la verdadera pregunta es, ¿qué nivel de seguridad es suficientes para sus necesidades.

La compensación es que el código es un poco más complicado, el servidor tiene que trabajar un poco más y no puede persistir sesiones (porque reiniciar el servidor probablemente matará sus claves). También puede dificultar cosas como los informes de auditoría, ya que parece que está cifrando algún tipo de registro o información de tipo de pista de auditoría.

Agregaría que si almacena estas claves junto con los datos, es mejor que no se moleste en generar otras nuevas. Ya has degradado cualquier beneficio que podrías haber obtenido al poner la llave debajo de la alfombra de bienvenida;)

Espero que esto ayude... siento ser vago.

contestado el 22 de mayo de 12 a las 17:05

Eso no fue tan vago y fue exactamente lo que pensé que sería la respuesta. Decidí generar una nueva clave para cada inicio de sesión, ya que eso brinda más seguridad. Los datos que estoy cifrando son en realidad un poco de información de la sesión que quiero asegurarme de que no se pueda leer en las cookies o en cualquier otro lugar donde alguien pueda acceder a ellos. - dave largo

Genial... me alegra apoyar tu solución :) - marca un kruger

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.