# Silence (application)

Silence est un logiciel libre, open-source de chiffrement de messagerie, issu d'un fork du logiciel TextSecure. Il permet l'échange sécurisé de messages de type SMS et MMS avec d’autres utilisateurs de Silence, ou de TextSecure. Le programme donne la possibilité de chiffrer ses messages et de vérifier l’identité de ses correspondants en comparant l’empreinte (fingerprint) des clés de chiffrement (sur l'appareil de son correspondant, soit en lisant l'empreinte ou en scannant un code QR). L’application Android peut fonctionner en remplacement de l’application de messagerie native d’Android. La base de données conservant localement les messages et les clés privés peut être chiffrée avec un mot de passe.
Silence met en œuvre le protocole de chiffrement Axolotl développé pour TextSecure, mais sans messagerie « push ». Silence est développé par l’équipe de Silence, principalement Bastien Le Querrec et Carey Metcalfe.

## Historique
### TextSecure
#### Whisper Systems et Twitter (2010–2011)

TextSecure a démarré comme une application permettant d'envoyer et recevoir des SMS chiffrés. Sa version beta a été publiée en mai 2010, par Whisper Systems, une startup cofondée par le chercheur en sécurité Moxie Marlinspike, et le roboticien Stuart Anderson$^,$. Cette application et les autres applications de Whisper Systems sont à l'époque sous licence propriétaire.
En novembre 2011, Twitter a acquis Whisper Systems. Les termes financiers du contrat n'ont pas été diffusés, mais l'acquisition a été faite principalement pour que M. Marlinspike puisse aider la startup a améliorer la sécurité$^,$$^,$.
Le logiciel a dès lors été publié sous licence libre et open-source, sous les termes de la GPLv3 en décembre 2011$^,$$^,$$^,$. Marlinspike a quitté Twitter pour créer Open Whisper Systems comme projet Open Source collaboratif, permettant le développement de TextSecure.

#### Open Whisper Systems (2013–2015)

Le site institutionnel d’Open Whisper Systems a été présenté au public en janvier 2013. Le portage de TextSecure vers iOS a démarré en mars 2013$^,$.
En février 2014, le protocole de transport a été publié en version 2, avec l'ajout de communications groupées, et de message de type push$^,$. Vers la fin de juillet, ils ont annoncé leur intention de fusionner les applications RedPhone et Signal au sein de TextSecure, parallèlement à l'annonce de la fin de portage de RedPhone sur les appareils Apple, sous le nom de Signal. C'est la première application pour iOS permettant de transmettre facilement des communications voix chiffrée et sécurisées gratuitement$^,$. Les développeurs ont également annoncé que les prochaines étapes seront le portage des fonctionnalités de messagerie instantanée pour iOS, et l'unification totale de RedPhone et TextSecure sur Android, ainsi que la mise en service d'un client web.
En mars, Signal 2.0 est publié pour iOS, avec la fonctionnalité de message chiffré pour TextSecure$^,$. Au cours du mois, Open Whisper Systems annonce l'arrêt du développement des fonctionnalités d'envoi et réception de SMS/MMS pour Android, et ce dès la version 2.7.0. Tous les messages sont désormais échangés via le canal TextSecure chiffré, et centralisé.
OpenWhisper explicite son choix par ces raisons :
* complexité de la procédure de chiffrement via SMS : les utilisateurs doivent initier manuellement un échange de clé, avec un échange complet de SMS entre les interlocuteurs ;
* compatibilité avec iOS : l'absence d'APIs permettant de chiffrer, envoyer ou recevoir des SMS chiffrés ;
* la quantité de métadonnées importante, liée au transport de communication via SMS/MMS engendrant une fuite inévitable d'information auprès des opérateurs téléphoniques et des boites noires éventuelles situées sur le parcours des messages ;
* performance du développement : maintenir un protocole ancien impose de devoir trouver des solutions périphériques, au lieu de se concentrer sur les développements et améliorations du logiciel existant.
En revanche, OpenWhisper ne mentionne pas que les utilisateurs, passant par le canal et les serveurs centralisés situés dans leur centre de données, doivent leur faire une totale confiance, ainsi qu'à leurs opérateurs de service (Google, pour les messages push).

### Fork vers Silence

L'abandon du chiffrement des SMS/MMS par Open Whisper Systems, 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, initialement connu sous le nom de SMSSecure$^,$$^,$. 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é ».

## Fonctionnalités

