API de ProofSnap

Seguridad de la API de ProofSnap y datos alojados en la UE

A fecha de octubre de 2026, la API de ProofSnap captura páginas web en servidores de la UE (AWS Fráncfort), guarda cada paquete de pruebas cifrado con AES-256 y una segunda copia de los paquetes de producción en Irlanda. Cada paquete se sella con hashes SHA-256 y una firma RSA-4096 y se conserva 10 años con control de acceso.

Actualizado el

Qué ocurre con tus datos durante una captura

Una captura hecha con la API de ProofSnap o desde el panel pasa por cinco pasos:

  1. Envías una URL por HTTPS, a través de la API con tu clave de API o desde el panel.
  2. Un navegador que se ejecuta en los servidores de ProofSnap en Fráncfort carga la página. Solo se conecta a direcciones públicas. En modo de producción, la URL también se envía a Internet Archive, salvo que desactives esta opción.
  3. Se calcula el hash SHA-256 de cada archivo y se firma el manifiesto. Solo el hash del manifiesto se envía a los calendarios de OpenTimestamps y, si solicitas un sello cualificado de tiempo electrónico, a Disig a.s.
  4. El paquete sellado se guarda cifrado en Fráncfort, con una segunda copia en Irlanda de los paquetes creados en modo de producción.
  5. Descargas el paquete o, cuando está listo, recibes un webhook firmado que te avisa.

Dónde se aloja la API

API
Amazon Web Services en la UE, Fráncfort (eu-central-1).
Datos de la cuenta y de las capturas
Google Cloud Firestore en la UE, Fráncfort (europe-west3).
Inicio de sesión
Firebase Authentication, un servicio global de Google.
Paquetes de pruebas
Amazon S3 en la UE, Fráncfort (eu-central-1), con una segunda copia en Irlanda (eu-west-1) de cada paquete creado en modo de producción.

Qué se trata fuera de la UE

Los paquetes de pruebas y los datos de las capturas permanecen en Fráncfort y en Irlanda. Los servicios situados fuera de la UE solo pueden tratar los datos limitados que se indican a continuación:

Captura en el servidor

La página se carga y se captura en los servidores de ProofSnap, no en tu ordenador. Envías una URL y recibes un paquete de pruebas sellado. El navegador de captura solo se conecta a direcciones públicas: las direcciones privadas, las de bucle local (loopback) y las de los servicios de metadatos de la nube se rechazan, incluso después de una redirección.

Por defecto, cuando una captura se hace en modo de producción, su URL también se envía a Internet Archive (web.archive.org) para que se pueda crear una instantánea pública independiente. Las URL que parecen privadas, como los enlaces de inicio de sesión, de restablecimiento de contraseña y los enlaces para compartir, o las que llevan un token, no se envían nunca. Una URL con cadena de consulta solo se envía si asignas el valor true a la opción de captura external_archive. Si le asignas false, el archivado se desactiva por completo. El paquete deja constancia del resultado.

Cómo se sella cada paquete

Hashes
De cada archivo de prueba del paquete se calcula un hash SHA-256, que se incluye en manifest.json.
Firma
El archivo manifest.json se firma con una clave RSA-4096 generada solo para ese paquete. La clave privada se descarta después de firmar y la clave pública va incluida en el paquete.
Anclaje en Bitcoin
El hash del manifiesto se envía a los calendarios de OpenTimestamps para su anclaje en la cadena de bloques de Bitcoin. Cuando se confirma el anclaje, la prueba de OpenTimestamps completa se guarda junto al paquete. Si no se puede añadir, el paquete deja constancia de ello.
Sello cualificado de tiempo
Si lo solicitas (solo con claves de producción, con cargo por sello), se obtiene un sello cualificado de tiempo electrónico (RFC 3161) de Disig a.s., prestador cualificado de servicios de confianza incluido en la Lista de confianza de la UE. Si no se puede añadir el sello, el paquete deja constancia de ello.
Verificación sin conexión
Cada paquete incluye scripts de verificación (verify.sh para macOS y Linux, verify.ps1 para Windows) que lo comprueban sin conexión y sin depender de ProofSnap.

Registro de emisión

ProofSnap registra el hash de cada manifiesto que emite. Cualquiera puede consultar un hash con GET /v1/ledger/{hash}; una coincidencia confirma que ProofSnap emitió exactamente ese paquete.

Segunda copia

Cada paquete de pruebas creado en modo de producción se copia en un bucket de Amazon S3 independiente, situado en otra región de la UE (Irlanda). GET /v1/captures/{id} indica el estado de la copia de cada captura. La copia se elimina junto con el original.

Periodo de conservación

Las pruebas se conservan 10 años desde la fecha de captura. En una página capturada de forma programada, el periodo empieza a contar desde la última vez que se comprobó que la versión capturada seguía vigente:

