Cas 03 — Olvid Messenger

Quand une fuite
n'est pas un bug.

Olvid est une messagerie axée sur la vie privée. J'ai identifié deux façons dont elle peut exposer une adresse IP. Lors d'un examen coordonné par l'ANSSI / CERT-FR, l'éditeur a expliqué pourquoi il y voit des compromis délibérés plutôt que des vulnérabilités. Après avoir étudié ses arguments, j'ai accepté cette conclusion. Voici l'analyse et les deux points de vue.

Par Abbas Hoseiny·Coordination via ANSSI / CERT-FR·Éditeur : Olvid SAS

Toute exposition de données n'est pas forcément un défaut. Une messagerie peut choisir de révéler une information pour préserver une propriété qu'elle juge plus importante. Olvid, dont la conception repose sur la protection de la vie privée, fait ce choix dans deux cas que j'ai examinés. Voici ce qui se passe et pourquoi l'éditeur estime ces comportements acceptables.

Un appel transite par un serveur relais qui voit l'adresse du destinataireIP du destinataire
Fig. 1 — le relais pendant un appel

Les appels Olvid passent par un serveur relais TURN. Sur Android, l'appelant peut désigner ce serveur. S'il choisit un serveur qu'il contrôle, l'appareil de son interlocuteur s'y connecte dès que celui-ci accepte l'appel. Son adresse IP devient alors visible pour ce relais.

La position d'Olvid. L'éditeur a cessé d'imposer son propre relais en prévision d'une future fonctionnalité. Il souligne aussi que toute prise de contact dans Olvid exige déjà de connaître des informations sur la personne, comme son nom ou son numéro, qu'il juge plus identifiantes que la seule donnée exposée ici : l'IP publique du téléphone. Olvid estime donc cette exposition peu significative et ne la considère pas comme une vulnérabilité.

Mon point de vue. Une IP publique n'est pas de même nature que des coordonnées : elle renseigne sur une localisation approximative et peut évoluer dans le temps. Être déjà en contact ne revient donc pas à connaître cette IP. Il s'agit toutefois d'une appréciation liée au modèle de menace, et j'accepte la conclusion d'Olvid selon laquelle le risque résiduel est acceptable dans son modèle.

Un téléphone utilise ses relais fixes, l'autre accepte ceux de l'appelantiOS — relais fixesAndroid — relais de l'appelant
Fig. 2 — deux clients, deux comportements

Le client iOS utilise des adresses de relais fixes et ignore celles de l'appelant ; le client Android les accepte. Olvid présente ce retour en arrière sur Android comme un choix délibéré pour préparer une fonctionnalité, et non comme un oubli.

Le second comportement

Aperçus de liens : l'expéditeur,
pas le destinataire.

Olvid génère l'aperçu sur l'appareil de l'expéditeur et l'intègre au message chiffré. Le destinataire l'affiche sans rien télécharger. Contrairement à de nombreuses messageries, il n'y a donc pas de fuite sans clic du côté de la réception. En revanche, l'appareil de l'expéditeur consulte directement l'URL, sans proxy, et expose sa propre IP au serveur qui l'héberge.

La position d'Olvid. Un proxy côté serveur, comme celui de Signal, permettrait à Olvid de voir tous les liens partagés par ses utilisateurs, ce que l'éditeur juge contraire à son objectif de protection de la vie privée dès la conception. Il rappelle aussi que l'expéditeur a généralement déjà ouvert le lien. Le fonctionnement actuel est donc conservé tant qu'aucune solution ne protège l'IP de l'expéditeur sans permettre à un intermédiaire central de voir tous les liens.

J'accepte ce raisonnement. Deux dimensions de la vie privée sont ici en tension, et Olvid a choisi celle qui correspond à son modèle.

Ce que j'en retiens

Un désaccord bien traité.

Les deux comportements sont réels et délibérés. Signalés via l'ANSSI / CERT-FR, ils ont été examinés avec l'éditeur. Après étude des arguments, je les ai acceptés comme des compromis de conception, pas comme des défauts. J'ai également retiré plusieurs observations initiales au cours du processus. C'est le principe de la divulgation coordonnée : tout constat ne débouche pas sur un correctif, et une explication claire du modèle de sécurité est aussi un résultat utile.

