Politique de Confidentialité QRChat
Date d'entrée en vigueur : 21 mars 2026
Dernière mise à jour : 21 mars 2026
Application : QRChat — Messagerie Chiffrée
Bundle ID : com.ruslan.qrchat
Développeur : Ruslan Constantinovici
1. Introduction et aperçu général
QRChat est une messagerie chiffrée axée sur la confidentialité, conçue avec une architecture à connaissance nulle. La présente Politique de Confidentialité explique quelles informations QRChat collecte, comment elles sont utilisées, à qui elles sont partagées, et quels sont vos droits concernant vos données.
Vos conversations n'appartiennent qu'à vous. Tous les messages sont chiffrés de bout en bout. Nous ne pouvons ni lire, ni scanner, ni analyser le contenu de vos messages. Nous collectons le strict minimum de données nécessaire à la fourniture du service.
Cette politique s'applique à tous les utilisateurs de l'application QRChat, quel que soit leur emplacement géographique. Les droits spécifiques pour les résidents de l'UE/EEE, de Californie et de la République de Moldavie sont détaillés dans la Section 9.
Requis par : Apple App Store Guidelines 5.1.1(i), Google Play User Data Policy.
2. Informations sur le responsable du traitement
Le responsable du traitement de vos données personnelles est :
- Nom : Ruslan Constantinovici
- Adresse : Chișinău, République de Moldavie
- E-mail : ruscon2001@gmail.com
Délégué à la protection des données (DPO) : QRChat est développé et exploité par un développeur individuel et ne traite pas de données personnelles à grande échelle. Conformément à l'article 37 du RGPD, la désignation d'un DPO n'est pas obligatoire. Toutes les questions relatives à la protection des données peuvent être adressées à l'adresse e-mail ci-dessus.
Requis par : RGPD art. 13(1)(a)(b), Loi de la République de Moldavie n° 133/2011 art. 12.
3. Quelles données nous collectons (et lesquelles nous NE collectons PAS)
3.1 Données collectées
| Catégorie | Données | Lieu de stockage | Chiffrées ? | Liées à l'identité ? |
| Fournies par l'utilisateur |
Nom d'affichage |
Appareil uniquement (SQLCipher) |
Oui (AES-256) |
Non — ne quitte pas l'appareil sauf par transfert P2P chiffré vers les contacts approuvés |
| Fournies par l'utilisateur |
Photo de profil (facultative) |
Appareil uniquement (SQLCipher) |
Oui (AES-256) |
Non — partagée uniquement en P2P chiffré avec les contacts approuvés |
| Générées automatiquement |
Paire de clés cryptographiques (X25519) |
Clé privée : iOS Keychain / Android Keystore. Clé publique : serveur (uniquement en mémoire, tant que connecté) |
Clé privée : protégée par Keychain/Keystore. Clé publique : transmise via TLS |
La clé publique sert d'identifiant pseudonyme |
| Générées automatiquement |
Mailbox ID anonyme |
Serveur (fichier JSON, associé au userId pour le routage) |
Transmis via TLS |
Valeur aléatoire de 128 bits, non dérivée de l'identité. Le serveur maintient l'association userId-mailboxId exclusivement pour le routage des notifications push |
| Générées automatiquement |
Jeton d'appareil APNs/FCM |
Serveur (fichier JSON, associé au mailboxId) |
Transmis via TLS |
Lié au mailboxId (pas directement au userId dans le stockage) |
| Transitoires |
Messages chiffrés en attente |
Serveur (fichier JSON, max 48 h) |
Oui — chiffrés E2E, le serveur ne peut pas déchiffrer |
Non (blob chiffré opaque) |
| Transitoires |
Métadonnées des demandes de contact |
Serveur (file d'attente, max 48 h si le destinataire est hors ligne) |
Non — les noms d'affichage et clés publiques sont stockés temporairement en clair |
Oui — contient le nom d'affichage et la clé publique de l'expéditeur |
| Transitoires |
Identifiants TURN Relay |
Metered.ca (fournisseur de relais) |
Les flux média sont chiffrés (SRTP/DTLS) |
Non |
| Licence |
ID d'appareil (licence) |
Serveur (fichier JSON) |
Transmis via TLS |
Non — un UUID généré aléatoirement, non dérivé ni lié à un identifiant matériel ou à l'identité de l'utilisateur |
| Initié par l'utilisateur |
Données de signalement |
Serveur (fichier JSON) |
Transmis via TLS |
Oui — contient l'ID du signaleur, l'ID de l'utilisateur signalé et la raison |
| Transitoires |
Adresse IP |
Serveur (uniquement en mémoire, fenêtre de limitation) |
N/A |
Potentiellement — utilisée uniquement pour la limitation de débit et la prévention des abus, non enregistrée ni persistée |
3.2 Données que nous NE collectons PAS
- Contenu des messages — Tous les messages sont chiffrés de bout en bout avant de quitter votre appareil. Notre serveur relaye des blobs chiffrés qu'il ne peut pas déchiffrer.
- Numéro de téléphone ou adresse e-mail — QRChat ne nécessite aucune inscription.
- Carnet d'adresses / contacts de l'appareil — Nous ne téléchargeons ni n'accédons jamais au carnet d'adresses de votre appareil pour un appariement côté serveur.
- Données de localisation — QRChat ne demande pas le GPS, la géolocalisation par IP ou toute autre information de localisation.
- Analyses ou statistiques d'utilisation — QRChat ne contient aucun SDK d'analyse, de rapport de plantage (Sentry, Crashlytics, Firebase) ou de pixel de suivi.
- Identifiants publicitaires — QRChat n'utilise pas l'IDFA, l'IDFV, le GAID ou tout framework publicitaire.
- Historique de navigation ou requêtes de recherche — Non applicable.
- Historique des achats — Les achats intégrés sont entièrement gérés par Apple StoreKit / Google Play Billing.
- Données de santé, de fitness ou financières — Non applicable.
- Cookies, pixels de suivi ou empreintes numériques — Non utilisés.
Requis par : RGPD art. 13(1)(d)(e), CCPA §1798.100(b), Apple 5.1.1(i), Google Play User Data Policy.
4. Base juridique du traitement (RGPD art. 6)
QRChat s'appuie sur l'exécution du contrat (art. 6(1)(b) RGPD) comme base juridique pour tout traitement de données. Le traitement est strictement nécessaire à la fourniture du service de messagerie. Nous ne nous appuyons pas sur le consentement (art. 6(1)(a)) comme base juridique.
| Données | Base juridique | Justification |
| Clé publique (ID pseudonyme) | Art. 6(1)(b) — Contrat | Nécessaire pour acheminer les messages chiffrés vers le destinataire prévu |
| Mailbox ID + Jeton Push | Art. 6(1)(b) — Contrat | Nécessaire pour délivrer les notifications push pour les messages hors ligne |
| Messages chiffrés en attente | Art. 6(1)(b) — Contrat | Nécessaire pour délivrer les messages quand le destinataire est hors ligne |
| ID d'appareil licencié | Art. 6(1)(b) — Contrat | Nécessaire pour la vérification de la licence QRChat Unlimited |
| Relais TURN | Art. 6(1)(b) — Contrat | Nécessaire lorsque la connexion directe pair-à-pair n'est pas possible |
| Données de signalement | Art. 6(1)(c) — Obligation légale | Requis par les directives de l'Apple App Store pour le signalement de sécurité des utilisateurs |
| Adresse IP (transitoire) | Art. 6(1)(f) — Intérêt légitime | Prévention des abus et limitation de débit |
Requis par : RGPD art. 6, art. 13(1)(c)(d).
5. Chiffrement de bout en bout
QRChat utilise la bibliothèque TweetNaCl (Networking and Cryptography library) pour tout le chiffrement des messages :
- Échange de clés : X25519 (Curve25519 Diffie-Hellman)
- Chiffrement des messages : XSalsa20-Poly1305 chiffrement authentifié (nacl.box)
- Signatures numériques : Ed25519 (vérification d'identité)
- Secret de transmission : Protocole Double Ratchet (lorsque disponible entre clients compatibles)
- Base de données locale : SQLCipher (AES-256-CBC)
- Stockage des clés : iOS Keychain (
WHEN_UNLOCKED_THIS_DEVICE_ONLY) / Android Keystore
L'échange de contacts s'effectue principalement par la lecture de codes QR en personne, qui échange les clés publiques directement entre les appareils. Les demandes de contact peuvent également être envoyées à distance via le serveur de signalisation ; dans ce cas, les métadonnées de la demande (nom d'affichage, clé publique, empreinte) sont transmises en clair via le serveur.
Architecture à connaissance nulle : Le serveur ne détient pas de clés de déchiffrement et n'a aucune capacité de lire, scanner ou analyser le contenu de vos messages.
Requis par : RGPD art. 32, Apple 5.1, Google Play encryption disclosure.
6. Stockage et conservation des données
6.1 Stockage sur l'appareil
Toutes les données personnelles (messages, contacts, clés, paramètres, profil) sont stockées localement sur votre appareil dans une base de données SQLite chiffrée (SQLCipher, AES-256). La suppression de l'application efface définitivement toutes les données locales. Sur iOS, les fichiers sont protégés par NSFileProtectionCompleteUntilFirstUserAuthentication.
6.2 Stockage sur le serveur
Le serveur de signalisation QRChat est hébergé sur Railway.app (centre de données : États-Unis, région Oregon). Les données suivantes sont stockées sur le serveur :
- Messages chiffrés en attente — Blobs chiffrés E2E pour la livraison hors ligne (supprimés automatiquement après 48 heures)
- Routage des notifications push — Association mailboxId-pushToken
- Association utilisateur-mailbox — Association userId-mailboxId, utilisée exclusivement pour le routage des notifications push. Cette association permet au serveur de déterminer quel mailbox appartient à l'utilisateur connecté
- Enregistrements d'appareils licenciés — UUID d'appareils générés aléatoirement pour la vérification de licence
- Enregistrements de signalements — ID du signaleur, ID de l'utilisateur signalé, raison et horodatage (stockés pour la conformité de sécurité de la plateforme)
Le serveur ne stocke pas de profils d'utilisateurs, de listes de contacts, d'historique de messages ou de contenu déchiffré.
6.3 Durées de conservation
| Données | Durée de conservation | Mécanisme de suppression |
| Messages chiffrés en attente | Maximum 48 heures | Purge automatique côté serveur (vérification TTL horaire) |
| Métadonnées des demandes de contact | Maximum 48 heures | Même expiration de la file d'attente des messages |
| Jetons de notifications push | Jusqu'à invalidation par Apple/Google | Nettoyage automatique (BadDeviceToken / Unregistered) |
| Mailbox ID | Jusqu'à invalidation du jeton push associé | Supprimés avec le jeton push |
| ID d'appareils licenciés | Indéfiniment (nécessaire pour la vérification continue de la licence) | Sur demande de l'utilisateur |
| Données de signalement | Conservées pour la conformité de sécurité de la plateforme | Sur demande de l'utilisateur ou exigence réglementaire |
| Adresses IP (limitation de débit) | 60 secondes (fenêtre de limitation) | Expiration automatique en mémoire |
| Données sur l'appareil | Jusqu'à désinstallation de l'app ou suppression manuelle | Action de l'utilisateur |
Requis par : RGPD art. 5(1)(e), art. 13(2)(a), CCPA/CPRA exigence de divulgation de conservation (en vigueur depuis le 1er janvier 2026).
7. Partage de données et services tiers
QRChat NE vend PAS, NE loue PAS, N'échange PAS et NE partage PAS vos données personnelles avec des tiers à des fins de marketing, de publicité ou à toute autre fin au-delà de la fourniture du service de messagerie.
7.1 Apple Push Notification Service (APNs)
- Fournisseur : Apple Inc.
- Objectif : Livraison de notifications push silencieuses lorsque des messages hors ligne sont en attente.
- Données partagées : Jeton d'appareil APNs et une charge utile minimale contenant un indicateur d'événement et l'identifiant de la clé publique de l'expéditeur. Aucun contenu de message n'est inclus dans la notification push.
- Remarque : La clé publique de l'expéditeur (identifiant utilisateur) est transmise via l'infrastructure APNs d'Apple, ce qui signifie qu'Apple peut observer quel appareil reçoit une notification déclenchée par un identifiant d'expéditeur particulier.
- Politique de confidentialité : apple.com/legal/privacy
7.2 Google Firebase Cloud Messaging (FCM)
- Fournisseur : Google LLC
- Objectif : Notifications push sur les appareils Android.
- Données partagées : Jeton d'enregistrement FCM et charge utile minimale de notification.
- Politique de confidentialité : policies.google.com/privacy
7.3 Metered.ca (Relais TURN)
- Fournisseur : Metered Video Inc.
- Objectif : Relais du trafic WebRTC chiffré lorsqu'une connexion directe pair-à-pair ne peut être établie.
- Données partagées : Uniquement des flux média chiffrés (SRTP/DTLS). Metered.ca ne peut pas déchiffrer le contenu. Metered.ca peut observer les adresses IP des pairs connectés. Les identifiants du relais TURN sont des identifiants statiques partagés, configurés sur le serveur (non générés par session).
- Politique de confidentialité : metered.ca/privacy
7.4 Railway.app (Hébergement serveur)
- Fournisseur : Railway Corp.
- Objectif : Héberge le serveur de signalisation QRChat.
- Données traitées : Uniquement les données côté serveur décrites dans la Section 6.2.
- Politique de confidentialité : railway.app/legal/privacy
SDK absents : QRChat ne contient aucun SDK d'analyse (Firebase Analytics, Google Analytics), de rapport de plantage (Sentry, Crashlytics), de publicité (AdMob, Facebook Ads), de réseaux sociaux ou de suivi.
Chaque fournisseur de services tiers énuméré ci-dessus offre une protection des données équivalente ou supérieure à celle décrite dans cette politique, comme confirmé conformément à l'Apple App Store Guideline 5.1.1(i).
Requis par : RGPD art. 13(1)(e)(f), Apple 5.1.1(i), Google Play Data Safety.
8. Transferts internationaux de données
Le serveur de signalisation QRChat est hébergé sur Railway.app aux États-Unis (Oregon). Les données côté serveur (ID mailbox, jetons push, messages chiffrés en attente) peuvent être transférées vers et depuis les États-Unis.
- Transferts UE-US : Protégés par le cadre de protection des données UE-US (DPF), adopté par la décision d'adéquation de la Commission européenne du 10 juillet 2023.
- Données concernées : Exclusivement les données minimales, pseudonymisées/chiffrées côté serveur décrites dans la Section 6.2.
- Protection supplémentaire : Tous les messages sont chiffrés E2E — même si le serveur était compromis, le contenu des messages resterait inaccessible.
- Relais TURN : Les emplacements des serveurs TURN de Metered.ca varient géographiquement, mais tous les médias relayés sont chiffrés de bout en bout (SRTP/DTLS).
Requis par : RGPD art. 44-49, art. 13(1)(f).
9. Vos droits
9.1 Droits universels (tous les utilisateurs)
- Accès : Demandez des informations sur les données que notre serveur stocke associées à vos identifiants anonymes.
- Suppression : Supprimez toutes les données locales en désinstallant l'application. Les messages en attente sont automatiquement purgés dans les 48 heures. Pour la suppression immédiate des jetons push, des ID mailbox ou des données de signalement, contactez-nous à ruscon2001@gmail.com.
- Portabilité : Vos messages et contacts sont stockés localement sur votre appareil et sont accessibles via l'application.
9.2 Pour les résidents de l'UE/EEE (RGPD — Règlement (UE) 2016/679)
En vertu du Règlement Général sur la Protection des Données, vous disposez des droits supplémentaires suivants :
- Droit de rectification (art. 16) : Correction des données inexactes. Note : les données côté serveur sont techniques/pseudonymes, il n'y a donc en pratique pas de « données inexactes » à corriger.
- Droit à l'effacement (art. 17) : « Droit à l'oubli. » La désinstallation de l'application supprime toutes les données locales. Contactez-nous pour la suppression des données côté serveur.
- Droit à la limitation du traitement (art. 18) : Vous pouvez demander la limitation du traitement dans certaines circonstances.
- Droit à la portabilité des données (art. 20) : Vos données sont stockées localement sur votre appareil dans le format de l'application.
- Droit d'opposition (art. 21) : Vous pouvez vous opposer au traitement fondé sur l'intérêt légitime. Note : le traitement de QRChat est fondé sur l'exécution du contrat (art. 6(1)(b)), non sur l'intérêt légitime, à l'exception de la limitation de débit basée sur l'IP.
- Droit de déposer une plainte : Vous pouvez déposer une plainte auprès d'une autorité de contrôle de votre pays de résidence. Pour la République de Moldavie : Centre National pour la Protection des Données à Caractère Personnel (CNPDCP), Chișinău.
- Retrait du consentement : QRChat ne s'appuie pas sur le consentement comme base juridique. Le traitement est fondé sur l'exécution du contrat. Vous pouvez cesser le traitement à tout moment en désinstallant l'application.
- Obligation de fournir des données : La fourniture de données est une nécessité contractuelle pour l'utilisation du service de messagerie. Sans les données minimales décrites dans la Section 3.1, QRChat ne peut pas fonctionner. Vous n'êtes pas obligé(e) d'utiliser QRChat.
Délai de réponse : Nous répondrons à toute demande dans un délai de 30 jours calendaires, conformément au RGPD art. 12(3).
9.3 Pour les résidents de Californie (CCPA/CPRA — Cal. Civ. Code §1798.100 et seq.)
- Droit de savoir (§1798.100) : Vous pouvez demander les catégories et les éléments spécifiques d'informations personnelles collectées à votre sujet.
- Droit de suppression (§1798.105) : Vous pouvez demander la suppression des données côté serveur.
- Droit de refuser la vente (§1798.120) : QRChat ne vend pas d'informations personnelles. Il n'y a pas de mécanisme « Ne pas vendre » car aucune vente n'a lieu.
- Droit à la non-discrimination (§1798.125) : Vous ne serez pas discriminé(e) pour l'exercice de vos droits CCPA.
- Pas de publicité ciblée : QRChat n'utilise pas d'informations personnelles pour la publicité ciblée ou comportementale.
- Informations personnelles sensibles : QRChat ne collecte pas d'informations personnelles sensibles telles que définies par le CPRA.
- Divulgation sur 12 mois : Au cours des 12 derniers mois, QRChat n'a ni vendu ni partagé les informations personnelles d'aucun utilisateur avec des tiers à des fins de publicité comportementale inter-contextes.
9.4 Pour les résidents de la République de Moldavie (Loi n° 133/2011)
- Droit d'accès aux données à caractère personnel
- Droit de rectification des données inexactes
- Droit d'opposition au traitement des données
- Droit de déposer une plainte auprès du Centre National pour la Protection des Données à Caractère Personnel (CNPDCP), Chișinău, République de Moldavie
Note : La Loi n° 195/2024 (nouvelle loi sur la protection des données, alignée sur le RGPD) entre en vigueur le 23 août 2026 et remplacera la Loi 133/2011. QRChat est conçu pour se conformer à la législation actuelle et à venir.
Requis par : RGPD art. 13(2)(b)(c)(d), art. 15-22, CCPA §1798.100-199, Loi RM 133/2011.
10. Confidentialité des enfants
QRChat est classé 17+ sur l'App Store et ne s'adresse pas aux enfants de moins de 13 ans (COPPA) ou de moins de 16 ans (RGPD).
- QRChat ne collecte pas sciemment d'informations personnelles auprès d'enfants.
- Puisque QRChat ne nécessite aucune inscription et ne collecte aucune information personnellement identifiable, le risque de collecte de données auprès de mineurs est minimal.
- Règle COPPA 2025 (mise à jour avril 2025, date limite de conformité 22 avril 2026) : QRChat est conforme par conception — aucune information personnelle n'est collectée auprès d'enfants et aucun mécanisme de consentement parental n'est requis.
Parents/tuteurs : Si vous pensez qu'un enfant de moins de 13 ans utilise QRChat, veuillez nous contacter à ruscon2001@gmail.com.
Requis par : COPPA (16 CFR Part 312), RGPD art. 8, Apple 5.1.4, Google Play Families Policy.
11. Cookies, suivi et ePrivacy
- QRChat n'utilise pas de cookies (application mobile native sans composant web intégré).
- QRChat n'utilise pas de pixels de suivi, d'empreintes numériques d'appareils ou d'autres technologies de suivi.
- QRChat n'utilise pas d'identifiants publicitaires (IDFA, IDFV, GAID).
- QRChat ne partage pas de données avec des réseaux publicitaires ou d'analyse.
- Cette page web de politique de confidentialité ne place pas de cookies.
Directive ePrivacy (2002/58/CE) : QRChat ne stocke ni n'accède à des informations sur l'appareil de l'utilisateur à des fins de suivi. Tout le stockage sur l'appareil est strictement fonctionnel (messages, clés de chiffrement, paramètres de l'application).
Requis par : Directive ePrivacy art. 5(3), RGPD Considérant 30.
12. Mesures de sécurité
Nous mettons en œuvre les mesures de sécurité techniques et organisationnelles suivantes :
- Chiffrement de bout en bout (TweetNaCl : XSalsa20-Poly1305, X25519, Ed25519) pour tous les messages et médias
- Protocole Double Ratchet pour le secret de transmission (lorsque disponible)
- Chiffrement SQLCipher (AES-256) pour la base de données locale
- iOS Keychain avec Secure Enclave / Android Keystore pour le stockage des clés privées
- Architecture mailbox anonyme (séparation userId/mailboxId/pushToken)
- Aucun stockage en clair des messages sur le serveur
- Connexions WebSocket via TLS (wss://) en production
- Authentification défi-réponse Ed25519 pour les connexions WebSocket
- Expiration des messages côté serveur (maximum 48 heures)
- Limitation des notifications push (maximum 1 par 30 secondes par mailbox)
- Limites de la file d'attente des messages en attente (protection DoS)
- Limitation de débit sur les endpoints API
- Aucune journalisation du contenu des messages côté serveur
Requis par : RGPD art. 32, Apple 5.1 Guideline 1.6.
13. Conformité à l'exportation du chiffrement
QRChat utilise un chiffrement non exempt : TweetNaCl/NaCl (XSalsa20-Poly1305, X25519, Ed25519) et SQLCipher (AES-256). ITSAppUsesNonExemptEncryption est défini sur YES dans Info.plist.
Le chiffrement est utilisé exclusivement pour protéger les données des utilisateurs dans les communications pair-à-pair et le stockage local. Les bibliothèques cryptographiques sont open-source et publiquement disponibles. QRChat est distribué en tant que logiciel grand public via les boutiques d'applications.
Applicable : US Export Administration Regulations (EAR), BIS Catégorie 5 Partie 2, Exception de licence ENC §740.17(b)(1).
14. Prise de décision automatisée
QRChat n'utilise pas de prise de décision automatisée ni de profilage au sens de l'article 22 du RGPD. Il n'existe aucun algorithme de recommandation, système de notation ou autre processus automatisé produisant des effets juridiques ou affectant significativement les utilisateurs.
Requis par : RGPD art. 13(2)(f), art. 22.
15. Modifications de cette politique
Nous pouvons mettre à jour cette Politique de Confidentialité lorsque nécessaire. Les modifications significatives seront communiquées en mettant à jour la date « Dernière mise à jour » en haut de cette page et/ou par une notification dans l'application. L'utilisation continue de QRChat après les modifications constitue l'acceptation de la politique mise à jour.
Cette politique sera révisée au moins une fois par an.
Requis par : Apple 5.1, exigence CCPA de mise à jour annuelle, RGPD art. 13(3).
16. Coordonnées
- Responsable du traitement : Ruslan Constantinovici
- E-mail : ruscon2001@gmail.com
- Adresse : Chișinău, République de Moldavie
- Réponse garantie : Dans un délai de 30 jours calendaires
- Langues acceptées : anglais, roumain, russe, français
Requis par : RGPD art. 13(1)(a)(b), CCPA §1798.130.
17. Droit applicable et juridiction
La présente Politique de Confidentialité est régie par le droit de la République de Moldavie.
- Pour les résidents de l'UE/EEE, les droits du RGPD s'appliquent indépendamment de la juridiction de cette politique.
- Pour les résidents de Californie, les droits CCPA/CPRA s'appliquent indépendamment de la juridiction de cette politique.
- Pour les résidents de la République de Moldavie, la Loi n° 133/2011 s'applique (et la Loi n° 195/2024 à son entrée en vigueur).
Requis par : RGPD art. 3 (portée territoriale), CCPA §1798.140(c).