¿Es seguro usar generadores de contraseñas en línea? Cómo comprobarlo tú mismo
"¿Es seguro generar una contraseña en un sitio web cualquiera?" es una pregunta justa — le estás pidiendo a una herramienta que no controlas que produzca un secreto que estás a punto de confiar a tus cuentas. La respuesta honesta es: depende completamente de cómo funcione la herramienta, y no tienes que confiar en la palabra de un sitio. Este artículo explica qué puedes comprobar tú mismo.
Resumen
- El riesgo real no es la contraseña en sí — es si el sitio transmite lo que genera a un servidor, donde podría quedar registrado.
- Puedes verificarlo tú mismo: abre las herramientas de desarrollo de tu navegador, ve a la pestaña Red, genera una contraseña y observa si se dispara alguna solicitud.
- Un generador genuinamente del lado del cliente produce cero actividad de red al generar una contraseña — el JavaScript se ejecuta enteramente en tu navegador.
- Prefiere herramientas que declaren explícitamente usar la Web Crypto API (
crypto.getRandomValues()) frente a las que no revelan en absoluto su fuente de aleatoriedad.
Respuesta breve
Un generador de contraseñas en línea es seguro de usar si — y solo si — genera la contraseña enteramente en tu navegador y nunca la transmite a ningún sitio. PassGenerate funciona así: la generación ocurre localmente a través de la Web Crypto API, y puedes verificarlo tú mismo en menos de un minuto usando las herramientas de desarrollo integradas en tu navegador, sin tener que confiar en una afirmación en un sitio web.
Cómo verificar un generador tú mismo
No necesitas ser desarrollador para hacer esta comprobación:
- Abre el sitio del generador de contraseñas.
- Abre las herramientas de desarrollo de tu navegador (F12, o clic derecho → Inspeccionar, en la mayoría de los navegadores).
- Haz clic en la pestaña Red.
- Genera una contraseña en la página.
- Observa la pestaña Red. Si es una herramienta genuinamente del lado del cliente, verás que no se dispara ninguna solicitud nueva cuando se genera la contraseña — no se envía nada a ningún sitio. Si ves que sale una solicitud hacia un servidor justo cuando haces clic en generar, vale la pena investigar: revisa qué datos envía en el cuerpo de la solicitud.
Esto funciona porque el JavaScript que se ejecuta en tu navegador puede hacer todo el trabajo localmente (calcular la contraseña aleatoria y mostrarla, punto) o enviar datos a un servidor y esperar una respuesta. La pestaña Red te muestra cuál de las dos está ocurriendo realmente — no es algo que un sitio pueda falsificar sin que te des cuenta, porque estás inspeccionando el tráfico real que envía tu navegador.
Qué significa técnicamente "generación del lado del cliente"
Un generador de contraseñas genuinamente del lado del cliente usa la propia Web Crypto API del navegador, específicamente crypto.getRandomValues(), para producir bytes aleatorios criptográficamente seguros, y luego asigna esos bytes al conjunto de caracteres que elegiste, todo en JavaScript ejecutándose en tu dispositivo. Nada de este proceso requiere — ni se beneficia de — una solicitud de red. Si una herramienta necesita que tu navegador hable con un servidor para "generar" una contraseña, eso es arquitectónicamente innecesario para la tarea, lo cual en sí mismo merece ser cuestionado.
Señales de alerta a tener en cuenta
- Sin fuente de aleatoriedad revelada. Si un sitio no dice cómo genera la aleatoriedad, no puedes verificar que use un CSPRNG en lugar de un método más débil como
Math.random(), que es lo suficientemente predecible en algunos motores como para reconstruirse a partir de salidas observadas — inadecuado para cualquier cosa sensible a la seguridad. - Actividad de red durante la generación. Confirmado mediante la comprobación de herramientas de desarrollo anterior. Aunque el sitio afirme no registrar nada, si hay una solicitud, existe la oportunidad de que quede registrada, ya sea intencionalmente o por un error del lado del servidor.
- Captura de cuentas o correo electrónico antes de poder usar la herramienta. Un generador de contraseñas no tiene ninguna razón legítima para necesitar tu dirección de correo electrónico para generar una cadena aleatoria.
- Scripts de terceros excesivos. Una carga pesada de tecnología publicitaria o herramientas de análisis en una página que maneja secretos aumenta la superficie de ataque — más código de terceros ejecutándose en la página significa más oportunidades para que un script comprometido intercepte lo que hay en la página, incluso si el generador en sí es del lado del cliente. Esto no es una preocupación hipotética: en junio de 2024, el CDN de Polyfill.js, ampliamente usado, fue comprometido, y el código malicioso inyectado se sirvió a visitantes de más de 490,000 sitios web que simplemente habían incluido el script como una dependencia rutinaria — ninguno de esos sitios fue atacado individualmente ni hizo nada mal más allá de confiar en un script de terceros. El sitio web promedio ahora carga docenas de scripts, aproximadamente dos tercios de ellos de terceros, y la participación de terceros en brechas de seguridad ha ido aumentando marcadamente año tras año. Nada de esto significa que una página con scripts de terceros sea automáticamente insegura — pero es una razón real para preferir un generador con una página ligera y auditable frente a uno cargado de herramientas no relacionadas.
Por qué esto importa más para algunas contraseñas que para otras
El riesgo de usar un generador no confiable escala con lo que la contraseña protege. Generar una contraseña desechable para una suscripción única a un boletín conlleva poco riesgo incluso desde una herramienta cuestionable. Generar tu contraseña bancaria, tu contraseña de correo electrónico, o la contraseña maestra de tu gestor de contraseñas es exactamente donde deberías insistir en verificar tú mismo el comportamiento del lado del cliente en lugar de confiar en una afirmación — porque esas son las contraseñas donde una copia en texto plano registrada realmente importaría.
Puntos clave
- La pregunta central de seguridad para cualquier generador de contraseñas en línea es si transmite la contraseña a algún sitio — verifícalo tú mismo mediante la pestaña Red en lugar de confiar en una afirmación.
- La generación genuinamente del lado del cliente produce cero solicitudes de red al generar una contraseña.
- Prefiere herramientas que declaren explícitamente usar el CSPRNG de la Web Crypto API frente a las que no explican su fuente de aleatoriedad.
- Aplica más escrutinio a los generadores para contraseñas de alto riesgo (bancarias, de correo, contraseñas maestras) que para las de bajo riesgo y desechables.
Por qué puedes confiar en PassGenerate
- Las contraseñas se generan localmente en tu navegador usando la Web Crypto API.
- Ninguna contraseña se transmite a servidores.
- Usa un generador de números pseudoaleatorios criptográficamente seguro (CSPRNG).
- Sigue las mejores prácticas de seguridad modernas recomendadas por NIST y OWASP.
Referencias
- Compromiso de la cadena de suministro del CDN Polyfill.js, junio de 2024
- Documentación de la Web Crypto API de MDN
- Hoja de referencia de almacenamiento de contraseñas de OWASP
- NIST SP 800-63B – Directrices de identidad digital
Conclusión
No tienes que confiar en la palabra de un generador de contraseñas en línea sobre cómo funciona — un minuto con la pestaña Red de tu navegador te dice definitivamente si está transmitiendo lo que genera. Prefiere herramientas que usen el CSPRNG de la Web Crypto API, que no pidan nada más allá de generar la contraseña, y que hayas confirmado personalmente que producen cero actividad de red — y reserva el mayor escrutinio para las contraseñas que más importarían si algo saliera mal.