📰 Questions d'actualitĂ©


Nous sommes souvent interpellĂ©s sur des sujets qui ne sont pas forcĂ©ment liĂ©s au fonctionnement de l’application. Ces sujets n’en demeurent pas moins trĂšs importants. Ils sont parfois techniques, sensibles, sujets Ă  controverse, et malheureusement commentĂ©s de façon approximative (en moins de 280 caractĂšres). Notre objectif est ici de trouver le meilleur compromis entre un discours accessible au plus grand nombre, sans faire l’économie d’un minimum d’explications techniques. Vous n’y Ă©chapperez pasÂ đŸ˜±.

Souveraineté

La cryptographie mise en Ɠuvre par Olvid permet Ă  chaque utilisateur d’ĂȘtre souverain. Contrairement Ă  la quasi-totalitĂ© des services sur internet, la souverainetĂ© des donnĂ©es ne dĂ©pend pas de la localisation des serveurs ni de la nationalitĂ© de l’éditeur de la solution.

Pour aller plus loin :

AWS

Nos serveurs sont hĂ©bergĂ©s par AWS. La rupture technologique d’Olvid est de garantir la sĂ©curitĂ© de ses utilisateurs via des mĂ©canismes cryptographiques, qui n’ont pas de nationalitĂ©, sans avoir Ă  faire confiance aux serveurs.

Pour aller plus loin :

Les mots comptent : chiffrer ou crypter ?



Le mot « crypter » n’est pas utilisĂ© en cryptographie. Le mot adĂ©quat est « chiffrer ». Le chiffrement protĂšge la confidentialitĂ© d’une donnĂ©e. Seul un individu en possession de la bonne « clé » pourra « dĂ©chiffrer » et recouvrer l’information « en clair ». Attention cependant : un adversaire peut tenter de « dĂ©crypter  » le message, c’est-Ă -dire de recouvrer l’information sans connaĂźtre la bonne « clé ».

Adresses IP

Olvid s’appuie sur internet pour permettre Ă  ses utilisateurs de communiquer et a donc accĂšs Ă  leur adresse IP. Ce n’est pas une particularitĂ© d’Olvid : quand vous naviguez sur internet, y lisez un article, consultez un rĂ©seau social, votre adresse IP est accessible au fournisseur de service tout simplement parce que c’est ainsi qu’internet fonctionne. Olvid ne conserve pas ces adresses.

Tracker

Certains outils tentent d’automatiser la dĂ©tection de tracker au sein d’une application. Cette dĂ©tection n’est pas une science exacte, il peut y avoir des faux positifs. Olvid ne contient pas de tracker, mais la version Android inclut une dĂ©pendance indirecte qui peut engendrer une fausse alerte.

Pour aller plus loin :

La fonctionnalitĂ© X n’est toujours pas disponible. Pourquoi !?!?

Parce que nous avons développé la fonctionnalité Y avant. Et si nous avions fait le contraire, cela nous aurait été reproché.

Gratuité

Olvid est gratuite. Vous connaissez probablement la rengaine : « Quand c’est gratuit, c’est vous le produit ». Pourquoi ? Car les applications prĂ©tendument gratuites se financent gĂ©nĂ©ralement via l’exploitation de vos donnĂ©es personnelles. Ce n’est pas le cas d’Olvid qui est financĂ©e par des fonctionnalitĂ©s payantes.

Certification

Nos certifications CSPN datent d’environ 3 ans, et ce sont surtout nos protocoles cryptographiques qui ont Ă©tĂ© certifiĂ©s. Ceux-ci n’ont pas changĂ© depuis et aucune faille ne nous a Ă©tĂ© remontĂ©e : en ce sens, ils restent parfaitement sĂ»rs. L’ajout de nouvelles fonctionnalitĂ©s ne remet pas en cause la soliditĂ© de notre base cryptographique.

Pour aller plus loin :

Utilisation de Keycloak dans l’offre Entreprise

L’utilisation de keycloak dans notre offre entreprise ne suit pas les schĂ©mas usuels de dĂ©ploiement d’applications web. Certains Ă©lĂ©ments peuvent donc surprendre. Mais tous nos clients, entreprises et administrations, dont les Ă©quipes techniques ont Ă©tudiĂ© en dĂ©tail notre schĂ©ma de dĂ©ploiement, peuvent confirmer qu’il ne pose aucun problĂšme.

