Protegiendo tokens de autenticación de sesión

0

Estoy creando un token de autenticación de sesión y lo envío a la aplicación cliente. Cualquier dato de usuario, etc., está asociado a este token en la base de datos, por lo que el token no contiene información confidencial.

¿Es suficiente crear un token aleatorio? Un tipo de ataque que se me ocurrió es solo tokens de fuerza bruta. ¿Cómo puedo prevenir eso? Encriptar el token parece ser igual de susceptible a tal ataque. Tal vez HMAC?

    
pregunta John L. 02.01.2017 - 10:59
fuente

1 respuesta

1

No es necesario ningún cifrado, HMAC o cualquier otra cosa tan sofisticada como esa. Sin embargo, hay algunas cosas en las que debes pensar:

  • La protección contra la fuerza bruta es la entropía. Elija un número aleatorio de un espacio lo suficientemente grande y un atacante necesitaría milenios para adivinar uno correcto. OWASP recomienda al menos 128 bits.
  • Asegúrese de usar un PRNG criptográficamente seguro para generar las ID de sesión, de modo que no haya un patrón en el generado. ID de sesión. Si utilizas un PRNG incorrecto, un atacante puede adivinar las próximas ID en función de las ID anteriores.
  • Ya que no está directamente relacionado con la generación de tokens, no entraré en detalles al respecto, pero asegúrese de pensar en cosas como la fijación de sesión, los indicadores HTTP y seguros, etc. OWASP tiene una buena hoja de trucos .
respondido por el Anders 02.01.2017 - 11:10
fuente

Lea otras preguntas en las etiquetas