¿Cómo funciona el cifrado de códigos QR?

Una explicación técnicamente precisa pero accesible de la arquitectura de conocimiento cero, el flujo criptográfico y los estándares utilizados.

Arquitectura de conocimiento cero

«Conocimiento cero» significa que el operador de este servicio estructuralmente no tiene acceso a sus contenidos cifrados — incluso si lo quisiera. Toda la criptografía se ejecuta en su navegador a través de la Web Crypto API, un estándar W3C integrado en todos los navegadores modernos.

Su texto plano y su contraseña nunca se transmiten a nuestros servidores. El servidor solo entrega los archivos HTML/CSS/JS — después de eso, todo funciona localmente.

Flujo de cifrado Muestra cómo el texto plano y la contraseña se cifran localmente en el navegador mediante PBKDF2 y AES-GCM y se emiten como código QR. Texto plano + Contraseña Navegador (local) PBKDF2 SHA-256 250.000 iteraciones AES-GCM 256-bit Web Crypto API Ciphertext ISQR1:salt:iv:ct QR-Code Su navegador — sin transferencia de datos al servidor
Flujo de cifrado: todo ocurre localmente en el navegador.

Especificación criptográfica

El formato ISQR1 está definido con precisión para permitir que las implementaciones independientes sigan siendo compatibles:

Parámetros técnicos del cifrado ISQR1
ParámetroValorJustificación
Format-PrefixISQR1Versionado para futuras migraciones
CipherAES-GCM 256-bitEstándar NIST, cifrado autenticado
KDFPBKDF2-SHA-256Protección contra ataques de fuerza bruta
Iterationen250 000Recomendación OWASP 2024 (≥ 210.000)
Salt16 Byte (128 bit)Aleatorio por cifrado, previene rainbow tables
IV / Nonce12 Byte (96 bit)Tamaño óptimo GCM para unicidad de nonces
Auth-Tag128 bitProtección de integridad, estándar Web Crypto
EncodingBase64urlSeguro para URL, compacto, sin + ni /

El formato completo del payload: ISQR1:<salt_b64u>:<iv_b64u>:<ciphertext_b64u>

Casos de uso

  • Compartir contraseña WiFi

    Los invitados escanean el QR en su tablón. Solo con la contraseña (que les dice verbalmente) pueden ver las credenciales WiFi.

  • Transferir credenciales de acceso

    Código de caja fuerte, número de llave o contraseña del sistema — protegidos en papel sin escribirlos en texto plano.

  • Información de emergencia

    Lleve una lista de medicamentos cifrada o contactos de emergencia en su cartera. La contraseña la guarda su médico.

  • Tarjetas de visita

    Haga que los datos de contacto privados (p. ej. número de móvil personal) sean accesibles solo para personas seleccionadas.

  • Notas seguras

    Adjunte breves recordatorios cifrados a documentos físicos.

  • Compartir contraseñas

    Compartición única de un acceso — más seguro que el texto plano por correo electrónico o SMS.

Código QR normal vs. Código QR cifrado

Código QR normal vs. Código QR cifrado
Propiedad Código QR normal ISQR1 (cifrado)
Contenido legible sin app Sí, inmediatamente No, requiere contraseña
Privacidad Ninguna AES-256-GCM
Cualquier escáner utilizable Sí (enlace de descifrado)
Uso sin conexión Tras la primera carga
Integridad verificable No Sí (GCM Auth-Tag)
Dependencia del servidor Ninguna Ninguna (crypto local)

Preguntas frecuentes

¿Qué tan seguro es el cifrado?

Utilizamos AES-GCM con claves de 256 bits — el mismo estándar que usan bancos y gobiernos en todo el mundo. La clave se deriva mediante PBKDF2 con 250.000 iteraciones y una sal aleatoria. Una contraseña débil es el único punto vulnerable — recomendamos al menos 12 caracteres con números y caracteres especiales.

¿Puede istyle.ch leer mi contenido?

Estructuralmente no. El cifrado se ejecuta completamente en su navegador a través de la Web Crypto API. Ni el texto plano ni la contraseña se transmiten jamás a nuestros servidores. Ese es el principio de conocimiento cero: incluso si quisiéramos, no podríamos leer nada.

¿Qué ocurre si olvido mi contraseña?

El contenido no puede descifrarse sin la contraseña correcta — ni siquiera por nosotros. No existe recuperación de contraseña ni clave maestra. Guarde la contraseña de forma segura, por ejemplo en un gestor de contraseñas.

¿Qué datos se almacenan?

Ninguno. No almacenamos ni su contenido, ni la contraseña, ni el código QR generado en nuestros servidores. No hay base de datos, ni registros de contenido, ni cookies, ni scripts de seguimiento en las páginas de herramientas.

¿Funciona la herramienta sin conexión?

Se necesita una conexión a Internet para cargar la página inicialmente. Dado que la criptografía se ejecuta completamente en el navegador, puede luego usar la página desde la caché del navegador y cifrar/descifrar sin conexión.

¿Qué tamaño puede tener el texto cifrado?

La herramienta admite hasta 1.500 caracteres en texto plano. Los códigos QR tienen una capacidad de datos máxima (Versión 40, aprox. 3 kB), y con la codificación Base64 y el overhead ISQR1 se aplica este límite práctico. Los textos más largos generan códigos QR muy densos que ya no pueden escanearse de manera fiable.

¿Cualquier escáner QR puede leer el código?

Sí — cualquier escáner QR estándar puede escanear el código. En el formato Enlace de descifrado, el escaneo abre automáticamente este sitio web donde se puede introducir la contraseña. En el formato sin procesar, solo se ve la cadena de texto cifrado, que luego debe pegarse manualmente en esta página.

¿Qué significa conocimiento cero?

Conocimiento cero significa que el operador del servicio estructuralmente no tiene manera de acceder a los datos en texto plano — no porque lo prometa, sino porque el sistema está construido de tal manera que es técnicamente imposible. El descifrado ocurre localmente; la clave nunca abandona su navegador.

¿Qué navegadores son compatibles?

Todos los navegadores modernos: Chrome 90+, Firefox 90+, Safari 15+, Edge 90+, Opera 76+. La Web Crypto API es un estándar W3C implementado en todos los navegadores actuales. Internet Explorer no es compatible.

¿Puedo usar caracteres especiales, acentos y emoji?

Sí. El sistema usa codificación UTF-8 internamente, por lo que se admite el conjunto de caracteres Unicode completo — incluyendo acentos, caracteres chinos, escritura árabe y emoji.

¿El código fuente es consultable?

El código JavaScript de cifrado se encuentra en /assets/js/crypto.js y es directamente consultable en el navegador (no minificado). La Web Crypto API es un estándar W3C abierto, completamente documentado en developer.mozilla.org y auditable de forma independiente.

¿Qué distingue a ISQR1 de otros formatos?

El prefijo ISQR1 permite el versionado: si un futuro estándar ISQR2 se hiciera necesario (p. ej. para una KDF más robusta), los decodificadores pueden soportar ambos formatos en paralelo. El formato contiene el salt y el IV directamente en el payload — no se necesita almacenamiento externo.