Comment Threema effectue-t-elle l’audit de son code ?
Les applications Threema sont open source, ce qui permet à n’importe qui de faire l’audit du code de Threema. De plus, des experts externes sont engagés pour mener régulièrement des audits de sécurité compets. Les audits les plus récents figurent dans la liste ci-dessous.
- 2024 : Audit de la nouvelle application desktop par Cure53, voir l’article de blog (anglais) et le rapport d’audit (anglais)
- 2023: Analyse de sécurité du protocole de communication « Ibex » par des chercheurs en sécurité de la Chaire de Cryptographie Appliquée de l’Université Friedrich-Alexander d’Erlangen-Nuremberg, voir l’article de blog (anglais) et analyse (anglais)
- 2020 : Audit par Cure53, voir l’article de blog (anglais) et le rapport d’audit (anglais)
- 2019 : Audit par le laboratoire de sécurité informatique de l’Université de Münster en Sciences appliquées, voir l’article de blog (anglais) et le rapport d’audit (anglais)
Pour la documentation complète des algorithmes et protocoles utilisés par Threema, veuillez consulter le Livre blanc sur la cryptographie.
Ceci peut également être utile
Threema utilise un cryptage asymétrique éprouvé pour protéger les messages et appels entre l’expéditeur et le destinataire, ainsi que les communications entre l’application et les serveurs. Threema utilise la bibliothèques open-source NaCl pour le chiffrage. Les applications Threema étant open source, toute personne assez expérimentée en la matière peut confirmer personnellement la sécurité de Threema.
Deux couches de chiffrage sont présentes : la couche de bout en bout entre les participants à une conversation et une couche supplémentaire de protection contre tout espionnage de la connexion entre l’application et les serveurs. Cette dernière est essentielle pour éviter qu’un antagoniste capturant des paquets réseau (p.ex. sur un réseau sans fil public) puisse savoir qui est authentifié et qui communique avec qui.
Tous les cryptages et décryptages ont lieu directement sur l’appareil et l’utilisateur contrôle les échanges de clé. Cette procédure garantit qu’aucun tiers – pas même les opérateurs du serveur – ne peut décrypter le contenu des
messages et appels.
Force du chiffrage : Le cryptage asymétrique basé sur l’EEC utilisé par Threema a une force de 255 bits. Selon une estimation du NIST (page 54), cela correspond au moins à une force fournie par un chiffrement RSA sur 2048 bits. ECDH sur Curve25519 est utilisé conjointement à une fonction de hachage par nonces aléatoires pour dériver une clé symétrique unique à 256 bits pour chaque message et le chiffrement du flux XSalsa20 est alors utilisé pour chiffrer le message. Un code d’authentification à 128 bits du message (MAC) est également ajouté à chaque message pour détecter d’éventuelles manipulations/contrefaçons.
Perfect Forward Secrecy : Threema prend en charge Perfect Forward Secrecy. De plus amples détails à ce sujet sont consignés dans cette entrée des FAQ.Pour connaître les informations techniques détaillées sur la cryptographie de Threema, merci de consulter le Livre blanc sur la cryptographie.
Pour découvrir comment Threema tient tête à d’autres messageries comme WhatsApp, Signal ou Telegram, veuillez consulter notre document complet comparatif des messageries ainsi que dans le comparatif approfondi de Threema et WhatsApp.
Une protection totale de la vie privée requiert un chiffrement solide des messages, mais cela ne s’arrête pas là.
Anonymité complète
Threema peut être utilisée sans fournir aucune information personnelle. Plutôt qu’un numéro de téléphone, c’est l’identifiant Threema (une série de huit chiffres à génération aléatoire) qui fait office d’identifiant unique. Lier un numéro de téléphone et/ou une adresse e-mail à un identifiant Threema est facultatif.
Réduction des métadonnées
Toutes les données impliquées dans une communication autres que le contenu réel sont des métadonnées. Une protection fiable de la vie privée doit comporter à la fois la protection du contenu et la protection des métadonnées. La seule protection du contenu ne suffit pas, car les métadonnées permettent une identification unique des individus, l’analyse de leur comportement, l’identification de leurs cercles d’amis, la détection de leurs emplacements fréquents et la surveillance de leur comportement de communication. Si elles sont combinées aux données provenant d’autres plateformes, il est possible de dresser le portrait d’une personne bien plus détaillé que celui uniquement créé à partir du seul contenu des messages. De nombreuses messageries sont susceptibles d’être utilisées pour collecter et analyser systématiquement les métadonnées de leurs utilisateurs. Threema, en revanche, génère aussi peu de données qu’il est techniquement possible et ne les stocke que pendant une durée rigoureusement nécessaire.
Synchronisation facultative des contacts
La synchronisation de votre carnet d’adresses pour récupérer les identifiants Threema de vos contacts (à condition qu’ils les aient associés, voir ci-dessus) est facultative. Si vous ne souhaitez pas accorder l’accès à votre carnet d’adresses, vous pouvez soit scanner les identifiants Threema de vos contacts ou les ajouter manuellement.
Si vous activez la synchronisation de vos contacts ou associez votre identifiant à un numéro de téléphone ou une adresse e-mail, vous avez la certitude que Threema n’utilise ces informations que temporairement aux fins spécifiées. Les informations personnelles sont toujours hachées, que ce soit en transit ou sur disque.
Pour découvrir comment Threema tient tête à d’autres messageries en matière de protection de la vie privée, veuillez consulter le comparatif des messageries.
L’utilisation de Threema doit générer sur les serveurs aussi peu de données que possible – cela fait partie du concept. Pour cette raison, des données telles que les contacts ou conversations de groupe sont stockées de manière décentralisée sur les appareils des utilisateurs plutôt que sur un serveur Threema. Nos serveurs jouent le rôle de boîte de distribution ; les messages et données sont transférés, mais ne sont pas définitivement stockés. Lorsqu’il n’existe aucune donnée, il n’existe pas non plus d’accès ou d’utilisation abusive. Toutefois : sans un certain type de stockage (temporaire) de données, il ne peut y avoir de communication asynchrone. Nous expliquons ci-après quel type de données sont stockées, les modalités de stockage et la durée du stockage.
- Messages et chats de groupe : dès qu’un message a bien été livré au destinataire, il est immédiatement supprimé du serveur. Tous les messages et médias sont transmis par chiffrement de bout en bout dans Threema. Cela signifie que même si quelqu’un intercepte votre message, cela serait complètement inutile. Seul le destinataire voulu peut décrypter et lire un message.
- Aucune liste de contacts n’est stockée pendant la synchronisation des contacts : les adresses e-mail et numéros de téléphone de votre carnet d’adresses sont anonymisés (par hachage) avant d’atteindre le serveur. Une fois la comparaison effectuée, ils sont immédiatement supprimés du serveur.
- Les paires de clés sont générées de manière décentralisée sur votre appareil. Votre clé privée ne nous est jamais révélée et nous ne pouvons par conséquent décrypter aucun contenu de message.
- Threema ne consigne pas qui communique avec qui (à savoir quels identifiants Threema communiquent entre eux).
Pour plus d’informations consultez le Livre blanc sur la cryptographie.
Oui, pour garantir une totale transparence, les applications Threema sont open source.
Les versions reproductibles permettent de vérifier que le code publié (de l’application Android, pour l’instant) correspond réellement aux applications disponibles au téléchargement dans les boutiques d’applications.
Pour en savoir plus sur les modalités de téléchargement, la version et la reproduction du code de Threema, veuillez consulter le site secondaire Open Source (en anglais).
Oui.
-
Android : Threema inclut son propre chiffrement spécifique à l’application, basé sur AES-256 pour protéger les messages et médias stockés, ainsi que la clé privée de votre identifiant. La clé utilisée pour ce chiffrement est
générée de manière aléatoire au premier lancement de Threema et peut éventuellement être protégée en définissant une phrase secrète de clé principale depuis les paramètres, ce que nous recommandons vivement. Sans phrase secrète, le
chiffrement ne fera qu’ajouter de l’obscurité en raison des modalités de gestion du chiffrement du matériel sur Android. En configurant une phrase secrète de clé principale, vous devrez la saisir à chaque redémarrage de l’appareil
(et après fermeture de l’application par le système suite à une mémoire faible).
Remarque : le verrouillage par PIN, dont l’activation est indépendante de la phrase secrète de la clé principale, n’entraîne aucun chiffrement additionnel ; il s’agit simplement d’un verrouillage de l’IU.
-
iOS : Threema utilise la fonctionnalité Protection des données d’iOS pour chiffrer les messages, images etc. sur l’espace de stockage flash de l’appareil. La clé utilisée pour ce cryptage est liée au mot de passe de
l’appareil. Il est nécessaire de configurer un code dans les réglages du système pour utiliser cette fonctionnalité. Sur les modèles plus récents, iOS utilise également des fonctionnalités matérielles pour le cryptage ; ainsi, même
un simple code à six chiffres offre une certaine protection. Pour une protection optimale contre les attaques de force brute, il convient de choisir un code alphanumérique plus long.
Remarque : le verrou par code intégré à l’application elle-même n’offre pas de cryptage additionnel. Cette fonctionnalité a pour seul objectif d’empêcher les curieux de lire vos messages lorsque vous leur prêtez intentionnellement et brièvement votre téléphone à d’autres fins. Le chiffrement par code à six chiffres intégré à l’application n’est pas une bonne solution, les attaques par force brute étant insignifiantes (en effet, contrairement à iOS, une application ne peut pas accéder à des fonctionnalités matérielles pour protéger la clé).
Pour toutes informations techniques détaillées sur la cryptographie de Threema, merci de consulter le Livre blanc sur la cryptographie.
Threema permet de vérifier que l’identifiant de la personne avec laquelle vous communiquez est réellement la sienne en scannant le code QR.
Si vous n’avez aucun doute quant à l’identifiant de votre interlocuteur, un éventuel pirate ne peut en aucun cas usurper ou intercepter/décrypter un message destiné à ou émis par votre interlocuteur.
La connexion entre l’application et les serveurs est sécurisée contre les attaques HDM car le serveur s’authentifie dans l’application sur la base d’une clé publique codée en dur dans l’application et dont la clé secrète correspondante est uniquement connue des serveurs légitimes.
Veuillez noter : Threema ne sera pas plus sûre que l’appareil sur laquelle elle est exécutée. Les programmes malveillants fonctionnant en arrière-plan de votre appareil peuvent intercepter et falsifier les données sans être remarqués. Nous vous recommandons fortement de toujours installer les mises à jour les plus récentes du système d’exploitation et de n’utiliser que les logiciels provenant de sources fiables.
Threema GmbH fait fonctionner ses propres serveurs dans deux centres de données hautement sécurisés en colocation partenaire certifiée « ISO 27001 » dans la région de Zurich (Suisse).
Ces centres de données de pointe présentent un contrôle d’accès biométrique, des tourniquets hauts, un système de vidéo surveillance, des systèmes d’alimentation de secours, une protection contre les incendies, une climatisation sécurisée et une connexion Internet entièrement redondante.
Appels de groupe
A l’exception de (certains) appels de groupe, toutes les communications sont traitées par des serveurs Threemas en Suisse. (Pour les appels individuels, une connexion directe entre les participants est établie si possible, de sorte
qu’aucun serveur n’intervient après l’établissement de l’appel). Pour les appels de groupe, les routeurs média de Threema peuvent être situés à l’étranger pour des raisons techniques, afin de garantir une faible latence et une
communication fluide : si les appels de groupe devaient être acheminés par les serveurs en Suisse depuis n’importe où dans le monde, les participants à l’appel ne pourraient pas communiquer, car ils se couperaient toujours la parole en
raison d’une latence élevée.
Les routeurs média de Threema à l’étranger ne connaissent pas les identités / les identifiants Threema des participants à un appel de groupe et tous les flux audio/vidéo sont cryptés de bout en bout. Néanmoins, les routeurs média de Threema à l’étranger connaissent nécessairement les adresses IP des participants pendant la durée d’un appel de groupe. Ces informations ne sont pas enregistrées et sont effacées de la mémoire immédiatement après la fin de l’appel de groupe.
C’est vous qui décidez – Threema peut être utilisée sans aucun accès au carnet d’adresses.
Par défaut, la synchronisation est désactivée et aucune donnée du carnet d’adresses n’est lue. Dans ce cas, vous pouvez ajouter manuellement vos contacts Threema (en saisissant leurs identifiants ou en scannant des codes QR).
Si vous décidez d’activer la synchronisation, les adresses e-mail et numéros de téléphone de votre carnet d’adresses seront uniquement transmis au serveur sous une forme de chiffrement unidirectionnel (« hachage ») et seront en outre
protégées par un chiffrement TLS. Les serveurs ne conservent ces hachages qu’en mémoire volatile pendant une courte période pour déterminer la liste des identifiants correspondant, puis les suppriment immédiatement. À aucun moment les
hachages ou les résultats de la synchronisation ne sont écrits sur disque.
En raison du nombre relativement faible de combinaisons possibles de numéros de téléphone, il est en théorie possible de décoder les hachages des numéros de téléphone en essayant toutes les possibilités. La nature même des hachages et des numéros de téléphone le permet et cela ne peut être résolu différemment (l’utilisation de salage pour le hachage des mots de passe ne fonctionne pas pour ce type de correspondance de données). Ainsi, nous traitons les hachages de numéros de téléphone avec le même soin que s’il s’agissait de numéros de téléphone bruts/non hachés.
Il existe un programme bug bounty pour les rapports concernant la sécurité de Threema. Si vous découvrez un problème de sécurité, nous vous prions de créer un rapport sur GObugfree (où tous les détails sont référencés, y compris les bounty levels) et de tenir compte du de la politique « coordinated vulnerability disclosure ».
Merci de signaler les bugs des apps via le formulaire d’assistance.
Threema répond aux exigences du règlement général européen sur la protection des données (RGPD). En qualité d’entreprise suisse, Threema est également assujettie à la stricte Loi fédérale sur la protection des données (LPD) suisse et à l’ Ordonnance à la loi fédérale sur la protection des données (OLPD) qui l’accompagne.
Threema n’utilise pas les numéros de téléphone pour contacter les utilisateur et l’application peut être utilisée de manière anonyme sans importer les données du carnet d’adresses. Elle convient donc également aux enfants de moins de 16 ans.
Contrairement aux messageries conventionnelles, vous avez la garantie que l’utilisation de Threema est conforme à la réglementation en matière de respect de la vie privée.
Pour récupérer les données d’inventaire de votre identifiant qui sont stockées sur le serveur Threema, envoyez simplement « info » à l’identifiant Threema *MY3DATA
et vous recevrez immédiatement une réponse sous une forme
lisible par machine (JSON).
Si vous lisez cette page sur l’appareil sur lequel est installée Threema, ouvrez simplement le lien suivant, puis touchez « Envoyer » : https://threema.id/%2AMY3DATA?text=info
Explication des clés JSON :
- identity: ID Threema
- publicKey : codée en Base64
- issueDate : date de création de l’identifiant
- lastLogin : date de la dernière connexion
- mobileNoHash : hachage du numéro de téléphone associé
- emailHash : hachage de l’adresse e-mail associée
- featureMask : masque bits des fonctionnalités prises en charge par la version de Threema utilisée
- 0x01 : messages audio
- 0x02 : chat de groupe
- 0x04 : sondages
- 0x08 : transfert de fichier
- 0x10 : appels
- 0x20 : appels vidéo
- pushtoken/voippushtoken : jeton push pour les services push en cours d’utilisation (GCM/FCM, APNS, HMS). Cette clé est obsolète si la clé « pushtokens » est présente
- pushtokens : liste des dispositifs auxquels un jeton push est associé
- device_id : octets codés en Base64 de l’entier non signé de 64 bits qui identifie un appareil
- push_token/voip_token :
- data : jeton codé en Base64
- timestamp : horodatage unix au moment où le jeton a été défini
- type : décrit le type de jeton (HMS, Apple, FCM)
- pushsound/pushgroupsound : nom du fichier son sélectionné pour les messages push (non utilisé sur toutes les plateformes)
- revocationKey : informations concernant le mot de passe de révocation, si défini
Les données d’inventaire modifiables peuvent être éditées ou supprimées à tout moment dans l’application Threema (sous l’onglet « Mon profil » (Android) ou « Profil » (iOS)) avec un effet immédiat (voir cet article de la FAQ pour plus d’informations). Pour supprimer définitivement les données d’inventaire de votre identifiant Threema, veuillez révoquer votre identifiant.
Android
Pour informer les utilisateurs Android de messages entrants en arrière-plan, vous avez le choix d’utiliser le service push indépendent de Threema, « Threema Push ». Celui-ci ne génère pas des métadonnées chez des tiers.
Sinon, Threema utilise le service push Firebase Cloud Messaging (FCM) de Google, celui-ci est préinstallé sur l’appareil (ou bien le push kit (HMS) de Huawei). Ensuite, l’application récupère directement les messages depuis les serveurs Threema, les décrypte et affiche une notification locale. Ni le contenu, ni les détails des messages ne sont transmis via FCM (la charge de données FCM est vide) et tous les composants de suivi et d’analyse de Firebase ont été retirés.
iOS
Threema utilise le service de notifications Push Apple (APNS) pour informer les destinataires sous iOS de nouveaux messages lorsque l’application est fermée ou exécutée en arrière plan. Le message APNS contient une charge de données cryptées avec une clé symétrique, qui est négociée entre l’application et les serveurs Threema et n’est pas connue d’Apple.
Dans cette charge de données cryptées, l’identifiant Threema et le pseudo de l’expéditeur, l’identifiant du message et sa nature (message direct ou de groupe), sont transmis.
L’application Threema est lancée en arrière-plan pour chaque notification push entrante, décrypte la charge de données push, télécharge directement le message correspondant depuis les serveurs Threema, le décrypte et affiche un aperçu local du message (si activé) et le nom de contact de l’expéditeur.
Perfect Forward Secrecy (PFS) est présente dans un système cryptographique lorsqu’un attaquant qui obtient la clé privée d’un utilisateur dans le présent ne peut pas utiliser cette clé pour décrypter des messages que l’utilisateur a envoyés ou reçus dans le passé.
Cette propriété est obtenue en utilisant non pas toujours la même clé, mais des clés distinctes pour chaque session ou pour de courtes périodes, que le système négocie automatiquement en arrière-plan.
Threema utilise Perfect Forward Secrecy sur la couche de transport et sur la couche de bout en bout. Pour d’informations techniques consultez le Livre blanc sur la cryptographie.