Arrêter de recommander les VPN pour la vie privée

Rédigé par cafou 1 commentaire
Classé dans : Vie Privée Mots clés : aucun

S'il y a bien quelque chose qui ne varie pas d'un iota au cours du temps ce sont les divers bonimenteurs qui se présentent comme faisant partie d'un corps de métier et mais qui le décrédibilise. Je pense aux homéopathes pour la médecine, les astrologues pour l'astronomie, les "chercheurs" en énergie libre pour la physique. Bref, je vais m'arrêter ici sinon la liste risque d'être longue comme un jour sans pain.

En informatique nous avons les vendeurs de solution de sécurité. Je vais encore me répéter mais la sécurité parfaite n'a jamais existé et n'existera jamais. Il n'y a rien de pire que de sentir parfaitement en sécurité à l'abri de toute menace car c'est à ce moment là que la vigilance baisse drastiquement.

Le vendeur en solutions de "cybersécurité" vous parle :
kaa dans le livre de la jungle

Si vous êtes comme moi et que vous regardez beaucoup de vidéastes français sur Youtube, il est impossible que vous soyez passé à côté des publicité NordVPN. Cette entreprise est littéralement partout et martèle son message grâce à son omniprésence. Et si un mensonge est suffisamment répété il devient une vérité. Ce ne sont pas mes amis travaillant dans le mercatique qui me contrediront.

Attention, je ne blâme pas complètement les vidéastes qui ont recours à ces partenariats car Google rends les choses très compliquées pour les créateurs et s'émanciper du réseau qu'est Youtube n'est pas évident et notamment à cause de la loi de Metcalfe. Assez de préambule, rentrons maintenant dans le vif du sujet

Un VPN qu'es aquò ?

L'acronyme VPN signifie Virtual Private Network. C'est un outil qui permet d'accéder à un réseau distant comme si votre machine y était physiquement branché. C'est surtout très utilisé dans le monde de l'entreprise, pour l'accès à diverses ressources à distance. Comme dans le cas de beaucoup de services sur Internet, ils se compose de deux éléments : un serveur et un client. Le premier est le logiciel que vous installez sur votre appareil (PC, téléphone, tablette, etc etc) qui se chargera d'établir une connexion avec un serveur et de faire passer l'intégralité de votre activité sur le web dans un tunnel chiffré. Le second, lui, va réceptionner les requêtes du client, les effectuer à sa place puis transmettre le résultat à votre ordinateur.

Je ne ferais certainement pas un commentaire exhaustif de tous les éléments du langage du site et des vidéastes car cela serais trop ennuyeux pour vous comme moi donc je me contenterais de prendre quelques exemples.

Un petit mot sur le client.

Celui-ci est disponible sur beaucoup de plateformes : Linux, Windows, Mac, c'est super. Mais son code source demeure secret. Le code source est un peu l'équivalent de la recette pour un plat. Quand vous connaissez la composition d'un plat que vous achetez ou préparez, vous pouvez avoir confiance. Ici c'est pareil. Sauf que la recette est cachée et seulement connue de celui qui a écrit le logiciel. En gros NordVPN vous dit de vous faire confiance quand il explique ce que fais le logiciel mais personne ne peut le vérifier.

La confidentialité.

La confidentialité de vos données est importante selon eux. Selon moi cette affirmation a autant de valeur que les sites qui déclarent que votre vie privée leur est importante mais dépose des cookies dans votre navigateur. La page principale (et le site tout entier d'ailleurs) contient un traqueur. Un script GoogleAnalytics qui ne manquera pas de moucharder à Google, vos moindre faits et geste sur le site. Combien de pages vous avez visionnées, le temps passé dessus, etc etc.

La cabane est tombée sur le chien. D'entrée de jeu.
NordVPN GoogleAnalytics  Javascript

Le chiffrement.

Sur la page des fonctionnalités il est écrit que la connexion est derrière un mur de chiffrement de nouvelle génération. NordVPN utilise AES-256, un algorithme de chiffrement des données existant depuis plus de 20 ans et dont l'usage est largement répandu pour le HTTPS et d'autres protocoles. AES-256 n'est pas cassé mais n'offre pas de meilleure protection de manière générale. Donc, quand vous lisez ou entendez des arguments du genre "cryptage militaire, chiffrement dernière génération", sortez votre détecteur de fadaises.

Il va me péter dans les mains c'est sûr.
Bullshitomer

La politique de non journalisation.

Sur la page suivante : https://nordvpn.com/fr/features/ il est expliqué qu'aucun registre d'activité n'est conservé. Bien, voyons ça. Pour continuer plus loin dans mes explications, je vais devoir m'appuyer sur quelques notions techniques mais je ne rentrerais pas dans les détails rassurez-vous.

Les fichiers de journalisation.

Quand une entreprise décide de fournir un service quel qu’il soit, il faut des fichiers de journalisation, pas pour satisfaire un plaisir voyeur d'informaticien mais simplement pour pouvoir comprendre et résoudre une ou plusieurs anomalies. Cela permet également de détecter l'origine d'attaques, de fournir des statistiques sur la disponibilité dans le cas d'infogérance et surtout de prévoir le dimensionnement d'une plateforme. Ces usages sont assez variés et tout à fait légitimes. Ils permettent d'offrir un service de qualité. Je n'imagine pas comment les informaticiens qui travaillent pour NordVPN puissent travailler sans fichiers de journalisation.

Un billet de blog officiel a été posté déclarant que NordVPN a été audité par un cabinet d'audit suisse indépendant, PricewaterhouseCoopers AG. Qui aurait garantie que cette politique a été appliqué. Mais comme le rapport n'est pas public, je me garderais de faire des commentaires en la matière.

Le DNS.

Le VPN est censé vous protéger des regards indiscrets des gouvernements et des fournisseurs d'accès à internet, soit, mais pour ce faire, un autre élément entre en jeu pour la navigation sur le Web : le serveur DNS. C'est un service qui sert à indiquer à votre ordinateur une adresse IP publique pour joindre un site donné. Sauf que les requêtes DNS doivent aussi passer par le tunnel et que par conséquent, NordVPN doit fournir un résolveur à l'autre bout du tunnel. Cela signifie, que l'exploitation des données fournies par le DNS peut être la même que dans le cadre d'un gros FAI commercial comme Orange, SFR, Free ou Bouygues.

Quant à leur technologie "CyberSec", c'est un simple filtrage basé sur liste de sites malveillants. Le soucis, c'est que pour qu'un tel service puisse fonctionner, il faut pouvoir journaliser l'ensemble de vos requêtes DNS et les comparer à une liste. Honnêtement, je n'ai pas la moindre idée de comment ce service peut fonctionner sans système de journalisation. Ce n'est pas un argument massue mais aucun détail supplémentaire n'est fourni.

Le changement d'adresse IP.

Selon NordVPN le changement d'adresse IP vous aide à protéger votre vie privée. Dans la section précédente, je vous parlais d'adresse IP et bien sachez que vous en avez une également. Il s'agit d'une adresse IP publique. C'est une adresse unique "attachée" à votre box qui permets de vous joindre et c'est celle-ci qui est enregistrée dans les journaux d'un serveur du site que vous visitez. C'est le fonctionnement normal, rien de nouveau sous le soleil. Parfois cette adresse unique change selon une fréquence propre à votre fournisseur d'accès à Internet. Et devinez quoi ? Ce n'est pas suffisant contrairement à ce que NordVPN prétends. Une adresse IP publique est certes unique mais corrélée à d'autres types de données comme la langue de votre navigateur, votre fuseau horaire, votre manière d'écrire, votre résolution d'écran, le user-agent du navigateur vous devenez unique donc traçable. Notez bien que je ne peux fournir une liste exhaustive mais les possibilités sont pléthoriques.

L'homme du milieu.

L'attaque par homme du milieu est une attaque qui a pour but d'intercepter les communications entre deux parties, sans que ni l'une ni l'autre ne puisse se douter que le canal de communication entre elles a été compromis. C'est une attaque qui est possible pour un gestionnaire de point d'accès wifi public, par des personnes malveillantes mais aussi par...le fournisseur de solution VPN. En 2018, des personnes qui s'étaient introduit dans le système d'information de NordVPN avaient pu générer avec des accès privilgiés des vrais-faux certificats. Avec ces certificats forgés, les attaquants pouvaient écouter le traffic HTTPS des utilisateurs de NordVPN sans éveiller le moindre soupçon. La question porte moins sur la possibilité d'une attaque (cf le début de l'article) que sur ses conséquences. Mais ce que cette attaque démontre, c'est la possibilité technique pour NordVPN d'écouter une communication qui est sensé être juste entre deux parties : votre navigateur et le site que vous visitez.

