Signal prepara el registro sin número de teléfono: un 'Signal Login' de pago ya está en el código de Android
Signal está construyendo un registro sin número de teléfono, y todo el trabajo está a la vista en su código fuente público. En las últimas cuatro semanas, un desarrollador de Signal ha subido al repositorio Signal-Android una serie de commits bajo el nombre "Signal Login": una compra única a través de Google Play que entrega al usuario un identificador de cuenta y una clave de recuperación de 64 caracteres en lugar de pedirle un número. El 9 de septiembre llegó la propia pantalla de pago, con el botón "Pay" seguido del precio. Signal no ha anunciado la función y, en el código actual, solo está activada para las versiones internas de la empresa, así que nadie de fuera puede probarla todavía.
En resumen
- Los commits, casi todos del mismo ingeniero de Signal, van del 17 de agosto (esqueletos de red) al 9 de septiembre ("Add ability to pay for a signal login", 2.439 líneas añadidas). El código del servidor tiene commits de "numberless account" a juego desde el 13 de agosto.
- Los textos de la interfaz ya están escritos: "Regístrate sin número de teléfono con Signal Login. Con una compra única recibirás una clave de cuenta para empezar." Las cadenas prometen "no se necesita número de teléfono" y "nombre de usuario para mensajes y llamadas".
- El pago pasa por Google Play, y la app convierte el recibo en una credencial de conocimiento cero como la que Signal ya usa para las insignias de donante: el servidor comprueba que un login se ha pagado sin saber qué compra pertenece a qué cuenta.
- Para quien viva en un país donde la SIM se entrega contra pasaporte o huellas, desaparece el único identificador que Signal seguía exigiendo, y el número que le basta a un desconocido para vigilar su rutina diaria a través de los acuses de recibo.
Lo que muestra el código, por orden
Signal publica el código de su cliente y de su servidor, así que la función se puede seguir commit a commit aunque no haya anuncio. El trabajo en Android lo firma sobre todo Greyson Parrelli, desarrollador veterano de Signal; el del servidor avanza en paralelo en el repositorio Signal-Server. El indicador interno que activa el flujo se movió el 9 de septiembre de "solo staging" a "solo versiones internas", y por eso los usuarios de la beta pública, que tienen el código en el teléfono desde la versión 8.26, no ven nada.
- 17 a 19 de agosto: esqueletos de red y de pantallas de ajustes para el "registro sin número"; en el servidor aparece una prueba que registra una cuenta sin número con una credencial estática (18 de agosto).
- 25 a 26 de agosto: se montan las pantallas de login y llegan 1.632 líneas de textos, incluido "Guardar como PDF" para las claves y el aviso de que un login perdido no se puede recuperar.
- 2 de septiembre: "Add basic ability to register numberless account" y "Add basic ability to login to an existing numberless account"; para estas cuentas se ocultan los recordatorios de PIN, el bloqueo de registro y el ajuste de visibilidad por número; se añade el guardado del login en un gestor de contraseñas.
- 9 de septiembre: "Add ability to pay for a signal login" conecta la facturación de Google Play, el receipt credential y la lógica de reanudación tras un fallo; esa misma noche llegan las pruebas de extremo a extremo de los flujos sin número.
Cómo se supone que un login de pago sigue siendo anónimo
Para Signal el número de teléfono nunca fue una forma de identificar a nadie; era su freno contra el spam, porque un número cuesta dinero y hay una cantidad finita. El director técnico de la empresa, Ehren Kret, lo dijo en la conferencia "Don't Be Evil" de FUTO al confirmar que el registro sin número estaba previsto "espero que más adelante este año" y que el obstáculo era el abuso, no la privacidad. Un login de pago conserva el coste y elimina el número. La objeción evidente es que un pago identifica al menos tan bien como una SIM, y el código responde con la misma construcción que Signal introdujo para las insignias de donante en 2021 y reutilizó para las copias de seguridad de pago. La app hace la compra en Google Play y después construye una solicitud "cegada" de receipt credential; el servidor de Signal la firma sin ver la cuenta a la que se asociará; en el registro, la app presenta la credencial como prueba de que algún login se ha pagado. El comentario del repositorio explica que la compra se guarda antes de canjearse, "de modo que un fallo en cualquier punto después del pago deje algo desde lo que reanudar", y que una compra canjeada se "consume" para que una persona pueda comprar un segundo login para una segunda cuenta.
A qué renuncia una cuenta sin número
Las cadenas y los ajustes ocultos describen otro tipo de cuenta. No hay bloqueo de registro por PIN, porque no hay número que bloquear; en su lugar, los ajustes ganan una tarjeta para un segundo factor, "para proteger tu cuenta cuando uses tu Signal Login en un dispositivo nuevo", y la llamada de registro del código acepta un código TOTP de un solo uso. No hay interruptor de "quién puede encontrarme por mi número", porque la visibilidad está fijada en desactivada. Un commit anterior detectado por la comunidad afirma que las cuentas sin número nunca podrán obtener uno y las cuentas con número nunca podrán perderlo, así que una cuenta existente no se desvincula de su SIM sin más: una cuenta sin número es una cuenta nueva. El nombre de usuario pasa a ser la forma de localizarle, y la app muestra ahora un diálogo de confirmación si intenta saltarse su creación. Sobre todo, las claves son la cuenta: la pantalla de información dice sin rodeos que "si olvidas tus claves, no podrás recuperar tu cuenta", y la app le obliga a volver a introducirlas para demostrar que las ha guardado. Es el mismo trato que hace cualquiera que pasa de los códigos por SMS a una app de autenticación o a una llave física: nadie puede restablecerlo por usted, y esa es la idea.
Por qué el problema era el número
Signal lleva años reduciendo lo que expone un número de teléfono. La privacidad del número lo oculta por defecto a otros usuarios, los nombres de usuario permiten que desconocidos le escriban sin él, y el descubrimiento de contactos en el servidor está diseñado para no revelar nada más allá de las coincidencias. Nada de eso cambia el momento del registro: un código SMS a un número que, en una lista cada vez más larga de países, va ligado a un pasaporte, a un escaneo biométrico o a un permiso de residencia en el punto de venta. Quien tenga acceso a la operadora, o a la persona que registró la SIM, sabe quién tiene la cuenta por mucho que la app oculte después. Un login comprado sin número traslada ese riesgo de la operadora a la tienda de aplicaciones. Si el precio estará más cerca de un dólar o de diez no está en el código: la pantalla lo carga de Google Play en tiempo de ejecución, y las vistas previas de diseño usan un valor de relleno. Hasta que Signal active el indicador y publique el producto, el resumen honesto es este: el cliente, el servidor y la ruta de pago están escritos y probados; el anuncio, no.
¿Puedo registrarme hoy en Signal sin número de teléfono?
¿Qué es exactamente un Signal Login?
¿Pagar por Google Play me identifica?
¿Puedo quitar el número de mi cuenta actual?
¿Qué pasa si pierdo las claves?
• 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