Silence permet à ses utilisateurs d'envoyer des messages textes chiffrés vers d'autres utilisateurs de Silence, sur smartphone sous Android. Il permet également d'envoyer des messages non chiffrés (SMS et MMS) vers des utilisateurs de téléphone ne disposant pas de Silence.

### Gestion des SMS/MMS classiques

Les messages émis avec Silence peuvent être chiffrés, dès que l'utilisateur démarre une session de communication privée. Cette fonctionnalité diffère de l'utilisation de TextSecure, qui − par l'utilisation de son annuaire centralisé − connaît les clés publiques de tous les utilisateurs, et émet directement les messages chiffrés si l'utilisateur distant est déjà connu. Pour cela, TextSecure utilise une Federation (information technology) d'annuaires LDAP, et utilise les services de Google Cloud Messaging ou de WhisperPush sur CyanogenMod, sans même avoir besoin d'attendre une requête de l'utilisateur. En contrepartie de cette perte de fonctionnalité, ni les informations sur les utilisateurs ni les clefs publiques ne sont connues d'un serveur centralisé comme cela peut l'être avec TextSecure.

### Chiffrement des SMS

Après le démarrage d'une session chiffrée dans Silence, tous les messages SMS ou MMS envoyés à l'interlocuteur seront automatiquement chiffrés avant de partir, et déchiffrés à l'arrivée. Le flux n'est donc disponible en clair à aucun autre moment que dans la mémoire de l'applicatif au départ, et à l'arrivée. Cette opération de chiffrement-déchiffrement automatique implique que seul le récipiendaire sera en mesure de décoder le message envoyé, de manière automatique, tant que la session chiffrée durera. Les clés utilisées pour chiffrer les messages sont stockées sur le seul téléphone, et sont protégées par une couche de chiffrement supplémentaire si l'utilisateur a une passphrase paramétrée. Visuellement, le chiffrement des messages est figuré par un petit verrou fermé, au niveau de l'interface utilisateur.

### Vérification de clé

Silence dispose d'une fonction de vérification des utilisateurs et de leur clef de chiffrement, pour éviter les attaques du type homme du milieu. Cette validation est faite par comparaison de l'empreinte de l'utilisateur distant. Chacun peut ainsi vérifier celle de l'autre via un QR code.

### Indépendance vis-à-vis de Google

Contrairement à TextSecure qui implémente les technologies d'envoi de message via Google Cloud Messaging ou WhisperPush (CyanogenMod), Silence est annoncé comme étant totalement indépendant de Google, et donc de Google Cloud Messaging$^,$.

### Chiffrement sans connexion de données

L'applicatif ne repose pas sur le maintien d'une connexion de données pour chiffrer/déchiffrer les messages. Selon le site slovaque cybersec.sk, c'est d'ailleurs la seule application qu'ils aient testée à permettre ce chiffrement sans connexion de données, depuis l'abandon du chiffrement des SMS par TextSecure.

## Stagefright

Le 27 juillet 2015, la firme Zimperium a révélé avoir repéré une faille$^,$ dans la librairie Stagefright utilisée par nombre d'applications Android pour afficher les contenus non textuels, dont les applications de MMS par défaut. D'après le développeur d'origine, TextSecure ne faisant pas de pré-processing d'images n'est pas vulnérable au 0-clic, mais peut l'être au 1-clic. D'après yemen-press.com, les paramètres de SMSSecure peuvent être modifiés pour que l'application ne soit pas sensible à ce bug.

## Licence

Le code source de Silence est totalement disponible sur l'instance GitLab de l'équipe de développement sous licence libre. Cela permet aux personnes intéressées de consulter, d'auditer le code, et d'aider les développeurs à vérifier que tout se passe comme ils l'ont prévu. Cela permet également aux utilisateurs avancés de compiler leur propre copie de l'application, et de comparer le résultat avec celui de la version distribuée. Enfin, cela permet aux développeurs de contribuer directement à l'amélioration de l'application, et/ou de réutiliser le code de l'applicatif dans une autre.

## Accueil de la presse

En avril 2015, Silence a été inclus dans une liste des 9 meilleures applis pour Android du site web néerlandais Android Planet.

## Diffusion

En 2024 Silence n'est plus disponible via Google Play, il l'est cependant toujours sur F-Droid.
En novembre 2024, le site internet n'est plus accessible (erreur 502) ni celui du git du projet (certificat SSL expiré). Le miroir du git sur Github reste cependant accessible.