Usar scrypt para cifrar datos en una variable de sesión

1

Digamos que quiero almacenar algunos datos en la sesión del nodo, por ejemplo, como un token de autenticidad. Obviamente, quiero almacenarlo de forma encriptada si va en una cookie, luego descifrarla en un servidor para comparar.

¿Cuál es una forma aceptable de lograr esto? Estaba pensando en simplemente generar una contraseña aleatoria en el inicio del servidor y usar algo como PGP para hacer la traducción.

¿Es esta una solución viable?

    
pregunta dsp_099 12.03.2015 - 01:59
fuente

1 respuesta

2

No. PGP hará que tu sesión sea de lo más grande. Así que no uses PGP. La criptografía asimétrica no es necesaria, ya que el remitente de la información cifrada (quién encripta) y el receptor de la información cifrada (quién debería poder leerla) es la misma entidad (su servidor).

Esto significa que, si desea cifrar algo para almacenar en una cookie, use un cifrado simétrico como AES256 en su lugar.

Pero lo mejor que puede hacer es no almacenar los datos en absoluto en las cookies, en su lugar, almacenarlos en el servidor, generar un "ID de sesión" suficientemente seguro y aleatorio, y vincular el "ID de sesión" al blob de datos en servidor. El "ID de sesión" es lo que se envía a través de la cookie. Dado que la ID de sesión es efectivamente aleatoria, eso no tiene ningún significado particular para nadie más que su servidor, entonces no es necesario que esté cifrada.

También scrypt es una función de derivación de contraseña, no una función de cifrado, y es efectivamente unidireccional.

Para evitar que alguien acapare los Recursos en el servidor, puede agotar el tiempo de espera de las sesiones después de un breve período y también tiene una función que, si una IP específica solicita una nueva sesión, se eliminan todas las sesiones antiguas de esta IP.

    
respondido por el sebastian nielsen 12.03.2015 - 03:17
fuente

Lea otras preguntas en las etiquetas