Cuando termina una suscripción, tienes 30 días para descargarlo todo. El plan Archive only mantiene las pruebas consultables, descargables y verificables aunque dejes de hacer capturas.

Eliminación

Un paquete que eliminas en el panel o mediante la API pasa primero a la papelera, desde donde se puede restaurar durante 30 días. Pasado ese plazo, todas las versiones guardadas se borran de ambas copias. Si eliminas un paquete de forma definitiva, se borra de inmediato. Cuando vence el periodo de conservación, o cuando se cierra el plazo de 30 días que tiene una cuenta para descargar sus datos, todas las versiones guardadas se borran de la misma forma. Una captura sujeta a retención legal no se puede eliminar mientras la retención esté activa. Queda constancia de quién eliminó el paquete y cuándo, pero no de su contenido.

Control de acceso

Claves de API
Se guardan solo como hashes SHA-256. La clave completa se muestra una sola vez, al crearla. Una clave revocada deja de funcionar en un máximo de 60 segundos. En el plan Website Archive, las claves de API son de solo lectura: permiten listar, descargar y verificar capturas y gestionar suscripciones de webhook. Con ese plan, las capturas y las programaciones se inician desde el panel.
Inicio de sesión en el panel
Firebase Authentication. Antes de crear claves, iniciar capturas o comprar un plan, tienes que confirmar tu dirección de correo electrónico.
Historial de accesos
Cuando una persona distinta del autor de una captura, como el titular de la cuenta del despacho o un miembro de un asunto, la descarga, la verifica o accede a ella de otro modo, ese acceso queda registrado en la captura.
Límites de frecuencia
Las solicitudes de captura, de certificación y las demás solicitudes facturables tienen un límite de frecuencia por cuenta, común a todas sus claves.

Cifrado

En tránsito
Todo el tráfico de la API, del panel y de los webhooks usa HTTPS (TLS).
En reposo
Los paquetes de pruebas se cifran con AES-256 (cifrado del lado del servidor de Amazon S3) en ambos buckets. Ambos buckets bloquean todo acceso público.

Webhooks

Firma
Las entregas de webhook se firman con el esquema Standard Webhooks y HMAC-SHA256. Las entregas a una webhook_url definida en una solicitud o en una programación se firman con el secreto de firma del webhook de la clave de API que la definió. Ese secreto se puede renovar con un periodo de solapamiento de 24 horas. Una suscripción de webhook de la cuenta tiene su propio secreto de firma, que se muestra una sola vez al crear la suscripción.
Destinos
Las entregas solo van a endpoints HTTPS públicos. Antes de cada entrega, la dirección se resuelve y se comprueba de nuevo, y la conexión se establece solo con la dirección comprobada, de modo que las direcciones privadas, las de bucle local y las de los servicios de metadatos de la nube se rechazan incluso después de un cambio de DNS. Las redirecciones no se siguen.
Reintentos
Una entrega que agota el tiempo de espera, no consigue conectar o recibe una respuesta de error (salvo 410 Gone) se reintenta hasta 5 veces a lo largo de unas 35 horas (a los 5 min, 30 min, 2 h, 8 h y 24 h) con el mismo webhook-id, para que el receptor pueda descartar los duplicados. Cada intento espera una respuesta como máximo 10 segundos.
Descargas
Las entregas reintentadas y las de una suscripción no incluyen el enlace de descarga (válido 24 horas). El receptor puede obtener uno nuevo con GET /v1/captures/{id}.
Suscripciones
Una suscripción de webhook de la cuenta se desactiva cuando su endpoint responde con 410 Gone, después de 5 días sin ninguna entrega correcta o, si se creó con una clave de API, cuando esa clave se revoca. Los eventos se conservan 30 días y se pueden recuperar con GET /v1/events.

Servicios de terceros

Pagos
Stripe procesa los pagos. ProofSnap no guarda números de tarjeta.
Correos de la cuenta
MailerSend envía los mensajes de confirmación del correo electrónico y de restablecimiento de contraseña.
Sellado de tiempo
Los calendarios de OpenTimestamps y, para un sello cualificado de tiempo electrónico, Disig a.s. reciben solo el hash del manifiesto, nunca las pruebas.
Consultas DNS y WHOIS
Para documentar el sitio capturado, su nombre de host se resuelve mediante Google Public DNS y Cloudflare DNS, y el registro del dominio se consulta en los servicios públicos RDAP y WHOIS.

Preguntas

Escríbenos a support@getproofsnap.com con cualquier pregunta, para comunicar un problema de seguridad o para pedir información sobre un contrato de encargo del tratamiento (DPA).

Regístrate gratis con 50 capturas de prueba