Montréal Contre-information
Montréal Contre-information
Montréal Contre-information
Juil 082026
 

Soumission anonyme à MTL Contre-info

Voici quelques problèmes peu connus liés à Signal que les anarchistes et autres personnes visées par la répression d’État devraient connaître. Ces problèmes sont connus des développeurs de Signal.

Des informations potentiellement sensibles sont enregistrées de manière permanente dans les bases de données des comptes.

Même si elles sont masquées, les informations suivantes sont enregistrées de manière définitive.

  • Tous les numéros de téléphone visibles : la plupart des utilisateurs de Signal disposent encore des numéros de téléphone de tous les autres participants aux discussions datant d’avant mars 2024, date à laquelle ils ont pu pour la première fois régler la visibilité de leur numéro de téléphone sur « personne ».

  • Métadonnées du groupe : quitter ou supprimer un groupe Signal entraîne principalement la suppression des messages. Les membres du groupe, le nom du groupe, sa description, l’horodatage de l’adhésion, l’horodatage du dernier message, l’identifiant du groupe, les clés du groupe, les étiquettes des membres, les administrateurs, les membres supprimés, le mot de passe du lien vers le groupe, les brouillons de messages, le nombre de messages, le nombre de messages envoyés, la durée de validité des messages éphémères, etc., sont conservés de manière définitive.

    Example
    "id": "REDACTED",
    "groupId": "REDACTED",
    "type": "group",
    "version": 2,
    "expireTimerVersion": 1,
    "unreadCount": 0,
    "verified": 0,
    "messageCount": 3,
    "sentMessageCount": 2,
    "name": "REDACTED",
    "revision": 8,
    "publicParams": "REDACTED",
    "secretParams": "REDACTED",
    "accessControl": {
      "members": 2,
      "attributes": 2,
      "addFromInviteLink": 4,
      "memberLabel": 2
    },
    "membersV2": [
      {
          "role": 2,
          "joinedAtVersion": 0,
          "aci": "REDACTED",
          "labelString": "REDACTED"
      },
      {
          "role": 1,
          "joinedAtVersion": 1,
          "aci": "REDACTED",
          "labelString": "REDACTED"
      }
    ],
    "pendingMembersV2": [],
    "active_at": null,
    "avatars": [
      {REDACTED}
    ],
    "groupVersion": 2,
    "groupVerifiedNameHash": "REDACTED",
    "masterKey": "REDACTED",
    "profileSharing": true,
    "timestamp": null,
    "needsStorageServiceSync": false,
    "sealedSender": 0,
    "color": "A110",
    "senderKeyInfo": {
      "createdAtDate": REDACTED,
      "distributionId": "REDACTED",
      "memberDevices": []
    },
    "lastMessage": "",
    "lastMessageReceivedAt": REDACTED,
    "lastMessageReceivedAtMs": REDACTED,
    "lastMessageDeletedForEveryone": false,
    "expireTimer": 86400,
    "left": true,
    "pendingAdminApprovalV2": [],
    "bannedMembersV2": [
      {
          "serviceId": "REDACTED",
          "timestamp": REDACTED
      }
    ],
    "markedUnread": false,
    "unreadMentionsCount": 0,
    "draft": "REDACTED",
    "draftBodyRanges": [],
    "draftChanged": true,
    "draftIsViewOnce": false,
    "storageVersion": 27,
    "storageID": "REDACTED",
    "description": "REDACTED",
    "announcementsOnly": false,
    "terminated": false,
    "draftTimestamp": null,
    "draftAttachments": [],
    "messagesDeleted": true
    

  • Métadonnées du contact : la suppression d’une conversation conserve le nom du contact, son ACI (identifiant de compte), son numéro de téléphone, sa section « À propos », son pseudonyme, l’horodatage du dernier message, la note associée au contact, le brouillon de message, le nombre de messages, le nombre de messages envoyés, l’heure d’expiration du message éphémère, les clés de profil, l’horodatage d’expiration des informations d’identification associées aux clés de profil, et bien plus encore. La suppression d’un contact ne fait que le masquer.

    Example
    "id": "REDACTED",
    "serviceId": "REDACTED",
    "type": "private",
    "version": 2,
    "expireTimerVersion": 1,
    "unreadCount": 0,
    "verified": 0,
    "messageCount": 4,
    "sentMessageCount": 2,
    "sealedSender": 1,
    "color": "A110",
    "profileKeyCredential": "REDACTED",
    "profileKeyCredentialExpiration": REDACTED,
    "accessKey": "REDACTED",
    "profileKey": "REDACTED",
    "profileName": "REDACTED",
    "note": "",
    "messageRequestResponseType": 2,
    "profileSharing": false,
    "storageUnknownFields": "",
    "hideStory": false,
    "isArchived": false,
    "markedUnread": false,
    "storageID": "REDACTED",
    "storageVersion": 33,
    "needsStorageServiceSync": true,
    "muteExpiresAt": 0,
    "colorFromPrimary": 2,
    "about": "REDACTED",
    "aboutEmoji": "",
    "sharingPhoneNumber": false,
    "capabilities": {
    "profiles_v2": false,
    "attachmentBackfill": true,
    "spqr": true,
    "usernameChangeSyncMessage": false
    },
    "lastProfile": {
    "profileKey": "REDACTED",
    "profileKeyVersion": "REDACTED"
    },
    "unreadMentionsCount": 0,
    "lastMessage": "",
    "lastMessageReceivedAt": REDACTED,
    "lastMessageReceivedAtMs": REDACTED,
    "timestamp": null,
    "lastMessageDeletedForEveryone": false,
    "expireTimer": 86400,
    "active_at": null,
    "draft": "REDACTED",
    "draftBodyRanges": [],
    "draftChanged": false,
    "draftIsViewOnce": false,
    "draftTimestamp": null,
    "draftAttachments": [],
    "messagesDeleted": true

