API ProofSnap

Sécurité de l’API ProofSnap et hébergement des données dans l’UE

À ce jour (octobre 2026), l’API ProofSnap capture les pages web sur des serveurs situés dans l’UE (AWS Francfort), stocke chaque paquet de preuves chiffré en AES-256 et conserve en Irlande une copie des paquets créés en mode production. Chaque paquet est scellé par des empreintes SHA-256 et une signature RSA-4096, puis conservé 10 ans en accès restreint.

Mis à jour le

Ce que deviennent vos données lors d’une capture

Une capture réalisée via l’API ProofSnap ou le tableau de bord passe par cinq étapes :

  1. Vous soumettez une URL en HTTPS, soit via l’API avec votre clé API, soit depuis le tableau de bord.
  2. Un navigateur exécuté sur les serveurs ProofSnap à Francfort charge la page. Il ne se connecte qu’à des adresses publiques. En mode production, l’URL est également transmise à l’Internet Archive, sauf si vous désactivez cette option.
  3. Une empreinte SHA-256 est calculée pour chaque fichier et le manifeste est signé. Seule l’empreinte du manifeste est transmise aux calendriers OpenTimestamps et, si vous demandez un horodatage qualifié, à Disig a.s.
  4. Le paquet scellé est stocké chiffré à Francfort, avec une seconde copie en Irlande des paquets créés en mode production.
  5. Vous le téléchargez ou recevez un webhook signé dès que le paquet est prêt.

Où est hébergée l’API

API
Amazon Web Services dans l’UE, Francfort (eu-central-1).
Données du compte et des captures
Google Cloud Firestore dans l’UE, Francfort (europe-west3).
Connexion
Firebase Authentication, un service Google exploité à l’échelle mondiale.
Paquets de preuves
Amazon S3 dans l’UE, Francfort (eu-central-1), avec une seconde copie en Irlande (eu-west-1) de chaque paquet créé en mode production.

Ce qui est traité hors de l’UE

Les paquets de preuves et les données des captures restent à Francfort et en Irlande. Seul un nombre limité de données, énumérées ci-dessous, peut être traité par des services situés hors de l’UE :

Capture côté serveur

La page est chargée et capturée sur les serveurs ProofSnap, et non sur votre ordinateur. Vous envoyez une URL et recevez un paquet de preuves scellé. Le navigateur de capture ne se connecte qu’à des adresses publiques : les adresses privées, les adresses de bouclage et celles des services de métadonnées du cloud sont bloquées, même après une redirection.

Par défaut, lorsqu’une capture est réalisée en mode production, son URL est également transmise à l’Internet Archive (web.archive.org) afin qu’un instantané public indépendant puisse être créé. Les URL qui semblent privées, comme les liens de connexion, de réinitialisation du mot de passe et de partage, ou qui contiennent un jeton, ne sont jamais transmises, et une URL comportant des paramètres de requête n’est transmise que si vous réglez l’option de capture external_archive sur true. Réglez-la sur false pour désactiver entièrement l’archivage. Le résultat est consigné dans le paquet.

Comment chaque paquet est scellé

Empreintes
Une empreinte SHA-256 est calculée pour chaque fichier de preuve du paquet et répertoriée dans manifest.json.
Signature
Le fichier manifest.json est signé avec une clé RSA-4096 générée pour ce seul paquet. La clé privée est détruite après la signature, et la clé publique est fournie dans le paquet.
Horodatage Bitcoin
L’empreinte du manifeste est soumise aux calendriers OpenTimestamps pour être ancrée dans la blockchain Bitcoin. Une fois l’ancrage confirmé, la preuve d’horodatage complète est stockée avec le paquet. Si aucune preuve d’horodatage ne peut être ajoutée, cela est consigné dans le paquet.
Horodatage qualifié
Sur demande (clés de production uniquement, facturation à l’unité), un horodatage électronique qualifié (RFC 3161) est obtenu auprès de Disig a.s., prestataire de services de confiance qualifié inscrit sur la liste de confiance de l’UE. Si aucun horodatage ne peut être ajouté, cela est consigné dans le paquet.
Vérification hors ligne
Chaque paquet contient des scripts de vérification (verify.sh pour macOS et Linux, verify.ps1 pour Windows) qui permettent de le vérifier hors ligne, sans dépendre de ProofSnap.

Registre d’émission

ProofSnap enregistre l’empreinte de chaque manifeste qu’elle émet. N’importe qui peut vérifier une empreinte avec GET /v1/ledger/{hash} ; une correspondance confirme que ProofSnap a émis exactement ce paquet.

Seconde copie

Chaque paquet de preuves créé en mode production est copié dans un compartiment Amazon S3 distinct, situé dans une autre région de l’UE (Irlande). GET /v1/captures/{id} indique l’état de la copie pour chaque capture. La copie est supprimée en même temps que l’original.

Durée de conservation

Les preuves sont conservées 10 ans à compter de la date de capture. Pour une page capturée selon une planification, le délai court à compter de la dernière fois où la version capturée a été constatée à jour :