Données Personnelles

Lorsque vous voulez accĂ©der Ă  un service web, il vous est gĂ©nĂ©ralement demandĂ© de crĂ©er un compte, que le service stocke sur un serveur auquel il a accĂšs. Ce n’est pas le cas d’Olvid : le compte que vous crĂ©ez reste en local sur votre appareil et aucune des donnĂ©es saisies (comme votre nom) n’est partagĂ©e avec les serveurs d’Olvid. Olvid utilise votre adresse IP pour son fonctionnement, comme discutĂ© ici.

Liste de sous-traitants

En dehors de nos serveurs chez AWS, nous n’avons pas de sous-traitant au sens du RGPD.

Transparence

Nous avons documentĂ© toute la technologie d’Olvid afin d’en faire profiter celles et ceux qui s’y intĂ©ressent. Publication des cibles de sĂ©curitĂ©, rapports de certification et certificats ANSSI ; publications des deux rapports techniques d’évaluation produits par le CESTI Synacktiv ; publication d’articles scientifiques. Et le code source des applications mobiles est open source.

Pour aller plus loin :


Pour aller plus loin - Fonctionnement d’Olvid

Olvid est une application de messagerie instantanĂ©e permettant d’échanger entre deux appareils (Ă  date, Olvid est compatible avec Android, iOS, iPadOS, macOS, Windows et Linux) des messages, des fichiers (documents, photos, vidĂ©os, messages vocaux, etc.), et de passer des appels audio.

Toutes les informations Ă©changĂ©es via Olvid sont chiffrĂ©es de bout en bout. Dans le cas des messages, par exemple, l’appareil de l’envoyeur utilise une clĂ© de chiffrement pour chiffrer le message, dĂ©truit la clĂ© (qui ne servira donc jamais une deuxiĂšme fois) et envoie le chiffrĂ©. Ce dernier n’est dĂ©chiffrĂ© qu’à un seul endroit : sur l’appareil du destinataire, seul endroit oĂč se trouve la clĂ© de dĂ©chiffrement. Une fois le message dĂ©chiffrĂ©, la clĂ© de dĂ©chiffrement est dĂ©truite.

Ce mode de fonctionnement (combinĂ© Ă  un rafraĂźchissement habile des clĂ©s cryptographiques) permet de garantir la confidentialitĂ© persistante des Ă©changes. En pratique, cela signifie que si l’émetteur et le destinataire ont supprimĂ© le message de leur appareil, Olvid garantit cryptographiquement qu’il sera impossible pour un tiers de recouvrer ce message, mĂȘme si ce tiers a enregistrĂ© l’intĂ©gralitĂ© du trafic internet et dĂ©robĂ© les appareils des deux utilisateurs pour en extraire toutes les clĂ©s cryptographiques.

Comme nous le disions plus haut, les donnĂ©es Ă©changĂ©es avec Olvid sont systĂ©matiquement chiffrĂ©es de bout en bout. Tout ce qu’un appareil envoie sur le rĂ©seau via Olvid prĂ©sente la structure suivante :

Données chiffrées ou aléatoires || Clé publique du destinataire

Étant donnĂ©s les algorithmes de chiffrement utilisĂ©s par Olvid (dans le cas des messages : Encrypt-then-MAC avec AES-256 en mode CTR et HMAC sur SHA256), les donnĂ©es chiffrĂ©es sont indistinguables de donnĂ©es alĂ©atoires uniformĂ©ment distribuĂ©es (autrement dit, indistinguables d’un bruit numĂ©rique). Il est donc cryptographiquement impossible d’en extraire quelque information que ce soit (en dehors de la taille de la donnĂ©e chiffrĂ©e, mais lĂ  encore, Olvid applique certaines techniques pour mitiger ce risque). La clĂ© publique du destinataire (en clair) permet de transmettre le message Ă  son destinataire (Ă  l’image d’une adresse sur une enveloppe cachetĂ©e). Cette clĂ© publique ne permet pas de dĂ©duire la moindre information personnelle sur son propriĂ©taire (i.e., sur l’appareil dĂ©tenant la clĂ© cryptographique privĂ©e correspondante).

