Aller au contenu

Cwtch — dossier de preuves (situation au 13 octobre 2026)

Registre de preuves — Phase 2

Ce dossier est une pièce de recherche datée. La conclusion canonique est celle du rapport final 1.0. Les synthèses antérieures et renvois à la Phase 3 restent historiques. UNKNOWN reste UNKNOWN.

Sources primaires déterminantes : manuel technique et de sécurité, protocole Tapir, paquets Tapir, serveurs et groupes, fichiers, stockage local, changelog, repo core [accès à vérifier], repo UI [accès à vérifier], rapport annuel 2022, fiche Play.

# Catégorie FACT — documenté/observé VENDOR CLAIM INDEPENDENT EVIDENCE INFERENCE UNKNOWN / réserve
1 Architecture Apps clientes et bibliothèque Go; connexions inter-nœuds par onion services Tor v3. P2P privé nécessite les deux pairs en ligne; l’asynchronisme des groupes repose sur serveur volontaire. « Pas de service/réseau Cwtch », infrastructure non fiable et résistance aux métadonnées. Papier de conception 2018, protocole publié, code ouvert; pas de validation indépendante actuelle des propriétés complètes. La topologie réduit les points centraux mais déplace le risque vers Tor, appareils, serveurs de groupes et distribution. Modèle de déploiement réellement utilisé par les groupes et versions différentes de l’app.
2 Protocole crypto Profils avec clé Ed25519 compatible onion v3; authentification P2P de type 3DH, KDF et chiffrement de session. Paquets 8192 octets rembourrés puis Secretbox libsodium; signatures de messages de groupe Ed25519. La documentation présente P2P comme authentifié, chiffré, déniable après session; groupes chiffrés par clé de groupe. Détails algorithmiques publiés dans le handbook; aucune analyse cryptographique indépendante récente retrouvée. Le rembourrage fixe réduit la fuite de taille du paquet Tapir, mais pas les horaires, fréquences ou corrélations réseau. Paramètres KDF/Secretbox exacts par commit, gestion/rotation de clé de groupe et propriétés formelles de la release stable.
3 Création d’identité Création locale d’une paire aléatoire Ed25519 par profil; l’adresse onion v3 est l’identifiant partageable. Identité pseudonyme sans compte central. Source et docs concordent sur le format/identifiant; aucune preuve d’entropie mesurée sur chaque plateforme. Réutiliser le profil/adresse crée une identité persistante et linkable. RNG matériel/OS, garanties par version et protection du secret en mémoire.
4 Découverte de contacts Pas de recherche globale par numéro/e-mail; les adresses doivent être échangées hors bande ou par conversation déjà connue. Contact « sans consentement explicite » absent du répertoire central. Architecture et modèle onion visibles dans les docs. L’OSINT d’une adresse divulguée devient une attaque ciblée; l’adresse est un identifiant longue durée. Collecte réelle de carnet local par chaque build; pas d’audit manifeste/traffic ici.
5 Métadonnées serveur Serveur de groupe stocke messages chiffrés et sert les clients; les docs décrivent une inférence par signatures uniques et demandes de nouveaux messages; le projet reconnaît ne pas garantir une résistance totale. Serveur non fiable, sans identité de membres, groupe ni contenu en clair. Les propres spécifications du projet exposent les inférences et le risque de censure/DoS. Serveur peut constater des sessions, synchronisations, volume et cadence même si l’app ne donne pas de noms. Schéma exact des logs, rétention, observabilité opérateur et état des serveurs réels.
6 IP utilisateur Transport via Tor v3; le FAI voit une connexion Tor/volumes/horaires, pas l’adresse onion destinataire en clair dans une utilisation nominale. Tor empêche le serveur de connaître l’IP réelle du client. Architecture technique Tor documentée; aucun test de fuite réseau sur build 1.17.2 réalisé. Une corrélation multi-points, un terminal compromis ou un Tor binaire/process malveillant peut réduire la protection. Fuites DNS/IPv6, comportement en panne de Tor, télémétrie au démarrage et différences par OS.
7 IP exposée au correspondant Échange via onion services plutôt que socket public direct; aucune IP publique du client n’est prévue dans le protocole d’identité. Les contacts ne reçoivent que l’adresse onion. Conception publiée; pas de test paquet sur Android/Desktop courant. Tor masque l’IP réseau au pair dans le fonctionnement attendu, mais ne protège pas contre logiciel/OS compromis ou erreur de configuration. Résultat pcap client→client v1.17.2, et effet d’un proxy Tor externe/Whonix/Tails.
8 Messages P2P synchrone; historique facultatif/local. Groupes expérimentaux via serveur, messages récupérés depuis la dernière synchro; suppression par défaut au shutdown selon ancien réglage global, réglable dans les versions ultérieures. E2EE et déniabilité. Manuel technique décrit les formats, signatures, padding et modèle de serveur; pas d’audit indépendante. Les groupes et P2P n’ont pas le même régime de livraison ni les mêmes fuites. Comportement exact du défaut « save history » en 1.17.2 et tous clients.
9 Groupes Legacy groupes via serveur onion non fiable, participation opt-in; Hybrid Groups introduits en 1.17, également expérimentaux et distincts. L’hôte Hybrid de confiance voit contenu et métadonnées. Legacy server ne devrait pas apprendre l’identité/contenu/groupe; Hybrid fait un compromis de confiance explicite. Changelog 1.17/1.17.2 et handbook énumèrent les risques, limites de cohérence/censure. Une invitation Hybrid change le modèle de menace : l’opérateur-hôte est un destinataire de confiance, pas un serveur aveugle. Examen indépendant du protocole Hybrid, stabilité et comportement réel des fonctions expérimentales.
10 Appels Aucun appel audio/vidéo documenté dans le client standard consulté. Pas d’affirmation vérifiée pour une capacité d’appel. Fiche Play et docs examinées; aucun appel décrit. Exposition de médias d’appel non applicable à la version/produit documenté. Plugins/bots tiers ou forks de protocole peuvent ajouter des appels.
11 Fichiers Fonction expérimentale opt-in; contenu transféré onion-à-onion directement, expéditeur en ligne nécessaire. Offre de groupe (nom, taille, hash, nonce) publiée dans message de groupe; manifeste Android dans cache. Le serveur de groupe ne reçoit pas le contenu fichier. Docs reconnaissent l’offre, métadonnées de fichier, cache et EXIF/PDF pouvant révéler identité/localisation. Le contenu peut être E2EE mais offre et pièce jointe peuvent révéler des métadonnées aux membres et à l’endpoint. Chiffrement de stockage de chaque fichier/cache par OS, nettoyage après réception, reprise et comportement de métadonnées pour chaque format.
12 Multi-device Export/import de profil disponible; même profil/key material peut être déplacé; pas d’état « cloud account » central. Contrôle local par l’utilisateur. Docs et changelog confirment export/import. Export accroît l’exposition et peut dupliquer un secret long terme. Sync simultanée, clones concurrents et notifications entre appareils selon versions.
13 Push Pas de preuve d’APNs/FCM pour le client Cwtch examinée; l’app Android utilise des capacités de service/notification système. Play déclare aucune donnée collectée/partagée par l’app. Déclaration Google Play auto-fournie; elle ne remplace pas inspection du binaire/flux. L’absence de serveur Cwtch n’empêche pas les métadonnées OS, stores ou Tor. FCM/APNs réellement embarqués, payloads, token, permissions, notification preview et réseau du binaire 1.17.2.
14 Stockage local Profils SQLite chiffrés avec clé dérivée du mot de passe via PBKDF2; profil « sans mot de passe » utilise un mot de passe par défaut codé en dur. Passage en 1.16.1 à nouveau backend chiffré go-sqlcipher et crypto Go mémoire sûre. Le mot de passe fort protège contre accès au système de fichiers. Handbook et changelog explicitent le défaut faible et la migration du backend. Sans mot de passe choisi, copie du profil peut être déchiffrable; chiffrement DB n’efface pas les caches, swaps, journaux ou états en mémoire. Paramètres PBKDF2, chiffrement exact du backend courant, mémoire, fichiers temporaires, protection par Keychain/Keystore.
15 Sauvegardes Export local; aucun service de sauvegarde fournisseur établi. Fichier téléchargé/exports peuvent contenir données en clair selon choix OS. L’utilisateur contrôle l’export. Documentation officielle. Copie hors appareil multiplie les lieux d’exposition. Processus backup téléphone, cloud d’OS et suppression des anciennes copies.
16 Analytics/SDK Repo Flutter, Go, Tor; Play indique « aucune collecte/partage » selon déclaration du développeur. Aucun inventaire SDK dynamique réalisé. Pas de données collectées/partagées (Play); privacy policy Cwtch dit ne pas collecter l’usage, hors feedback. Politique et fiche Play sont primaires mais auto-déclarées; le code public est inspectable, non inspecté ici fichier par fichier. Feedback volontaire peut associer e-mail/clé publique à un rapport; store/CDN/build restent tiers. Crash analytics, Flutter telemetry dans app, SDKs/permissions effectifs, trafic réseau et iOS inexistant.
17 Code source Core Go et UI Flutter/Dart publics sur Gitea Open Privacy; activité observée : core 1 330 commits, latest listé 24 sept. 2026; UI 1 554 commits, latest 8 oct. 2026; releases et tags publics. Process review-driven/open. Pages repo, commits, Drone CI et handbook consultés. Activité soutenue mais petit noyau apparent (Erinn/Sarah/Dan identifiables dans l’historique affiché); compter les mainteneurs exige une analyse des contributions. Nombre exact de mainteneurs actifs par sous-composant et règles de signatures de release.
18 Reproductibilité Scripts repliqate permettent de reproduire les bindings; documentation officielle dit que seuls les bindings sont reproductibles aujourd’hui, pas l’application/UI intégrale. macOS dépend SDK Apple; app embarque Tor et libCwtch téléchargés par scripts. Reproducible builds comme objectif. Documentation de release, scripts et communiqué 1.17 identifiant libCwtch v0.3.0. Aucun rebuild indépendant mené ici. Le hash SHA-512 confirme le fichier téléchargé contre checksum publié, pas la correspondance code/binaire. Résultat bit-à-bit pour binaires 1.17.2 toutes plateformes, provenance/signature des Tor/lib, intégrité de pipeline.
19 Supply chain Go, Flutter, Tor empaqueté, SQLCipher/go-sqlcipher, dépendances Dart et outils Drone; CI requiert approbation membre de l’équipe; trois staff autorisés à outrepasser trunk selon handbook. Ouverture et tests automatisés réduisent le risque. Pipeline et risques propres reconnus dans handbook; Windows installer signé, checksums SHA-512 publiés. Compromission d’un membre autorisé, runner, domaine de téléchargement, toolchain ou dépendance peut viser les binaires. SBOM complet courant, signatures vérifiées, attestations, pinning intégral, audit de runners et résultats des rebuilds.
20 Infrastructure Pas de serveur de messagerie central; domaines de code/téléchargement, CI et site Open Privacy sont des points d’administration. Serveurs de groupes sont opérés volontairement sous onion service. « Pas de réseau Cwtch » au sens d’un service central. Code/doc officiel, aucune résolution DNS/ASN passive horodatée faite dans cette phase. Le plan de données décentralisé n’élimine pas la centralisation de distribution des binaires et du code. IP/ASN/hébergeurs/cloud/CDN/régions des domaines/serveurs opérés, logs Tor, fournisseurs et redondance.
21 Juridiction Open Privacy Research Society est une organisation sans but lucratif incorporée en Colombie-Britannique, Canada. Les serveurs de groupes peuvent être partout. L’organisation affirme ne pas pouvoir collecter l’usage ordinaire. Politique vie privée et rapports annuels Open Privacy. Autorités peuvent viser l’organisation (distribution/feedback) ou administrateur du serveur (ciphertext/traffic), ou utilisateur/terminal. Politique légale actuelle détaillée par service/hébergeur, rétention d’un opérateur de groupe type.
22 Demandes policières Pas de law-enforcement guide, transparency report ni formulaire public repéré pour Cwtch/Open Privacy. Politique confidentialité : pas de logs IP uniques du site, uniquement journaux agrégés déclarés. Source primaire; ne prouve pas l’absence d’autres journaux chez tiers/serveurs bénévoles. Les demandes contre Open Privacy peuvent viser les données volontairement fournies au support/store; serveur de groupe différent. Demandes, réponses, preservation, emergency disclosure, saisies de serveurs et données effectivement remises.
23 Affaires judiciaires Aucun cas primaire reliant une demande judiciaire à Cwtch et à des données produites localisé. Aucune revendication publique de « zéro cas » retrouvée. Recherche dans décisions/affidavits/reportages ciblés n’a pas identifié de cas. Non trouvé n’est pas preuve qu’aucun cas n’a existé. Dossiers non indexés, ordonnances secrètes ou enquête sans décision publique.
24 Audits Aucun audit indépendant formel du protocole/client n’a été localisé. Rapport Open Privacy 2022 dit qu’un audit formel dépasserait 10 % des revenus et n’a pas été commandé. Handbook, tests, fuzzing et transparence sont présentés comme mesures de sécurité, pas audit tiers. Déclaration financière du projet documente l’absence d’audit formel à cette date; pas rapport d’audit à analyser. Le handbook de l’éditeur est une bonne documentation de risque, mais pas une assurance indépendante. Existence d’un audit privé ou récent après 2022, scope et findings éventuels. Aucun organisme/durée/retest ne peut être renseigné faute de rapport identifié.
25 Vulnérabilités Release 1.17.2 du 2 oct. 2026 corrige: attributs publics divulguables à demande non acceptée (1.16–1.17.1); DoS par invitation fabriquée, serveur legacy malveillant, fichier malveillant (versions 1.1–1.17.1, certaines options opt-in); rétrogradation de rôle Hybrid sur 1.17.1. Éditeur recommande mise à jour; pas de CVE référencée dans le changelog. Changelog/version et conditions d’exploitation publiques, rapportées par l’éditeur; pas de reproduction indépendante. Les failles prouvent une exposition versionnée, pas une exploitation constatée. Certains DoS exigent interaction et expérimentations. CVE, incidents exploités, tickets détaillés/PoC, sévérités externes, retest indépendant.
26 Recherche académique Papier Cwtch 2018 présente l’extension de Ricochet pour groupe/asynchronie et le problème de métadonnées. Objectif académique « metadata resistant ». Papier de conception accessible; ce n’est pas une analyse indépendante de la release 2026. Le papier établit motivation/modèle, pas propriétés éprouvées de build actuel. Analyses formelles/mesures contemporaines sur protocole Hybrid 1.17 et trafic réel.
27 Incidents historiques Corrections de sécurité récentes et régressions de stabilité signalées dans changelog; pas d’incident de fuite externe documenté trouvé. Éditeur indique plusieurs fixes et remercie le chercheur déclarant. Release notes primaires; aucun rapport d’incident utilisateur indépendant identifié. Les défauts connus ne prouvent pas qu’ils aient été exploités. Étendue d’exploitation éventuelle et notification aux utilisateurs touchés.
28 Gouvernance/financement Open Privacy est une association canadienne; dons/Patreon et petits effectifs publiquement décrits. Mission non-profit et soutenue par la communauté. Site, rapport annuel et demandes de dons primaires. Ressources financières réduites peuvent affecter audits, support et disponibilité; ne mesure pas qualité technique. Bilan 2025/2026 vérifié, dépendance financière actuelle, succession et procédures de réponse vulnérabilités.
29 Résistance à la censure Tor v3 est le transport obligatoire; aucun service central d’acheminement de messages. Conçu pour surveillance/résistance à la censure. Tor et architecture constituent un mécanisme concret; pas de mesure de disponibilité/filtrage pays par pays. Bloquer Tor, distribuer l’app/domaines ou supprimer l’accès au site de groupes peut interrompre l’usage. Bridges/obfs intégrés/configuration réellement supportée, tests par pays/FAI et disponibilité Tor.
30 Maintenance actuelle v1.17.2 publiée 2 oct. 2026; Tor 0.4.9.13 intégré; core et UI ont des commits récents. Maintenance et sécurité actives. Repos, tags et changelog consultés; pour v1.17.2 releases UI sont récentes. Activité réelle jusqu’en octobre 2026; politique de support de versions et SLA restent faibles/inconnus. Durée supportée par release, calendrier de sécurité, processus CVE coordonné et capacité de release urgente.

