Arquitectura de Seguridad

Cómo funcionan realmente las promesas de privacidad de PDF Pro.

Todo en esta página es verificable en las DevTools de tu navegador. La regla principal: no deberíamos poder acceder a tus archivos — ni aunque quisiéramos. A continuación, cómo se aplica esa regla en las capas de cripto, almacenamiento y peticiones.

memoryWebAssembly y JS en el navegador lockAES-256-GCM verifiedECDSA P-256 cloud_offAlmacenamiento zero-knowledge

Cuatro pilares arquitectónicos

La postura de seguridad la definen cuatro decisiones técnicas. Las impone el código que corre en tu navegador — no un documento de políticas.

memory
1. Procesamiento local primero
La visualización, anotación, relleno de formularios, compresión, fusión, conversión y firma se ejecutan 100% en tu navegador con WebAssembly y JavaScript. Ningún dato del archivo sale de tu dispositivo — verificable en la pestaña Red.
key
2. Claves generadas en el cliente
Cuando compartes un archivo, la clave se genera con la Web Crypto API en tu pestaña. Vive en memoria, en el fragmento de la URL, o (en modo frase) se deriva en el dispositivo del destinatario con PBKDF2. El servidor nunca la ve.
cloud_off
3. Almacenamiento zero-knowledge
Solo se guarda el cifrado AES-256-GCM más un vector de inicialización (y, en modo frase, un salt PBKDF2). Sin la clave, esos datos son criptográficamente indistinguibles de bytes aleatorios. Ni con acceso root a la base podríamos descifrarlo.
policy
4. Frontera IA honesta
Las funciones de IA (chat, resumen, traducción) necesitan texto legible. Extraemos el texto en el cliente y enviamos solo eso al proveedor del modelo — nunca el PDF, nunca imágenes, nunca adjuntos incrustados. Más detalle en la sección IA.

Flujo de cifrado (Transferencia Segura)

Un recorrido byte a byte de lo que sucede cuando sueltas un PDF en Transferencia Segura y compartes el enlace. Cada paso abajo corre en el navegador — salvo el almacenamiento del cifrado.

Emisor — en el navegador
// 1. generate a fresh 256-bit key key = crypto.subtle.generateKey({name:"AES-GCM", length:256}) // 2. random 96-bit IV per file iv = crypto.getRandomValues(new Uint8Array(12)) // 3. encrypt the PDF bytes locally ct = crypto.subtle.encrypt({name:"AES-GCM", iv}, key, pdfBytes) // 4. upload ciphertext + iv — nothing else id = await fetch("/api/transfer", {method:"PUT", body: ct, headers:{"x-iv": hex(iv)}}) // 5. build the share link with the key in the URL fragment (#) link = `https://pdfpro.tools/s/${id}#${b64(rawKey)}`
Servidor — solo guarda cifrado
ciphertext = opaque bytes // cannot be decrypted without the key iv = 12-byte nonce expiry = 24 h (free) / 30 d (Pro) // the URL fragment (#...) is NEVER sent to the server by browsers
Destinatario — en el navegador
// 1. browser loads the page; the "#..." fragment stays client-side rawKey = location.hash.slice(1) // 2. fetch the ciphertext ct = await fetch("/api/transfer/" + id) // 3. decrypt locally using Web Crypto pdf = crypto.subtle.decrypt({name:"AES-GCM", iv}, importKey(rawKey), ct) // 4. file ends up in the recipient's Downloads folder

La garantía de seguridad depende del paso 5 (emisor) y del paso 1 (destinatario): el fragmento URL tras # no lo transmite al servidor ningún navegador conforme. Eso es lo que convierte al enlace mismo en la credencial de descifrado.

El modo frase reemplaza el paso 1 (emisor) con PBKDF2-SHA256(passphrase, salt, 310_000). El salt se guarda en el servidor; la frase se comparte con el destinatario por otro canal.

Signing flow (ECDSA P-256)

La firma PDF usa ECDSA sobre la curva NIST P-256. La clave privada se genera en tu navegador; el documento no sale de tu dispositivo.

key
Generación de clave privada
Un par de claves ECDSA P-256 se genera con crypto.subtle.generateKey en tu navegador. La clave privada se exporta como JSON Web Key (JWK) envuelto con contraseña que puedes guardar localmente.
fingerprint
Hash SHA-256 y firma
Los bytes del PDF se hashean con SHA-256 en el cliente. Ese hash se firma con la clave privada. La firma se inserta en el PDF dentro de un contenedor CMS (perfil PAdES-B-B).
verified
Verificable sin conexión
Cualquiera con la clave pública (distribuida con el documento o como fingerprint) puede verificar la firma sin conexión. No hace falta contactar al servidor.
gavel
Lo que no es
Nuestras firmas son criptográficamente verificables pero no son firmas electrónicas cualificadas (QES) según eIDAS. Son pruebas de integridad con detección de manipulación, aptas para flujos internos, no para vinculación legal de nivel regulatorio.

Funciones de IA — donde somos honestos sobre la frontera

AI Chat, AI Summary y Translate necesitan texto legible. Esto es exactamente lo que sale de tu dispositivo y lo que no.