De quoi le VPN ne protège pas non plus ?

Ce qui suit n'est pas spécifique à cette entreprise mais c'est applicable à tous les solutions de VPN présentes et futures.

Il peut dans une certaine mesure, rendre la lecture de votre navigation web plus compliquée pour un tiers. Mais ne protège pas du contenu d'un site en lui-même, qui lui peut aspirer des données, ou téléverser des logiciels malveillants sur votre ordinateur.

L'utilisation de VPN ne protège pas des enregistreurs de frappes au clavier car ce logiciel malveillant intervient en amont. Si vous êtes infecté par l'un d'eux, vos mots de passe et données importantes sont déjà loin.

Le VPN ne vous protégerais pas de vous même. Cela parait évident mais c'est toujours quelque chose à garder dans un coin de sa tête. Une part non négligeable de la sécurité informatique repose sur votre vigilance. Si vous fournissez vous-même vos données confidentielles en vous faisant berner, le VPN ne vous protégera pas de ce type d'attaque basé sur la faiblesse humaine.

Le mot de la fin.

Le VPN est utile pour le télétravail, pour contourner temporairement un géo-blocage de contenu comme peut le faire Netflix ou Amazon Prime. Ou sous un angle plus "politique" pour contourner la censure de régimes à tendance répressive comme les Émirats Arabes Unis, la Chine, l'Iran, la Russie ou la France. Pour cette dernière, je vous invite à visiter les sites d'Amnesty International, Reporter sans Frontières ou celui de la CEDH, ce n'est pas très reluisant. Le gain pour la vie privée est assez discutable. Je serais assez mal placé pour vous conseiller en matière de VPN car je suis mon propre fournisseur depuis un moment.

En plus du côté technique, il y a une question plus fondamentale qui mérite d'être sérieusement posée. Quelle est le degré de confiance que vous pouvez accorder à un tiers ? Si vous vous la posez pour votre banque, votre FAI, ou votre gouvernement, pourquoi pas vis à vis de votre fournisseur de solution VPN ? A titre personnel, je ne recommanderais pas du tout NordVPN. Ce n'est pas dans l’intérêt de cette entreprise que vous vous posiez des questions sur ces éléments de communication plus que douteux, sinon, cela serais très mauvais pour ses profits.

J'aurais davantage confiance en un FAI associatif régional ou national plutôt qu'une société domiciliée dans un paradis fiscal quelconque.

Sources en français :

https://nordvpn.com/fr/blog/audit-de-nordvpn/

https://nordvpn.com/fr/features/

https://nordvpn.com/fr/features/vpn-security/

https://fr.wikipedia.org/wiki/NordVPN

https://nordvpn.com/fr/blog/man-in-the-middle-attack/

https://nordvpn.com/fr/features/cybersec/

https://www.amnesty.org/fr/

https://rsf.org/

https://www.echr.coe.int/Pages/home.aspx?p=home&c=fre

Sources en anglais :

https://en.wikipedia.org/wiki/NordVPN

https://www.theregister.com/2020/10/12/roundup_week_oct9/

https://www.wired.co.uk/article/best-vpn

https://vpnpro.com/blog/why-pwc-audit-of-nordvpn-logging-policy-is-a-big-deal/

https://www.cnet.com/news/nordvpn-user-accounts-were-compromised-and-passwords-exposed-report-says/

Ma liste d'extension firefox

Rédigé par cafou 1 commentaire
Classé dans : Vie Privée Mots clés : aucun

Avant toute chose, je tiens à préciser que les extensions que je vais vous présenter permettent de réduire l'impact de la collecte de vos données personnelles quand vous surfez sur le web. Il n'y a jamais eu et il n'y aura jamais d'anonymat complet car le numérique l'en empêche par sa nature. Ceux qui prétendent le contraire sont des charlatans ou ont quelque chose à vous vendre.

