Qu’est-ce donc qu’une messagerie privée ? Plusieurs diront qu’une application de messagerie est privée si les messages qu’elle émet sont chiffrés. Mais en réalité la confidentialité des messageries est plus complexe que ça. Lors du Chaos Communication Congress, Roland Schilling et Frieder Steinmetz ont fait un discours dans lequel ils ont expliqué en termes simples ce qu’était une messagerie privée et ce qu’une application de messagerie devait posséder pour être considérée comme étant privée.
Les six piliers de la conversation privée
Pour comprendre ce qu’est l’idée de la messagerie privée, Schilling et Steinmetz proposent qu’on imagine d’avoir une conversation privée à une fête. Comment fait-on pour rendre cette conversation privée ? On trouverait sans doute une salle isolée, où personne ne pourrait écouter notre conversation.
Il s’agit du premier fait concernant les conversations privées. Qu’elles soient en face à face ou en ligne, elles doivent rester confidentielles. Personne excepté vous et votre interlocuteur ne devrait pouvoir écouter ce que vous dites.
Le second fait est l’authenticité. Vous devez savoir que la personne avec qui vous parlez est en réalité la seule personne concernée. Dans la vie réelle, vous reconnaissez le visage de la personne, mais avec la messagerie en ligne, c’est plus compliqué.
Si la conversation est vraiment importante (et les conversations privées le sont en général), vous devez vous assurer que votre interlocuteur écoute chaque mot que vous prononcez, et vice et versa. De plus, vous devez être certain que la personne entend exactement ce que vous dites. En d’autres termes, que personne ne pirate vos messages. Il s’agit du concept d’intégrité, qui est aussi fondamental pour la messagerie privée.
Imaginons à présent qu’un tiers entre dans la salle isolée et écoute une partie de votre conversation. Dans une conversation de la vie privée, ce tiers ne saurait que la partie de la conversation qu’il a écoutée, non ce que vous avez dit avant qu’il arrive et après son départ. En revanche, Internet n’oublie jamais, et la communication online n’est pas aussi simple que l’offline. Cela nous ramène à deux concepts plus importants à l’origine de la messagerie privée : la confidentialité persistante et la confidentialité future.
La confidentialité persistante empêche au tiers de savoir de quoi vous avez parlé avec votre interlocuteur avant d’entrer dans la salle isolée, et la confidentialité future empêche au tiers de savoir de quoi vous avez parlé après avoir quitté la salle isolée.
Imaginons que le sujet dont vous parliez était vraiment délicat. Dans ce cas, si quelqu’un vous accusait d’avoir dit quelque chose, vous voudriez sans doute le nier. Si la conversation était privée, les seules personnes qui pourraient en parler seraient vous et votre interlocuteur, donc c’est votre parole (« Je n’ai pas dit ça ! ») contre la sienne (« Tu as dit ça ! »). Dans ce cas, personne ne peut rien prouver, et cela nous ramène au concept important de dénégation.
Mettre en place le système de confidentialité dans les messageries
Il s’agit donc des six fonctionnalités qui doivent être implantées sur une application de messagerie avant qu’on ne puisse l’appeler privée. Elles sont plutôt simples à mettre en place lorsqu’on se réfère à la vie réelle, aux conversations en face à face, en revanche il s’agit de services de messagerie, il y a toujours un tiers, le service lui-même. Comment les six piliers sont-ils mis en place avec la présence de ce tiers ?
La confidentialité est assurée via l’utilisation du chiffrement. Il existe différents types de chiffrement, symétrique et asymétrique, à savoir la cryptographie asymétrique. Les messageries privées (dans ce cas, Schilling et Steinmetz ont pris Threema comme exemple) utilisent les deux, en créant une clé partagée à partir de la clé publique d’une personne et de la clé privée de l’autre personne. Ou la clé privée de la première personne et la clé publique de la seconde personne, les mathématiques à l’origine du chiffrement fonctionnant de la même façon.
Par conséquent, la clé est identique pour les deux personnes et uniques pour les deux d’entre elles (aucune autre paire n’a la même clé). L’application génère la clé indépendamment et préserve la confidentialité en ne la transférant pas, permettant aux deux personnes de discuter en privé.
Cette méthode est également utilisée pour assurer l’intégrité, un tiers externe ajoutant quelque chose au texte déjà chiffré le rendrait indéchiffrable. Dans ce cas, votre interlocuteur recevrait soit ce que vous lui avez envoyé soit un message d’erreur (puisque la messagerie ne pourrait pas déchiffrer le texte chiffré).
Pour encore plus de confidentialité, vous souhaiteriez sans doute dissimuler totalement votre conversation avec votre interlocuteur. Une autre couche de chiffrement s’en chargerait. Le message que vous avez envoyé serait chiffré en utilisant la clé que vous avez partagée avec votre interlocuteur (c’est comme mettre le message dans une enveloppe, contenant une adresse). Puis vous le chiffrez de nouveau, le mettez dans une autre enveloppe et l’envoyez à l’adresse du serveur de messagerie. Dans ce cas, vous utilisez la clé générée sur la base de votre clé et celle de la clé du serveur.
Par conséquent, cette-enveloppe-sans-enveloppe est remise au serveur de messagerie. Si un attaquant potentiel s’y intéresse, il sera que vous l’aurez envoyé, mais pas sa destination finale. Le serveur de messagerie décachète l’enveloppe externe, voit l’adresse de destination (pas le message lui-même), emballe l’ensemble dans une autre enveloppe, et l’envoie au destinataire. A ce stade, un attaquant potentiel ne peut voir qu’une enveloppe provenant du serveur de messagerie au destinataire, mais pas son origine.
Compte tenu de toutes les enveloppes qui sont envoyées, il est difficile de localiser la personne qui a reçu votre message. Difficile mais pas impossible. Si quelqu’un devait peser toutes les enveloppes, il serait susceptible de trouver deux enveloppes du même poids et de les associer avec la conversation que vous avez eue avec votre interlocuteur. Afin de s’assurer que cela ne se produise pas, le système ajoute un poids aléatoire à chaque enveloppe, par conséquent l’enveloppe que vous avez envoyée et celle que votre destinataire a reçue ne pèseront jamais le même poids.
Il est dur de garder l’authenticité. Certaines applications de messagerie utilisent les adresses mail ou les numéros de téléphone comme identifiants, c’est la manière dont l’utilisateur prouve son identité. Cependant les numéros de téléphone et les adresses mail sont des données confidentielles que vous ne souhaitez sans doute pas partager avec l’application. Certaines (comme Threema) encouragent les utilisateurs à utiliser un identifiant différent et à échanger les codes QR pour prouver leur identité.
La dénégation dans ce cas est réussie en envoyant chaque message aux deux interlocuteurs. La clé est la même pour les deux personnes, donc l’une ou l’autre aurait pu envoyer le message. Par conséquent, même si quelqu’un arrive à intercepter et à déchiffrer le message entrant, on ne peut pas être sûr de qui l’a envoyé.
Voilà en ce qui concerne la confidentialité, l’authenticité, l’intégrité et la dénégation. Qu’en est-il de la confidentialité persistante et future ? Si la clé privée et la clé publique d’une personne sont toujours les mêmes, et que la clé partagée est piratée, l’attaquant peut à la fois déchiffrer d’anciens messages et de futures conversations.
Pour limiter cela, les clés doivent être régulièrement rééditées par le serveur. Si la clé est rééditée, c’est-à-dire, une fois par mois, un attaquant serait capable de lire l’historique de conversation pour ce mois seulement et perdrait la capacité à surveiller la conversation une fois qu’une nouvelle clé serait éditée (dans la pratique, le fait de rééditer la clé se produit beaucoup plus souvent).
Récapitulatif
Cette partie conclut notre introduction très brève du concept de messagerie privée. C’est en réalité beaucoup plus compliqué, du fait que les applications de messagerie modernes doivent gérer des fichiers multimédias, des groupes de chat, et parfois même des appels vidéo.
Si vous souhaitez en savoir plus, nous vous recommandons de regarder la vidéo ci-dessous de 33C3. Schilling et Steinmetz n’y expliquent pas seulement les idées de base, mais parlent également de la façon dont ils ont désassemblé Threema et découvert comment l’application met en place des principes de clé privée. Nous espérons que vous apprécierez la vidéo tout autant que nous.