Signal Private Messenger – Un cas d’école

Temps de lecture : 10 minute(s)

Dans cet article, au travers de l’analyse d’une application relativement connue et jouissant (indûment comme nous le verrons) d’une bonne réputation, je me propose de tordre le cou à un certain nombre de préjugés, et de vous donner les clés qui vous permettront de mieux comprendre les enjeux, les limites, et les facteurs auxquels il convient d’être attentif.

 

Petit historique

Signal Private Messenger, est édité par OpenWhisper.  Son slogan : Privacy is possible, Signal makes it easy.  Nous verrons ce qu’il en est, dans les faits.

Il résulte de la fusion de deux logiciels antérieurs distincts:

  • TextSecure : qui était à la base une application destinée à envoyer des SMS sécurisés, et qui a ensuite évolué vers une application avant tout destinée à envoyer des messages textes sécurisés (non plus via le protocole SMS, mais via Internet).
  • RedPhone : application VoIP sécurisée, forcément via Internet puisque par leur conception même, les GSM ne permettent pas de manipuler les flux entrants et sortants de l’antenne (circuit émission/réception radio).

Pourquoi avoir fusionné TextSecure et RedPhone ?

Cela résulte d’un choix rationnel.  Les deux applications poursuivent le même but, qui est la sécurisation des communications, et d’autre part, il est plus facile de maintenir un seul produit que deux produits distincts.

Il y a là aussi probablement des raisons de marketing, qui ne sont jamais très loin lorsqu’on parle d’OpenWhispers, bien qu’à ce stade, l’application reste totalement gratuite.

Ainsi, le choix de pousser à l’utilisation de messages textes via internet plutôt que par SMS, par exemple, résultait non pas d’un soi-disant souci de sécurité, mais bien de la volonté de l’éditeur de développer un produit qui soit équivalent sur toutes les plateformes.  Or sur IOS (iPhone), il n’est pas possible d’envoyer des SMS programmatiquement.  Les API ne sont pas exposées.  Seul le système d’exploitation a ce privilège.

Parmi les  raisons avancées on peut lire :

SMS and MMS are a security disaster. They leak all possible metadata 100% of the time to thousands of cellular carriers worldwide. It’s common to think of SMS/MMS as being “offline” or “peer to peer,” but the truth is that SMS/MMS messages are still processed by servers–the servers are just controlled by the telcos. We don’t want the state-run telcos in Saudi, Iran, Bahrain, Belarus, China, Egypt, Cuba, USA, etc… to have direct access to the metadata of TextSecure users in those countries or anywhere else.

Nous verrons pourquoi cet argument peut tout autant, si pas plus, s’appliquer à l’application Signal Private Messenger.

Protéger sa vie privée, mais contre qui ou quoi ?

On ne peut plus aujourd’hui considérer la protection de la vie privée comme un concept monolithique.  Etant donné la multiplicité des moyens de communications mais aussi la diversité des menaces, il convient d’analyser chaque situation à travers le prisme des résultats que l’on est en droit d’attendre compte-tenu des moyens que l’on envisage.

Pour le dire plus crûment, il est impossible aujourd’hui de protéger tous les aspects de votre vie privée.  Tout au plus pouvez-vous espérer en mettre certains pans à l’abri des regards trop curieux.

Ainsi le mari trompant sa femme voudra éviter que celle-ci ne puisse prendre connaissance de sa correspondance, tandis que le militant des droits de l’homme dans une dictature songera à se protéger contre les agences de renseignements étatiques.

Parce qu’il est évident que les agences de renseignement et une épouse trompée ne collectent pas les informations en usant des mêmes moyens.

L’épouse trompée pourra mettre la main sur le téléphone oublié par le mari, tandis que les agences de renseignement se baseront plutôt sur des lois totalitaires pour contraindre les fournisseurs télécom (appelés telcos en anglais) à transmettre les informations demandées.

Les Etats-Unis et le respect de la vie privée

D’une manière générale, les Etats-Unis sont très respectueux de la vie privée des citoyens…  Sur le papier du moins, et avec quelques réserves de taille.

S’il est vrai que la protection de la vie privée est inscrite dans le quatrième amendement de la constitution :

Le droit des citoyens d’être garantis dans leurs personne, domicile, papiers et effets, contre les perquisitions et saisies non motivées ne sera pas violé, et aucun mandat ne sera délivré, si ce n’est sur présomption sérieuse, corroborée par serment ou affirmation, ni sans qu’il décrive particulièrement le lieu à fouiller et les personnes ou les choses à saisir.

Celui-ci ne concerne que les citoyens Américains, sur le territoire national, et encore…  Le scandale de l’affaire Snowden a révélé que la NSA avait procédé à des interceptions massives qui concernaient aussi des citoyens Américains aux Etats-Unis.

Ceci implique que le reste du monde ne jouit d’aucun droit au regard des agences de renseignement américaines, qui sont notoirement les plus curieuses et les plus puissantes au monde.   Elles sont capables d’intercepter en temps réel absolument tous les flux transitant via les réseaux de communications : internet, téléphonie, radio, etc.

