Klaar Bruxelles · Brussel

Mentions légales

Éditeur du site

Klaar (klaar.ecosolva.org) est édité par Gilles Maury, indépendant (architecte solutions & développeur freelance), basé à Bruxelles, Belgique.

Numéro d'entreprise (BCE/TVA) : BE0670.778.061
Contact : gilmry@gmail.com

Directeur de publication

Gilles Maury.

Hébergement

Klaar est prévu pour être auto-hébergé : l'API, le site et la base PostgreSQL tournent sur un serveur administré par l'éditeur, sans sous-traitant d'hébergement tiers. Le trafic est chiffré par un proxy inverse qui termine TLS devant l'application, avec un certificat Let's Encrypt renouvelé automatiquement.

L'hébergeur effectif dépend de l'exploitant : si ce déploiement n'est pas le vôtre, c'est à lui qu'il revient de le nommer ici.

Propriété intellectuelle

Le code source de Klaar est publié sous licence libre MIT et disponible sur github.com/gilmry/klaar. La licence couvre le logiciel ; elle ne couvre pas la conformité réglementaire d'un déploiement, qui incombe à celui qui l'exploite.

Données personnelles

Cette section décrit ce que le logiciel traite réellement, tel qu'il est écrit. Elle ne décrit ni les intentions de conception, ni ce qui reste à faire : ces deux-là sont dans COMPLIANCE.md, à la racine du dépôt.

Ce qu'un compte contient

L'adresse de courriel, normalisée en minuscules ; l'empreinte du mot de passe, calculée avec argon2id, jamais le mot de passe lui-même ; la langue choisie parmi le français, le néerlandais et l'anglais ; la date de création et le statut du compte. Rien d'autre n'est demandé à l'inscription : exiger un nom ou une adresse avant qu'une adresse de courriel soit seulement confirmée reviendrait à collecter avant d'avoir la moindre preuve que la personne existe.

Vérification de l'adresse, et comptes jamais confirmés

Le lien de vérification vaut une heure. Le jeton n'est pas conservé en clair : la base n'en garde que l'empreinte SHA-256, de sorte qu'une lecture de cette table ne permet pas d'activer les comptes en attente.

Un compte que personne ne confirme est effacé au bout de soixante-douze heures. Conservées indéfiniment, ces lignes transformeraient des tentatives d'inscription en liste de personnes, y compris celles créées avec l'adresse de gens qui n'ont rien demandé et n'ont fait que recevoir un courriel. Les trois jours ne servent pas au parcours normal, qui tient en une heure : ils laissent la place à un renvoi de lien demandé le lendemain ou après un week-end.

Courriels

Le message, son sujet traduit et son lien de vérification sont composés par l'application, puis remis à un relais d'expédition configuré par l'exploitant. Ce relais est un destinataire au sens du RGPD : il reçoit l'adresse et le contenu du message. Sans relais configuré, aucun courriel n'est expédié et le message n'est qu'écrit dans le journal du serveur.

Sessions

Le jeton d'accès vit une heure, et en mémoire de l'onglet : ni localStorage ni sessionStorage, que le moindre script de la page peut lire. Il disparaît au rechargement.

Le jeton de rafraîchissement vit trente jours, dans un cookie HttpOnly — donc hors de portée de JavaScript —, SameSite=Lax et Secure dès lors que le service est servi en HTTPS.

À l'ouverture d'une session, l'empreinte SHA-256 de l'agent utilisateur est conservée, et non l'agent lui-même. Elle sert à une seule chose : repérer qu'un rafraîchissement est présenté depuis un contexte différent de celui qui l'a obtenu. C'est une mesure de sécurité au sens de l'article 32 du RGPD, pas une mesure d'audience.

Protection des comptes

Cinq échecs de connexion en dix minutes verrouillent un compte pour quinze minutes, et son titulaire en est averti. La limitation du nombre d'inscriptions se fait par adresse IP, mais l'adresse n'est pas conservée : la clé du compteur est son empreinte SHA-256 tronquée, et ce compteur vit en mémoire du processus, donc disparaît au redémarrage.

Journal d'audit

