Por Que Importa la Aleatoriedad Criptografica
Los tokens predecibles son una vulnerabilidad de seguridad importante. Si un atacante puede adivinar un token de sesión, puede secuestrar cuentas de usuario. Math.random() usa algoritmos como xorshift128+ cuyo estado interno puede recuperarse de salidas observadas. La función getRandomValues() de la Web Crypto API extrae del pool de entropía del sistema operativo, recolectando aleatoriedad de eventos de hardware, haciendo la predicción computacionalmente imposible.
Entendiendo Conjuntos de Caracteres y Entropía
La entropía mide la impredecibilidad de un token en bits. Cada carácter contribuye log2(tamaño_conjunto) bits. Los tokens alfanumericos usan 62 caracteres dando unos 5.95 bits por carácter. Los tokens hex usan 16 caracteres dando exactamente 4 bits por carácter. Para un objetivo de 128 bits de seguridad, necesitas 22 caracteres alfanumericos o 32 caracteres hex. Tokens más largos con conjuntos más grandes proporcionan exponencialmente mas protección.
Mejores Prácticas de Generación de Tokens
Siempre usa generadores de números aleatorios criptograficamente seguros para tokens de seguridad. Nunca truncar ni modificar tokens después de generarlos ya que esto puede reducir la entropía. Almacena tokens de forma segura usando hashing para almacenamiento en base de datos. Establece tiempos de expiracion apropiados para tokens de sesión. Usa tokens diferentes para distintos propósitos — nunca reutilices una clave API como token de sesión.
Formatos Comunes de Tokens y Estandares
Diferentes aplicaciones requieren diferentes formatos de token. UUID v4 usa 122 bits aleatorios en un formato hex específico. Los tokens JWT codifican claims con una firma aleatoria. OAuth2 usa tokens portador opacos que deberían tener al menos 128 bits de entropía. Las claves API de base de datos a menudo usan codificación Base64 o alfanumerica para seguridad URL. Elige el formato que mejor se adapte a tu aplicación.





