Aller au contenu

XMPP / OMEMO — dossier individuel d’investigation (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.

Périmètre précis. XMPP est un protocole fédéré, pas un fournisseur ni une application. La fiche ci-dessous prend comme client de référence Conversations pour les éléments de l’application, et OMEMO XEP-0384 pour le chiffrement. Les constats réseau, conservation, juridiction et demandes dépendent du serveur XMPP choisi, des extensions activées et du client. « XMPP/OMEMO » ne décrit donc pas un produit uniforme.

Catégorie FACT VENDOR CLAIM INDEPENDENT EVIDENCE INFERENCE UNKNOWN
1 Architecture Fédération XMPP client–serveur puis serveur–serveur; compte de type JID sur un domaine. Conversations indique que l’utilisateur peut choisir un serveur ou en exploiter un. XEP-0384 et XEP-0166 décrivent les couches d’extension; les docs Conversations recensent MAM, MUC, PEP, push et upload selon le serveur. L’opérateur du domaine de compte, les serveurs de groupe et de fichiers peuvent être différents. Quel serveur, client et ensemble exact d’extensions pour un utilisateur concret.
2 Protocole cryptographique OMEMO v2 XEP-0384, version 0.9.1 datée du 6 avril 2026; XEP toujours au statut « Experimental ». Établi au-dessus de XMPP/PEP; X3DH et Double Ratchet, clés de message et enveloppe SCE. Les clients compatibles le présentent comme chiffrement de bout en bout pour conversations et groupes. La spécification publie la liste d’appareils et les bundles public keys/prekeys dans PEP; les recommandations de confiance et de traitement des devices sont explicitement normatives. Chiffrement effectif seulement si les deux clients le prennent en charge, si la session est vérifiée/confiée et si aucun fallback en clair n’est accepté. Interopérabilité et version OMEMO négociée entre deux versions précises; propriétés cryptographiques indépendamment formalisées/auditées pour la version 0.9.1.
3 Création d’identité JID choisi/créé chez un serveur; identité de compte liée au domaine et aux appareils OMEMO publiés. Conversations dit ne pas exiger un numéro de téléphone ou un carnet de contacts. JID, ressources et listes device/bundles sont définis dans les protocoles XMPP/XEP. Un domaine de JID persistant est un identifiant OSINT; compte sans numéro n’est pas anonyme si réutilisé. Exigences d’inscription, anti-abus, vérification et données d’inscription propres à chaque serveur.
4 Contact discovery Ajout par JID/QR/lien ou découverte par serveur/clients; pas de répertoire global obligatoire au niveau XMPP. Conversations affirme que le carnet n’est pas envoyé comme liste complète. La découverte OMEMO requiert la lecture des listes d’appareils et bundles publics via PEP; le roster XMPP est transmis au compte serveur. La liste de contacts complète peut être connue par l’opérateur via le roster, même si le carnet OS n’est pas téléversé. Comportement de chaque app, contact sync optionnel, extensions de répertoire et retention sur chaque serveur.
5 Métadonnées serveur Au moins JID expéditeur/destinataire/domaine, présence/connexion, horaires, routage, taille approximative; MAM peut stocker l’historique; PEP héberge device lists, bundles/prekeys. Conversations dit que le corps OMEMO n’est pas lisible du serveur et que son hébergement optionnel minimise les données. XEP-0384 rend device IDs, device labels signés et bundles publiés consultables selon modèle PEP; XMPP standard expose les stanzas de routage au serveur. Les métadonnées peuvent révéler les contacts, les appareils, l’activité et l’appartenance aux salons même si le payload OMEMO est chiffré. Journaux et rétention effectifs, MAM activé, extraction de groupe par un serveur donné.
6 IP utilisateur Le serveur de compte voit l’IP lors de la connexion; serveur de salon, upload, STUN/TURN voient celle des sessions auxquelles ils participent. Certains hébergeurs annoncent minimisation/rétention courte; ce n’est pas une propriété générale de XMPP. Architecture client–serveur et protocoles ICE/TURN impliquent ces observateurs. Domaine fédéré ne masque pas l’IP d’origine à l’opérateur auquel le client se connecte. Politique de logs et fronting/CDN actuels de l’hébergeur choisi.
7 IP au correspondant Jingle/ICE peut négocier une voie directe; TURN peut masquer l’IP au pair en remplaçant l’adresse de transport. Aucune affirmation universelle applicable à tous clients/serveurs. XEP-0166/ICE/TURN définissent les voies possibles; pas de capture réseau effectuée dans cette mission. Contact peut obtenir IP publique en appel direct ou partage de fichier direct selon client/configuration. Candidats ICE exacts et comportement actuel de Conversations et d’un autre client choisis.
8 Messages OMEMO rend le payload illisible au serveur pour les appareils destinataires; transport XMPP reste TLS indépendamment. Conversations affirme E2EE quand OMEMO est actif. Spécification indique les enveloppes chiffrées et destinataires/device IDs; les messages hors OMEMO restent sous le régime du serveur. Le sujet, JID, tailles, heures, statut de remise et éventuels éléments non enveloppés restent exposés. Implémentation exacte des extensions par client; textes de notification; fallback déclenché par erreur ou ancien contact.
9 Groupes MUC/MIX permet des salons; OMEMO prévoit chiffrement de groupe/device selon compatibilité. Le client peut signaler E2EE dans un salon OMEMO. XEP-0384 illustre l’inclusion d’une clé par appareil participant; la composition du salon et les présences restent gérées par le serveur. Le serveur peut connaître les participants, horaires et changements de membership; l’E2EE ne cache pas ce graphe au serveur du salon. Négociation/membership consistency par implémentation et niveau de résistance aux changements malveillants non testés ici.
10 Appels VoIP via Jingle/WebRTC et extensions; OMEMO messages n’implique pas E2EE des médias. Certains clients annoncent chiffrement d’appel ou DTLS-SRTP. XEP-0166/ICE décrit négociation, mais pas une garantie universelle d’E2EE interopérable. Le service TURN peut observer IP/temps/volume; appel direct peut révéler IP au correspondant. Client, version, audio/video encryption et relais sélectionné; aucun test de capture.
11 Fichiers XEP-0363 HTTP File Upload peut envoyer un fichier vers un service web puis partager un lien; transferts P2P sont aussi possibles selon clients. Certains clients annoncent chiffrement de fichier ou upload privé; ce n’est pas commun à toutes les implémentations. Conversations documente les uploads XMPP et clients; la spec OMEMO n’enveloppe pas nécessairement chaque lien/binaire de la même manière. Serveur d’upload peut voir IP, taille, heure et parfois contenu/titre si fichier non chiffré avant upload. Pour un chemin donné, chiffrement préalable, EXIF, URL, rétention, antivirus/CDN et suppression.
12 Multi-device OMEMO est conçu avec un appareil par device ID; clients publient devices et bundles. Conversations prend en charge les appareils OMEMO. XEP-0384 décrit la publication device list et une clé pour chaque device du destinataire et de l’expéditeur. Nouvel appareil et ajout de device modifient la surface de confiance et peuvent exposer l’historique synchronisé. Consistance du roster OMEMO, révocation effective et ré-enrôlement sur versions précises.
13 Push XEP-0357 permet push par serveur; Conversations utilise Firebase Cloud Messaging dans sa distribution Google selon sa documentation. Le fournisseur affirme que la notification ne divulgue pas le texte chiffré; une autre distribution peut utiliser un autre transport. La spec OMEMO ne garantit pas le contenu du push; APNs/FCM sont opérateurs externes. Un push silencieux/token révèle installation, appareil et horaire; payload contient au minimum un signal de réveil et peut dépendre du client. Payload réel, tokens, configuration FOSS/Google Play, Firebase SDKs et collecte dans la release actuelle.
14 Stockage local Conversations conserve conversations/messages/identifiants et clés localement pour fournir l’historique; chiffrement d’appareil/OS change l’accès hors-ligne. Le client recommande la protection de l’appareil; E2EE concerne le transport de conversation. Rapport ROS 2025 a constaté SQLite contenant JID, mots de passe, conversations, messages et clés OMEMO en clair dans l’état analysé (test Android 15 Pixel 7). Un terminal déverrouillé ou un accès au processus révèle les contenus après déchiffrement. Généralisation au build actuel, iOS/desktop, paramètres de backup et protections hardware.
15 Sauvegardes Conversations offre un export/chiffrement de sauvegarde; Android Auto Backup configuré par l’app peut exiger un backup système chiffré. Rapport de sécurité dit que l’export manuel est protégé par AES-GCM. ROS 2025: backup local observé gzip + AES-128-GCM, clé dérivée du mot de passe de compte via PBKDF2-HMAC-SHA1 à 1 024 itérations; recommandation Argon2. Une phrase de passe faible ou faible KDF augmente l’attaque hors ligne; le support du mot de passe de compte comme clé lie les risques. Statut corrigé dans les versions après rapport, politique de récupération et exactes exclusions backup Android/iOS.
16 Analytics / SDK tiers FCM et bibliothèques Android sont des composants tiers possibles; dépend du build/variant. Politique Conversations datée du 22 novembre 2023 affirme ne pas collecter de données applicatives hors informations fournies. Rapport ROS 2025 contient inventaire logiciel/SBOM et revue de dépendances, mais ne constitue pas une mesure complète de trafic runtime. « Pas de telemetry éditeur » ne signifie pas absence de métadonnées chez push, store, OS ou serveur XMPP. SDKs de la version 2.20.4+, appels réseau runtime et permission par variant.
17 Code source Conversations Android et serveurs XMPP publics sont open source selon le produit choisi; XMPP est un protocole ouvert. Conversations indique que le dépôt est la source de l’app officielle. Repository GitHub, XEPs, F-Droid et rapports ROS rendent les éléments inspectables. Source publique améliore auditabilité mais ne prouve pas le binaire livré ni l’infrastructure. Clients commerciaux, plugins, serveurs et services tiers utilisés par l’utilisateur.
18 Builds reproductibles F-Droid reproduit certains builds Conversations; page de vérification rapportait dernier build vérifié 2.19.16+free le 11 sept. 2026, alors que 2.20.4+free était listé le 29 sept. Conversations/F-Droid rendent les logs et APKs téléchargeables. F-Droid publie les résultats de vérification, échantillon versionné et statut. Ne pas transférer le résultat 2.19.16 à 2.20.4; aucune reproduction de 2.20.4 effectuée ici. Build précis de 2.20.4, Play Store/iOS et signature du binaire observé chez un utilisateur.
19 Supply chain APK, dépôts et dépendances sont disponibles pour l’inspection; le rapport ROS a relevé Guava 31.1-jre et CVE connus mais fonctions vulnérables non utilisées dans le périmètre inspecté. Le projet expose le code et l’app F-Droid. Audit ROS 2025 a recommandé des audits de dépendances futurs; F-Droid builds aident la comparaison mais ne couvrent pas toutes distributions. Client, build system, FCM, store, librairies et serveur constituent des chaînes distinctes. SBOM actuelle complète, attestations, signatures de release applicables à chaque plateforme et état de dépendances.
20 Infrastructure OSINT Infrastructure est choisie par domaine XMPP; le service conversations.im est une option, non le réseau entier. L’offre Conversations mentionne un hébergement en Allemagne et des fonctions de serveur XMPP. Docs d’hébergement et XEPs établissent rôles; aucun instantané DNS/ASN/CDN actif n’a été acquis pour un compte ciblé. Hébergement propre change l’opérateur de compte mais pas les serveurs d’upload/push/contact utilisés. Domaines/IP/ASN/hébergeurs/régions actuels par instance, peering, sous-traitants et logs.
21 Juridiction Juridiction suit le fournisseur de compte, fichiers, push et l’utilisateur; pas de juridiction globale XMPP. conversations.im indique son implantation dans l’UE/Allemagne. Identité de l’opérateur et documents contractuels sont plus probants que le protocole; aucune analyse juridique par pays menée ici. Serveur fédéré contacté peut être soumis à sa propre loi et traité transfrontalier. Entité contractante, sous-traitants, conservation et demandes du serveur choisi.
22 Demandes policières Un opérateur serveur peut techniquement détenir compte/JID/IP/metadata et archives MAM; contenus OMEMO pas directement lisibles sans clés, si implémentation correcte. Des hébergeurs XMPP publient parfois politique ou guide mais pas de procédure homogène. Aucun rapport/transparency guide universel; pas de cas individuel de remise d’un serveur précis établi pour cette fiche. Les données récupérables varient avec serveur/historique, fichiers, paiement, support et saisie endpoint. Volume de demandes et champs réellement remis par conversations.im/serveur arbitraire.
23 Affaires judiciaires connues Aucune remise de données attribuée à un serveur XMPP nommé et vérifiée dans les sources examinées. — Pas de preuve positive ni preuve d’absence; aucun dossier public spécifique au serveur retenu. Dossier criminel mentionnant « Jabber » n’établit pas que l’opérateur a remis des données. Requêtes FOIA/dossiers européens et autres juridictions, serveur/client précis.
24 Audits Trois travaux ROS pertinents: OMEMO historique 2016, Smack-OMEMO 2018, Conversations Android 2025. ROS et Conversations ont publié des rapports. Les périmètres, versions et findings sont détaillés dans le sous-dossier ci-dessous. Ils couvrent protocole ancien, bibliothèque Smack ancienne et un build Android; pas le réseau XMPP entier ni la version actuelle. Retests publics après correction et engagement pour le client actuel.
25 Vulnérabilités Findings historiques incluent device inactif/read-only, prekey lifecycle, path traversal Smack; audit 2025 a relevé validations TLS et révocation. L’éditeur a corrigé des éléments et décrit la posture actuelle. ROS reports are dated/primary; fixes exactes et retests doivent être vérifiés release par release. L’âge d’un CVE/finding ne prouve pas sa présence aujourd’hui. CVEs/advisories actuels pour la release choisie et statut des remédiations.
26 Recherche académique Protocoles XMPP/OMEMO et Signal ont des travaux académiques indépendants; OMEMO client-side remains implementation-sensitive. XMPP Foundation publishes XEP, not a product-wide security result. Reports ROS and protocol specifications provide technical material; no modern end-to-end comparative forensic study found. Findings protocolaires ne valent pas audit d’interface, serveur ou sync. Corpus exhaustif et versionnement académique des implémentations actuelles.
27 Incidents historiques Les audits 2016/18 documentent faiblesses; XMPP historically permits cleartext/server-visible metadata when no E2EE. — Primary reports and protocol history. « incident XMPP » sans service/version n’est pas attribuable à Conversations ou à chaque serveur. Breaches/compromises d’instances spécifiques et éventuelle exploitation en production.
28 Gouvernance / société / financement XMPP Standards Foundation gouverne les XEPs; Conversations is maintained by a small independent project; server operators are independent. Project describes its maintainer/community. Code, foundation governance, releases, license and hosted-service entity are public. No single vendor liable for the entire federated network. Active maintainer counts, revenue, grants, volunteer succession and ownership of each backend.
29 Résistance à la censure Fédérer/self-hosting permits domain migration; each server can be independently blocked. XMPP community offers alternate servers/ports. Protocol documents don’t quantify national filtering; no OONI/censorship tests performed. Federation helps against provider shutdown but not blocked DNS/IP/ports, app stores or push. Country-by-country connectivity, bridge support, alternate ports and block history.
30 Maintenance actuelle Conversations 2.20.4+free appeared on F-Droid 29 Sep 2026; OMEMO XEP 0.9.1 updated Apr 6 2026. Project shows current releases. Release pages/F-Droid logs and XEP lifecycle are direct observations. Protocol maintenance and client maintenance are distinct; server extensions may lag. Exact deployment adoption, patch latency across chosen server/client and 2.20.4 reproducibility.

XMPP / OMEMO — détail des audits

Organisme / date / version / commit Durée Scope / méthode / exclusions Findings / sévérité / recommandations / correction et retest
ROS, OMEMO Cryptographic Review, rapport 1.0, 1 juin 2016; OMEMO v0.4-era; commit cité cc209af pour le code de référence. Effort exact non indiqué dans le PDF. Analyse crypto de protocole historique et implementation de référence; le client moderne, backend XMPP, UI, appels et versions OMEMO 0.9.x sont hors périmètre. Rapport signé par Sebastian Verschoor, reviewed/approved by Melanie Rieback. Faiblesse mineure Unknown Key Share/liaison de clé; devices inactifs ou read-only peuvent compromettre forward/future secrecy; lifecycle de signed prekeys et absence de one-time prekeys. Recommandations: rotation après usage, désactivation devices dormants/heartbeat et comparaison fingerprint OOB. Le rapport indique fix du cas de prekey via cc209af; aucun retest moderne public établi. Sévérité du finding UKS qualifiée minor; le PDF ne fournit pas un CVSS.
ROS, Smack OMEMO Code Pentest, v0.2, 10 sept. 2018; Smack v4.3 / range du 5 au 29 août 2018. Person-days non indiqués; période d’examen publiée. Pentest code ciblant Smack-omemo/src/main et Smack-omemo-signal/src/main; pas Conversations actuel, serveur ou clients complets. Méthode revue de code/validation logique et filesystem. 6 findings au barème PTES de ROS: GSO-001 High, devices inactifs gardent chain keys et affectent PFS; GSO-002 Elevated path traversal via BareJid susceptible de lecture/écriture arbitraire selon app; GSO-003 Elevated stale keys sur device read-only; GSO-004 Elevated signed prekey non renouvelée; GSO-005 Moderate opération fichier non sûre/path traversal; GSO-006 Low MAM/prekey exhaustion DoS. Recommandations: retrait/rotation clés et validation des chemins/IDs. Retest public par finding non établi. Les sévérités ne sont pas CVSS.
ROS, Conversations Android Security Assessment, 10 mars–7 avril 2025, Android 15 / Pixel 7; build/commit précis non publiés dans rapport. 5 person-days. Crystal-box pentest code; SBOM, crypto/TLS/SCRAM/SSDP, Android backup, SQLite et Janus. App Android uniquement; serveur XMPP, autres plateformes, protocole complet, infra/push externe et dépendances exhaustives exclus. CLN-005 Moderate: validation wildcard TLS hostname imparfaite, recommandation appliquer règles hostname strictes; risque dépend d’un scénario MITM/certificat correspondant et E2EE limite l’impact contenu. CLN-006 Low: vérification CRL/OCSP et SCT manquante, hardening recommandé. Observations: DB SQLite contient JID, mots de passe, messages et clés OMEMO en clair; backup export observé gzip + AES-128-GCM mais PBKDF2-HMAC-SHA1 1 024 itérations, recommandation Argon2. Guava 31.1-jre/CVE-2020-8908/CVE-2023-2976 relevés mais fonctions vulnérables considérées non utilisées dans le scope. Remédiation/retest public post-audit non trouvé.

Repositories, mobile, droit, infrastructure, forensics. Dépôts publics à vérifier avec le service choisi: Conversations Android [accès à vérifier], Smack, F-Droid build verification. La fiche F-Droid observée listait Conversations 2.20.4+free à partir du 29 septembre 2026, avec permissions réseau et localisation foreground selon listing; cette investigation n’a pas extrait le manifeste 2.20.4 installé. Les libellés Apple/Google du client n’ont pas été archivés ni vérifiés, et les permissions caméra/micro/contacts/photo varient selon client/OS. Aucune mesure de Firebase/analytics/crash runtime n’a été faite. Pas de cartographie DNS/ASN active: le domaine choisi doit faire l’objet d’une observation passive ciblée. Pas d’étude vérifiée associant Cellebrite/GrayKey/Magnet + OS/build + Conversations/OMEMO version + date; la base SQLite du rapport ROS indique les artefacts pertinents, sans constituer une extraction forensic commerciale. Aucun guide LE universel, aucune réquisition nommée avec données réellement remises par le fournisseur retenu. Sources: XEP-0384 0.9.1, XEP-0166 Jingle, Conversation hosting, privacy policy, ROS OMEMO 2016 PDF, ROS Conversations 2025 PDF, F-Droid listing.

XMPP / OMEMO — matrice des métadonnées

Métadonnée Fournisseur (serveur de compte / groupe / upload) Contact ISP Apple / Google Autorités
IP CONFIRMÉ par connexion au serveur; logs/rétention inconnus POSSIBLE appels ou upload direct CONFIRMÉ POSSIBLE données de compte/store distinctes POSSIBLE chez serveur/ISP sous procédure
Téléphone INCONNU; dépend inscription POSSIBLE si communiqué hors app NON ACCESSIBLE PAR DESIGN au seul FAI réseau POSSIBLE compte store indépendant POSSIBLE si inscription/facturation existante
Email PROBABLE/CONFIRMÉ selon serveur choisi POSSIBLE par profil/message NON ACCESSIBLE PAR DESIGN POSSIBLE compte store POSSIBLE chez opérateur si collecté
Identifiant CONFIRMÉ JID, resource/device et roster visibles au serveur CONFIRMÉ JID communiqué POSSIBLE par DNS/traffic, pas le JID en général sous TLS POSSIBLE lien d’installation/store séparé CONFIRMÉ si obtenu du serveur/contact
Graphe social PROBABLE roster, presence, MUC membership et destinataires CONFIRMÉ échanges directs/membres visibles POSSIBLE corrélation d’IP/temps INCONNU POSSIBLE depuis serveur/terminaux
Timestamps CONFIRMÉ transport/presence; MAM peut stocker CONFIRMÉ messages/présence locale CONFIRMÉ connexion POSSIBLE événements push POSSIBLE selon logs conservés
Volumes CONFIRMÉ approximativement si TLS/serveur observe stanzas CONFIRMÉ tailles/fichiers CONFIRMÉ octets POSSIBLE push/usage POSSIBLE
Groupes CONFIRMÉ au serveur MUC/MIX CONFIRMÉ aux membres selon salon POSSIBLE par patterns seulement NON ACCESSIBLE PAR DESIGN au seul store POSSIBLE serveur/contact
Appareils CONFIRMÉ OMEMO device IDs/bundles, session clients PROBABLE liste de devices publiée POSSIBLE empreinte TLS/réseau CONFIRMÉ compte store pour appareil POSSIBLE
Push tokens CONFIRMÉ au service push et probablement app/backend NON ACCESSIBLE PAR DESIGN au correspondant ordinaire NON ACCESSIBLE PAR DESIGN CONFIRMÉ chez FCM/APNs si utilisés POSSIBLE via ordre au provider

Conclusion actuelle

Lire la fiche de référence XMPP / OMEMO.