Les injonctions baillon (gag orders)

Depuis les attentats du 11 septembre 2001, et le Patriot Act, les tribunaux américains sont amenés de plus en plus souvent à assortir leurs jugements d’une injonction baillon.  En gros, il s’agit d’une injonction aux parties leur interdisant sous peine de poursuites pénales d’évoquer la décision de justice qui les concerne.

Ainsi, un éditeur de logiciel ou un fournisseur de services qui se verrait contraint (par le jugement d’un tribunal secret) de transmettre telle ou telle information à la NSA se verra également interdit d’évoquer ce fait sous peine de poursuites pour trahison.  Plutôt dissuasif, n’est-ce pas ?

On ne parle pas de cas hypothétiques, ici, mais d’événements qui se sont déjà produits à de nombreuses reprises.

Le cas Lavabit

Lavabit était un service de courriels lancé en 2004 dont les opérations furent suspendues en août 2013 à la suite du refus de se soumettre à des ordres du gouvernement des États-Unis.

En juillet 2013, Lavabit attira l’attention des média lorsqu’il fut révélé qu’Edward Snowden utilisait l’adresse edsnowden@lavabit.com pour inviter des avocats spécialistes des droits de l’homme et des militants à une conférence pendant qu’il se confinait à l’intérieur de l’aéroport international Cheremetievo à Moscou.

Le cas Silent Circle

En mai 2015, Phil Zimmerman, le célèbre inventeur de PGP (Pretty Good Privacy) et fondateur de Silent Circle s’expatriait en Suisse, précisément pour éviter d’avoir à subir le même sort que Lavabit.  Dans la foulée, et à l’occasion de la présentation à Londres de la version 2 du Blackphone, qu’il a aidé à concevoir, il donnait une interview au Guardian, dans lesquelles il explique les raisons de cet exil.

Par ailleurs, il faut savoir que Phil Zimmerman est également l’inventeur de ZRTP, le protocole de VoIP sécurisé qui est utilisé par la quasi-totalité des applications de téléphonie sécurisées, y compris Signal.

On peut difficilement mettre en doute les motivations de ce défenseur des libertés individuelles, dont certains membres du Congrès Américain avaient souhaité qu’on le poursuive pour trahison, lorsqu’il avait publié PGP.

Conclusion

Ce que dit Phil Zimmerman, c’est qu’aucune société de droit américain n’est à même de garantir la sécurité des informations qu’elle possède sur ses clients.  Que chacune de ces sociétés peut se voir contrainte de trahir leur confiance, sans même pouvoir les avertir du danger.

Pour le dire plus simplement, toute société de droit américain ou soumise aux juridictions US qui prétendrait offrir de tels services serait malhonnête.  A éviter comme la peste.

Les soi-disant protections offertes par des applications comme Signal, GMail ou Skype sont de la poudre aux yeux.

La seule différence notable c’est qu’une société comme Google par exemple ne prétend pas protéger vos données contre la curiosité des agences américaines.

If you have something that you don’t want anyone to know, maybe you shouldn’t be doing it in the first place.

Ca a le mérite d’être franc.  On ne peut pas en dire autant d’OpenWhispers.

Un concentré de mauvaises pratiques.  On aimerait croire que c’est juste de la bêtise.

La première chose que le programme demande, lorsque vous l’exécutez après l’installation, c’est votre numéro de téléphone !

L’écran, intitulé « Connect with Signal », vous présente le champ dans lequel vous devez taper votre numéro de téléphone, et l’explication en dessous stipule :

Verify your phone number to connect with Signal.

Registration transmits some contact information to the server.  It is not stored.

Impossible d’aller plus loin sans donner ce fameux numéro.  On reçoit un message indiquant :

You must specify your phone number

Question confidentialité, ça commence mal, un programme qui veut tout savoir de moi y compris mon numéro de téléphone et le contenu de mon carnet d’adresses…

Mais ces informations ne seront pas enregistrées.  Ah, et on peut savoir pourquoi l’application prend le risque de les transmettre si ce n’est pour les enregistrer ?   C’est pour donner de la lecture à la Marmotte ?

D’ailleurs, l’application fonctionne de cette manière : tous les utilisateurs sont connus,  de sorte que lorsque vous envoyez un message à un contact, l’application peut savoir si le destinataire est un utilisateur de Signal, et de ce fait, si elle peut permettre l’envoi de messages sécurisés ou pas.

C’est donc un mensonge flagrant et ça n’augure rien de bon pour la suite.

Pourquoi c’est une mauvaise pratique

Si moi j’étais développeur d’applications (ça tombe bien je le suis), et que je me mettais en tête d’écrire une application de messagerie sécurisée, alors que je sais pertinemment que l’Etat pourrait bien débarquer un jour ou l’autre chez moi avec un mandat lui permettant de siphonner toute les données en ma possession, je crois, ou plutôt je suis sûr que la dernière chose que je chercherais à faire c’est accumuler des données concernant mes utilisateurs.  Dans l’intérêt même de leur sécurité.

