← Tous les articles

Le serveur aveugle : quand l'app de localisation ne voit pas votre position

Dans l’article précédent, nous avons expliqué le chiffrement de bout en bout avec une image : vos données voyagent dans une enveloppe scellée que seul le destinataire peut ouvrir. Cela soulève une question évidente sur l’entreprise au milieu, nous. Si tout est scellé, que voit réellement notre serveur ?

Réponse courte : presque rien. Nous appelons ça le serveur aveugle, et c’est la décision de conception autour de laquelle toute l’application est construite.

« Aveugle » est un choix de conception, pas une promesse

Beaucoup d’applications promettent qu’elles « ne regarderont pas » vos données. C’est une politique : elle dépend de la parole de l’entreprise, de l’absence d’employé malveillant, de l’absence d’injonction d’un gouvernement, de l’absence de fuite de base de données. Une promesse peut être brisée.

Fenzly est conçu pour qu’il n’y ait, au départ, rien à regarder. Le serveur ne peut pas lire votre position, parce qu’il ne la reçoit jamais sous une forme lisible. C’est une garantie plus forte qu’une promesse : elle ne repose pas sur notre bonne conduite, elle repose sur les mathématiques.

Ce que le serveur stocke vraiment : des blocs opaques

Quand vous partagez votre position, votre téléphone scelle les coordonnées pour chaque destinataire avant que quoi que ce soit ne quitte l’appareil. Le serveur reçoit un bloc d’octets brouillé et son seul rôle est de le remettre au bon compte. Il peut voir *qu’*un bloc chiffré est en route d’un compte vers un autre, il ne peut pas voir ce qu’il contient.

Ces blocs ne sont même pas conservés. Les mises à jour de position en direct transitent par un relais temporaire à courte durée de vie : une fois remises (ou la session de partage terminée), elles disparaissent. Il n’y a pas, dans notre base de données, de carte historique de tous vos déplacements, parce que nous n’en construisons jamais.

Vos lieux et votre présence ne quittent jamais votre téléphone

C’est là que Fenzly va plus loin que la plupart. Vos lieux enregistrés, maison, travail, l’école d’un enfant, ont un nom, des coordonnées et un rayon. Tout cela est chiffré individuellement pour chaque personne avec qui vous partagez le lieu.

Il en va de même pour la logique du « qui est où ». Quand Fenzly remarque que vous êtes arrivé à la maison, cette détection se fait entièrement sur votre téléphone. Votre présence, à l’intérieur ou à l’extérieur d’une zone, n’est jamais signalée au serveur. Elle est calculée sur l’appareil, et seules les personnes que vous avez choisies l’apprennent, via des événements scellés.

Même vos contacts sont invisibles

La plupart des applications connaissent tout votre graphe social : qui sont vos amis, qui appartient à quel groupe. Fenzly est conçu pour que le serveur ne puisse pas reconstituer cette carte.

Vos contacts vivent uniquement sur votre téléphone, ils ne sont jamais envoyés. Et la structure de vos cercles et de vos lieux partagés vit elle aussi sur votre appareil, pas dans notre base. Nous avons entièrement supprimé les tables qui, côté serveur, contenaient autrefois les appartenances : le serveur est désormais structurellement incapable de répondre à « qui fait partie du cercle familial de Steve ? », l’information n’existe tout simplement pas pour être interrogée.

La partie honnête : ce que le serveur voit encore

Le marketing s’arrêterait ici. L’honnêteté ne devrait pas.

Un serveur aveugle est aveugle au contenu, pas au fait que du trafic existe. Pour acheminer une enveloppe scellée, le serveur doit savoir vers quel compte elle va, et à peu près quand. Il peut donc voir que deux comptes sont en lien et qu’ils ont échangé quelque chose à un moment donné, même si ce quelque chose est illisible. Ce sont des métadonnées, et aucun système de bout en bout ne peut les réduire exactement à zéro tout en continuant à livrer les messages.

Ce que nous pouvons faire, c’est les garder au minimum : relais éphémères, pas de journaux de contenu, pas d’historique de position, pas de graphe social. Même la recherche d’adresse passe par un proxy chez nous : quand vous cherchez une rue, le service de cartographie tiers ne voit jamais ni votre IP ni ce que vous avez tapé, seul notre serveur le voit, et il ne le conserve pas.

Pourquoi le faire de la manière difficile

Un serveur aveugle nous complique tout. Nous ne pouvons pas ajouter une fonctionnalité en lisant discrètement vos données, nous ne pouvons pas récupérer votre compte de notre côté si vous perdez votre téléphone sans sauvegarde, et nous ne pouvons pas vous montrer un joli résumé de vos déplacements calculé côté serveur. Chacune de ces choses doit être résolue sur l’appareil, ou pas du tout.

Nous pensons que c’est le bon compromis. Une application qui ne peut pas trahir votre position vaut mieux qu’une application qui promet poliment de ne pas le faire.


La prochaine fois, nous regarderons un effet de bord surprenant du fait de tout mettre sur l’appareil : Fenzly continue de fonctionner quand votre réseau, lui, ne fonctionne plus.