Le sujet du modèle de menace et des raisons qui ont amenées le Web dans cette état ont déjà été analysées par des personnes plus brillantes que moi donc je ne rentrerai pas le détail concernant ces points.

La base de la base est de se protéger des pubs visuelles envahissantes qui pullulent avec Adblock Origin. Pourquoi pas Adblock Plus me direz-vous ? J'ai utilisé cette extension pendant un moment mais son fonctionnement a été changé en 2011 par les développeurs pour laisser les pubs dites "non-intrusives" contre monnaie sonnante et trébuchante. Vous jugerez vous même de l’intérêt d'un bloqueur de pub de cette sorte et de son modèle économique.

D'ailleurs , les développeurs n'ont pas attendu Adblock Plus pour commencer à bloquer les pubs et ce , depuis 1996, 1 an après la première bannière. Merci à Troll pour la traduction de l'article.

Depuis 2014, uBlock Origin continue à être activement développée et maintenue. Elle est légère et fait le travail que l'on lui demande. Sa couverture est suffisante pour ne pas être embêté 99% du temps et l'ajout d'un filtre se fait simplement par un click droit. Elle fonctionne avec un principe de liste blanche et noire mise à jour régulièrement. Et elle est recommandée dans le très bon SILL (Socle interministériel de logiciels libres).

Ublock Origin est aussi la seule extension que je connaisse à intégrer une protection contre le camouflage par CNAME utilisé par marmiton.org ou leboncoin.fr, lemonde.fr, libération etc etc pour vous tracer sans cookies de domaines tiers et revendre en toute illégalité vos données. Mais en écrivant des articles sur la méchante GAFAM. Je ne porte pas ces entreprises américaine dans mon cœur, loin s'en faut, mais je me devais de dénoncer la grande hypocrisie de ses journaux.

Au passage, pour le sujet de l'extension du domaine de la surveillance, je peux vous conseiller ce site : https://www.pixeldetracking.com/fr et l'excellent livre "L’Âge du capitalisme de surveillance" de Shoshana Zuboff

Passons sur le greffon suivant, il s'agit de Privacy Badger . Privacy Badger ne fonctionne pas à partir d'une liste établie de sites à bloquer . Une méthode heuristique est utilisée et présente deux avantages : actualité (par la technique de l'apprentissage automatique la contre-mesure est toujours à jour), impartialité (pas de pressions tierces concernant le contenu d'une liste centralisée pré-établie).

Une autre extension nommé Ghostery est assez connue. Elle est sensé remplir le même rôle mais elle est tombée dans le même travers que d'Adblock Plus. Je cite in extenso "Evidon (la société éditrice) a un incitatif financier pour encourager l'adoption du programme et décourager l'adoption d'alternatives telles que Ne pas suivre et le blocage des cookies, ainsi que pour maintenir des relations positives avec les entreprises de publicité intrusives." La source est ici. Je vous la déconseille très fortement.

Privacy Badger risque de "casser" certains sites mais le site en question ne n'affiche pas, c'est qu'il ne mérite pas vraiment votre attention. Soit parce qu'il est codé de façon très sale soit parce qu'il ignore sciemment votre réglage des cookies de votre navigateur.

Le suivant est HTTPS Everywhere Certains sites web offrent une prise en charge limitée le chiffrement de la connexion via HTTPS. Le greffon résout le problème en redirigeant toutes les requêtes de ces sites vers leurs version HTTPS.

Il y aussi ClearURLs. Certaines technologies ajoutent paramètres à des URLS comme la technologie UTM , re-écrivent des URLs pour ajouter des identifiants uniques comme lorsque vous effectuer une recherche sur google ou yandex, ou génère un identifiant unique propre à des entêtes http comme Etag.

Si il y a bien quelque chose qui n'as pas du tout plu aux lobbys de la pub, marqueteux et autres vampires de données personnelles, c'est le RGPD qui a mis un petit coup de frein à leur très lucratif travail. Comme ils ont échoués (de peu) à empêcher son adoption , beaucoup de sites ont mis en place des dark pattern ou interface trompeuse sur leurs sites. Le principe repose sur la modification de l'interface utilisateur.

Je cite la page wikipédia : "Le Laboratoire d'Innovation Numérique de la CNIL a publié en janvier 2019 une étude sur les dark pattern dans son Cahier IP n°6 : La Forme des Choix. Il y est notamment affirmé que « ces pratiques peuvent pour certaines rester conformes du point de vue du RGPD, mais selon le moment, la manière et les données concernées, elles peuvent soit poser des questions éthiques, soit devenir non conformes »et que « lorsque les différentes techniques [de dark pattern] sont mises en œuvre dans l’objectif d’accumuler plus de données que nécessaire sur les individus, clients ou citoyens, celles-ci ne posent plus seulement de questions d’éthique et de responsabilité des services numériques face à la captation de l’attention notamment, mais elles viennent se confronter aux principes de bases du RGPD, qui donne aux individus des droits plus importants sur l’exploitation qui est faite des données qui les concernent . La CNIL identifie alors quatre objectifs aux dark pattern" :

  • Pousser l'individu à partager plus que ce qui est strictement nécessaire
  • Influencer le consentement
  • Créer de la friction aux actions de protection des données
  • Dérouter l'individu

Pour le premier exemple, vous pouvez imaginer des cases pré-cochées. Pour le second un petit discours larmoyant expliquant que si les données ne sont pas récoltées l'expérience utilisateur (notion fourre-tout et flou permettant de tout justifier) sera moins bonne sans vous expliquer en quoi elle serait dégradée évidemment . Je suis sûr que vous avez déjà du rencontrer le cas d'une liste d'une centaine de "partenaires" d'un site mais dont vous devriez cocher les cases une à une pour créer chez vous de la frustration et de l'énervement. C'est une bonne illustration du troisième principe. Changer les règles et la disposition dans les sous-menu de consentements est aussi un exemple du dernier cas décrit par la CNIL.