En premiĂšre conclusion : un (message) chiffrĂ© Olvid ne permet pas d’extraire d’information personnelle concernant le contenu de l’information Ă©changĂ©e, pas plus que sur l’identitĂ© physique de l’émetteur ou du destinataire.

C’est sur cette premiĂšre conclusion que s’appuie notre modĂšle de sĂ©curité : Olvid garantit une sĂ©curitĂ© totale des communications, quand bien mĂȘme l’intĂ©gralitĂ© du rĂ©seau serait malveillant. Autrement dit, peu importe le rĂ©seau, le cĂąble transatlantique, le routeur, ou le serveur qu’un message chiffrĂ© Olvid pourrait traverser. Par conception, la structure mĂȘme de ce chiffrĂ© garantit une confidentialitĂ© cryptographique des informations qu’il contient.

De l’importance de l’authentification entre utilisateurs

Olvid n’est pas l’unique solution Ă  proposer du chiffrement de bout en bout. D’autres messageries instantanĂ©es le font aussi. Une question bien lĂ©gitime se pose donc alors : en quoi Olvid est-elle diffĂ©rente de ces autres solutions ?

La rĂ©ponse tient dans les moyens mis Ă  disposition des utilisateurs pour s’accorder sur les fameuses clĂ©s de chiffrement/dĂ©chiffrement des messages. En cryptographie, il existe trĂšs exactement deux façon de procĂ©der :

  • La premiĂšre est de s’appuyer sur un serveur tiers : c’est le choix fait par l’immense majoritĂ© des autres messageries sĂ©curisĂ©es grand public. Dans ce cas, chaque utilisateur doit prĂ©alablement crĂ©er un compte sur un annuaire centralisĂ© (un serveur) gĂ©nĂ©ralement opĂ©rĂ© par le fournisseur de service. Ce compte contiendra nĂ©cessairement des donnĂ©es personnelles puisqu’il devra permettre au fournisseur de service de rattacher ce compte Ă  l’utilisateur. En particulier, cet annuaire conservera un identifiant unique pour l’utilisateur, gĂ©nĂ©ralement son numĂ©ro de tĂ©lĂ©phone ou une adresse email. Cette approche prĂ©sente plusieurs dangers en termes de sĂ©curité :

    • Si le tiers de confiance (le serveur centralisĂ© servant d’annuaire de comptes utilisateurs) est compromis, la sĂ©curitĂ© de toute la solution s’effondre, pour tous les utilisateurs.
    • Tout individu capable de convaincre le tiers qu’il est bien propriĂ©taire de l’identifiant (numĂ©ro de tĂ©lĂ©phone ou adresse email) sera considĂ©rĂ© comme l’utilisateur lĂ©gitime. Par exemple, toute personne capable d’intercepter un SMS pourra pirater (ou « hijack », dans le jargon) le compte de l’utilisateur lĂ©gitime.
  • La seconde approche (celle choisie par Olvid) est de ne pas imposer de tiers aux utilisateurs. Ce tiers est remplacĂ© par des protocoles cryptographiques, exĂ©cutĂ©s exclusivement sur les appareils des utilisateurs. Tant que les appareils ne sont pas piratĂ©s, ces protocoles permettent de prouver qu’aucune attaque ne peut avoir lieu. Olvid met en Ɠuvre plus d’une dizaine de protocoles. Si certains ont Ă©tĂ© conçus sur mesure (comme le protocole de crĂ©ation de groupe de discussion), d’autres sont trĂšs directement inspirĂ©s de la recherche publique (comme le protocole de mise en relation Ă  base de codes, basĂ© sur le protocole SAS de Serge Vaudenay). Ces protocoles sont open-source, documentĂ©s et auditĂ©s. Contrairement Ă  la premiĂšre approche, les utilisateurs n’ont pas Ă  faire confiance Ă  quelque infrastructure serveur que ce soit.

