Politique de confidentialité

1. Objet et champ d'application

La présente politique décrit la manière dont CaptainDNS (ci‑après "le Service", "nous**") traite les données à caractère personnel des utilisateurs (ci‑après "vous", "Utilisateur") lors de l'authentification, de l'utilisation des fonctionnalités de résolution DNS et de la consultation/partage des journaux techniques.

2. Résumé non technique

  • Nous utilisons Auth0 pour l'authentification.
  • Nous maintenons un profil interne (email, nom, pseudo, locale, avatar…) et des journaux techniques détaillant les appels API (incluant l'adresse IP et des payloads).
  • Des fonctionnalités de "résolution surveillée" stockent des métadonnées DNS (qname, qtype, résolveur, hash/résumé des réponses, diffs, latence, horodatages).
  • Côté navigateur, nous n'utilisons que des stockages fonctionnels (un cookie de langue, localStorage et sessionStorage) qui ne servent pas au marketing.
  • Les données sont hébergées dans l'EEE (Union européenne/EEE) sur des serveurs sécurisés et conformes RGPD.
  • Des tiers peuvent recevoir certaines données selon votre usage : Auth0 (identité) et des résolveurs DNS publics (Cloudflare, Google, Quad9, AdGuard, NextDNS).
  • Vous disposez de tous vos droits RGPD (accès, rectification, effacement, etc.) et pouvez révoquer un lien public de journal via le support.

3. Données traitées, finalités et bases légales

A. Authentification et profil

Données traitées

  • Jetons Auth0 et attributs fournis
  • Profil local
  • Synchronisation front->back

Finalités

  • Création et tenue à jour de votre compte/profil.
  • Fourniture du Service et de vos préférences d'affichage.

Base légale (RGPD art. 6)

  • Exécution du contrat (art. 6‑1‑b) : fournir l'accès et les fonctionnalités attendues.
  • Intérêt légitime (art. 6‑1‑f) : sécurisation des accès (tokens, vérifications techniques).

B. Journaux techniques backend

Données traitées

  • Par middleware : méthode, route, statut, durée, adresse IP (dérivée d'X-Forwarded-For, X-Real-IP ou fournie par le frontend), payloads JSON (requête/réponse ou aperçu tronqué), code/texte d'erreur, source (anonyme/authentifiée), identifiant utilisateur (si disponible), horodatages, token public unique (facultatif) pour partage.
  • Endpoints frontend :
    • /api/requests/history-token/[requestId] (vérifie l'existence d'un public_token et renvoie un résumé : horodatage, route, statut, code d'erreur).
    • /api/request-history/[token] (relai de la vue épurée, no‑cache).
    • /api/requests/recent (jusqu'à 50 derniers appels pour un utilisateur authentifié, après nettoyage des champs attendus).

Finalités

  • Exploitation, diagnostic, sécurité, lutte contre l'abus, support, preuve d'exécution, amélioration du Service.
  • Fourniture d'une fonction de partage volontaire de journaux (token).

Base légale

  • Intérêt légitime (art. 6‑1‑f) : sécurité et bon fonctionnement du Service.
  • Exécution du contrat (art. 6‑1‑b) pour vous permettre de consulter votre historique et, si vous l'activez, d'en partager une vue épurée.

C. "Resolve watches" (surveillances)

Données traitées

  • Propriétaire (profil), requête DNS d'origine (qname, qtype, résolveur), observations successives (hash des réponses, TTL min/max, diff JSON, indicateurs d'anomalie, horodatages).

Finalités

  • Vous fournir une fonctionnalité de surveillance DNS et de détection de changements/anomalies.

Base légale

  • Exécution du contrat (art. 6‑1‑b).

D. Stockages côté navigateur (fonctionnels uniquement)

Données et durées

  • Cookie NEXT_LOCALE : 180 jours, SameSite=Lax, option Secure ; mémorise la langue choisie. La page d'accueil peut également lire l'en‑tête Accept-Language pour orienter un visiteur sans cookie existant.
  • localStorage (HistoryService, jusqu'à 500 événements par couple hôte/qtype) : timestamp, hôte, type, résolveur, code réponse, latence, réponses textuelles. (Rappel : lisible par tout script exécuté sur la page.)
  • sessionStorage : clés anti‑relance (hash de la requête) et timestamp, nettoyées après usage ou expiration 15 s.

Finalités

  • Strictement fonctionnelles (confort d'usage, prévention des répétitions de requêtes).
  • Aucun traçage publicitaire.

Base légale

  • Exemption ePrivacy pour cookies/stockages strictement nécessaires.
  • Intérêt légitime (art. 6‑1‑f) : fournir une expérience stable et éviter un usage abusif.

E. Appels sortants vers des résolveurs DNS publics

Données transmises

  • Noms de domaine et paramètres nécessaires aux requêtes DNS que vous initiez (pouvant, selon le contexte, contenir des éléments identifiants).
  • Prestataires : Cloudflare, Google, Quad9, AdGuard, NextDNS, etc. (selon le preset choisi).

Finalités

  • Exécuter vos requêtes DNS et fournir les résultats/analyses.

Base légale

  • Exécution du contrat (art. 6‑1‑b).

4. Destinataires et catégories de destinataires

  • Équipe interne habilitée (besoin d'en connaître) : exploitation, support, sécurité.
  • Sous‑traitants (contrats, DPA/SCC en place) :
    • Hébergement & base de données PostgreSQL (EEE).
    • Auth0 (Okta) pour l'authentification et l'API.
  • Tiers destinataires indépendants (agissant en tant que responsables de traitement distincts pour vos requêtes DNS) : Cloudflare, Google, Quad9, AdGuard, NextDNS.
  • Prestataires de messagerie/assistance (si vous contactez le support).

Aucune vente de données. Aucun transfert à des fins publicitaires.

5. Transferts hors EEE

Notre infrastructure principale (application et base PostgreSQL) est hébergée dans l'EEE. Nous faisons nos meilleurs efforts pour configurer Auth0 et nos sous‑traitants en région UE.
Si, à titre exceptionnel, un transfert hors EEE s'avérait nécessaire (p. ex. routage réseau des résolveurs choisis, opérations Auth0), il serait encadré par des Garanties appropriées (RGPD art. 46), notamment Clauses Contractuelles Types (SCC) et mesures supplémentaires, ou fondé sur une dérogation (art. 49) lorsque la requête est effectuée à votre initiative et nécessaire à l'exécution du Service.

6. Durées de conservation

CatégorieDuréeCommentaires
ProfilPendant la vie du compte + 30 jours après suppression, puis suppression des données actives ; sauvegardes jusqu'à 90 jours max.Nécessaire pour la gestion du compte et la traçabilité minimale.
Journaux API180 jours maximum (roulant). Extension possible jusqu'à 12 mois en cas d'incident/obligation légale, puis suppression ou anonymisation.Couvre IP, payloads, statut, erreurs, tokens.
Resolve watchesTant que la surveillance est active. Après désactivation/suppression : purge sous 30 jours ; agrégats/anonymisés possibles.Les diffs/observations détaillées sont conservés 6 mois max.
Token public de partageSans expiration automatique à ce stade : valide jusqu'à révocation via le support (voir § 7).Une expiration automatique configurable pourra être ajoutée.
Cookie NEXT_LOCALE180 joursStrictement fonctionnel.
localStorage (historique DNS)Stockage local (non transmis au serveur) ; vous pouvez le vider à tout moment.Jusqu'à 500 événements par couple hôte/qtype.
sessionStorage (anti‑relance)~15 secondes, puis nettoyage post‑usage.Éphémère, fonctionnel.

Note opérationnelle : lorsque la purge automatique est en place, elle supprime/anonymise les enregistrements arrivés à échéance. Les sauvegardes sont gérées avec des rétentions limitées et un accès restreint.

7. Partage des journaux via lien public

Le Service permet de partager une vue épurée d'un journal d'appel via une URL contenant un token public :

  • Génération/consultation : l'API renvoie une vue qui filtre les clés sensibles (email, password, cookie, etc.) et empêche le cache navigateur.
  • Étendue : toute personne détenant l'URL peut voir la vue épurée correspondante.
  • Révocation : pour invalider un token, contactez le support à [support@…] en indiquant l'ID du log ou l'URL publique. Nous procédons à la suppression du log ou à la révocation du token, rendant le lien inopérant.
  • Limites : malgré l'en‑tête no‑cache, des tiers peuvent avoir copié le contenu ; la révocation empêche de nouvelles consultations depuis l'API, mais ne peut pas effacer des copies externes.

8. Sécurité

Nous appliquons des mesures techniques et organisationnelles conformes à l'état de l'art :

  • Chiffrement en transit (TLS) et au repos (chiffrement des volumes).
  • Contrôles d'accès (moindre privilège), cloisonnement des environnements, journalisation des accès.
  • Durcissement des endpoints, limitation de débit, détection d'anomalies.
  • Gestion des secrets côté serveur, rotation, stockage sécurisé.
  • Accès restreint aux journaux contenant IP/payloads ; exports chiffrés si nécessaire.
  • Revues de code et surveillance des dépendances.

En cas de violation de données, nous notifierons l'autorité compétente (ex. CNIL) dans les 72 heures lorsque requis, et les personnes concernées en cas de risque élevé.

9. Vos droits

Conformément aux articles 15 à 22 du RGPD, vous disposez de :

  • Droit d'accès à vos données.
  • Droit de rectification et d'effacement ("droit à l'oubli").
  • Droit à la limitation et d'opposition (notamment aux traitements fondés sur l'intérêt légitime).
  • Droit à la portabilité (données que vous nous avez fournies, dans un format structuré).
  • Droit de définir des directives post‑mortem (France).

Pour exercer vos droits : écrivez‑nous à contact@captaindns.com en joignant un élément d'identification. Nous répondrons sous un (1) mois (prolongeable de deux (2) mois pour les demandes complexes, avec information). Vous pouvez adresser une réclamation à la CNIL (www.cnil.fr) ou à votre autorité locale.

10. Gestion des cookies et stockages locaux (navigateur)

  • Désactivation/purge : vous pouvez supprimer le cookie NEXT_LOCALE, vider le localStorage (historique DNS) et le sessionStorage via les paramètres de votre navigateur.
  • Conséquences : la désactivation peut dégrader certaines fonctionnalités (langue, anti‑relance).
  • Aucune publicité ni profilage via ces mécanismes.

11. Dépendances et appels réseau côté frontend

Les routes API Next.js agissent en proxy : ajout de l'en‑tête X-Frontend-User-IP (déterminé via X-Forwarded-For, X-Real-IP ou Forwarded) et, si disponible, du jeton d'accès Auth0 dans Authorization. Le proxy s'authentifie auprès du backend via un service‑token dédié.
Ces éléments sont traités exclusivement pour la sécurité et le bon acheminement des requêtes (base légale : intérêt légitime).

12. Enfants

Le Service ne s'adresse pas aux mineurs de moins de 15 ans (France) sans consentement parental conforme (RGPD art. 8). Si vous pensez qu'un mineur nous a fourni des données, contactez‑nous pour suppression.

13. Décisions automatisées

Aucune décision produisant des effets juridiques fondée uniquement sur un traitement automatisé n'est prise sur la base de vos données.

14. Modifications de la présente politique

Nous pouvons mettre à jour la présente politique pour tenir compte des évolutions légales ou techniques. En cas de changement substantiel, nous vous en informerons par email ou dans l'application et, si requis, recueillerons votre consentement.

15. Coordonnées

Annexe A - Liste des sous‑traitants et tiers

  • Auth0 (Okta) : fournisseur d'identité (authentification).
  • Hébergeur / DB PostgreSQL : Fly.io.
  • Résolveurs DNS (tiers responsables) : Cloudflare, Google, Quad9, AdGuard, NextDNS, etc. (selon vos réglages).
  • Messagerie/support : Google Workspace.

Annexe B - Bases légales par finalité (mémo)

  • Exécution du contrat (6‑1‑b) : création/gestion du compte, fonctionnalités DNS, resolve watches, fourniture de l'historique et de sa vue partagée (à votre initiative).
  • Intérêt légitime (6‑1‑f) : sécurité (journaux techniques, IP, anti‑relance), prévention de l'abus, amélioration du Service, confort fonctionnel (cookie de langue).
  • Consentement : non requis pour les cookies/stockages strictement fonctionnels (exemption ePrivacy).

Informations pratiques et points d'attention (opérationnels)

  • Purge des journaux API : rétention 180 jours (roulant), prolongée uniquement pour investigation/obligation légale (max. 12 mois), puis suppression ou anonymisation.
  • Accès interne aux journaux complets (IP/payloads) strictement limité ; exports chiffrés en cas de besoin.
  • Partage via token public : privilégier un partage temporaire et révoquer dès que le besoin cesse (support : contact@captaindns.com).
  • Stockages locaux : lisibles par tout script exécuté sur la page ; évitez d'y saisir des informations sensibles.
  • DNS tiers : les noms de domaine que vous saisissez sont transmis aux résolveurs sélectionnés ; référez‑vous à leurs politiques pour en savoir plus.

Mentions finales

Cette politique s'inscrit dans notre Registre des activités de traitement et notre Programme de sécurité. Elle sera ajustée si l'architecture évolue (p. ex. ajout d'une expiration automatique des tokens de partage).

Dernière mise à jour : 04 novembre 2025