Chaque entrée porte un code d'événement, un horodatage et, quand l'événement doit être rattaché à un compte, son identifiant. Ni adresse IP, ni agent utilisateur : ces données sont personnelles, et aucune finalité ni durée de conservation n'a été arrêtée pour elles ici. Une tentative d'inscription sur une adresse déjà prise est consignée sans l'identifiant du titulaire, faute de quoi ce journal deviendrait le moyen d'énumérer les comptes que le reste du service refuse d'être.

Notifications

L'abonnement aux notifications est facultatif et se retire depuis le navigateur. Il est rattaché au compte et disparaît avec lui : un abonnement orphelin continuerait à recevoir les notifications d'un compte supprimé.

Position pendant une intervention

Le partage de position par un prestataire est consenti intervention par intervention, et révocable à tout moment. Une préférence de compte vaudrait pour toutes les missions passées et à venir, ce qui n'est pas un consentement éclairé.

Les positions sont ramenées à une grille de cinquante mètres avant d'être enregistrées, et non au moment de les afficher : dégrader à l'affichage laisserait la donnée fine là où une fuite la prendrait. Vingt-quatre heures après la fin d'une intervention, il ne reste qu'une distance, une durée et un nombre de relevés. Un retrait de consentement vaut pour l'avenir ; les positions déjà transmises restent jusqu'à cette purge, et la date du retrait est conservée à côté de celle de l'accord, sans quoi la preuve qu'un accord avait été donné disparaîtrait.

L'analyse d'impact (RGPD art. 35) n'est pas faite. Elle doit précéder le traitement, pas le suivre. Le suivi de position ne doit pas être activé sur des positions réelles avant qu'elle soit signée.

Effacement et droits

L'effacement se demande depuis le compte et s'exécute après trente jours. Le délai n'a de raison d'être que parce qu'il est réversible : le compte reste utilisable pendant l'attente, sans quoi son titulaire ne pourrait pas se connecter pour annuler sa propre demande.

Sont effacés l'adresse, l'empreinte du mot de passe, les jetons de vérification, les sessions et les abonnements aux notifications. La ligne de compte est vidée et non supprimée : la supprimer emporterait les entrées du journal d'audit, qui doivent être conservées. L'adresse est remplacée par une valeur dérivée de l'identifiant sur un domaine réservé aux usages fictifs.

Ce qui n'est pas encore couvert, et qu'il faut savoir avant de déployer : l'effacement ne traite pas les interventions, les documents de facturation, les traces de position ni les identifiants du prestataire de paiement. L'export de vos données (droit à la portabilité, art. 20) et l'information des destinataires (art. 19) ne sont pas fournis non plus. Ces droits restent dus par l'exploitant, qui devra les honorer hors de l'application tant qu'ils n'y sont pas.

Prestataires

Seule la clé de contrôle du numéro d'entreprise est vérifiée, hors ligne. Elle attrape une faute de frappe ou un numéro inventé, jamais l'existence réelle d'une entreprise : ni la Banque-Carrefour des Entreprises, ni l'état de faillite, ni l'attestation d'assurance ne sont interrogés. Les fiches prestataires de ce déploiement portent en base une origine DEMONSTRATION qui les rend identifiables comme telles.

Paiement

Le séquestre s'appuie sur Stripe Connect, qui est donc destinataire des données de paiement. Aucune donnée de carte ne transite par ce service ni n'y est conservée.

Traceurs

Aucun traceur publicitaire, aucune mesure d'audience, aucun cookie autre que celui de rafraîchissement décrit plus haut, qui est nécessaire au fonctionnement du service.

Vos droits

Accès, rectification, effacement, limitation, opposition et portabilité s'exercent auprès de gilmry@gmail.com. Une réclamation peut être adressée à l'Autorité de protection des données (autoriteprotectiondonnees.be).

Langue de cette page

Le reste de Klaar est traduit en français, néerlandais et anglais. Cette page ne l'est pas encore. Un texte juridique traduit approximativement dit autre chose que l'original, ce qui est pire ici qu'ailleurs ; la traduction demande une relecture, pas une génération. À Bruxelles, la mener est nécessaire et non optionnel.

Retour à l'accueil