Analyse technique

Olvid Messenger — analyse et positions de l'éditeur

Synthèse

Olvid, édité par Olvid SAS en France, a été analysé sur Android (v4.2.4), iOS/macOS (v4.0.3) et Desktop (v2.8.0), en partie à partir de son code source sous AGPL-3.0. Deux comportements exposant une IP sont décrits ci-dessous. Après l'examen coordonné, l'éditeur les a qualifiés de compromis de conception délibérés plutôt que de vulnérabilités, et j'ai accepté cette conclusion. Olvid a bénéficié d'une certification ANSSI CSPN en 2020/2021, aujourd'hui expirée et portant principalement sur le cœur cryptographique ; les comportements étudiés ici ne relevaient pas nécessairement de son périmètre. Ce rapport concerne uniquement l'usage général et commercial d'Olvid.

Comportement 1 · choix du relais lors d'un appel

IP du destinataire visible par un relais choisi par l'appelant (Android)

Ce qui se passe

Les appels Olvid transitent par un serveur TURN. Sur Android, le client accepte les URL de relais fournies par l'appelant : pickTurnServers() renvoie cet ensemble sans liste d'autorisation. Un appelant désignant son propre serveur peut donc observer l'IP source de son interlocuteur lorsque celui-ci accepte l'appel. Le client iOS/macOS utilise au contraire des adresses fixes et ignore celles fournies par l'appelant.

Position de l'éditeur

Olvid a cessé d'imposer son propre relais pour préparer une future fonctionnalité. L'éditeur juge l'exposition peu significative, car établir une conversation exige déjà des informations plus identifiantes, comme un nom ou un numéro de téléphone. Il ne la classe pas comme une vulnérabilité.

Note du chercheur

Une IP publique fournit des informations d'une autre nature que des coordonnées : localisation approximative et évolution dans le temps. Cette appréciation dépend du modèle de menace ; je ne conteste pas la conclusion de l'éditeur.

Comportement 2 · récupération de l'aperçu

Exposition de l'IP de l'expéditeur lors de la création d'un aperçu

Ce qui se passe

L'aperçu est généré sur l'appareil de l'expéditeur et intégré au message chiffré. Le destinataire l'affiche sans requête réseau : il n'y a pas de fuite de son côté. L'appareil de l'expéditeur consulte en revanche directement l'URL, sans proxy, et expose son IP à l'hébergeur. Ce comportement a été observé côté émission sur les différentes plateformes ; le côté réception ne présente pas cette fuite.

MessagerieRécupération de l'aperçuIP de l'expéditeur protégéeIP du destinataire protégée
Signalproxy côté serveurouioui
WhatsAppproxy côté serveurouioui
Olvidclient (expéditeur)nonoui

Position de l'éditeur

Un proxy côté serveur permettrait à Olvid de voir tous les liens partagés, ce que l'éditeur juge contraire à son objectif de protection de la vie privée dès la conception. Il précise aussi que l'expéditeur a généralement déjà consulté le lien. Le fonctionnement actuel est conservé faute de solution protégeant l'IP de l'expéditeur sans intermédiaire central capable d'observer tous les liens. Ce comportement n'est pas classé comme une vulnérabilité.

À propos de la notation

Pourquoi il n'y a pas d'indicateurs de gravité ici Olvid ne considère pas ces comportements comme des vulnérabilités, et j'ai accepté cette analyse. À titre de repère uniquement, une notation CVSS les placerait dans la catégorie faible à moyenne, puisque la donnée exposée se limite à une adresse IP (C:Low). C'est le même plafond que pour toute fuite portant uniquement sur une IP. Je n'attribue pas de niveau de gravité à un comportement que l'éditeur et moi considérons comme un compromis de conception, pas comme un défaut.

Coordination et divulgation


Divulgation coordonnée par les CERT nationaux. Positions de l'éditeur présentées conformément aux échanges de coordination. À des fins de recherche et de défense.