Logo de SMSSecure

Ni vu, ni connu, j't'embrouille l'écoute

Concernant l'échange de messages, les fabricants de téléphone (Apple, Google...) essaient à tout prix de brouiller la frontière entre SMS et internet. Que ce soit iMessage (chez Apple), ou Hangout (chez Google), vous avez une interface de dialogue unique, et c'est l'application qui va décider de faire transiter vos messages par internet (par leurs serveurs pour être précis) ou par SMS. Et bien sûr, comme il est intéressant pour eux d'examiner le contenu de vos messages, ils les enverront en priorité par leurs serveurs. Je ne parle même pas des autres applications (WhatsApp et consors) qui passent exclusivement par des serveurs privés.

Moi, ça me met franchement mal à l'aise de voir ces multinationales mettre leur nez dans mes messages. Quand j'envoie un message, j'aime que ça soit transporté par le système SMS. Au moins les GAFAM ne pourront pas les lire. J'estime qu'ils n'en ont pas besoin. Je veux échanger des messages par SMS, pas par internet.

Vous allez me dire: Bonne blague, les opérateurs téléphoniques peuvent lire les messages, eux, puisque ce sont eux qui les transportent. C'est tout à fait vrai. Mais il existe heureusement un logiciel pour les rendre aveugles: SMSSecure.

La petite histoire

Je vais vous raconter une (petite) histoire. C'est l'histoire d'une startup - WhisperSystems - dont le créneau était l'échange de messages chiffrés, pour protéger votre vie privée: TextSecure. Un beau petit logiciel gratuit, propre, pour iPhone et Android et - au contraire de ses concurrents - opensource ! L'application pouvait transporter vos messages en passant par SMS ou par leurs serveurs, mais vous aviez la possibilité de faire transiter vos messages exclusivement par SMS. Ils avaient inventé un protocole de chiffrement adapté à la petite taille des SMS. C'était chouette.
Et puis du jour au lendemain - POUF! - ils ont coupé la fonction SMS. Et leur application est devenu comme l'immonde masse des autres applications: Un gros truc bien centralisé. Avec la partie serveur bien entendu pas opensource du tout. (Correction: ils ont ouvert la partie serveur: https://github.com/WhisperSystems/TextSecure-Server (Merci Alda))

Heureusement que leur logiciel était libre: Un fork est rapidement apparu: SMSSecure.

SMSSecure reprend donc le fonctionnement de TextSecure avec son protocole de chiffrement, mais effectue les échanges exclusivement par SMS. Rien ne transite par internet. (Et en prime ils ont supprimé les appels aux services Google qui étaient contenus dans TextSecure).

Le chiffrement dans la pratique

L'auteur d'origine du logiciel voulait rendre le chiffrement accessible au plus grand nombre en le simplifiant au maximum. Et il s'est assez bien débrouillé.

Dans la pratique, c'est très simple: Si la personne en face n'a pas SMSSecure, c'est un échange de SMS standard, non chiffrés (comme avec n'importe quelle application de SMS).

Si la personne en face a aussi SMSSecure, appuyez sur le cadenas ouvert en haut de l'écran et faites « Démarrer la session chiffrée ». C'est tout ce qui est nécessaire pour protéger vos communications. Pas besoin de vous inscrire sur un site, de vous loguer avec un compte. La clé de (dé)chiffrement est dans votre téléphone.
i
Appuyez sur le cadenas...
i
...et choisissez « Démarrer la session chiffrée »

