Chapitre 36 Cas d’usage : dialoguer
36.1 Contexte
Dans le cas d’usage précédent, on échangeait des messages de façon asynchrone, tout comme dans un échange épistolaire. Cependant on peut vouloir une communication synchrone, comme lors d’une communication téléphonique, que ce soit pour une réunion de travail sur un document sensible ou pour dialoguer avec une amie. Le plus simple pourrait être de se déplacer pour se rencontrer, ou de s’appeler — mais ce n’est pas toujours possible ou souhaitable. Parfois, la messagerie instantanée est une bonne alternative.
Beaucoup de gens connaissent et utilisent régulièrement la messagerie de Skype (remplaçant de MSN ou Windows Live Messenger fournie par Microsoft) ou la messagerie interne de Facebook, pour ne citer que les exemples les plus connus. C’est pratique, oui, mais il est possible d’avoir quelque chose de pratique sans renoncer à être discret !
36.2 Évaluer les risques
36.2.1 Que veut-on protéger ?
Les réponses possibles à cette question sont les mêmes que dans le cas de l’échange de messages. On peut vouloir protéger le contenu de l’échange, la localisation des protagonistes, leurs identités, leur lien, etc.
36.2.2 De qui veut-on se protéger ?
Ici aussi, les réponses sont proches de celles données dans le cas d’usage échanger des messages : on peut vouloir dissimuler tout ou partie de ces informations aux diverses machines par lesquelles elles transitent aussi bien qu’aux personnes qui pourraient y avoir accès.
Parmi lesdites machines, viennent tout d’abord les serveurs de messagerie instantanée utilisés par les différentes correspondantes.
Viennent ensuite les routeurs, situés sur le trajet entre les protagonistes de l’échange, notamment ceux de leurs FAI (Fournisseurs d’Accès à Internet) respectifs.
Enfin, des traces sont laissées sur les ordinateurs utilisés.
36.3 Définir une politique de sécurité
Posons-nous maintenant les questions exposées dans notre méthodologie en adoptant le point de vue de notre adversaire.
36.3.1 Première étape : toutes les infos à disposition des personnes curieuses
Les messageries internes de Facebook, Skype, etc., permettent à beaucoup de gens de prendre connaissance d’informations qui ne les concernent pas : Facebook ou Microsoft verront passer l’intégralité de nos conversations sur leurs machines, et peuvent les archiver pour pouvoir y accéder ensuite. Les flics n’auront qu’à demander pour bénéficier des informations, et une faille de sécurité sur le serveur peut donner accès à de nombreuses autres personnes. Sans oublier que Facebook change régulièrement ses réglages de confidentialité sans prévenir, et peut décider demain de rendre public ce qui est « privé » aujourd’hui.
Par ailleurs, Skype enregistre l’historique des conversations sur l’ordinateur utilisé, et donc toute personne qui aurait accès à l’ordinateur pourrait aussi accéder à cet historique (amie, cambrioleuse, amant jaloux…).
Mais Microsoft et Facebook n’ont pas inventé la messagerie instantanée et de multiples alternatives sont disponibles. Il existe de nombreux logiciels que l’on peut installer sur son ordinateur, qui permettront de communiquer selon divers protocoles : Skype, IRC, XMPP, etc.
Le fait d’utiliser un logiciel de confiance nous permettra de désactiver l’archivage des conversations, et donc de limiter les traces laissées sur notre ordinateur.
Il existe également des serveurs qui fournissent des adresses de messagerie instantanée et qui ne sont pas dans une position leur permettant de faire autant de recoupements que Google, Microsoft ou Facebook.
Pour suivre cette piste sur un système Debian (chiffré) installé
précédemment, se référer à l’outil
installer un logiciel
pour installer pidgin
. Si l’on utilise Tails, ce logiciel est déjà
installé440.
36.3.2 Deuxième étape : demander aux hébergeurs
En utilisant un client de messagerie instantanée et des serveurs variés, on ne centralise pas tous les liens et les dialogues entre les mêmes mains. Cependant, le contenu des conversations tout comme les parties qui communiquent restent accessibles à partir des ordinateurs par lesquels ils transitent.
S’il est souvent possible de paramétrer notre logiciel pour chiffrer la connexion jusqu’au serveur de messagerie, les dialogues restent accessibles au serveur. De plus, on ne peut en général pas garantir que le lien entre le serveur et l’autre correspondant soit aussi chiffré.
Une adversaire qui en a les moyens pourra donc s’adresser aux admins du serveur utilisé, voire aux organisations qui fournissent le réseau, pour obtenir des informations sur les conversations. Elle pourra aussi tenter de « pirater » leurs machines. La confidentialité des dialogues reste donc fortement liée à la confiance qu’on met dans les serveurs de messagerie que l’on utilise, voire dans les infrastructures du réseau et en particulier notre fournisseur d’accès.
Pour fortement compliquer la tâche d’une adversaire qui voudrait lire le contenu de nos dialogues, on pourra utiliser le chiffrement de bout en bout et disposer alors de confidentialité.
Pour suivre cette méthode sur un système Debian (chiffré) installé
précédemment,
suivre les outils
installer un logiciel
pour installer le paquet pidgin-otr
, puis utiliser la messagerie instantanée
avec OTR.
36.3.3 Troisième étape : les liens restent visibles
Si on utilise le chiffrement de bout en bout dans le cadre d’un dialogue en messagerie instantanée, une adversaire ne peut alors plus avoir accès au contenu de la conversation, à moins de casser le chiffrement utilisé, d’accéder à notre ordinateur, voire de le pirater.
Cependant, une adversaire qui a accès au réseau ou au serveur de messagerie utilisé peut toujours voir avec qui nous parlons. Pour cacher les liens, il faudra utiliser des identités contextuelles et se connecter de façon anonyme, par exemple en utilisant Tor. On a alors confidentialité grâce au chiffrement, mais aussi pseudonymat.
En utilisant un système live amnésique comme Tails, on s’occupe du même coup de la question des traces qui pourraient être laissées sur l’ordinateur utilisé. Sauf si on utilise la persistance, auquel cas des traces chiffrées seront conservées dans la partition persistante de la clé USB de Tails.
Pour suivre cette piste il nous faudra donc dans un premier temps, si l’on n’en a pas déjà, faire une clé USB ou un DVD Tails.
Ensuite, après avoir démarré sur le support contenant Tails, il nous faudra définir une identité contextuelle à utiliser et mettre en place la persistance de Tails pour cette identité en activant l’option « Pidgin ».
Nous pourrons enfin suivre l’outil utiliser la messagerie instantanée avec OTR.
On combine ici deux critères : confidentialité et anonymat. À l’étape précédente, on a vu comment disposer de confidentialité avec le chiffrement OTR. Ici on vient de voir comment avoir anonymat et confidentialité en utilisant le chiffrement OTR sous Tails ainsi qu’une identité contextuelle. Cependant, on peut désirer l’anonymat ou le pseudonymat seul, c’est-à-dire sans confidentialité. En effet, on peut vouloir cacher qui on est sans cacher le contenu de nos conversations, par exemple pour discuter dans des « salons » publics traitant de pratiques sexuelles considérées comme transgressives. Pour suivre cette piste on démarrera alors Tails puis on utilisera Pidgin sans utiliser le chiffrement OTR, avec un compte créé pour l’occasion.
36.4 Les limites
Tout d’abord, cette méthode reste vulnérable aux éventuelles attaques sur le chiffrement, dont on vient de parler et aux attaques sur Tor.
Mais il existe aussi quelques limites spécifiques aux conversations en temps réel. Ainsi, l’état « en ligne » ou « hors ligne » d’une identité est en général accessible publiquement. Un adversaire peut ainsi voir quand une identité est connectée, et éventuellement corréler plusieurs identités : parce qu’elles sont toujours en ligne en même temps ; ou au contraire parce qu’elles ne sont jamais en ligne en même temps mais souvent successivement, etc.
Pour que des identités apparaissent comme étant « toujours en ligne », il est possible d’utiliser un « ghost » ou proxy443 sur un ordinateur en qui l’on a confiance, qui est toujours allumé et connecté au serveur de messagerie instantanée. C’est ainsi cet ordinateur, et non pas le serveur, qui « voit » quand on est connecté ou pas, et cet état n’est plus public. La mise en place d’une telle infrastructure dépasse toutefois pour l’instant les ambitions de ce guide.
Ensuite, dans le cas particulier où l’anonymat (ou le pseudonymat) est prioritaire sur d’autres contraintes, par exemple si l’on souhaite discuter dans un salon public, d’autres limites s’ajoutent à celles évoquées ci-dessus. Ainsi, une identité contextuelle risque toujours de finir reliée à une identité civile, comme nous l’avons vu dans la partie sur les pseudonymes. En effet, même sous un pseudonyme, le fond et la forme de nos conversations peuvent en dire très long sur la personne se trouvant derrière le clavier.
Il est bon de garder en mémoire le fait que quand on essaye de définir une politique de sécurité lors d’une relation entre plusieurs personnes, que ce soit au téléphone, dans le cas d’échanges d’emails ou encore ici pour la messagerie instantanée, le niveau global de sécurité sera nivelé par le niveau de sécurité de la protagoniste la moins précautionneuse. En effet, si l’on prend par exemple soin d’utiliser Tails afin de ne laisser aucune trace de notre conversation sur l’ordinateur, alors que notre interlocutrice utilise son système d’exploitation habituel sans protection particulière, alors cette dernière sera sans doute le point le plus faible de la politique de sécurité de notre communication.
Enfin, comme cela a déjà été dit, le chiffrement OTR ne permet pas à l’heure actuelle de converser à plus de deux à la fois. Des recherches avancent cependant dans ce sens444.
En attendant, et à condition d’aimer bidouiller, il est d’ores et déjà possible de mettre en place son propre serveur de messagerie instantanée (par exemple XMPP) sur un service onion.
Des discussions ont lieu dans Tails pour remplacer Pidgin par un autre logiciel de messagerie instantanée. Cette proposition de modification est suivie sur le gitlab de Tails (en anglais).↩︎
Protocole OMEMO (en anglais).↩︎
Ian Goldberg et al., 2009 Multi-party Off-the-Record Messaging, CACR Tech Report 2009-27 (en anglais) ; Jacob Appelbaum et al., 2013, mpOTR (en anglais).↩︎