Malgré son analyse très pertinente des problèmes causés par certains acteurs , la CNIL se donne un délai de un délai de six mois, soit à partir de mars 2021. Soit 5 ans après la transposition en droit français, avant de commencer à sanctionner ces pratiques. Donc les contrevenants sont tranquilles pour un bon moment.

Devant la couardise de la CNIL , j'ai décidé de chercher un greffon qui s'occupera de répondre aux popup qui sautent aux yeux. Cette extension s'appelle Consent-O-Matic , ce programme fait semblant de répondre" oui" mais ne créé pas les cookies dans le navigateur. Par défaut rien n'est gardé mais ce comportement peut être modifié avec une assez une bonne granularité dans les options du greffon.

Le web moderne est beaucoup construit avec et autour d'un langage de programmation, le Javascript. Ce présentant sous la forme de scripts , des programmes avec des fonctions plus ou moins complexes allant de de la vérification de champs dans un formulaire à l'émulation complète de machines dans un navigateur.

Le problème est que beaucoup de développeurs usent et abusent de frameworks pour le développement de sites et d'applications web qui font appel à des bibliothèques de fonctions non présentes sur le serveur hébergeant les données . Reportant ainsi une masse importante du trafic web dans la main d'un tout petit nombre d'acteurs gérant des CDN. Un CDN (ou RDC ) ou content delivery service est un réseau d’ordinateurs reliés en réseau à Internet et qui coopèrent afin de mettre à disposition du contenu ou des données à des utilisateurs.

Ce réseau est constitué :

  • de serveurs d'origine, d'où les contenus sont « injectés » dans le RDC pour y être répliqués
  • de serveurs périphériques, typiquement déployés à plusieurs endroits géographiquement distincts, où les contenus des serveurs d'origine sont répliqués
  • d'un mécanisme de routage permettant à une requête utilisateur sur un contenu d'être servie par le serveur le « plus proche », dans le but d’optimiser le mécanisme de transmission / livraison.

Sur le papier, cela semble plutôt bien sauf que ces réseaux sont maintenus soit un acteur tout puissant dans son domaine comme CloudFlare ou la GAFAM. Nous tombons ici sur le cas classique de centralisation du Web. La surutilisation des CDN n'est qu'un seul des nombreux avatars d'un problème de l'ossification d'Internet et de la transformation du Web en minitel(le web et Internet sont deux choses très différentes).

Mais je digresse (*graisse*) , pour en revenir au sujet des CDN , j'utilise le greffon Decentraleyes qui contient 14 bibliothèques de fonctions Javascript. Ainsi, quand mon navigateur va lire le code de la page d'un site qui contient un script Javascript externe à la page , il va demander la ressource à mon navigateur au lieu d’interroger les CDN. Cela permets un gain de performance car on va pas interroger un serveur à l'autre bout de la terre et on gagne en vie privée en utilisant du code directement présent sur notre ordinateur.

J'utilise aussi une extension qui bloque tout javascript et permets de bloquer ou d'activer les scripts de manière unitaire sur une page mais beaucoup de sites ne s'afficheront plus du tout. Pour chaque site il faudra sélectionner , parfois en tâtonnant les scripts à débloquer pendant une minute. Inutile de vous dire que cela interrompt complètement la fluidité de la navigation web. Par conséquent, malgré son utilité certaine, je ne la présenterai pas pour garder le côté tout public de cet article.

Depuis la rédaction de cet article, j'ai rajouté quelques nouveaux greffons que je vais vous présenter :

Don't fuck with paste ou "Arrêter de déconner avec le copier-coller" plusieurs équipes de webmestres de sites très fréquentés ont décidé que le copier-collé dans les champs de mot de passe de formulaires ,c'était pas bien. Mais comme je n'aime pas trop que l'ont décide pour moi ce qui est bien ou pas, et que j'ai gestionnaire de mot de passe qui effectue le remplissage automatique, j'ai installé ce petit bout de code qui permet de faire sauter cette restriction stupide.

Sponsor Block Si comme moi, vous utilisez encore youtube, vous avez du remarquer les vidéastes intègrent de plus en plus de séquences dédiés à leurs sponsors. Mais le nombre et la longueur de ses séquences inutiles et un poil irritante vous en conviendrez. Cette extension permet de sauter automatiquement les pubs pour les sponsors afin de regarder seulement le contenu de la vidéo qui est intéressant. Les personnes qui possèdent cette extension peuvent aussi soumettre les codes temporel afin d'en faire profiter tout le monde. Testée avec succès sur de nombreuses chaînes youtubes francophones et anglophones.

Notez que ces greffons ne sont parfaits car il y a une pléthore de méthodes permettant de contourner les protections présentés et que le jeu de chat et de la souris se poursuivra pour toujours. Tout ce que j'ai présenté n'est que la partie émergée de l'iceberg. Ce sont des solutions techniques, des rustines à un problème plus globaux qui impliquent beaucoup d’entités. Les états, les internautes, les instances européennes, les FAI, les sociétés publicitaires, les grosses corporations comme la GAFAM, etc etc.

En petit bonus, je vous passe ce lien qui permets de constater à quel point votre navigateur , et par extension vous-même. C'est par ici.

Le chiffrement de bout en bout

Rédigé par cafou Aucun commentaire
Classé dans : Vie Privée Mots clés : aucun

Cet article est une traduction française d'un article publié sur le blog de Lain que vous pouvez trouver ici

Je lis des documents sur le chiffrement pour que vous n'ayez pas à le faire.

(référence au Nostaliga Critic)

Le Fediverse bourdonne de discussions sur le chiffrement de bout en bout. Dans cet article (assez long), je vais essayer d'expliquer ce qu'est le E2EE, quelles sont les approches courantes dans le domaine des messageries instantanées et ce que je pense être la meilleure façon de l'utiliser sur le fediverse.

A l'instar de celui qui écrit l'article, je vais poster quelques petites images pour casser le rythme
The Legend of Zelda BOTW façon Studio Ghibli

Qu'est-ce que le chiffrement de bout en bout

Presque tous les serveurs fediverse utilisent le chiffrement pendant le transport de votre message. Cela signifie que lorsque vous écrivez «#cofe» et écrasez ce bouton «Soumettre», votre navigateur chiffre le message et l’envoie à votre serveur. Votre serveur peut déchiffrer votre message et l'envoyer à d'autres serveurs. Cette connexion est, encore une fois, chiffrée. Ainsi, personne entre vous et votre serveur, ou entre votre serveur et d'autres serveurs, ne peut lire votre message.