En deuxiĂšme conclusion : Si Olvid n’est pas l’unique solution de messagerie instantanĂ©e grand public Ă  proposer du chiffrement de bout en bout, elle est (Ă  notre connaissance) la seule Ă  garantir Ă©galement l’authentification de bout en bout, autrement dit, Ă  ne pas faire reposer la confidentialitĂ© et l’authenticitĂ© des Ă©changes sur un annuaire centralisĂ©.

« If you build a system where everything comes down to trusting the server, you might as well dispense with all the complexity and forget about end-to-end encryption ».
« Si vous construisez un systĂšme oĂč tout se rĂ©sume Ă  faire confiance au serveur, autant se passer de toute complexitĂ© et oublier le chiffrement de bout en bout ».

Matthew Green
Cryptography professor at Johns-Hopkins University
Wired

Conclusion

Nous avons tĂąchĂ© de trouver le juste Ă©quilibre entre concision et prĂ©cision. Ces explications sont importantes puisqu’elles permettent de comprendre en quoi la technologie au cƓur d’Olvid est unique, en quoi Olvid n’est pas simplement « une messagerie instantanĂ©e sĂ©curisĂ©e de plus ».

La chose la plus importante Ă  retenir : beaucoup de messageries instantanĂ©es proposent du chiffrement de bout en bout. Mais les garanties de ce dernier en termes de confidentialitĂ© nĂ©cessitent de faire confiance Ă  un annuaire (serveur) centralisĂ©. Ce dernier doit lui-mĂȘme faire confiance Ă  d’autre tiers (comme l’opĂ©rateur tĂ©lĂ©phonique lorsque le numĂ©ro de tĂ©lĂ©phone est utilisĂ© comme identifiant). Si un seul de ces maillons fait dĂ©faut, la sĂ©curitĂ© de l’utilisateur peut ĂȘtre compromise. Ce n’est pas le cas avec Olvid qui n’impose aucun tiers de confiance, aucun annuaire centralisĂ©.


Pour aller plus loin - Infrastructure serveur

Afin qu’une messagerie instantanĂ©e soit utilisable par le plus grand nombre, il est nĂ©cessaire de garantir des communications asynchrones : si votre destinataire est hors-ligne (dans un avion) au moment oĂč vous lui envoyez votre message, vous vous attendez nĂ©anmoins Ă  ce que ce message lui parvienne dĂšs l’instant oĂč il sera Ă  nouveau en ligne (Ă  la descente de l’avion).

Certaines solutions prĂ©tendument « dĂ©centralisĂ©es » (autrement dit, sans serveur centralisĂ©) garantissent ce rĂ©sultat en testant activement la connectivitĂ© avec le tĂ©lĂ©phone du destinataire avant d’envoyer le message, et en renvoyant le message si la dĂ©livrance de celui-ci n’est pas confirmĂ©e. L’expĂ©rience utilisateur est gĂ©nĂ©ralement nettement moins bonne : les messages mettent rĂ©guliĂšrement beaucoup de temps Ă  ĂȘtre transmis, l’utilisation de la batterie est importante, l’utilisation de la bande passante aussi.

D’autres solutions, comme Olvid, s’appuient sur un serveur de relais pour mettre les messages chiffrĂ©s « en attente » jusqu’à ce que le destinataire soit en ligne. Une fois que le destinataire a tĂ©lĂ©chargĂ© le message, ce dernier est supprimĂ© du serveur.

Comme nous l’avons expliquĂ© plus haut, la structure mĂȘme du message garantit que le serveur de relais ne pourra en extraire aucune information personnelle, pas plus que d’information sur le contenu du message.

Les protocoles cryptographiques discutĂ©s plus haut permettent de considĂ©rer le serveur de relais de la mĂȘme façon que l’on considĂšre dĂ©jĂ  toutes les autres parties du rĂ©seau (antennes relais, cĂąble transatlantique, routeurs, etc.) : on ne leur fait gĂ©nĂ©ralement pas confiance (Ă  raison) mais la cryptographie permet de faire abstraction de leur existence. Il en va de mĂȘme avec notre serveur de relais : les protocoles cryptographiques mis en Ɠuvre par Olvid permettent d’en faire abstraction puisqu’il ne joue aucun rĂŽle dans la sĂ©curitĂ© des communications.

