No lo hace
Solo tiene que ser pseudo aleatorio .
CSRF no es compatible con ataques de fuerza bruta. Considere el vector de ataque:
- El usuario malicioso crea un correo electrónico especial o una página web con HTML que publica en el sitio de interés
- El usuario ha iniciado sesión en el sitio de interés y el ID de sesión se pasa de forma pasiva (es una cookie)
- Se engaña al usuario para que haga clic en el enlace del correo electrónico o página web especialmente diseñado
- El enlace "falsifica" la solicitud. El enlace no tiene que contener el ID de sesión porque está en la cookie. Y no tiene que pasar el token CSRF que se encuentra en el encabezado (se pasa de forma pasiva, es una cookie). Pero tiene que contener el token CSRF en la publicación del formulario.
No hay forma de que un pirata informático engañe a alguien para que haga clic en un enlace cientos de veces. Incluso si se trata de un script que envía una tonelada de solicitudes en un solo clic (suponiendo que el pirata informático haya descubierto cómo hacerlo): los navegadores no permiten solicitudes AJAX de dominios cruzados, por lo que probablemente estamos hablando de una página que contiene cientos de GIFS transparentes o de alguna otra cosa totalmente extravagante), no será capaz de atravesar una gran cantidad de espacio de búsqueda sin un tiempo de espera.
Además, no hay forma de que el atacante determine si el ataque funcionó con un valor en particular: es un ataque de "disparar y olvidar".
Así que la idea de que el token CSRF puede ser forzado con fuerza bruta es, en el mejor de los casos, inverosímil. El hacker tendría que iniciar sesión personalmente, lo que es un ataque completamente diferente.
La única razón por la que necesita cualquier entropía es porque los ataques CSRF tienden a ser enviados a través de spam. Digamos que usted es un idiota y su token CSRF solo tiene 16 bits de entropía, y el pirata informático envió 65,536 correos spam con exactamente el mismo token. 65536/2 ^ 16 = uno de esos ataques realmente tendría éxito. Suponiendo que el 0% de los correos electrónicos afectaron a los filtros de spam, el 100% de los usuarios los abrió y el 100% de los usuarios se registraron en su aplicación en el momento en que hicieron clic en el vínculo malvado.
Aparte de tener la esperanza de succionar a una tonelada de usuarios, no hay forma de que un pirata informático pueda escalar el ataque lo suficientemente grande como para llamarlo un ataque de fuerza bruta con algún significado.