Pourtant, si vous envoyez un message privé à votre ami sur un autre serveur, qui peut le lire ? Vous et votre ami pouvez, bien sûr, mais aussi vos deux serveurs et administrateurs respectif des dudits serveurs. Les messages résidents dans leurs bases de données en clair, prêts à être lus par un administrateur curieux. Le chiffrement de bout en bout résout ce problème, rendant le message lisible uniquement par vous et le destinataire. Comment ça marche? Votre client chiffre votre message avec une clé que seuls vous et votre ami connaissez. Ensuite, vous envoyez le message chiffré au serveur. Le serveur ne peut pas le lire et l'envoie simplement. Enfin, il arrive chez le client de votre ami, y est déchiffré et peut être lu («suya ..»). Mais comment pouvez-vous échanger cette clé secrète ? Examinons rapidement deux approches populaires.

PGP / cryptographie à clef publique

Pretty Good Privacy et les approches cryptographiques similaires sont appelées asymétriques, car elles ont deux clés au lieu d'une ( à contrario de l'approche avec une seul clef). L'une d'elles est la clé privée que vous ne partagez avec personne, l'autre est la clé publique bien nommée que vous pouvez partager librement avec toute personne qui devrait vous envoyer un message chiffré. Dans ce système, le message peut être chiffré avec la clé publique, mais seule la clé privée peut le déchiffrer. Désormais, quiconque souhaite vous envoyer un message peut le chiffrer. L'envoyer via le canal de votre choix et vous pouvez le déchiffrer de votre côté. Cela semble assez facile, alors pourquoi n'est-ce pas l'approche préférée pour les systèmes de messagerie? Eh bien, cela a un gros inconvénient. La même clé est utilisée pour déchiffrer chaque message. Si cette clé est volée, chaque message envoyé pourra être déchiffré. Il n’est pas non plus aisé de passer à une nouvelle clé, car vous devez ensuite donner la nouvelle clé publique à l'intégralité de votre toile de confiance. Ce qui a tendance à orienter les personnes vers la création de clefs de longue durée ; une mauvaise pratique de cryptographie.

Signal / olm / Double Ratchet Algorithm

Celui-ci porte beaucoup de noms. Il est utilisé par Signal, WhatsApp, Matrix et de nombreux autres systèmes de messagerie. La cryptographie à double cliquet est un moyen de rendre une clé privée volée moins problématique. Tout d’abord, expliquons ce qu’est un «engrenage» dans ce contexte.

Une fonction à engrenage est une fonction qui peut générer une série de valeurs basées sur des valeurs précédentes, mais dont les valeurs précédentes ne sont pas retrouvables. Celles-ci sont utilisées pour générer les clés. Laissez-moi illustrer le propos avec une fonction simple :

f(x) = x * 2

Remarque: les engrenages ici sont un peu plus simples que la façon dont ils sont réellement utilisés dans le protocole. L'idée est la même.

Admettons que vous choisissiez 1 pour valeur initiale de X pour cette fonction, vous pourrez certainement déduire la valeur suivante en vous basant sur la valeur de X à un instant T. Ce qui donnera le résultat suivant :

Évolution de la fonction
Valeur de X Résultat
1 2
2 4
4 8
8 16

Nous obtenons donc une nouvelle valeur à chaque fois, et elle est même unique. Mais si vous voyez une valeur de sortie comme 16, il est trivial de retrouver la valeur précédente , il suffit de diviser la valeur par deux. On ne peut donc pas utiliser cette fonction comme un engrenage.

La fonction de condensat

Une fonction de condensat calcule à partir d'un fichier numérique, son empreinte numérique (en l'occurrence une séquence de 128 bits ou 32 caractères en notation hexadécimale) avec une probabilité très forte que deux fichiers différents donnent deux empreintes différentes.

Nous allons maintenant considérer la fonction suivante : f(x) = md5(x)
Évolution de la fonction
Valeur de X Résultat
1 b026324c6904b2a9cb4b88d6d61c81d1
b026324c6904b2a9cb4b88d6d61c81d1 aaee1544492d49d452b051004d391f56
aaee1544492d49d452b051004d391f56 ca745939d5fe6f6b781c74dee3c3153c

Maintenant, si vous parvenez à voler la clé avec la valeur ca745939d5fe6f6b781c74dee3c3153c à quelqu'un, vous n'aurez aucun moyen de découvrir les clés précédentes. Ainsi, nous pouvons utiliser ces clés pour chiffrer nos messages, et personne ne peut «remonter le temps» pour déchiffrer les messages précédents.

MD5 est utilisé pour la démonstration mais il ne faut pas l'utiliser pour des vérifications car elle a été cassé en 2004. Préférez lui SHA-3.

Elles sont jolies ces images hein ?
The Legend of Zelda BOTW , vue d'artiste

Utilisation des engrenages

Maintenant, pour envoyer un message, nous avons besoin d'une valeur de départ pour l'engrenage. Mais ce faire, mon ami et moi aurons d'abord besoin d'échanger une valeur de départ que nous seuls doivent connaître. Heureusement, il existe une procédure presque magique appelée échange de clés Diffie-Hellman qui permet d'échanger une clé secrète sur un canal public. C'est également au cours de cette étape que votre identité est vérifiée afin que personne ne puisse se faire passer pour vous. Oui, c’est effectivement possible, et vous n’aurez qu’à me croire car cette introduction est déjà trop longue.

Maintenant que nous avons tous les deux un secret, nous pouvons alimenter l'engrenage avec lui et commencer à envoyer des messages avec les clés qu'il génère, l'un après l'autre. Vous avez à la fois un engrenage d'envoi et de réception, donc lorsque vous envoyez un message, vous incrémentez votre engrenage d'envoi et chiffrer un message avec la clé. Lorsque vous recevez un message, vous incrémentez l'engrenage de réception et le déchiffrer avec la clé. Votre engrenage d'envoi est l'ami de votre engrenage de réception et vice versa.

