MeldID: de uma conta única para um sistema de gestão de acesso digital
Quando conheci o MeldID pela primeira vez, o percebi principalmente como um serviço de identidade digital única. Agora, o projeto possui aplicativos para iPhone e Android que combinam autenticação offline TOTP, recuperação automática de dados entre dispositivos e confirmação de login em serviços conectados.
Quando eu comecei a entender o MeldID, o via principalmente como uma infraestrutura de identidade digital única. O usuário cria uma única conta, preenche um perfil gerenciado e pode usá-lo em diferentes aplicativos — para login e transferência de dados autorizados, sem precisar preencher os mesmos formulários repetidamente.
Esperava que o desenvolvimento seguinte fosse focado em perfis e serviços vinculados. Mas o projeto rapidamente começou a se transformar de uma infraestrutura de servidor quase invisível para uma ferramenta cotidiana de gestão de acesso.
O próximo passo foi o desenvolvimento de aplicativos para iPhone e Android. E aqui, o mais interessante não foi apenas o surgimento do cliente móvel, mas as tarefas que conseguiu integrar.
TOTP comum — com outro propósito
O aplicativo inclui um gerador de códigos descartáveis TOTP — aqueles números que mudam e que são utilizados na autenticação de dois fatores.
O padrão em si não é inventado pelo projeto. O usuário adiciona uma conta e obtém um código que pode ser usado em um serviço de terceiros ou em um site.
A maioria dos autênticadores responde à pergunta: «Como mostrar um código de seis dígitos?» Aqui, a tarefa é mais abrangente: como gerenciar com segurança o ciclo de vida dos segredos TOTP — desde a adição e armazenamento até a recuperação em outro dispositivo e a exclusão do registro.
Modo offline funciona plenamente
À primeira vista, a maior vantagem parece ser apenas a geração local de códigos. Mas, no MeldID, o modo offline oferece mais do que isso.
As entradas já salvas continuam a funcionar sem internet. Os códigos são gerados diretamente no telefone, portanto, a ausência temporária de conexão não impede a passagem na verificação de dois fatores.
Uma nova entrada TOTP também pode ser adicionada offline. Ela é armazenada localmente e imediatamente usada para gerar códigos. Quando a conexão à internet for restabelecida, a adição será automaticamente enviada para um armazenamento seguro e sincronizada com outros dispositivos.
Editar ou excluir entradas sincronizadas requer conexão com o servidor. Isso evita diferentes versões do armazenamento em diferentes telefones.
Assim, alcança-se um equilíbrio: ações principais estão disponíveis offline, e as alterações que devem ser aplicadas a todos os dispositivos são feitas assim que a conexão é restabelecida.
Um novo telefone não significa um novo conjunto de códigos
O problema mais incômodo de qualquer autenticador ocorre após perda, quebra ou troca do telefone. Normalmente, é necessário procurar códigos de reserva, transferir registros manualmente ou reassociar o aplicativo a cada serviço.
Aqui, o armazenamento não está vinculado a um dispositivo específico, mas sim à conta MeldID. Após fazer login em um novo telefone e inicializar o armazenamento seguro, os registros são restaurados automaticamente.
Não importa se o dispositivo anterior era Android e o novo é iPhone, ou vice-versa. É possível conectar dois, três e mais telefones, sem criar processos separados de transferência para cada plataforma.
Imagine que o smartphone quebrou inesperadamente durante uma viagem. Em vez de restaurar o acesso separadamente a cada serviço, o usuário faz login no MeldID no novo dispositivo e conclui a configuração do armazenamento. Depois, seus registros TOTP voltam ao aplicativo.
No mesmo telefone, pode-se usar várias contas MeldID diferentes. Seus armazenamentos permanecem separados: os registros de uma conta não se misturam com os de outra nem aparecem no dispositivo sem a devida autorização.
O que é armazenado no servidor
A recuperação automática exige armazenamento em algum lugar. No entanto, os segredos TOTP não são armazenados na base de dados em forma não criptografada.
O conteúdo do registro é inserido em um container criptografado. Atualmente, é utilizado criptografia autenticada AES-256-GCM, e a chave do armazenamento seguro é separada do banco de dados propriamente dito.
Portanto, a divulgação de um banco de dados não gera uma lista pronta de segredos para gerar códigos. O atacante só consegue blocos criptografados, não os dados TOTP abertos.
Importante não prometermos garantias absolutas. Para ser preciso: os segredos TOTP em aberto não são armazenados na base e uma única cópia do banco não é suficiente para usá-los.
Confirmação de login via MeldID
A outra função importante do aplicativo é o Login Approval, ou seja, uma confirmação separada da autorização.
Se um site ou aplicativo suporta MeldID, o usuário pode iniciar o login com um clique usando sua conta. Com proteção ativada, a autenticação bem-sucedida não basta; a autorização só é considerada concluída após confirmação no dispositivo móvel confiável.
A solicitação pode ser aprovada se a entrada realmente foi iniciada pelo usuário, ou rejeitada se parecer uma operação inesperada.
Ao contrário da confirmação push comum, o Login Approval está integrado diretamente na arquitetura do MeldID e pode ser utilizado por todos os serviços conectados a esse sistema de identidade.
O push aqui funciona apenas como notificação de nova operação. Ele não contém senha, código TOTP, token ou outros dados utilizáveis para a autenticação.
TOTP e Login Approval se complementam
O TOTP continua sendo um padrão universal e funciona mesmo em serviços que nada sabem sobre o MeldID. Após o carregamento da entrada, os códigos são gerados localmente.
O Login Approval é necessário onde a própria autenticação acontece via MeldID. Ele acrescenta uma ação consciente do usuário ao login, permitindo interromper a tentativa antes da criação da sessão.
Assim, o aplicativo pode servir de autenticador comum para um site de terceiros ao mesmo tempo em uma ferramenta de confirmação de login na sistema conectado.
O que mudou no MeldID em si
Quando conheci o projeto pela primeira vez, sua ideia principal parecia ser o gerenciamento de uma única conta e um perfil portátil. Mas ficou claro que o MeldID vem se transformando gradualmente em um centro pessoal de gestão de acesso digital.
Ele permite:
obter códigos TOTP offline;
adicionar novas entradas offline;
restaurá-las automaticamente em um novo dispositivo;
usar vários telefones;
manter múltiplas contas separadas em um único aparelho;
confirmar ou rejeitar novos logins.
O valor do aplicativo não está em mostrar mais um código de seis dígitos, mas em sua funcionalidade mais ampla: preservar o acesso ao trocar de dispositivo, não perder dados offline e fornecer ao usuário uma última decisão consciente antes de criar uma nova sessão.
A segurança aqui não se baseia em um único mecanismo, mas na soma de soluções: segredos TOTP não armazenados em texto aberto, acesso vinculado de forma transitória a um telefone, contas distintas permanecem isoladas, e o login nos serviços suportados só é concluído após confirmação de um dispositivo confiável.