Abre un «generador online», pulsa generar y mira la pestaña Red. Si el cuerpo o la consulta muestran la contraseña recién creada, el claro ya salió del dispositivo. No hace falta creer a una marca: el navegador enseña el tráfico.
Dejar el cálculo en el navegador no es un eslogan de descentralización. Encoge la ventana de claro al dispositivo: menos tránsito, menos log de servidor, menos oportunidad de que alguien lea un volcado. MyPassGen se diseña así. Esta nota no es un tour del producto; responde a una pregunta: el cálculo sensible no debería ir por defecto al servidor.
Qué ventana abre el cálculo en el servidor
La ventana de claro es dónde existen de verdad el texto (o una clave que lo restaura). Si cifra el servidor, no es solo el instante del envío, es una cadena difícil de borrar:
- La sesión TLS hasta el origen: el proceso del servidor ve la petición ya descifrada.
- Muestreo de cuerpos en proxy, WAF, APM o errores; un 500 puede meter el formulario en un informe de caída.
- Logs de aplicación, consultas lentas y access log con query string. Quien pone la clave en
?key=la escribe en el access log. - Archivos intermedios en disco, copias y réplicas.
- El tiempo en que operación, soporte o un atacante tocan cualquiera de esas copias. «Lo borramos al terminar» no deshace que la ventana existió.
Jurisdicción y subcontratistas convierten «no miramos» en una frase difícil de auditar. Puedes comprobar el protocolo y el tráfico, no el reglamento interno del centro de datos.
En generación duele más: quieres un secreto que aún no existía en ningún sistema. Si nace en la máquina de otro, la primera copia no es tuya.
En auditoría igual: mandar una contraseña habitual a un servicio remoto es entregar el hábito más sensible. MyPassGen no sube la contraseña evaluada; entropía y lista de filtraciones se calculan en el navegador. Lo que verificas no es «ellos dicen que no guardan», sino que la petición no lleva esa cadena.
En archivos, «subir → cifrar → bajar» deja contraseña y contenido en la memoria del servidor. El flujo local no le da claro que recoger.
HTTPS no es cálculo local
TLS cubre a quien escucha en el camino, no al servidor del otro lado. Si él cifra por ti, tiene que leer el claro. El cálculo local responde a otra pregunta: el otro lado no debería ver este material.
Qué capa es «local»
«Local» se usa como eslogan. Hay que abrirlo, o «solo tú lo ves» en un disco en la nube también pasará por cifrado local.
Proceso en tu máquina, no «en tu cuenta en la nube»
En MyPassGen, local significa la pestaña: el azar sale de crypto.getRandomValues, el simétrico de Web Crypto. El material de clave vive en CryptoKey de vida corta y no se manda como campo de analítica. Puedes copiar, exportar o descargar; al cerrar, el claro se recicla con el ciclo del navegador, no queda otra copia remota.
Algoritmo y tope de archivo son hechos
Solo usamos AES-256-GCM. La caja trata un archivo en flujo, tope 5 GB, salida .lock o .enc. Esos números están en el producto, no son adjetivos.
Local es el sitio del cálculo; las herramientas se abren sin cuenta
Generador, auditoría, privacidad, enlace efímero y caja de archivos se abren sin registro. Local describe dónde se calcula, no que el claro «nunca puede» salir: el enlace efímero sí entrega cifrado al servidor un rato.
| Capacidad | ¿Se abre al instante? | ¿Se sube el material sensible? |
|---|---|---|
| Generación aleatoria / memorable | Sí | No; se crea en el navegador |
| Auditoría | Sí | La contraseña no se sube; fuerza y lista en local |
| Clean Link / redacción | Sí | URL y texto en local; no van a analítica |
| Crear enlace efímero | Sí | Se sube el blob cifrado, no el original |
| Leer enlace efímero | Público para quien lo recibe | La clave va en el fragmento #, no con HTTP |
| Caja de archivos | Sí | Archivo y contraseña no se suben; AES-256-GCM en flujo |
El enlace efímero es el único camino que guarda algo en el servidor, y guarda cifrado. La clave va tras #: el fragmento no viaja con HTTP. Quien lee no se registra. Tras la primera lectura el cifrado se quema. Cero conocimiento no es «no guardamos nada»; es «aunque se guarde, no se abre».
Comprobar en Red si salió contenido sensible
Un eslogan no se prueba solo. Estos pasos usan las herramientas del navegador. No demuestran que no hay canal lateral en el mundo; sí desmontan el «online» que hace POST del claro al primer clic.
Empieza por el generador. Aleatoria y memorable deben crearse al instante. Distingue peticiones de estáticos de una subida de contraseña.
Abre Red y marca Preserve log. Filtra Fetch/XHR y luego mira todo. Preserve log evita que un salto borre el registro.
Genera una cadena fácil de reconocer. Alárgala, cópiala y búscala en Red, o un trozo que no esté en el JS estático.
Mira URL, Query y Payload. Si ninguna petición contiene ese trozo, al menos en «generar» el claro no salió como HTTP.
Repite en las otras herramientas. Auditoría, privacidad o caja, con una contraseña o un archivo de prueba. La auditoría no debe enviar la contraseña; la limpieza no debe hacer POST del original; la caja no debe subir el claro en multipart.
En el enlace efímero mira cifrado y fragmento. Lo que va al servidor es cifrado, no el texto. La clave va tras #. Quien lee no inicia sesión.
Qué prueba esto y qué no
Red demuestra si esta operación metió el claro en HTTP. No ve extensiones maliciosas, XSS o un proxy de empresa. Basta para desmontar muchos «online»; no es una prueba formal.
Qué debe ser local y qué excepciones hay que decir
Debe quedarse en el dispositivo lo que, una vez fuera, no se retira: contraseña nueva, contraseña evaluada, texto a redactar, claro de un archivo, clave simétrica.
Puede salir lo que criptográficamente no sirve al servidor: el blob del enlace efímero y estáticos sin secretos. Este sitio no tiene cuentas ni caja de contraseñas. No confundas «la página pidió un script» con «se subió el claro de la herramienta».
La caja descarga .lock / .enc. Luego puedes mover el cifrado. El disco no ve contraseña ni original si no las pones en el mismo envío. El cifrado local cambia «el admin del disco abre tus fotos por defecto», no la custodia física.
Límites y malentendidos del cifrado en el navegador
Local-first reduce la exposición en servidor y tránsito, no un equipo con malware.
Si inyectan la página, el algoritmo no salva
XSS o un script secuestrado leen el cuadro. Web Crypto protege operaciones en una página honesta, no un script ya en el origen. Ver «AES-256-GCM» no implica «XSS no funciona».
Extensiones, proxy de empresa, mirar por encima del hombro
Extensiones y un proxy que descifra TLS pueden ver la página. Pérdida del dispositivo y pantalla compartida son otro problema, distinto de «el servidor no debe tener el claro».
«No se sube» no es «sin red»
La página y los scripts sí piden recursos. Lo que se comprueba es si el campo sensible aparece en la petición. MyPassGen tampoco mete contraseñas, originales ni archivos en eventos de analítica.
No escribir de más
v1 es AES-256-GCM. La lectura del enlace efímero no pide registro. No afirmamos que el servidor vea claro o clave. La forma honesta: el cálculo sensible ocurre en el navegador; claro, claves y archivos no se suben por defecto; el servidor del enlace solo guarda cifrado.
Si quieres comprobarlo, por dónde empezar
Para ver si «generar» envía algo, el generador es el paso más barato. Abre Red y busca la cadena que acabas de crear.
Correo en claro e IM dejan la clave en historiales y copias. Un disco por defecto es legible para el servidor. La clave en un query casi siempre entra en el access log. Esas rutas tienen la ventana de claro diseñada dentro.
Para un archivo que no quieres en claro en un disco, usa la caja: AES-256-GCM en flujo, hasta 5 GB, .lock o .enc. Para un secreto corto de una vez, el enlace efímero: cifrado local, clave tras #, el servidor solo toca cifrado. Esta nota solo pide que puedas responder: después de este clic, ¿el claro sigue en tu pestaña?