Aide connexe
- đ§âđ»Â Olvid est-elle Open Source ?
- đ ïžÂ Serveur et Open Source
đ°Â Questions d'actualitĂ©
Informations supplémentaires
đ°Â 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).