À la fin d’un abonnement, vous disposez de 30 jours pour tout télécharger. Le forfait Archive only garde les preuves consultables, téléchargeables et vérifiables une fois que vous cessez d’effectuer des captures.

Suppression

Un paquet que vous supprimez dans le tableau de bord ou via l’API est d’abord placé dans la corbeille, où il peut être restauré pendant 30 jours. Passé ce délai, toutes les versions stockées sont effacées des deux compartiments. La suppression définitive d’un paquet l’efface immédiatement. À la fin de la durée de conservation, ou à l’expiration des 30 jours accordés à un compte pour télécharger ses données, toutes les versions stockées sont effacées de la même manière. Une capture placée sous conservation pour litige ne peut pas être supprimée tant que cette mesure est active. Une trace indiquant qui a supprimé le paquet et à quel moment est conservée, mais pas son contenu.

Contrôle d’accès

Clés API
Stockées uniquement sous forme d’empreintes SHA-256. La clé complète n’est affichée qu’une fois, lors de sa création. Une clé révoquée cesse de fonctionner en 60 secondes au plus. Avec le forfait Website Archive, les clés API sont en lecture seule : elles permettent de lister, de télécharger et de vérifier des captures et de gérer les abonnements aux webhooks. Avec ce forfait, les captures et les planifications se lancent depuis le tableau de bord.
Connexion au tableau de bord
Firebase Authentication. Vous devez confirmer votre adresse e-mail avant de pouvoir créer des clés, lancer des captures ou souscrire un forfait.
Historique des accès
Lorsqu’une personne autre que l’auteur d’une capture, par exemple le propriétaire du compte entreprise ou un membre d’une affaire, la télécharge, la vérifie ou y accède de toute autre manière, cet accès est consigné dans l’historique de la capture.
Limites de débit
Les requêtes de capture et de certification, ainsi que les autres requêtes facturables, sont soumises à une limite de débit par compte, toutes clés confondues.

Chiffrement

En transit
Tout le trafic de l’API, du tableau de bord et des webhooks passe par HTTPS (TLS).
Au repos
Les paquets de preuves sont chiffrés en AES-256 (chiffrement côté serveur Amazon S3) dans les deux compartiments. Les deux compartiments bloquent tout accès public.

Webhooks

Signature
Les envois de webhooks sont signés selon la spécification Standard Webhooks avec HMAC-SHA256. Les envois vers une webhook_url définie dans une requête ou une planification sont signés avec le secret de signature de la clé API qui l’a définie. Ce secret peut être renouvelé avec une période de chevauchement de 24 heures. Un abonnement aux webhooks défini pour l’ensemble du compte possède son propre secret de signature, affiché une seule fois lors de la création de l’abonnement.
Destinations
Les envois sont adressés uniquement à des points de terminaison HTTPS publics. L’adresse est résolue et contrôlée à nouveau avant chaque envoi, et la connexion n’est établie qu’avec l’adresse contrôlée : les adresses privées, les adresses de bouclage et celles des services de métadonnées du cloud sont ainsi bloquées, même après une modification DNS. Les redirections ne sont pas suivies.
Nouvelles tentatives
Un envoi dont le délai d’attente expire, qui ne parvient pas à se connecter ou qui reçoit un code d’erreur (autre que 410 Gone) est relancé jusqu’à 5 fois sur une période d’environ 35 heures (après 5 min, 30 min, 2 h, 8 h et 24 h) avec le même webhook-id, ce qui permet aux destinataires d’écarter les doublons. Chaque tentative attend une réponse pendant 10 secondes au maximum.
Téléchargements
Les envois relancés et les envois liés à un abonnement ne contiennent pas le lien de téléchargement valable 24 heures. Le destinataire peut en obtenir un nouveau avec GET /v1/captures/{id}.
Abonnements
Un abonnement aux webhooks défini pour l’ensemble du compte est désactivé lorsque son point de terminaison répond par un code 410 Gone, après 5 jours sans envoi réussi ou, s’il a été créé avec une clé API, lorsque cette clé est révoquée. Les événements sont conservés 30 jours et peuvent être récupérés avec GET /v1/events.

Services tiers

Paiements
Les paiements sont traités par Stripe. ProofSnap ne stocke aucun numéro de carte.
E-mails du compte
MailerSend envoie les e-mails de confirmation d’adresse et de réinitialisation du mot de passe.
Horodatages
Les calendriers OpenTimestamps et, pour un horodatage qualifié, Disig a.s. ne reçoivent que l’empreinte du manifeste, jamais les preuves elles-mêmes.
Vérifications DNS et WHOIS
Pour documenter le site capturé, son nom d’hôte est résolu via Google Public DNS et Cloudflare DNS, et l’enregistrement de son domaine est recherché dans les services publics RDAP et WHOIS.

Questions

Écrivez-nous à support@getproofsnap.com pour toute question, pour signaler un problème de sécurité ou pour vous renseigner sur un contrat de sous-traitance.

Commencer gratuitement avec 50 captures d’essai