Cwtch — audits, vulnérabilités, mobile, droit, matrices

  • Audits : aucun rapport de sécurité tiers identifié; donc aucun organisme/date/version/scope/findings/retest ne peut être honnêtement attribué. Le compte rendu 2022 du projet dit qu’un audit formel n’a pas été acheté en raison du coût. Ce n’est pas un audit lui-même.
  • Reproductibilité/release : CI Drone et tests d’intégration décrits. Le projet maintient repliqate; seuls les bindings sont déclarés reproductibles dans la doc courante. En 2023, bindings Linux/Windows ont été dits entièrement reproductibles, Android ensuite; l’UI reste distincte. La release stable 1.17.2 embarque le binding libCwtch v0.3.0. Aucun hash-match n’a été exécuté ici sur APK, DMG, EXE ou UI complète.
  • Play/mobile : Cwtch Play déclare aucune donnée collectée/partagée, mise à jour 2 sept. 2026; déclaration éditeur et pas audit. Cwtch n’a pas de client iOS officiel; le projet explique cette absence par contraintes plateforme. Permissions, Android manifest, SDK, push payloads, caméra/photos/localisation et trafic n’ont pas été comparés à un APK 1.17.2 inspecté.
  • Forensics : connaissance observée limitée à SQLite chiffré par PBKDF2 selon documentation, choix de mot de passe, profil par défaut au mot de passe codé en dur, manifests fichier Android dans cache. Aucun résultat Cellebrite/GrayKey/Magnet avec outil+OS+version+build Cwtch exact trouvé. Une extraction d’un appareil déverrouillé ou d’un profil ouvert n’est pas équivalente à une extraction d’un appareil verrouillé.
  • Law enforcement : aucune divulgation effective dans un cas Cwtch documenté retrouvée. Ce que le fournisseur pourrait posséder : feedback volontaire, données web agrégées selon sa politique; l’opérateur d’un groupe peut posséder blobs de groupe chiffrés et logs système/serveur inconnus. Données qu’il peut techniquement obtenir ≠ données annoncées ≠ données effectivement remises. Aucun document public vu dans la recherche ne démontre une remise réelle.