Somme toute, ce genre d’application est une bénédiction pour les agences étatiques.  Même plus besoin d’analyser les métadonnées de millions d’utilisateurs pour savoir qui communique avec qui.  Un petit mandat, et hop, c’est dans la poche.

Parce qu’il ne faut pas se faire d’illusion, les métadonnées (qui, avec qui, quand) sont au moins aussi importantes, voire plus dans un premier temps que les contenus eux-mêmes.  C’était d’ailleurs, vous vous en souvenez, la raison n°3 qu’OpenWhispers invoquait pour justifier l’abandon des SMS encryptés.  Sacrés farceurs !

Mais aussi

Tout d’abord, dans leur documentation, ils mentionnent :

The first time you run Signal, it will ask you to create a passphrase. This passphrase will be used to encrypt all of Signal’s secret information, including the keys used to encrypt your text messages. The security of your messages depends on the strength of this passphrase, so make it good. Signal can be configured to cache this passphrase in memory for as long as its running, or for a specific length of time, so you won’t need to be constantly re-entering it in order to access or send messages. This passphrase cannot be recovered if it is lost.

Sauf que ce n’est pas le cas dans la version actuelle (3.7.2).  Il faut aller dans Settings -> Privacy -> Enable Passphrase.  Par défaut, les messages sont stockés en clair dans la database.

Un peu plus loin, il est précisé que (même si vous utilisez une passphrase) :

All text messages are encrypted with your passphrase before being stored. This encryption includes the bodies of the text messages themselves, but the destination information is currently not encrypted.

Une fois de plus, les metadonnées ne sont pas protégées.  Cette-fois c’est au niveau du terminal même.

Notifications « push » (Google Cloud Messaging)

A cela s’ajoute que le programme, fait appel aux fonctionnalités push qui sont offertes par Google.  La principale raison invoquée est la consommation réduite comparée à un programme qui devrait se connecter aux serveurs toutes les x secondes.

Le problème est que le push est aussi une faille de sécurité en soi.  En l’utilisant google sait qui envoie un message à qui… et avec quelle application puisque chaque application est identifiée avec une clé unique.

Conclusions

Je ne vais pas aller beaucoup plus loin dans l’analyse de l’application.  Je pense que ce qui précède est suffisamment clair.  Quels que soient les jolis protocoles qui ont été implémentés pour les communications, cette application est un appeau, et les utilisateurs sont des canards sauvages.

SMSSecure – un Fork d’OpenWhispers Signal

Dès lors qu’une application est publiée en Open Source, il est loisible à tout un chacun de reprendre ce source pour créer un nouveau produit, pour autant qu’il soit également publié en Open Source.  Les mauvaises pratiques dont je fais état ci-dessus, d’autres les avaient également identifiées, et un groupe de programmeurs a décidé de créer une nouvelle application en restant plus attachés aux principes de base en matière de sécurité.

Dans l’article Wikipedia consacré SMSSecure , on peut notamment lire :

En revanche, OpenWhisper ne mentionne pas que les utilisateurs passant par le canal et les serveurs centralisés situés dans leur datacenters doivent leur faire une totale confiance, ainsi qu’à leur opérateurs de service (google, pour les messages push) (…)

Et aussi :

L’abandon du chiffrement des SMS/MMS par Open Whisper Systems (en), ainsi que la dépendance forte envers les technologies Google Google Cloud Messaging et Google Market ; l’indisponibilité de l’application sur les plateformes F-Droid et Amazon a conduit plusieurs développeurs à créer un fork. L’utilisation de l’une ou de l’autre des applications fait débat, l’essentiel des arguments se concentrant sur « facilité » contre « sécurité ».

Il me paraît clair qu’en excluant la centralisation des contacts via leur serveurs et Google Cloud Messaging, cette application revient aux fondamentaux de ce qu’était initialement TextSecure.

Toutefois, l’échange des clés se faisant via un challenge Diffie-Hellman, il est impératif de procéder à la vérification des clés.   Parce qu’avec les moyens informatiques actuels, il serait parfaitement possible à des services de renseignement d’implémenter des logiciels chargés de réaliser de manière automatisée une attaque de type MITM sur cet échange.

Un autre petit point négatif : ici non plus, pas d’activation de la passphrase par défaut pour encypter localement les messages.  Il faut aller dans settings, etc.

Et si je veux vraiment de la sécurité ?

Dans l’état actuel des choses, le mieux c’est de ne surtout pas utiliser de Smartphone.  Du tout.  C’est simple, non ?

Si malgré tout vous voulez tout de même en utiliser un, choisissez un smartphone dont la sécurité a été renforcée depuis le système d’exploitation jusqu’aux applications.

avatar

Philippe Huysmans

Webmaster du Vilain Petit Canard, citoyen de nationalité belge, marié et père de deux enfants. Je vis en Belgique et j’exerce la profession d’Informaticien à Bruxelles. Mes articles