ParallĂšle avec TLS

Lorsqu’on se connecte Ă  un site internet dont l’adresse commence en https://, il n’est pas nĂ©cessaire de se soucier de la sĂ©curitĂ© des cĂąbles et des routeurs (sur lesquels nous n’avons aucune maĂźtrise) entre notre appareil et le serveur qui hĂ©berge le site. Ceci est rendu possible par la cryptographie mise en Ɠuvre par le protocole TLS, qui garantit l’authenticitĂ© du site (indispensable, par exemple, pour qu’un paiement qu’on y effectuerait soit bien Ă  destination de la bonne personne) ainsi que la confidentialitĂ© des donnĂ©es que nous Ă©changeons avec lui (pour que votre achat ne soit pas nĂ©cessairement connu de tous).

De la mĂȘme façon, le chiffrement et l’authentification de bout en bout mis en Ɠuvre par Olvid permettent de ne pas se soucier de la sĂ©curitĂ© de ce qui se trouve entre votre appareil et celui de votre correspondant : que ce soient des cĂąbles et des routeurs (comme pour TLS), mais aussi le serveur de relais de message. La cryptographie permet d’en faire abstraction.

Savoir qui contrĂŽle le serveur n’a donc pas plus d’importance que de savoir qui contrĂŽle les diffĂ©rents routeurs nĂ©cessairement traversĂ©s. La cryptographie exĂ©cutĂ©e sur votre appareil et sur celui de votre correspondant suffit.

Comment ce serveur de relais fonctionne-t’il ?

Puisque le serveur de relais ne joue aucun rĂŽle en termes de sĂ©curitĂ©, son fonctionnement est relativement simple : lorsque l’appareil envoie un message chiffrĂ©, ce dernier est stockĂ© sur le serveur de relais. GrĂące Ă  la clĂ© publique du destinataire, ce serveur peut le notifier qu’un message l’attend sur le serveur. Cette notification s’appuie soit sur des technologies de « notification push » d’Apple ou de Google lorsque l’utilisateur en a fait ce choix, soit sur la base d’une connexion websocket entre le tĂ©lĂ©phone du destinataire et le serveur de relais. Une fois notifiĂ©, l’utilisateur prouve au serveur (via une preuve de connaissance Ă  divulgation nulle de connaissance) qu’il est bien le destinataire lĂ©gitime du message (ce afin de limiter le risque de dĂ©ni de service), il tĂ©lĂ©charge le message chiffrĂ©, et le serveur supprime le message.

Dans le cas d’un message comportant des piĂšces jointes, le comportement est similaire : l’expĂ©diteur dĂ©pose son message sur le serveur en indiquant le nombre de fichiers Ă  y joindre et rĂ©cupĂšre pour chacun d’eux une URL signĂ©e unique l’autorisant Ă  venir dĂ©poser la piĂšce jointe chiffrĂ© sur le serveur. Une fois la derniĂšre piĂšce jointe dĂ©posĂ©e, le serveur notifie le destinataire qu’il peut rĂ©cupĂ©rer le contenu du message et Ă  nouveau une URL signĂ©e l’autorisant Ă  tĂ©lĂ©charger chaque piĂšce jointe. Le message et ses piĂšces jointes sont supprimĂ©s une fois la derniĂšre piĂšce jointe tĂ©lĂ©chargĂ©e par le destinataire.

Notre serveur est hébergé chez AWS

La nature trĂšs simple du serveur donne sans doute le sentiment que nous pourrions l’hĂ©berger chez n’importe quel hĂ©bergeur. Toutefois, un service comme Olvid doit fournir la meilleure rĂ©silience aux pannes, la meilleure disponibilitĂ© Ă  travers le monde, et avoir la capacitĂ© de passer Ă  l’échelle rapidement en cas d’afflux d’utilisateurs ou de pic de charge ponctuel. Personne ne veut d’une messagerie dont les messages mettent du temps Ă  arriver autour de 19h quand tout le monde s’en sert !