Cwtch — matrice métadonnées

Légende : CONFIRMÉ / PROBABLE / POSSIBLE / NON ACCESSIBLE PAR DESIGN / INCONNU. « Fournisseur » = Open Privacy; un opérateur de groupe est une partie distincte.

Métadonnée Fournisseur Open Privacy Contact ISP Apple/Google Autorités
IP POSSIBLE via site/feedback; politique dit pas de log IP unique sur site, app usage inconnu NON ACCESSIBLE PAR DESIGN en trafic onion nominal CONFIRMÉ : IP vers relais/guard Tor et volumes PROBABLE par compte/store/installation; app déclare aucun data collection Play INCONNU; potentiellement fournisseur/store/FAI par procédure valide
Téléphone NON ACCESSIBLE PAR DESIGN pour compte normal POSSIBLE si communiqué hors app NON ACCESSIBLE PAR DESIGN via accès Internet seul POSSIBLE lié au compte store/OS INCONNU selon saisie/réquisition tiers
E-mail POSSIBLE si fourni au support; pas requis pour identité POSSIBLE si échangé NON ACCESSIBLE PAR DESIGN via TLS/Tor seul POSSIBLE compte store INCONNU
Identifiant NON ACCESSIBLE PAR DESIGN : aucun annuaire central de comptes déclaré CONFIRMÉ : adresse onion/clé de profil partagée POSSIBLE par corrélation réseau, pas ID onion directement POSSIBLE via app/store POSSIBLE via saisie, support ou serveur local
Graphe social NON ACCESSIBLE PAR DESIGN dans le service central inexistant CONFIRMÉ pour contacts/groupes acceptés POSSIBLE par corrélation globale POSSIBLE via notifications OS/backup; exact inconnu POSSIBLE par saisie, appareil ou serveur ciblé
Timestamps INCONNU pour web/app de soutien; pas de logs uniques revendiqués pour site CONFIRMÉ côté conversation CONFIRMÉ côté flux/temps POSSIBLE via notifications/sauvegarde POSSIBLE si logs ou terminal saisis
Volumes INCONNU côté fournisseur app; possible sur hébergement web CONFIRMÉ pour échanges reçus CONFIRMÉ POSSIBLE via système/store POSSIBLE via logs FAI/serveur
Groupes NON ACCESSIBLE PAR DESIGN au fournisseur central; POSSIBLE serveur de groupe pour timing/sessions CONFIRMÉ POSSIBLE par motifs trafic Tor POSSIBLE via backup local POSSIBLE : serveur peut remettre ciphertext; contenu dépend clés terminal/membres
Appareils INCONNU côté Open Privacy; pas de télémétrie testée POSSIBLE par disponibilité/session POSSIBLE par corrélation de flux PROBABLE par identifiants store/OS POSSIBLE par extraction terminaux/logs
Push tokens INCONNU; Push externe actuel non établi NON ACCESSIBLE PAR DESIGN POSSIBLE destination/service utilisé INCONNU; confirmer sur build/manifest INCONNU