La seule façon fiable de supprimer ces informations consiste à effacer toutes les données de l’application Signal, puis à se réinscrire sans saisir le code NIP ni restaurer les données. Cette opération supprime également tous les contacts et tous les messages.

Une réinscription avec le code NIP permet de récupérer toutes les métadonnées des contacts. En ce qui concerne les groupes existants et supprimés, il semble que seuls les identifiants de groupe, les clés, les couleurs des icônes et quelques autres éléments soient restaurés, mais il s’agit tout de même d’informations potentiellement sensibles.

L’enregistrement réussi du numéro de téléphone d’un compte Signal existant entraîne la prise de contrôle ou la désactivation de ce compte.

Signal utilise l’authentification par SMS. Si le verrouillage d’enregistrement est désactivé sur le compte Signal d’un utilisateur, un attaquant capable d’observer ou d’intercepter ses SMS peut recevoir un code de vérification Signal et prendre immédiatement le contrôle de son compte. Si le verrouillage d’enregistrement est activé, il peut immédiatement désenregistrer l’appareil de l’utilisateur, ce qui empêche ce dernier d’utiliser son compte. L’attaquant peut alors prendre le contrôle du compte au bout de 7 jours si l’utilisateur ne parvient pas à se réenregistrer.

Une fois que l’attaquant a pris le contrôle du compte, il reçoit tous les messages destinés à sa cible, y compris les messages de groupe, et peut envoyer des messages depuis ce compte. Les contacts constatent que les numéros de sécurité ont changé, mais la plupart des gens ignorent ces messages. Après tout, cela peut simplement signifier que la personne a réinstallé Signal. Le nom du compte change, à moins que l’attaquant ne connaisse l’ancien nom ou ne devine le code NIP, mais les changements de nom sont très courants.

De plus, la suppression d’un compte Signal n’entraîne pas sa suppression immédiate des serveurs de Signal : celui-ci y reste pendant 30 jours. Si quelqu’un enregistre ce numéro pendant cette période, il pourra accéder immédiatement au compte. La suppression d’un compte entraîne la sortie de tous les groupes, mais il est toujours possible d’envoyer et de recevoir des messages en tant qu’utilisateur d’origine.

Ces choix techniques compromettent la sécurité et la fiabilité des comptes Signal. N’importe qui peut insérer la carte SIM d’une personne dans un autre téléphone. Les services de renseignement interceptent la plupart, voire la totalité, des SMS. Les simulateurs de stations de base, les attaques SS7 et les SIM swap peuvent également être utilisés pour intercepter des SMS.

Les ACI sont associés à des numéros de téléphone sur les serveurs Signal, et il est difficile de les modifier.

Les ACI sont des numéros uniques de 128 bits qui permettent d’identifier les comptes Signal auprès d’autres comptes et des serveurs Signal. Les comptes enregistrent les ACI de tous les comptes connus. Les ACI n’apparaissent pas dans l’application Signal et ne sont pas mentionnés sur le site web de Signal, mais ils peuvent être collectés et suivis au fil du temps et entre différents groupes. Il est également possible d’envoyer des messages à des ACI sans fournir aucune autre information.

Les serveurs de Signal enregistrent les ACI avec les numéros de téléphone associés aux comptes, ce qui leur permet de communiquer ces numéros aux autorités. Selon un article de Micah Lee, « si Signal reçoit une demande d’informations de la part d’une autorité concernant un compte sur la base d’un nom d’utilisateur actif, Signal sera en mesure de fournir le numéro de téléphone de ce compte, ainsi que sa date de création et la date de sa dernière connexion ». La recherche d’un nom d’utilisateur actif permet simplement d’obtenir l’ACI du compte ; on peut donc supposer que cela est possible. C’est peut-être déjà le cas.

Pour obtenir un nouvel ACI, les utilisateurs doivent supprimer leur compte Signal pendant 30 jours ou utiliser un nouveau numéro de téléphone.