Nous avons donc fait le choix d’hĂ©berger ce serveur chez AWS car c’est lĂ  que nous avons trouvĂ© la meilleure qualitĂ© de service, avec le moins d’effort Ă  fournir de notre cĂŽtĂ© pour la maintenance et le passage Ă  l’échelle de notre infrastructure.

Quel serait le cahier des charges pour un basculement vers un hébergeur SecNumCloud ?

Pour toutes les raisons Ă©voquĂ©es plus haut, le basculement vers un hĂ©bergeur SecNumCloud est bien moins important pour un service comme Olvid que pour un service SaaS classique qui aurait accĂšs aux donnĂ©es personnelles de ses utilisateurs. Par ailleurs, il nous paraĂźt inutile de basculer l’intĂ©gralitĂ© de notre offre gratuite grand public sur des serveurs souvent trĂšs onĂ©reux.

En revanche, nous prĂ©voyons de proposer une architecture multicloud. Dans cette optique, nous sommes Ă©videmment attentifs aux Ă©volutions des offres PaaS labellisĂ©es SecNumCloud (ou une qualification europĂ©enne d’un niveau au moins Ă©quivalent).

Il existe aujourd’hui en France une offre SecNumCloud de type IaaS, c’est-Ă -dire, une infrastructure « nue » de serveurs. L’offre que nous utilisons aujourd’hui chez AWS est une offre de type PaaS (qui permet notamment d’abstraire les problĂ©matiques d’administration de serveur et de gestion de passage Ă  l’échelle).

Il n’existe aujourd’hui pas d’offre SecNumCloud de type PaaS, car construire une offre de ce type Ă  partir d’une IaaS reprĂ©sente un travail colossal. PlutĂŽt que d’essayer de dĂ©velopper ce service nous-mĂȘmes, il nous semble plus judicieux de profiter du savoir-faire des acteurs du cloud français en les laissant construire leur offre PaaS SecNumCloud Ă  leur rythme.

Sans qu’elle soit exhaustive, voici une liste des technologies centrales au bon fonctionnement d’Olvid aujourd’hui (les dĂ©nominations utilisĂ©es sont celles d’AWS) :

  • API Gateway : permet d’implĂ©menter une API REST et une API WebSocket Ă  base de fonctions lambda, sans gĂ©rer de load balancing.
  • Fonctions lambda : qui nous permettent de traiter les requĂȘtes clients sans avoir Ă  gĂ©rer d’infrastructure serveur.
  • DynamoDB : Base de donnĂ©es dont le passage Ă  l’échelle est entiĂšrement « managé ».
  • SNS : qui nous permettent l’envoi de notifications push.
  • SQS : service PubSub pour le traitement asynchrone de certaines requĂȘtes.
  • S3 : qui nous permettent de stocker les piĂšces jointes chiffrĂ©es de taille importante (parfois plusieurs gigaoctets).

Enfin, l’offre PaaS devra ĂȘtre capable de garantir une haute disponibilitĂ©.

Par ailleurs, nous faisons déjà appel à ces acteurs (comme Scaleway, Outscale et OVH) pour certains de nos outils en interne et pour certains de nos services aux entreprises et administrations.


Pour aller plus loin - Tracker

Olvid n’a bien Ă©videmment pas de tracker intĂ©grĂ© mais ce qui est dĂ©tectĂ© comme OpenTelemetry par les outils d’analyse est en fait une libraire d’OpenCensus qui est une dĂ©pendance de la librairie de connexion Ă  Google Drive. Cette librairie pourrait ĂȘtre utilisĂ©e pour remonter des donnĂ©es de tĂ©lĂ©mĂ©trie, mais elle n’est utilisĂ©e par Google Drive que pour des mesures de bande passante.

Olvid ne remonte donc aucune donnĂ©e de tĂ©lĂ©mĂ©trie, mais utilise Google Drive pour les sauvegardes automatiques dans le Cloud. Nous aurions aimĂ© supprimer cette dĂ©pendance, mais elle est aujourd’hui indispensable au fonctionnement de Google Drive. En revanche, la version open-source de l’application (disponible sur GitHub) propose une version « no Google » qui supprime toute dĂ©pendance Ă  du code fermĂ© (dont la librairie Google Drive).