Comme vous le voyez ici, chaque message utilise une nouvelle clé pour le chiffrement. Si vous pouvez voler la clé de chiffrement à tout moment, vous ne pouvez déchiffrer qu'un seul message avec. C’est bien mieux que de voir toute sa correspondance déchiffrée par le vol de sa clef privée (n'est-ce pas PGP ? )

Doublez les engrenages, doublez le fun

Mais que se passe-t-il si un attaquant peut dérober l'engrenage? Ils ne peut pas déchiffrer les anciens messages, car les clés associées ont déjà disparues. Mais il peut déchiffrer chaque nouveau message envoyé. Oups. C’est là que le système de double engrenage entre en jeu.

Lors de l'envoi d'un message, vous incrémentez votre clé à engrenage (comme l'étape précédente) et envoyez le texte chiffré. Mais avec ce message chiffré, vous envoyez également également un autre "défi" pour effectuer un échange de clés Diffie-Hellman avec votre interlocuteur. Dès que celui-ci vous renvoie un message, vous pouvez terminer l'échange DH et avoir une nouvelle clé secrète que vous seuls connaissez. Celui-ci est ensuite utilisé pour faire avancer l'engrenage DH (c'est ça l'engrenage «double»), qui génère une valeur qui à son tour est utilisée pour générer de nouveaux engrenage d'envoi et de réception.

Ainsi, les engrenage qui génèrent vos clés sont jetés à chaque fois qu'un cycle d'envoi et de réception est terminé. Cela signifie que, si un attaquant a accès à la clé à engrenage, il ne peut lire vos messages que jusqu'à ce que vous envoyiez et receviez un message de votre ami. En un sens, l'algorithme est auto-réparateur et permettra au chiffrement une fois cassé de fonctionner à nouveau après une courte quantité de messages. A moins qu'il ne s'agisse d'une conversation très unilatérale…

Vous êtes toujours avec moi ?
The Legend of Zelda BOTW façon Studio Ghibli

Voyons comment ces systèmes fonctionnent dans la pratique.

Utiliser le bout en bout

On dit souvent que la meilleure façon d’utiliser ce chiffrement est de l’activer par défaut. Si possible, vous devriez même rendre impossible l'envoi de messages non chiffrés. En effet, en chiffrant même les conversations non secrètes, vous donnez la même apparence aux conversations secrètes et non secrètes, de sorte qu’un attaquant a plus de mal à trouver des personnes «suspectes» à attaquer.

Mais est-ce vraiment dans tous les cas ? Ce serait sûrement le cas si le chiffrement était sans contrepartie, mais, selon le type de chiffrement, il comporte aussi d'énormes compromis.

Rafraîchissons nos connaissances sur les propriétés intéressantes de l'algorithme à Double Engrenage:

  • Chaque message est chiffré avec une clé différente. Si un attaquant obtient une clé de message, il ne peut déchiffrer qu'un seul message.
  • Si le client ne conserve pas de clés, chaque message ne peut être décodé qu’une seule fois.
  • Si un attaquant accède aux données qui génèrent les clés (l'engrenage de clé), il ne peut déchiffrer les messages que jusqu'à ce que les participants à la conversation terminent un cycle d'envoi-réponse (car l'engrenage DH utilisé pour générer l'engrenage de clé sera remplacé) . L'attaquant ne peut déchiffrer aucun message passé.
  • Une fois déchiffrés, les messages sont déniables: il n’est pas possible de prouver qu'une des parties les ont envoyés.

C'est en effet très sécurité. Mais jetons un œil à un cas d'usage courant.

Une journée avec du chiffrement de bout en bout

Je rencontre une amie pour partager un café. Nous parlons du nouveau système de messagerie branché , nous l'installons et nous nous ajoutons réciproquement à notre liste de contact. Lors de l'envoi d'un message, l'application nous demande de vérifier que l'autre personne est bien la personne à qui nous parlons. Nous faisons cela (nous sommes assis côte à côte, de toute façon). J'envoie un message à mon ami depuis mon téléphone. Il est chiffré et elle le lit sur son téléphone. Nous envoyons quelques messages dans les deux sens et tout fonctionne bien. Plus tard dans la journée, je suis devant mon PC et je veux lui répondre. J'ouvre la fenêtre de conversation mais il n'y a pas de messages. Pourquoi ?

Le serveur qui s'occupe de relayer ne les a pas sauvegardés après que les clients aient accusé réception, car ils ne sont de toute façon déchiffrables que par le client (mon application de messagerie sur téléphone). Donc je n’ai pas d’historique.

Je lui envoie un message depuis mon ordinateur. Mais ensuite, je vois mon téléphone bourdonner avec un message, me demandant de vérifier le nouvel appareil participant à la conversation. Pourquoi ça ? Eh bien, quelqu'un aurait pu voler mon mot de passe et y ajouter un nouvel appareil. Dans ce cas, je ne voudrais absolument pas faire confiance à de nouveaux appareils ! D'accord, je vérifie que c'est bien moi. Soudain, je reçois un appel de mon amie. Elle me demande si le nouvel appareil est vraiment moi. Tout comme moi, elle doit également vérifier l'identité du nouvel appareil. Le chiffrement de bout en bout n'est pas un chiffrement d'utilisateur à utilisateur, c'est un chiffrement d'appareil à appareil, ce qui signifie que chaque appareil doit vérifier un autre appareil.

Imaginez maintenant une discussion de groupe avec 200 personnes, puis vous ajoutez un nouvel appareil. Vous devez maintenant vérifier 200 personnes. Et ils doivent vous vérifier.

Je pourrais pousser l'exemple plus loin, mais je pense que la problématique est claire: le chiffrement n'est pas gratuit. Il présente des problèmes d'utilisabilité dans de nombreux cas. Combien de fois les non-crypto-nerds vérifieront-ils réellement un autre appareil ? De nombreuses applications disposent d'un bouton "Envoyer non vérifié" pour ces cas.

Utilisez-le plusieurs fois, et observez le résultat :
L'enfer de la vérification

Alors, comment les systèmes de messagerie existants traitent-ils ce problème? WhatsApp et Line adoptent une approche simple: vous ne pouvez avoir qu'un seul appareil. Lorsque vous souhaitez utiliser un autre appareil, l'accès de l'ancien doit être révoqué. Vous ne pouvez même pas transférer vos messages, en général. L’identité est garantie par le numéro de téléphone. Vous pouvez donc ignorer les avertissement de «vérification d’identité». Les règles d'utilisation de ses systèmes de clavardage font en sorte que les problèmes mentionnés ci-dessus ne se produisent jamais. L'accent est mis sur une "politique à un seul appareil" . Cela rend également le système plus aisé à appréhender pour les utilisateurs.

"Mais Lain, me direz-vous, j'utilise Matrix et j'ai un historique des messages. Et je n'ai pas non plus à vérifier les choses tout le temps". Très vrai. Le système Matrix actuel est assez convivial.Vous pouvez discuter, avoir l'historique des messages, ajouter de nouveaux appareils sans vérification, et vous avez toujours ce joli symbole de verrouillage (ou, dans le cas de Matrix, un bouclier) qui vous indique que vous conversez de manière chiffrée.

Comment font-ils ? Eh bien, en échangeant la sécurité pour plus de commodité. L'algorithme de chiffrement de base dans Matrix est Olm. C'est à peu près le même que le double engrenage de Signal dont j'ai parlé et a les mêmes propriétés de sécurité. Mais aucun message n'est n'est échangé via ce protocole. Un protocole séparé, nommé Megolm est utilisé à cette fin. Il n'a qu'un seul engrenage d'envoi par appareil qui est censé être envoyé aux destinataires afin qu'ils puissent déchiffrer vos messages. Cet engrenage n'est PAS réinitialisé à chaque cycle d'émission-réception. Les clients sont censés conserver la clé à engrenage dans son état le plus ancien, afin de pouvoir déchiffrer chaque message qui se présenterait.

Imaginez maintenant que vous ajoutiez un nouvel appareil à un chat. Votre appareil existant envoie simplement le premier engrenage Megolm dont il dispose à votre nouvel appareil. Votre nouvel appareil peut alors déchiffrer tous les messages envoyés par votre ancien appareil. De cette façon, vous pouvez garder votre historique synchronisé sur tous les appareils.

Mais qu'en est-il de la vérification? L'excellent client XMPP «Conversation» a une approche appelée Confiance aveugle Avant Vérification (Blind Trust Before Verification). Cela signifie que par défaut, vous ne vérifiez jamais les identités du tout. Vous faites simplement confiance aveuglément. Mais ensuite, dès que vous vérifiez ne serait-ce qu'un appareil, vous devrez vérifier chaque nouvel appareil avant de leur envoyer des messages par la suite.

L’idée sous-jacente est qu’un utilisateur occasionnel ne rencontrera jamais l’écran redouté de «vérifier le nouvel appareil». L'utilisateur soucieux de la sécurité vérifiera une fois et aura un système sécurisé pour toujours. Désormais, cela résout le problème des utilisateurs qui ignorent tout et s'en moquent (une approche moyennement sécurisée). Mais pour les utilisateurs qui vérifient toujours, ils ont toujours ce problème des 200 appareils.

Matrix a proposé une approche étendue. C'est aussi une confiance aveugle qui est accordée avant vérification. Lorsque personne n'est vérifié dans un chat, vous obtenez un bouclier noir. Cela signifie "le chiffrement est présent, mais vous ne savez pas à qui vous parlez et vous ne vous en souciez pas non plus". Disons que vous vérifiez le téléphone de votre ami. Vous obtenez désormais un bouclier vert, qui signifie «chiffré et tout le monde est vérifié». Maintenant, vous ajoutez un autre appareil à vous et votre bouclier devient rouge. Cela signifie: "chiffré, et vous vous souciez de la vérification, et tous les appareils ne sont pas vérifiés!". Une alerte sera levée, vérifiez votre appareil et le bouclier sera à nouveau vert. Mais dans ce cas là, votre avis va devoir vérifier votre nouvel appareil.

Que nenni. En vérifiant votre nouvel appareil avec l'ancien, votre ancien appareil se porte garant pour le nouveau. L'appareil de votre ami acceptera cette vérification et ne demandera aucune preuve supplémentaire que votre nouvel appareil est bien le vôtre.

Voici les boucliers :
Les jolis boucliers de Matrix

Avec le système de boucliers, nous ne harcelons plus l'utilisateur chaque fois qu'un nouvel appareil est ajouté dans ses conversations - au lieu de cela, nous nous attendons à ce qu'il voit les boucliers de la salle clignoter en rouge partout si un appareil non fiable est ajouté.

Cela résout le problème des 200 appareils. Lorsqu'un nouvel appareil est ajouté par un utilisateur existant, une seule personne doit le vérifier, pas 200. Mais pourquoi tout le monde ne le fait-il pas ainsi?

Eh bien, vous déléguez la vérification de l'appareil à un autre utilisateur en qui vous pourriez ou non avoir confiance. Supposons que vous discutiez avec un utilisateur qui possède déjà 10 appareils. Sur l'ordinateur portable de l'utilisateur, quelqu'un a installé un enregistreur de frappe et a volé son mot de passe. Ils connaissent également personnellement la victime et peuvent accéder à leur téléphone pendant une courte période. Alors que la victime fait de la place pour préparer des crèpes, l'attaquant se connecte sur son propre appareil avec les informations d'identification de la victime. L'attaquant rejoint le chat existant. Il y a maintenant 11 appareils pour cet utilisateur, un seul n'est pas vérifié et le bouclier devient rouge. Maintenant, il vérifie le nouvel appareil avec le téléphone de la victime et voilà, le bouclier vert à nouveau. Quelqu'un comptera-t-il réellement les appareils pour voir comment le nombre a changé? L'attaquant peut également lire tout l'historique de conversation, car la clé à engrenage mégolm a été envoyée vers son nouvel appareil.

Ce scénario est impossible avec WhatsApp, par exemple. Ainsi, dans certaines situations, WhatsApp est plus sécurisé que cette solution non propriétaire

Je ne dis pas que l’équipe Matrix a tort de faire cela. Le compromis sécurité / commodité pourrait bien en valoir la peine, dans l'ensemble. Ce que je dis, c'est que ces effets subtils de différents algorithmes cryptographiques sont presque impossibles à saisir pour l'utilisateur final. J'ai dû lire quelques articles pendant une nuit sans sommeil pour arriver à une assez bonne compréhension des implications. Je suis sûr que même expliquer le fonctionnement du double engrenage prendra une heure ou deux, si vous expliquez à une personne intelligente qui n’est pas versée en cryptographie.

Faire ces compromis n'est pas le pinacle de la sécurité, mais cela s'en rapproche dangereusement. Le «chiffrement de bout en bout» est une fonctionnalité pour le moins importante. Le chiffrement de point à point est juste une case cochée de plus dans la liste des fonctionnalités. L'importance de l'algorithme employé et l'expérience utilisateur sont souvent balayés d'un revers de le main. "Tant que vous avez un bouclier ou un symbole de verrouillage, vous êtes bon."

Que pouvons-nous faire alors? Les serveurs du fediverse existants sont tous multi-appareils, nous ne pouvons donc pas utiliser la méthode WhatsApp en utilisant un seul appareil. Nous ne voulons pas non plus passer par l'enfer de la vérification, donc c'est fini aussi. Copier ce que fait Matrix? Je ne pense pas vraiment que ce soit une bonne idée. Il y a trop de problèmes subtils auxquels je ne voudrais pas exposer les utilisateurs occasionnels. Alors, que pouvons-nous faire d'autre ?

Allez, encore une petite image:
The Legend of Zelda BOTW Link et Zelda en miroir

Une simplicité radicale

Les utilisateurs finaux non techniques auront toujours des problèmes pour comprendre les propriétés du chiffrement en cas de non-concordance entre l'expérience utilisateur (UX) de l'application et le système de chiffrement sous-jacent, et ce n'est pas non plus facile à comprendre pour les techniciens. C'est le cas lorsque vous utilisez quelque chose comme le double engrenage et que vous présentez cela ensuite aux utilisateurs comme si il s'agit de systèmes de clavardage d'utilisateur à utilisateur alors qu'il n'en est rien. Ils sont en fait chiffrés d'appareil à appareil, mais parfois un utilisateur possède plusieurs appareils. C'est la partie où la confusion entre dans la danse. Et ne parlons pas des notions d'identité ou de gestion des clefs.

Associons donc simplement le chiffrement à l'expérience utilisateur. Les discussions chiffrées devraient donner à un utilisateur ceci:

  • Conversations 1-à-1 d'appareil à appareil à l'aide du système à double engrenage
  • Recherche textuel sur l'appareil
  • Historique de conversation

Dans ce système, chaque conversation chiffrée est explicitement lancée entre deux appareils. Si je suis sur mon PC et que je souhaite écrire un message secret à mon amie, je peux le faire en sélectionnant l'un de ses appareils (par exemple son téléphone) dans un menu et l'utiliser pour démarrer une conversation chiffrée. Je peux aussi lui écrire depuis mon téléphone, mais c'est une conversation séparée.

C'est à peu près le système utilisé par WhatsApp ou Line, mais ils imposent également l'utilisation d'un seul appareil. Dans mes conversations à ce sujet avec des personnes non techniques, ils avaient généralement du mal à comprendre tous les compromis effectués dans les discussions chiffrées sur plusieurs appareils par utilisateur (comme les utilisateurs de Matrix), mais comprendre le chiffrement d'appareil à appareil était simple. Il y avait également une acceptation plus élevée de la perte de fonctionnalités telles que l'historique des messages partagés, car la raison en a été expliquée.

Je pense que c'est un bon premier paradigme à essayer lors de la mise en œuvre du clavardage chiffré de bout en bout sur le Fediverse. Cela donnerait aux utilisateurs un chat chiffré extrêmement sécurisé, facile à utiliser et à comprendre. Cela rend également explicite ce que vous perdez lorsque vous empruntez la route de chiffremen. De plus, garder les chats chiffrés par appareil empêchera les appareils moins sécurisés (comme les navigateurs) de se mélanger avec des appareils sécurisés (comme les téléphones ou les applications) plus que nécessaire. Il n'y a que deux maillons faibles possibles dans la chaîne pour chaque chat, pas potentiellement des centaines.

Note de l'auteur : Il semble que je n’ai pas dit assez clair. Je n'espère que les chats chiffrés ne soient PAS la norme. Ils ne devraient même pas être trop faciles à initialisé et devrait être accompagnés d'avertissements. C'est un point très important.Il n’est pas possible de conserver à la fois le confort des chats non chiffrés et un très haut niveau de sécurité. Dans le modèle auquel je pense, les chats chiffrés deviennent quelque chose que vous choisissez d’utiliser explicitement, sachant que vous devez renoncer à une certaine commodité pour la sécurité acquise. Tout comme chuchoter dans la vraie vie est moins pratique que de parler normalement, c'est donc avec un chat "chiffré". Rendre ce compromis explicite, visible et compréhensible pour l'utilisateur est l'aspect clé ici.

Cap sur l'avenir

Les utilisateurs de Fediverse voudront-ils éventuellement des discussions de groupe chiffrées? Je n’en doute pas. À ce stade, il sera intéressant de comprendre ce qu'ils veulent de plus: une meilleure sécurité plutôt que rien du tout avec un système du type Matrix / Megolm, ou la sécurité très renforcé du type double engrenage avec de la vérification manuelle de l'appareil.

Pour la plupart des groupes, être non chiffré est très bien. Les gens veulent une recherche côté serveur. Ils veulent partager l'historique de conversation avec de nouveaux participants. Souvent, ils veulent même que les choses soient complètement ouvertes et gratuites pour tout le monde. C'est ainsi que la plupart des chats IRC fonctionnent depuis des décennies.

Nous verrons bien si tout cela se produit . Si nous avons une bonne solution pour les discussions individuelles, nous pouvons utiliser ces connaissances de l'utilisateur pour étendre l'expérience utilisateur aux variantes de groupe. D'ici là, faisons de notre mieux et permettons de partager des conseils cadeaux d'anniversaire sur le Fediverse.

NDT: Je vais créer et incorporer des schémas pour la partie engrenage et double engrenage dès que je peux. L'article étant assez dense, je n'ai pas voulu tout faire en même temps.

Fil RSS des articles de cette catégorie