Autres problèmes

Signal est centralisé et fonctionne sur les serveurs d’Amazon, de Microsoft et de Google. Ces entreprises partagent d’énormes quantités de données avec les services de renseignement. Elles transmettent probablement les métadonnées de Signal au gouvernement américain, même si Signal ne le fait sans doute pas. De plus, comme Signal est centralisé, il est plus facile à censurer. De nombreux gouvernements bloquent déjà Signal, et le gouvernement américain pourrait le fermer complètement.

Les notifications sur iOS, Android, macOS et Windows permettent à Apple, Google et Microsoft de connaître l’heure de réception des messages. Ce n’est pas le cas sous Linux et GrapheneOS.

L’heure de réception des messages « silencieux » peut être utilisée pour obtenir des informations sur les habitudes et les appareils des utilisateurs. Il est difficile d’empêcher totalement ce phénomène, mais les développeurs de Signal n’ont pas prévu de mesures pour y remédier. Toutefois, l’utilisation de Signal via Tor ou un VPN réduit probablement la précision de cette attaque.

Alternatives

Ces applications ne disposent pas de toutes les fonctionnalités de Signal et n’ont pas fait l’objet d’autant de tests. Tout comme Signal, elles ne conviennent pas à tous les modèles de menace.

Cwtch est une application de messagerie chiffrée Peer-to-Peer qui utilise Tor pour contourner la surveillance et la censure. Elle ne nécessite pas de numéro de téléphone, offre une meilleure protection contre les métadonnées que Signal, dispose d’un chiffrement de la base de données, permet d’utiliser plusieurs comptes et fonctionne avec ou sans serveurs. Elle n’a pas fait l’objet d’un audit de sécurité indépendant. L’équipe de développement est réduite et aurait besoin de soutien.

Briar est similaire à Cwtch, mais il offre également des fonctionnalités de base telles qu’un blog, un forum et un lecteur RSS. Il a fait l’objet d’audits de sécurité, mais ne fonctionne pas actuellement sur Tails ni sur des systèmes similaires. Pour pouvoir discuter, les deux comptes doivent échanger des liens ou des codes QR.

Delta Chat est décentralisé et ne nécessite pas de numéro de téléphone. Il offre une protection des métadonnées moins efficace que Signal, mais la création de nouveaux comptes est facile. Il ne dispose pas de confidentialité persistante ; il est donc possible de déchiffrer plusieurs messages antérieurs à l’aide d’une clé divulguée. Les développeurs prévoient d’ajouter la confidentialité persistante et la cryptographie post-quantique fin 2026. L’application peut être utilisée avec Tor, mais les fonctionnalités UDP telles que les appels et la synchronisation multi-clients ne peuvent actuellement pas utiliser Tor. Signal et la plupart des autres applications sont confrontées au même problème.

D’autres solutions similaires ne sont pas recommandées pour le moment, à l’exception du courriel PGP si cela s’avère nécessaire. De nombreuses autres options sont actuellement trop expérimentales, ne garantissent pas suffisamment la protection des métadonnées ou ne sont pas suffisamment fiables.

Suggestions concernant Signal

Pour ceux qui continuent à utiliser Signal, ces suggestions doivent être évaluées en fonction de chaque modèle de menace. Si l’anonymat et la fiabilité sont indispensables, Signal n’est pas la meilleure option.

  • N’utilisez pas Signal pour organiser des manifestations ou protester.
  • Achetez un numéro de téléphone virtuel ou un forfait mobile secondaire destiné à être utilisé une seule fois pour l’inscription sur Signal. Continuez à payer ce forfait ou changez de numéro pour éviter de perdre votre compte. Ce n’est pas facile à faire de manière anonyme, mais c’est possible.
  • Utilisez GrapheneOS sur un appareil compatible. GrapheneOS résiste mieux aux outils d’extraction de données tels que Cellebrite que les autres systèmes d’exploitation mobiles.
  • Cryptez vos appareils à l’aide de mots de passe aléatoires longs et éteignez-les lorsqu’ils ne sont pas utilisés.
  • Utilisez Molly avec le chiffrement de la base de données.
  • Utilisez Tails, Orbot sur GrapheneOS ou un VPN fiable. Notez que les VPN ne garantissent pas l’anonymat et que l’utilisation de Signal avec Tor peut entraîner la divulgation d’adresses IP.
  • Vérifiez les numéros de sécurité et les identités, et considérez tout changement de numéro de sécurité comme une possible compromission du compte.
  • Évitez les groupes Signal composés de personnes que vous ne connaissez pas.
  • Modifiez les paramètres de Signal pour choisir de meilleures options.
  • Ne connectez pas d’autres appareils.
  • Créez des discussions sur Cwtch, Briar ou Delta Chat comme option de secours.

Pour en savoir plus

The P.E.T. Guide: New Communication Infrastructure for Anarchists