Conférence présentée au FOSDEM 2017
par Aymeric Barantal et Stanislas Sabatier.
Caliopen est un logiciel libre aggrégateur de correspondance privée. Il réunit au sein d’un service unique l’ensemble des comptes qui vous servent à échanger des messages avec vos proches, vos collègues ou vos amis. Messages privés Twitter ou Facebook, email, chat… Jusqu’à vos textos ont vocation à être intégrés dans Caliopen.
En créant un outil utile et moderne, en mettant l’accent sur les contenus plutôt que sur les protocoles sous-jacents, Caliopen souhaite fédérer un très large public et le sensibiliser à la sécurité par une meilleure visibilité de la confidentialité des échanges.
L’aspect principal de cette sensibilisation repose sur l’affichage d’indices de confidentialité.
Cette idée n’est pas nouvelle: elle a toujours existé dans l’histoire de la correspondance.
Les lettres en papier étaient scellées, marquées du sceau de l’émetteur pour en assurer l’authenticité, et cachetées à la cire pour en garantir la confidentialité: un cachet brisé prouvait qu’un intermédiaire avait pu prendre connaissance du contenu.
Plus récemment et encore de nos jours, on accordera un plus haut degré de confidentialité à une lettre reçue sous enveloppe collée qu’à une carte postale (Philip Zimmermann utilisait d’ailleurs déjà cette image quand il a créé PGP, il y a 26 ans).
Pour peu qu’on trouve le moyen d’afficher un indicateur assez intuitif, il n’y a donc là rien qui puisse perturber l’utilisateur moyen, qui connait déjà ces notions même si, dans le domaine du numérique, elles ont été longtemps oubliées.
Les premiers outils numériques n’étaient pas pensés pour la sécurité. SMTP, avec ses relais multiples et son absence de chiffrement, n’a pas été mieux doté dans ce domaine que les autres outils de son époque, tels que FTP ou TELNET.
Mais si ces derniers ont très rapidement évolué avec l’ouverture des réseaux au grand public ça n’a pas été le cas des outils de correspondance (SSH date de 1995 quand SMTP-TLS date de 1999) et encore aujourd’hui une large part du transport se fait sans chiffrement. Sans même parler de chiffrement des contenus.
Et s’il existe désormais de nombreux outils de messagerie sécurisée, il est rare de n’utiliser que ceux-ci sans jamais passer par des moyens tels que l’email non chiffré, les messages « privés » de Twitter ou de Facebook, par exemple: nos contacts n’utilisent pas forcément les mêmes outils sécurisés que nous. Nos conversations, et encore plus nos graphes sociaux, restent donc très largement exposés et, surtout, leur niveau de confidentialité reste pratiquement inconnu des utilisateurs finaux.
Les indices de confidentialité de Caliopen ont donc pour objet de rendre à nouveau visible le degré de vie privée associé aux divers éléments de la conversation (messages, contacts, terminaux) et de donner une note globale à l’utilisateur, pour le pousser non seulement à tenir compte du niveau de sécurité de ses échanges pour décider de ce qu’il peut dire, mais aussi à améliorer ses méthodes et ses comportements, et à pousser ses correspondants à faire de même.
Un des éléments dont la sécurité est supposee la mieux connue aujourd’hui, c’est la couche transport: tous les outils de correspondance privée aujourd’hui insistent sur le chiffrement de cette étape.
Reste à quantifier son degré de confidentialité: combien d’intermédiaires de transport, quel chiffrement entre chacun, les métadonnées sont-elles transmises en clair, déchiffrées à chaque étape, le contenu est-il accessible à un intermédiaire, est-il stocké en clair sur le serveur Caliopen ?
Chacun de ces éléments va peser dans le calcul de l’indice de confidentialité final du message.
On peut définir par exemple que si le transport d’un message s’est effectué en plusieurs étapes (les champs « Received » dans l’en-tête d’un email), l’indice de confidentialité sera nul si l’on ne dispose d’aucune information fiable sur chacun des intermédiaire (et comment s’en assurer ?) et que sont contenu est en clair. Caliopen privilégiera donc les messages échangés par les chemins les plus courts en leur attribuant un indice de confidentialité plus élevé. Les informations sur les connexions securisees (egress, ingress) a la reception d’un message sont egalement tres importantes a connaitre.
À l’opposé, un élément trop souvent laissé de côté est celui de la sécurité du terminal sur lequel on lit son courrier.
Par exemple un terminal mobile risque d’être moins confidentiel qu’un terminal filaire, ne serait-ce que par la nature de sa connexion au réseau. Le degré de confidentialité d’un message doit donc aussi être évalué à la lumière du terminal de réception sur lequel il a été lu. Il va de soit que si ce terminal utilisait un WIFI public lors de la lecture du message, ce dernier n’aura pas une très bonne note.
L’utilisateur verra donc de façon simple si le message qu’il lit a eu plus ou moins de chance d’être intercepté et lu par un tiers. Il saura dès lors quelle confiance accorder à son contenu. Si ce contenu se voulait confidentiel mais qu’il a reçu une note trop basse, que l’information qu’il contient ne peut plus être considérée comme étant secrète. Il agira donc en conséquence, par exemple en édictant des règles de sécurité limitant les échanges confidentiels à des protocoles mieux conçus.
Ces métriques que nous sommes amenés à définir ne sont pas réservées à notre usage: notre ambition à terme est d’en faire une soumission à l’IETF sous forme de RFC pour que d’autres l’utilisent et qu’un jour la notion de confidentialité retrouve dans le monde numérique l’espace qu’elle a toujours eu AFK.
Fantastique. Vivement octobre 2017 et la version alpha.