MeldID: de una cuenta unificada a un sistema de gestión de acceso digital
Cuando conocí por primera vez MeldID, lo percibí principalmente como un servicio de identificación digital unificada. Ahora, el proyecto cuenta con aplicaciones para iPhone y Android que combinan autenticadores offline TOTP, recuperación automática de datos entre dispositivos y confirmación de ingreso en servicios conectados.
Cuando me familiaricé por primera vez con MeldID, lo consideraba principalmente como una infraestructura de identificación digital unificada. El usuario crea una única cuenta, completa un perfil gestionado y luego puede usarlo en diferentes aplicaciones — para iniciar sesión y transmitir datos permitidos sin tener que rellenar constantemente los mismos formularios.
Esperaba que el desarrollo avanzara en la dirección de perfiles y servicios conectados. Pero el proyecto rápidamente empezó a transformarse de una infraestructura de servidor casi invisible en una herramienta cotidiana de gestión de acceso.
El siguiente paso fueron las aplicaciones para iPhone y Android. Y aquí lo especialmente interesante no es solo la aparición del cliente móvil, sino qué tareas ha conseguido integrar.
Un TOTP común, con otro propósito
En la aplicación hay un generador de códigos desechables TOTP — esos números que cambian y que se usan para la autenticación de dos factores.
El estándar en sí no pretende ser una invención propia. El usuario añade una cuenta y recibe un código que puede usar en un servicio externo o en un sitio web.
La mayoría de los autenticadores responden a la pregunta: «¿Cómo mostrar un código de seis dígitos?» Aquí se resuelve una tarea más amplia: cómo gestionar de forma segura el ciclo de vida de los secretos TOTP — desde su adición y almacenamiento hasta su recuperación en otro dispositivo y eliminación de la cuenta.
Modo offline completamente funcional
A primera vista, la principal ventaja parece ser solo la generación local de códigos. Pero en MeldID el modo offline implica más que eso.
Las entradas ya guardadas siguen funcionando sin conexión a internet. Los códigos se generan directamente en el teléfono, por lo que la ausencia temporal de conexión no impide completar la verificación en dos pasos.
También se puede agregar una nueva entrada TOTP en modo offline. Se guarda localmente y se usa inmediatamente para generar códigos. Cuando vuelva la internet, la adición se envía automáticamente a un almacenamiento seguro y se sincroniza con otros dispositivos.
Editar y eliminar entradas ya sincronizadas requiere conexión al servidor. Esto evita tener diferentes versiones del mismo almacenamiento en distintos teléfonos.
Se logra así un equilibrio: las acciones principales pueden realizarse sin conexión, y los cambios que deben aplicarse a todos los dispositivos se realizan tras volver online.
Un teléfono nuevo, sin cambiar los códigos
El problema más molesto de cualquier autenticador aparece tras perder, romper o reemplazar el teléfono. En la situación habitual, hay que buscar códigos de respaldo, transferir las entradas manualmente o volver a enlazar la aplicación con cada servicio.
En este caso, el almacenamiento no está ligado a un dispositivo en particular, sino a la cuenta MeldID. Tras iniciar sesión en un teléfono nuevo y activar el almacenamiento protegido, las entradas se recuperan automáticamente.
No importa si el dispositivo anterior era Android y el nuevo iPhone, o viceversa. Es posible añadir un segundo, tercero y más teléfonos sin realizar un proceso de transferencia separado para cada plataforma.
Imaginemos que el smartphone se rompe de repente durante un viaje. En lugar de recuperar acceso a cada servicio por separado, el usuario inicia sesión en MeldID en el nuevo dispositivo y termina de configurar el almacenamiento. Luego, sus registros TOTP vuelven a la aplicación.
En un mismo teléfono, se pueden usar varias cuentas MeldID diferentes. Sus almacenamientos se mantienen separados: las entradas de una cuenta no se mezclan con las de otra y no aparecen en el dispositivo sin autorización correspondiente.
Qué se guarda en el servidor
La recuperación automática implica que los datos deben almacenarse en algún sitio. Sin embargo, los secretos TOTP no se guardan en la base de datos en forma abierta.
El contenido de la entrada se coloca en un contenedor cifrado. En la arquitectura actual, se utiliza cifrado autenticado AES-256-GCM, y la clave del almacenamiento protegido se separa de la base de datos misma.
Por lo tanto, una filtración de la base no se convierte en una lista lista para usar de secretos para generar códigos. El atacante obtiene bloques cifrados, no los datos TOTP en abierto.
Es importante no hacer promesas absolutas. Mejor decir que: los secretos TOTP en abierto no se almacenan en la base, y una copia de la base no es suficiente para usarlos.
Otra función importante del app es la Confirmación de ingreso (Login Approval).
Si el sitio web o la app soportan MeldID, el usuario puede comenzar sesión con un solo clic en su cuenta. Con protección activa, la autenticación exitosa no basta: la autorización se considera completada solo tras confirmación en el dispositivo móvil de confianza.
La solicitud se puede aprobar si la acción fue iniciada realmente por el usuario, o rechazar si la operación parece inesperada.
A diferencia de una simple confirmación push, el Login Approval está incorporado directamente en la arquitectura de MeldID y puede usarse en todos los servicios conectados a este sistema de identificación.
El push aquí solo señala la existencia de una nueva operación. No contiene contraseña, código TOTP, token ni otra información que pueda usarse para autorizar.
El TOTP y la Confirmación de ingreso se complementan
El estándar TOTP sigue siendo universal y funciona incluso en servicios que no conocen MeldID. Tras cargar la entrada, los códigos se generan localmente.
La Confirmación de ingreso es necesaria donde la propia autorización pasa por MeldID. Añade una acción consciente del usuario y permite detener el intento antes de crear una sesión.
Así, la app puede servir como autenticador para un sitio externo y, a la vez, como medio de confirmación de ingreso en un sistema conectado.
Qué ha cambiado en MeldID
En mi primera aproximación al proyecto, su idea principal parecía ser gestionar una cuenta única y un perfil portable. Ahora se nota claramente que MeldID se está convirtiendo gradualmente en un centro personal de gestión de acceso digital.
Esto permite:
- obtener códigos TOTP sin conexión;
- añadir nuevas entradas offline;
- restaurarlas automáticamente en un dispositivo nuevo;
- utilizar varios teléfonos;
- separar varias cuentas en un mismo dispositivo;
- aprobar o rechazar nuevas entradas.
El valor de la aplicación no reside en poder mostrar un código de seis dígitos más, sino en algo más amplio: mantener el acceso al cambiar de dispositivo, no perder datos sin conexión y ofrecer al usuario la última decisión consciente antes de crear una nueva sesión.
La seguridad aquí no depende solo de un mecanismo, sino de un conjunto de soluciones: los secretos TOTP no se almacenan en abierto, el acceso no está ligado permanentemente a un solo teléfono, diferentes cuentas permanecen aisladas y el ingreso a los servicios soportados solo termina tras confirmación en un dispositivo de confianza.