Signal prepara la registrazione senza numero di telefono: un 'Signal Login' a pagamento è già nel codice Android
Signal sta costruendo una registrazione senza numero di telefono, e tutto il lavoro è sotto gli occhi di chiunque nel suo codice sorgente pubblico. Nelle ultime quattro settimane uno sviluppatore di Signal ha caricato nel repository Signal-Android una serie di commit sotto il nome "Signal Login": un acquisto una tantum tramite Google Play che consegna all'utente un identificativo dell'account e una chiave di recupero di 64 caratteri invece di chiedergli un numero. Il 9 settembre è arrivata la schermata di pagamento vera e propria, con il pulsante "Pay" seguito dal prezzo. Signal non ha annunciato la funzione e nel codice attuale è attiva solo per le build interne dell'azienda, quindi dall'esterno nessuno può ancora provarla.
In breve
- I commit, quasi tutti dello stesso ingegnere di Signal, vanno dal 17 agosto (scheletri di rete) al 9 settembre ("Add ability to pay for a signal login", 2.439 righe aggiunte). Il codice del server ha i commit corrispondenti su "numberless account" dal 13 agosto.
- I testi dell'interfaccia sono già scritti: "Registrati senza numero di telefono con Signal Login. Con un acquisto una tantum riceverai una chiave dell'account per iniziare." Le stringhe promettono "nessun numero di telefono necessario" e "nome utente per messaggi e chiamate".
- Il pagamento passa da Google Play e l'app trasforma la ricevuta in una credenziale a conoscenza zero del tipo che Signal usa già per i badge dei donatori: il server verifica che un login sia stato pagato senza sapere quale acquisto appartenga a quale account.
- Per chi vive in un paese in cui la SIM viene rilasciata dietro passaporto o impronte, sparisce l'unico identificativo che Signal pretendeva ancora, e il numero che basta a uno sconosciuto per seguire la vostra giornata attraverso le conferme di consegna.
Che cosa mostra il codice, in ordine
Signal pubblica il codice del client e del server, quindi la funzione si può seguire commit per commit anche senza annuncio. Il lavoro Android è firmato per lo più da Greyson Parrelli, sviluppatore di lunga data di Signal; quello sul server procede in parallelo nel repository Signal-Server. Il flag interno che abilita il percorso è stato spostato il 9 settembre da "solo staging" a "solo build interne", ed è per questo che gli utenti della beta pubblica, che hanno il codice sul telefono dalla versione 8.26, non vedono nulla.
- 17-19 agosto: scheletri di rete e delle schermate impostazioni per la "registrazione senza numero"; sul server compare un test che registra un account senza numero con una credenziale statica (18 agosto).
- 25-26 agosto: vengono impostate le schermate di login e arrivano 1.632 righe di testi, tra cui "Salva come PDF" per le chiavi e l'avviso che un login perso non si recupera.
- 2 settembre: "Add basic ability to register numberless account" e "Add basic ability to login to an existing numberless account"; per questi account vengono nascosti i promemoria del PIN, il blocco della registrazione e l'impostazione di reperibilità tramite numero; si aggiunge il salvataggio del login in un gestore di password.
- 9 settembre: "Add ability to pay for a signal login" collega la fatturazione di Google Play, il receipt credential e la logica di ripresa dopo un errore; la sera stessa seguono i test end-to-end dei flussi senza numero.
Come un login a pagamento dovrebbe restare anonimo
Per Signal il numero di telefono non è mai stato un modo per accertare l'identità: era il freno antispam, perché un numero costa e ne esistono in quantità finita. Il direttore tecnico dell'azienda, Ehren Kret, lo ha detto alla conferenza "Don't Be Evil" di FUTO confermando che la registrazione senza numero era in programma "speriamo più avanti quest'anno" e che l'ostacolo era l'abuso, non la privacy. Un login a pagamento conserva il costo e toglie il numero. L'obiezione ovvia è che un pagamento identifica almeno quanto una SIM, e il codice risponde con la stessa costruzione che Signal ha introdotto per i badge dei donatori nel 2021 e riutilizzato per i backup a pagamento. L'app effettua l'acquisto su Google Play, poi costruisce una richiesta "cieca" di receipt credential; il server di Signal la firma senza vedere l'account a cui verrà legata; alla registrazione l'app presenta la credenziale come prova che un login, uno qualsiasi, è stato pagato. Il commento nel repository spiega che l'acquisto viene salvato prima di essere riscattato, "in modo che un errore in qualunque punto dopo il pagamento lasci qualcosa da cui ripartire", e che un acquisto riscattato viene "consumato", così una persona può comprare un secondo login per un secondo account.
A che cosa rinuncia un account senza numero
Le stringhe e le impostazioni nascoste descrivono un account di tipo diverso. Non c'è il blocco della registrazione tramite PIN, perché non c'è un numero da bloccare; al suo posto le impostazioni guadagnano una scheda per un secondo fattore, "per proteggere il tuo account quando usi il tuo Signal Login su un nuovo dispositivo", e la chiamata di registrazione nel codice accetta un codice TOTP monouso. Non c'è l'interruttore "chi può trovarmi tramite numero", perché la reperibilità è fissata su disattivata. Un commit precedente individuato dalla community afferma che gli account senza numero non potranno mai ottenerne uno e gli account con numero non potranno mai perderlo, quindi un account esistente non si sgancia semplicemente dalla sua SIM: un account senza numero è un account nuovo. Il nome utente diventa il modo per raggiungervi, e l'app mostra ora una finestra di conferma se provate a saltarne la creazione. Soprattutto, le chiavi sono l'account: la schermata informativa dice chiaramente che "se dimentichi le chiavi, non potrai recuperare il tuo account", e l'app ve le fa reinserire per dimostrare che le avete salvate. È lo stesso patto che stringe chiunque passi dai codici SMS a un'app di autenticazione o a una chiave hardware: nessuno può reimpostarlo al posto vostro, ed è proprio questo il punto.
Perché il problema era il numero
Signal ha passato anni a restringere ciò che un numero di telefono espone. La privacy del numero lo nasconde per impostazione predefinita agli altri utenti, i nomi utente permettono agli sconosciuti di scrivervi senza conoscerlo, e la scoperta dei contatti sul server è progettata per non rivelare nulla oltre le corrispondenze. Niente di tutto questo cambia il momento della registrazione: un codice SMS a un numero che, in un elenco sempre più lungo di paesi, è legato al passaporto, a una scansione biometrica o a un permesso di soggiorno al momento della vendita. Chi ha accesso all'operatore, o alla persona che ha registrato la SIM, sa chi possiede l'account, qualunque cosa l'app nasconda dopo. Un login comprato senza numero sposta questo rischio dall'operatore allo store. Se il prezzo sarà più vicino a un dollaro o a dieci non è nel codice: la schermata lo carica da Google Play al momento, e le anteprime di progetto usano un segnaposto. Finché Signal non attiva il flag e non pubblica il prodotto, il riassunto onesto è questo: client, server e percorso di pagamento sono scritti e testati, l'annuncio no.
Posso registrarmi su Signal senza numero di telefono oggi?
Che cos'è esattamente un Signal Login?
Pagare tramite Google Play mi identifica?
Posso togliere il numero dal mio account attuale?
Che succede se perdo le chiavi?
• 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