Récemment, de nombreux échanges au sein de la communauté du Libre et dans les scènes hacktivistes tournent autour de la même question :
Faut-il utiliser TextSecure ou SMSSecure ?
Et une chose est sure, la réponse n’est pas simple. J’ai décidé de faire le point, en partant « de la base ».
TextSecure, SMSSecure, c’est quoi ?
Ces deux applications, disponibles sous Android, permettent de chiffrer les messages, SMS ou MMS, envoyés depuis l’appareil.
Les deux applications sont pensées pour s’intégrer parfaitement à votre utilisation quotidienne, remplaçant sans le moindre problème le logiciel SMS « par défaut » d’Android. Si vous préférez, vous n’avez pas besoin d’être un expert en informatique pour utiliser ces applications, elles sont pensées pour être utilisées par tout le monde.
TextSecure dispose d’un équivalent sous iOS : Signal. SMSSecure, quant à lui, n’existe que sous Android.
SMSSecure est ce qu’on appelle un « fork » de TextSecure, c’est-à-dire qu’il a été créé à partir du code source de TextSecure. Si son ambition est équivalente à celle de TextSecure, les deux applications fonctionnent différemment.
Comment ça fonctionne ?
TextSecure et SMSSecure ont deux fonctions : ils chiffrent la base de SMS stockée dans votre appareil et, par défaut, la protègent par un mot de passe que vous définissez. Ce mot de passe permet également d’accéder à l’application, sans ce dernier, impossible d’envoyer des messages.
Leur seconde fonction est l’envoi de messages sécurisés : les SMS sont chiffrés de l’expéditeur au destinataire, on appelle ça du « end-to-end encryption ». Avec ce mode d’envoi, seul le destinataire du SMS est capable de déchiffrer le message. Même si votre message passe par un serveur intermédiaire, ce dernier ne pourra pas le lire.
Je ne rentrerai pas dans le détail du chiffrement, sauf si vous le souhaitez, cela fera alors l’objet d’un article spécifique.
La grande différence réside dans le transport des messages : TextSecure fait transiter les messages par Internet, via ses serveurs, alors que SMSSecure fait transiter les messages par le réseau mobile, sans passer par Internet.
Et alors ?
Afin de tenir la charge pour l’envoi des messages, TextSecure a fait le choix suivant : utiliser GCM, Google Cloud Messaging, seul outil capable de gérer les millions d’utilisateurs TextSecure à travers le monde.
Si une alternative est en cours de développement, il faut pour l’instant composer avec cette forte dépendance à Google, renforcée par le fait que GCM demande impérativement l’installation du Google Play.
SMSSecure, lui, ne fait pas passer les messages par Internet, ces derniers passent sur le réseau mobile, comme n’importe quel autre SMS. Il gère donc le chiffrement mais pas le transport des messages.
Pour faire plus clair : TextSecure gère le chiffrement et le transport des messages, SMSSecure ne gère que le chiffrement. TextSecure est dépéndant de Google pour acheminer les messages, SMSSecure non, il n’est dépendant que du réseau mobile.
Avantages, inconvénients …
Chaque solution a un certain nombre d’avantages… et certains inconvénients :
- TextSecure et SMSSecure chiffrent les messages, avec des protocoles considérés comme solides, les deux offrent donc un niveau de sécurité parfaitement acceptable. Il faut en revanche que le destinataire de votre message dispose de la même application pour que le message puisse être chiffré. Si votre destinataire ne dispose pas de TextSecure ou SMSSecure, le message envoyé sera un « simple » SMS, l’échange ne sera ni chiffré, ni protégé.
- TextSecure fait transiter ses messages par Internet, ce qui est à la fois un avantage et un inconvénient.
- L’avantage : votre message ne passe pas par le réseau mobile, votre opérateur n’a donc aucun trace de votre message, ne sait pas avec qui vous communiquez, quand, comment, combien de fois… il est aveugle et ne peut plus récupérer de métadonnées sur vos messages.
- L’inconvénient : vous devez passer par Internet, il faut donc avoir un forfait data, être sous couverture data, il y a une dépendance à Google. Si vous n’avez plus de data où que vous êtes dans un pays sans data, vous serez complètement paralysé.
Sur ces avantages et inconvénients, SMSSecure est l’exact opposé de TextSecure :
- L’avantage : vous passez par le réseau mobile, votre message arrivera, avec ou sans data. Où que vous soyez, tant que vous avez du réseau, votre message arrivera et vous pourrez en recevoir.
- Inconvénient : vous passez par le réseau mobile, votre opérateur sait donc que vous envoyez des messages, à qui vous les envoyez, quand, il peut savoir avec qui vous communiquez le plus et, pour résumer, est capable d’accéder à toutes les métadonnées liées à un SMS.
Une question de choix…
Choisir SMSSecure, c’est s’assurer une complète indépendance vis-à-vis de Google, c’est aussi s’assurer que cela fonctionnera dans de nombreuses situations, puisqu’il suffit d’avoir du réseau. Hélas, c’est aussi choisir de laisser trainer ses métadonnées dans la nature…
Si vous êtes journaliste par exemple, il sera possible de savoir avec qui vous communiquez et donc, d’identifier vos sources assez rapidement.
Choisir TextSecure, c’est s’assurer que vos échanges seront invisibles pour votre opérateur. Si vous êtes journaliste, il devient très compliqué voire impossible de savoir avec qui vous échangez des messages.
En revanche, c’est être dépendant d’un accès à Internet et être dépendant d’un outil mis en ligne par Google, un monstre bien trop curieux.
Au final, le choix entre TextSecure ou SMSSecure se résume donc à une question de protection et de sécurité.
Pour conclure, afin de choisir, il faut bien définir votre besoin, bien définir les menaces auxquelles vous êtes exposés selon vos activités ou votre profession…
Si vous souhaitez de plus amples explications ou apporter des corrections, les commentaires sont là pour ça.
Il y a une petite coquille « SMSSecure ne gère que le transport » je pense que c’est plutôt « SMSSecure ne gère que le chiffrement »
Sinon très bon article encore une fois !
Effectivement, c’est corrigé, merci beaucoup 🙂
Juste un détail.
Il faudrait être naïf pour ne pas songer que la centralisation sur « des » serveurs permet également de centraliser les « boites noires » désormais obligatoires en france, mais aussi largement démontrées ailleurs (technique du canari…).
TextSecure, c’est donc la garantie que le contenu sera audité.
Si je suis d’accord avec toi, je rajoute tout de même que l’autre côté n’est pas plus joyeux : passer par le réseau de ton opérateur mobile revient à lui laisser les métadonnées, dont on sait qu’elles sont extrêment précieuses, encore plus depuis l’arrivée de la loi sur le renseignement.
Si centraliser le push des messages sur les serveurs de TextSecure est un problème, exposer les métadonnées en est un au moins aussi important, hélas.
Un inconvénient du chiffrement SMS que j’ai personnellement vécu.
1. convaincre un ami de passer a TextSecure
2. envoyer quelques SMS chiffrés
3. l’ami n’aime pas l’app et la désinstalle
4. l’ami se plaint de recevoir des SMS incompréhensibles
5. essayer de faire comprendre a TextSecure qu’on veut envoyer en clair alors qu’il s’obstine a considérer le contact comme capable de lire les SMS chiffrés
Je précise que je parle d’amis qui ont zéro connaissances sur le chiffrement (ou techniques en général) a qui on ne peut pas demander de comprendre la fonction « révocation » avant la désinstallation… Le public visé par Text/SMSSecure se veut très général.
Avec les messages par internet, on voit que l’ami ne reçoit jamais nos messages apres désinstallation (pas d’accusé) et on repasse aux messages classiques plus facilement (sans passer pour un fou).
Salut,
il suffit d’arrêter de chiffrer vos messages avec votre destinataire. Soit vous cliquez sur le tt cadenas pour mettre fin à la session sécurisé soit vous supprimez complètement l’historique avec ce destinataire et les prochains messages arriveraient en clair à votre destinataire (ex utilisateur textsecure ).
SMS secure peut aussi se télécharger via Fdroid et donc ne passer par le play-store de google.
https://f-droid.org/repository/browse/?fdfilter=textsecure&fdid=org.smssecure.smssecure
Il faudrait une solution du style openpgp comme pour les mails. Après, à voir les contraintes techniques. J’avoue, je n’y ai pas encore pensé !
Mais avec toutes ces lois à la con, il va falloir mettre en place des solutions efficaces et simples. Et indépendantes de l’OS si possible !
Merci pour l’article ! je ne m’étais pas encore posé la question.
Il restera le problème des métadonnées et de l’accès à Internet. Je ne parlerai que du premier, le second n’ayant pas de rapport avec le principal problème : Openpgp ou non, on laisse trainer des métadonnées et on sait, du moins, on prend conscience de plus en plus, que ce sont surtout ces métadonnées qui intéressent les regards indiscrets, c’est d’ailleurs la raison de ce billet : les protéger mais centraliser ou ne pas les protéger mais être indépendant d’une grosse société bien calée dans l’espionnage :/, en gros, entre la peste et le choléra, que choisir…
la solution serait donc d’intégrer un système de tchat sécurisé, décentralisé et multi système. Il existe une solution via navigateur, mais je ne sais pas si ça marche sur mobile. Mais pas assez simple qu’une app pour un utilisateur lambda
Si les méta-données sont chiffrées via un équivelent aussi « fort » que PGP, elles seront inutiles.
Personellement j’ai pris smssecure parce que je n’ai pas de forfait data, mais ce n’est pas la seule raison : comme tu l’as dit il faut les services google, or cette application pèse 20Mo ! Ça peut sembler ridicule sur les systèmes actuels mais sur mon téléphone encore bloqué en android 2.3.6 ces 20Mo représentent 10% de ma mémoire totale et je peux pas me le permettre.
Une bonne solution contre l’exploitation des métadonnées est une application comme Antox, c’est uTox pour Android actuellement, pas de serveur central, pas de nom affiché publiquement.
Il n’y a ici plus qu’un inconvénient, il fait un forfait data. Corrigez-moi si j’ai dis une bêtise.
Donc, plus besoin de Google ou de son pack applicatif, et pas besoin du service SMS de l’opérateur.
Il y aura toujours un problème pour compléter la protection des utilisateurs sur un téléphone de toute façon, ça vient de leur conception…
Je te rejoins sur le problème de la protection des données et des utilisateurs avec un appareil mobile type téléphone / tablette.
C’est, dès la base, un problème de conception. Il existe des téléphones ultra haute sécurité mais ce n’est clairement pas à la portée de n’importe qui et c’est généralement présenté dans les salons liés à la sécurité et l’espionnage / la vente de matériel type militaire.
Ajoutons qu’un problème avec la data (et TextSecure), est qu’il existe des métadonnées qui fuitent indépendamment de l’utilisation faite du téléphone : s’il y a un IMSI-catcher dans le coin, l’attaquant saura où se trouve le téléphone et qui était dans le coin; pour peu qu’il n’y ait que très peu de personnes dans le coin, l’identification est très rapide (autrement, il faudra plusieurs interceptions pour avoir une bonne probabilité). Notons que c’est parce que Paul Bismuth et son avocat étaient sur la même antenne qu’ils ont pu être pris.
Le véritable problème se situe probablement dans le périphérique utilisé. Certes, TextSecure protège mieux les métadonnées que SMSSecure, mais n’évite pas pour autant leur fuite. C’est pour cela que la prochaine fois que vous allez manifester, laissez votre téléphone chez vous (ainsi que tout objet NFC comme les badges de transport ou les cartes bancaires, d’ailleurs). 😉
Le problème existe aussi sur du SMS classique, si un IMSI Catcher est dans le coin.
Je te rejoins sur la solution réellement efficace : ne pas prendre son téléphone / smartphone, ne pas s’en servir dans certaines situations… hélas tous n’ont pas ce réflexe et parfois ne peuvent simplement pas, par exemple lorsque le téléphone portable fait partie des outils de travail (je pense à un journaliste, ici, par exemple)
Heu… TextSecure ne chiffre plus rien, d’où le fork SMSSecure, non ?
Sinon chiffrer ses SMS ok, mais encore faut-il que le destinataire utilise la même application, donc Android only.
Et qu’il y en ai une utilité pour le grand public.
PArce que chiffrer « Tu ramènes le pain ? » j’ai un doute.
Contrairement à « Appelle-moi demain ma femme n’est pas là. » où le chiffrement a plus de sens 🙂
Pas bête la suggestion d’un système à la PGP pour les SMS…
Alors, pas exactement, TextSecure chiffre, mais uniquement en passant par la data, en passant par les serveurs de TextSecure, avec GCM en support.
Le fork est né parce qu’il n’était plus possible d’utiliser le réseau mobile classique pour chiffrer, ce qui n’a pas séduit un certain nombre de personnes.
L’avantage TextSecure c’est que ce n’est pas android only, il existe des connecteurs avec Signal, sous iOS, ce qui n’existe pas avec SMSSecure, qui lui, est Android only.
Après, je ne partage pas ton point de vue sur le chiffrement des messages : chiffrer un simple « bonjour », c’est noyer les messages chiffrés important, créer un gros sac de noeuds, certains parlent de crypto anarchie dans cette configuration là : tout chiffrer, absolument tout, pour compliquer le travail.
Bien sûr, et qui va former les michu ? Toi ?
C’est la différence entre une approche réfléchie et une approche pragmatique.
L’une des deux pratiques a toujours le dessus, au grand damn de RMS par exemple 😉
Il n’y a pas que l’aspect formation à prendre en compte (et mon métier étant de former, je forme, même si former la planète entière, c’est impossible :D)
Mon approche est de prendre en compte l’ensemble des aspects du chiffrement : si TextSecure et SMSSecure « marchent » mieux que d’autres applications, c’est parce qu’elles sont extrêmement faciles à prendre en main.
En partant de là, je pense qu’on peut, au moins un peu, améliorer bon nombre d’outils, d’interfaces, pour faire que « michu » puisse s’en servir sans forcément voir le minimum de compétences requises (beaucoup se servent de SMSSecure ou de TextSecure, sans forcément savoir comment ça fonctionne à l’intérieur)
Je te rejoins, en revanche, sur l’analyse que tu as sur les propos de RMS : ils sont peut-être bons, mais pour nous, dans cette communauté. Pas en dehors, c’est trop lointain/pas parlant/déconnecté/compliqué/théorique (et j’en passe)
Et comment se place Signal, par rapport à ces deux ? Est simplement remplacer Google par un autre prestataire ?
Bonjour, en fait, Signal est le nouveau nom de TextSecure, pour s’aligner sur le nom donné sous iOS : Signal. D’autant plus que l’application à fait la fusion entre TextSecure et Redphone, qui permet de chiffrer ses communications téléphoniques, d’où, aussi, le changement de nom. Sinon, rien n’a changé depuis la rédaction de ce billet