Signal prépare l'inscription sans numéro de téléphone : un « Signal Login » payant est déjà dans le code Android
Signal construit une inscription sans numéro de téléphone, et tout le travail est visible dans son code source public. Depuis quatre semaines, un développeur de Signal pousse dans le dépôt Signal-Android une série de commits sous le nom « Signal Login » : un achat unique via Google Play qui remet à l'utilisateur un identifiant de compte et une clé de récupération de 64 caractères au lieu de lui demander un numéro. Le 9 septembre, l'écran de paiement lui-même est arrivé, avec le bouton « Pay » suivi du prix. Signal n'a rien annoncé et, dans le code actuel, la fonction n'est activée que pour les versions internes de l'entreprise : personne à l'extérieur ne peut encore l'essayer.
En bref
- Les commits, presque tous du même ingénieur de Signal, vont du 17 août (squelettes réseau) au 9 septembre (« Add ability to pay for a signal login », 2 439 lignes ajoutées). Le code serveur a ses commits « numberless account » correspondants depuis le 13 août.
- Les textes d'interface sont déjà écrits : « Inscrivez-vous sans numéro de téléphone avec Signal Login. Avec un achat unique, vous recevrez une clé de compte pour commencer. » Les chaînes promettent « aucun numéro de téléphone requis » et « un nom d'utilisateur pour les messages et les appels ».
- Le paiement passe par Google Play, et l'application transforme le reçu en une preuve à divulgation nulle du type que Signal utilise déjà pour les badges de donateurs : le serveur vérifie qu'un login a été payé sans apprendre quel achat correspond à quel compte.
- Pour quiconque vit dans un pays où la carte SIM est délivrée contre un passeport ou des empreintes, cela supprime le seul identifiant que Signal exigeait encore, et le numéro qu'il suffit à un inconnu de connaître pour suivre votre journée via les accusés de réception.
Ce que montre le code, dans l'ordre
Signal publie le code de son client et de son serveur ; la fonction se suit donc commit par commit même sans annonce. Le travail Android est signé pour l'essentiel par Greyson Parrelli, développeur de longue date chez Signal ; le travail serveur avance en parallèle dans le dépôt Signal-Server. Le drapeau interne qui active le parcours a été déplacé le 9 septembre de « staging uniquement » à « versions internes uniquement », ce qui explique pourquoi les utilisateurs de la bêta publique, qui ont le code sur leur téléphone depuis la version 8.26, ne voient rien.
- 17 au 19 août : squelettes réseau et écrans de réglages pour l'« inscription sans numéro » ; côté serveur, un test enregistre un compte sans numéro avec un credential statique (18 août).
- 25 au 26 août : les écrans de login sont posés et 1 632 lignes de textes arrivent, dont « Enregistrer en PDF » pour les clés et l'avertissement qu'un login perdu ne peut pas être récupéré.
- 2 septembre : « Add basic ability to register numberless account » et « Add basic ability to login to an existing numberless account » ; les rappels de PIN, le verrouillage d'inscription et le réglage de visibilité par numéro sont masqués pour ces comptes ; l'enregistrement du login dans un gestionnaire de mots de passe est ajouté.
- 9 septembre : « Add ability to pay for a signal login » branche la facturation Google Play, le receipt credential et la reprise après échec ; les tests de bout en bout des parcours sans numéro suivent le soir même.
Comment un login payant est censé rester anonyme
Pour Signal, le numéro de téléphone n'a jamais servi à établir l'identité ; c'était son frein anti-spam, parce qu'un numéro coûte de l'argent et qu'il n'en existe qu'un nombre fini. Le directeur technique de l'entreprise, Ehren Kret, l'a dit à la conférence « Don't Be Evil » de FUTO en confirmant qu'une inscription sans numéro était prévue « j'espère plus tard cette année » et que l'obstacle était l'abus, pas la vie privée. Un login payant garde le coût et supprime le numéro. L'objection évidente : un paiement identifie au moins aussi bien qu'une SIM. Le code y répond avec la construction que Signal a introduite pour les badges de donateurs en 2021 et réutilisée pour les sauvegardes payantes. L'application effectue l'achat auprès de Google Play, puis fabrique une demande de « receipt credential » aveuglée ; le serveur de Signal la signe sans voir le compte auquel elle sera rattachée ; à l'inscription, l'application présente le credential comme preuve qu'un login, quel qu'il soit, a été payé. Le commentaire du dépôt précise que l'achat est enregistré avant d'être consommé, « de sorte qu'un échec à n'importe quelle étape après le paiement laisse de quoi reprendre », et qu'un achat consommé libère le produit pour qu'une personne puisse acheter un second login pour un second compte.
Ce qu'un compte sans numéro abandonne
Les chaînes et les réglages masqués décrivent un compte d'un autre type. Pas de verrouillage d'inscription par PIN, faute de numéro à verrouiller ; à la place, les réglages gagnent une carte pour un second facteur, « pour protéger votre compte lorsque vous utilisez votre Signal Login sur un nouvel appareil », et l'appel d'inscription dans le code accepte un code TOTP à usage unique. Pas d'interrupteur « qui peut me trouver par mon numéro », puisque la visibilité est fixée sur désactivée. Un commit antérieur repéré par la communauté indique que les comptes sans numéro ne pourront jamais en obtenir un et que les comptes avec numéro ne pourront jamais le perdre : un compte existant ne se détache donc pas simplement de sa SIM, un compte sans numéro est un nouveau compte. Le nom d'utilisateur devient le moyen de vous joindre, et l'application affiche désormais une boîte de confirmation si vous tentez de ne pas en créer. Surtout, les clés sont le compte : l'écran d'information dit sans détour que « si vous oubliez vos clés, vous ne pourrez pas récupérer votre compte », et l'application vous les fait ressaisir pour prouver que vous les avez sauvegardées. C'est le même marché que conclut quiconque passe des codes SMS à une application d'authentification ou à une clé matérielle : personne ne peut le réinitialiser à votre place, et c'est bien le but.
Pourquoi le numéro était le problème
Signal a passé des années à réduire ce qu'un numéro de téléphone expose. La confidentialité du numéro le cache par défaut aux autres utilisateurs, les noms d'utilisateur permettent à des inconnus de vous écrire sans lui, et la découverte des contacts sur le serveur est conçue pour ne rien révéler au-delà des correspondances. Rien de tout cela ne change le moment de l'inscription : un code SMS envoyé à un numéro qui, dans une liste de pays de plus en plus longue, est lié au passeport, à une empreinte biométrique ou à un titre de séjour au moment de la vente. Quiconque a accès à l'opérateur, ou à la personne qui a enregistré la SIM, sait qui détient le compte, quoi que l'application cache ensuite. Un login acheté sans numéro déplace ce risque de l'opérateur vers la boutique d'applications. Le prix, plus près d'un dollar ou de dix, n'est pas dans le code : l'écran le charge depuis Google Play à l'exécution, et les aperçus de maquette utilisent une valeur de remplissage. Tant que Signal n'a pas basculé le drapeau et publié le produit, le résumé honnête est celui-ci : le client, le serveur et le circuit de paiement sont écrits et testés, l'annonce ne l'est pas.
Puis-je m'inscrire sur Signal sans numéro de téléphone aujourd'hui ?
Qu'est-ce exactement qu'un Signal Login ?
Payer via Google Play m'identifie-t-il ?
Puis-je retirer le numéro de mon compte existant ?
Que se passe-t-il si je perds les clés ?
• Add ability to pay for a signal login - Signal-Android, GitHub
• Add basic ability to register numberless account - Signal-Android, GitHub
• Registration strings (Signal Login screens) - Signal-Android, GitHub
• Add an integration test for registering a numberless account - Signal-Server, GitHub
• Registration without a phone number - Signal Community forum
• Signal Android Beta Has Merged Support for Numberless Accounts - Privacy Guides
• Signal is Looking at Adding an Option to Sign Up Without a Phone Number - Privacy Guides
• Registration without a phone number on Signal will use zero-knowledge proofs - Hacker News