Cwtch — TM1 à TM15

TM Résistance provisoire Justification factuelle courte
TM1 fournisseur curieux ✅ Pas de fournisseur central pour le trafic; Open Privacy ne voit par conception pas les conversations. Site/support et distribution restent hors de cette promesse.
TM2 fournisseur compromis ✅ La compromission de l’organisation ne donne pas à elle seule l’accès aux sessions onion; sites, téléchargement et éventuels services tiers restent attaquables.
TM3 fournisseur malveillant ✅ Pas de compte/serveur de routage central; binaire ou Tor modifié à la distribution peut toutefois renverser cette propriété.
TM4 ISP/Wi-Fi 🟡 Tor masque les destinations/protocoles applicatifs mais IP du guard, timing, volume et censure Tor restent observables.
TM5 observateur passif multi-points 🟡 Pas de mixnet démontré; corrélation à travers chemins Tor/serveurs volontaires demeure possible.
TM6 observateur global passif 🟠 Aucun mécanisme contre corrélation globale n’a été démontré sur release actuelle.
TM7 contact malveillant 🟡 Clé/identité authentifiée et permissions existent; contact peut lire ce qui lui est envoyé, fuir contenu, exploiter contact requests ou groupe. Fix 1.17.2 récent.
TM8 doxxer OSINT 🟡 Pas de numéro/e-mail ni répertoire central; adresse onion persistante et fichiers avec EXIF/PDF peuvent relier identité.
TM9 demande légale ordinaire ✅ Pas d’historique central de messages/utilisateurs établi; demandes peuvent viser feedback, store, FAI, hôte de groupe ou terminal. Cas de remise inconnu.
TM10 police sophistiquée 🟡 Serveur de groupe/circuit Tor, endpoint, saisie appareil et corrélation restent surfaces; pas d’étude cas réel Cwtch.
TM11 appareil verrouillé saisi 🟡 Mot de passe de profil protège si robuste; profils sans mot de passe utilisent secret fixe. Aucun test commercial actuel.
TM12 appareil déverrouillé 🔴 Profil et messages sont accessibles à l’app/processus; chiffrement de DB ne protège plus un profil chargé.
TM13 spyware ciblé 🔴 Endpoint peut capter clair, frappes, captures et clés mémoire avant/après réseau.
TM14 supply-chain 🟡 Code/CI publics et bindings reproductibles; UI entière n’est pas déclarée reproduite et Tor/UI pipeline reste critique.
TM15 censure étatique 🟡 Pas de centre d’acheminement, mais Tor et distribution peuvent être bloqués; bridges et résultats pays restent inconnus.

Contradictions et tests Cwtch : « aucune métadonnée » est une ambition, pas une propriété totale; la propre doc admet que les signatures/sync permettent des inférences et ne garantit pas full metadata-resistance. « Le groupe est sûr contre l’hôte » ne s’applique qu’aux groupes legacy non fiables; Hybrid Groups confient contenu et metadata à l’hôte. Expériences à mener : rebuild exact 1.17.2 multi-OS; trafic APN/Play et inventaire SDK/permissions APK; données observables sur serveur legacy vs Hybrid; extraction base/manifests sur appareils verrouillés/déverrouillés; test réseau Tor DNS/IPv6 et corrélation; retest externe des fixes 1.17.2.

Conclusion actuelle

Lire la fiche de référence Cwtch.