¿El token aleatorio y la clave de confirmación de correo electrónico de 10 caracteres son suficientes?

3

Tengo una función que devuelve teclas aleatorias que no se pueden descifrar con los siguientes caracteres: a-z A-Z 0-9.

He establecido la longitud de la clave en 10 y la estoy usando para mis tokens de formulario para evitar el CRSF y usaré la misma función también para generar claves de confirmación de correo electrónico.

Mi pregunta es si eso será lo suficientemente seguro para usar?

Los tokens del formulario se vincularán a una sesión de usuario, y las claves de confirmación del correo electrónico se almacenarán hasta 24 horas antes de que se destruyan. Aparte de eso, no mantendré un registro de ellos.

Me he dado cuenta de que hay muchos sitios que utilizan claves de confirmación extremadamente largas con una longitud de entre 30 y 40 caracteres. En mis ojos eso parece excesivo.

    
pregunta Kid Diamond 22.04.2014 - 19:54
fuente

2 respuestas

1

Si agrega un período de validez limitado (como 20 minutos) para estas claves (csrf, confirmación por correo electrónico), diría que es suficiente.

También esto, suponiendo que no guardes ningún historial de las claves.

    
respondido por el user43488 22.04.2014 - 20:05
fuente
1

"Lo suficientemente seguro para usar": ¿Lo suficientemente seguro para usar para qué? ¿Eres un banco? Sitio web de salud?

La pregunta "suficientemente segura" necesita un contexto y una comprensión de su apetito por el riesgo. Si vendes widgets de $ 2 y eres un temerario, entonces 10 charters está bien. Si está ejecutando algo más sensible y un token de 10 caracteres lo mantendrá despierto por la noche, entonces no es suficiente.

La otra cosa que no entiendo es por qué 20 (o 40 (u 80)) es demasiado. No soy un fanático de hacer diseños de seguridad basados en la estética. Los bytes son bastante libres, ¿quién no va por ello? Si está operando en el tamaño en el que 10 vs 20 creará problemas de escala para usted, entonces valdría la pena el examen.

Ten en cuenta que la tecnología avanza. Adivinar un valor de 10 caracteres puede ser lento hoy, pero factible dentro de 3 años. Vaya a lo grande y protéjase contra la computación cada vez más rápida y económica (lo que siempre tiene).

    
respondido por el u2702 22.07.2014 - 00:55
fuente

Lea otras preguntas en las etiquetas