Une fois l'échange des clés fait (voir la capture d'écran ci-dessous), un cadenas fermé apparaît tout en haut à droite et vos SMS sont désormais chiffrés. (Vous pouvez voir le petit cadenas sur chaque message vous indiquant qu'il a été chiffré.) Maintenant, poursuivez vos échange SMS comme d'habitude. Il n'y a rien de plus à faire.
i
Un échange par SMS chiffrés

Notez que les MMS sont également chiffrés. D'ailleurs quand vous détachez une image d'un MMS, il vous avertit que vous êtes sur le point d'enregistrer l'image sur un support non chiffré.
i

Vérification des clés

Si vous avez quelques connaissances en crypto, vous devez vous demander: Comment vérifier les clés de chacun ?

Appuyez sur le cadenas en haut de l'écran et choisissez « Vérifier l'identité ».
i

Vous verrez alors les clés de chacun: Vous n'avez plus qu'à comparer (en personne ou par un autre moyen: par mail, par courrier, par téléphone...).
i

Si vous avez Barcode Scanner installé, vous remarquerez la petite icône en haut à droite. Elle sert à vérifier les clés quand vous êtes en face de la personne, de téléphone à téléphone. Pour que la personne en face vérifie votre clé:
  • Appuyez sur l'îcône de Barcode, choisissez « Analyser mes clés » et votre écran affichera votre clé sous forme de QR-Code.
  • En face, l'autre personne fait « Analyser leur clé pour comparer » et va scanner votre QR-Code.
Une vérification des clés rapide par QR-Code, sympa non ? L'auteur du logiciel a bien pensé son application.


Alors oui j'ai conscience, en utilisant SMSSecure, qu'aucun code ou protocole n'est incassable, mais tant que ça complique la tâche aux grandes oreilles, c'est bon à prendre. Plus nous chiffrons, plus nous leur rendons l'écoute économiquement pesante et potentiellement impraticable.

Ah oui j'allais oublier...

SMSSecure a une particularité importante et intéressante, mais à laquelle il faut faire attention: Sa base de SMS est séparée du système Android. Cela a plusieurs avantages:
  • Les autres applications ne peuvent plus lire vos SMS.
  • SMSSecure permet (en option) de protéger ses SMS par mot de passe. La base de SMS de SMSSecure est alors chiffrée dans le téléphone. Même si vous vous faites voler votre téléphone et que quelqu'un trouve le code de déverrouillage d'Android, il ne pourra pas lire vos SMS.
  • Notez que si vous ne protégez pas la base par mot de passe, les autres applications ne peuvent malgré tout pas lire vos SMS.
Je trouve cela sympa pour éviter les applications un peu trop curieuses.

C'est un avantage, mais il faut faire attention:
  • Quand vous lancerez SMSSecure pour la première fois, il sera vide et vous proposera d'importer les SMS du système Android. (Vous pouvez d'ailleurs le faire à tout moment: Menu → Importer/ExporterImporter la base de données SMS du système)
  • Les applications de backup traditionnelles ne sauvegarderont pas les SMS qui sont dans SMSSecure ! Il est nécessaire de faire vos sauvegardes vous-même: Allez dans le menu → Importer/ExporterExporterExporter une sauvegarde non-chiffrée. Cela va créer un fichier SMSSecurePlaintextBackup.xml sur votre carte SD.
Vous pourrez à tout moment restaurer cette sauvegarde fichier dans SMSSecure (menu > → Importer/ExporterImporterImporter la sauvegarde non chiffrée). Cela restaurera les SMS dans SMSSecure.
Petite astuce: Si au contraire vous voulez restaurer ces SMS dans la base du système Android (par exemple si un jour vous voulez dé-installer SMSSecure), vous pouvez prendre le logiciel SMS Backup & Restore: Il saura lire ce format de sauvegarde.

Et pour clarifier un peu cette histoire de transfert de SMS, un petit schéma:
i

...et même si on fait abstraction du chiffrement

Même si on fait abstraction du chiffrement, l'application est un plaisir à utiliser (J'ai écumé un paquet d'applications de SMS et elles m'ont toutes rebutées sur un point ou un autre). Même si SMSSecure ne faisait pas de chiffrement, elle resterait mon application de SMS par défaut. Parmi ce que j'apprécie:
  • Elle est assez réactive, même avec beaucoup de SMS (surtout comparé à l'application de SMS par défaut d'Android 4.1).
  • Elle est belle: thème sombre ou clair, choix des couleurs des bulles, émoticônes en couleur faciles à saisir (J'apprécie ces émoticônes qui respectent le design d'origine).
  • Elle est pratique: possibilité de personnaliser les notifications/couleur des bulles/sonnerie/vibrations par contact, possibilité de faire suivre un SMS, attachements, purge automatique des anciens messages...
Ce qui me manque ? Le délai avant envoi et l'affichage des SMS en popup (comme dans Textra par exemple). Mais très franchement, j'arriverai à m'en passer.
i
On peut personnaliser les notifications, sonneries, vibrations et couleurs pour chaque contact.

i
i
i
Bon c'est peut-être kikoolol, mais on peut facilement saisir les émoticônes, il y a le choix, et elles sont en couleur.

Franchement, cette application n'est pas laide, elle fait bien son boulot, elle est assez agréable à utiliser et en prime elle propose le chiffrement. Personnellement, j'adopte. La seule application que je trouvais plus agréable était Textra, mais c'est une application à sources fermés, qui fait des trucs louches sur le réseau, qui bugue dans ses dernières versions et qui ne fait pas de chiffrement. Y'a pas photo.

Il est à noter que SMSSecure est l'une des seules applications restantes d'échange de messages chiffrés non centralisée.


SMSSecure : GooglePlay - F-Droid (sources, site officiel)


Mise à jour 22 décembre 2015: TextSecure (chat chiffré, dont SMSSecure est dérivé) et RedPhone (VOIP chiffrée) ont été fusionnés au sein de l'application Signal. Si je devais recommander une application de communication chiffrée hors SMS, c'est bien Signal que je vous recommanderais (et non Telegram).
Raison: Telegram n'est pas chiffré de bout en bout (c'est d'ailleurs pour cela qu'il existe une version web et desktop de Telegram), sauf si vous utilisez la fonction « Secret chat ». A contrario, Signal est par défaut chiffré de bout en bout.