description
Texto extraído en el navegador
El PDF se analiza localmente con pdf.js. Solo el texto extraído (o, en PDFs escaneados, la salida OCR) queda en memoria — el archivo original se queda en tu dispositivo.
outbound
Solo texto al proveedor
Enviamos esa cadena de texto al proveedor de IA (Anthropic / OpenAI). El PDF en sí, imágenes incrustadas, fuentes y datos de formularios nunca se suben a ningún modelo.
block
Sin entrenamiento con tu contenido
Nuestros contratos con proveedores desactivan el entrenamiento con contenido de clientes. Las peticiones son sin estado — cada una está limitada a tu sesión.
info
Cuándo importa esto
Si tu documento contiene contenido regulado (PHI, clasificado, secreto profesional legal) donde incluso la extracción de texto es sensible, evita las funciones de IA y usa las herramientas locales (ver, anotar, firmar, comprimir, convertir) — funcionan 100% en el navegador.

Modelo de amenazas — contra qué protegemos y contra qué no

Ser claros sobre el modelo de amenazas es más útil que el marketing. Esto es lo que la arquitectura realmente detiene — y dónde.

shieldContra qué protege la arquitectura

  • Empleados de PDF Pro leyendo tus archivos en nuestros servidores (nunca tenemos la clave).
  • Brecha a nivel de BD del almacén de transferencias (el atacante ve cifrado, no archivos).
  • Divulgación de contenidos por orden judicial (entregamos cifrado — es todo lo que tenemos).
  • Retención de adjuntos sensibles en servidores de correo (nada llega a tu servidor).
  • Manipulación de un PDF firmado (la verificación ECDSA detecta cualquier cambio de byte).

warningContra qué ningún tool-de-navegador protege

  • Un endpoint comprometido (malware en tu dispositivo) — las claves viven en memoria, el dispositivo debe ser de confianza.
  • Alguien leyendo por encima del hombro el fragmento de URL — trata el enlace como el archivo mismo.
  • Una frase débil en modo frase — PBKDF2 ralentiza la fuerza bruta pero no hace segura una frase de 6 caracteres.
  • El destinatario reenviando un archivo descifrado — la seguridad de transporte termina cuando el destinatario guarda el PDF.
  • Compromiso del propio navegador o una extensión maliciosa inyectando en la página.

Sin promesas de "imposible de hackear". La arquitectura zero-knowledge eleva mucho el coste de una brecha — no elimina todo el riesgo, sobre todo en el endpoint. Para casos muy sensibles, combina Transferencia Segura con una frase aparte y un intercambio de clave por canal de confianza.

Preguntas frecuentes

¿Puede PDF Pro descifrar mis archivos?
No. Las claves se generan y se guardan en el navegador del usuario. Para Transferencia Segura, el servidor solo guarda cifrado AES-256-GCM más un vector de inicialización (más un salt en modo frase). La clave nunca llega a nuestra infraestructura. Ni con acceso total a la base de datos nuestros operadores podrían descifrar tu archivo.
¿Qué corre exactamente local vs en el servidor?
Ver, anotar, rellenar formularios, comprimir, fusionar, convertir y firmar corren 100% en tu navegador con WebAssembly y JavaScript — ningún dato del archivo sale de tu dispositivo. Las funciones de IA (chat, resumen, traducción) extraen el texto local y envían solo ese texto (nunca el PDF en sí) al proveedor del modelo.
¿Qué algoritmos usa PDF Pro?
AES-256-GCM para cifrado simétrico (Transferencia Segura), PBKDF2-SHA256 con 310.000 iteraciones para claves derivadas de frase, ECDSA sobre NIST P-256 para firmas digitales y SHA-256 para hash de documentos. Todo corre sobre la Web Crypto API nativa del navegador — auditada, estandarizada y no implementada por nosotros.
¿Es una firma electrónica legalmente vinculante?
Las firmas de PDF Pro son criptográficamente verificables (ECDSA P-256 sobre un hash SHA-256, perfil PAdES-B-B) pero no son firmas electrónicas cualificadas (QES) bajo eIDAS o regulaciones equivalentes. Para vinculación legal de nivel QES se requiere un proveedor de servicios de confianza certificado.
¿Qué pasa si olvido una frase o pierdo un enlace?
El archivo es permanentemente irrecuperable. Es el trade-off del zero-knowledge — no hay vía de recuperación porque nunca tuvimos la clave. Guarda la frase en un gestor de contraseñas y el enlace en sitio duradero.
¿Guardan logs en servidor de la actividad?
Guardamos logs operacionales (timing de peticiones, códigos de error, IPs para rate-limit) pero nunca contenido en claro ni claves. Los logs se retienen en un plazo corto — ver nuestra privacy policy política de privacidad para los plazos vigentes.
¿Puede una orden judicial forzarles a revelar mis archivos?
Solo podemos entregar lo que tenemos: cifrado. Sin la clave de descifrado — que queda en el dispositivo del emisor o en el fragmento URL del destinatario — ese cifrado no es descifrable. Una citación no puede recuperar retroactivamente una clave que nunca guardamos.
¿Cómo puedo verificar las afirmaciones criptográficas por mí mismo?
Abre las DevTools → pestaña Red de tu navegador y observa qué sale de la página durante una subida de Transferencia Segura. Verás el cifrado enviado al servidor por PUT, no el PDF original. El código de cifrado llama a la Web Crypto API, incorporada en tu navegador — no nuestro código — y cualquiera puede inspeccionarla.

Privacidad como arquitectura, no como marketing.

Prueba una Transferencia Segura e inspecciona la pestaña Red tú mismo. Ningún archivo se sube en texto plano.

lockProbar Transferencia Segura