Você tenta entrar na sua conta do Mastodon usando uma chave de segurança WebAuthn, mas o navegador mostra “Falha no login” com o código de erro 401. Esse problema ocorre quando a credencial WebAuthn armazenada na sua chave não corresponde ao desafio ou à origem esperada pelo servidor do Mastodon. Neste artigo, você aprenderá por que o erro 401 acontece durante a autenticação WebAuthn e como resolvê-lo atualizando o firmware da chave de segurança, limpando o estado do navegador e re-registrando a credencial.
Principais conclusões: Corrigindo erros 401 do Mastodon durante o login WebAuthn
- Preferências > Conta > Autenticação de dois fatores > Gerenciar chaves de segurança: Remova e re-registre sua chave de segurança para forçar um novo handshake de credenciais com o servidor do Mastodon.
- Configurações do navegador > Limpar dados do site para sua instância do Mastodon: Exclui o estado corrompido do desafio WebAuthn que causa incompatibilidades 401.
- Ferramenta de atualização de firmware da chave de segurança (específica do fabricante): Corrige bugs conhecidos em firmwares antigos que enviam dados de autenticador malformados para o servidor.
Por que o Mastodon retorna um erro 401 durante a autenticação WebAuthn
WebAuthn é um padrão de autenticação sem senha que usa criptografia de chave pública. Quando você registra uma chave de segurança no Mastodon, o servidor armazena uma chave pública e a associa à sua conta. Durante o login, o servidor envia um desafio para o seu navegador, que o encaminha para a chave de segurança. A chave assina o desafio com sua chave privada e retorna a resposta assinada. Se qualquer parte desse handshake for inválida, o servidor responde com HTTP 401 Não Autorizado.
O erro 401 no login WebAuthn do Mastodon geralmente tem três causas principais:
Estado do desafio desatualizado ou corrompido no navegador
O Mastodon gera um desafio único para cada solicitação WebAuthn. O navegador armazena esse desafio temporariamente. Se você atualizar a página, fechar a aba ou navegar para outro lugar antes de concluir a autenticação, o desafio se torna obsoleto. Ao tentar novamente, o navegador pode enviar o desafio antigo para o servidor, causando uma incompatibilidade de assinatura e um erro 401.
Bugs no firmware da chave de segurança
Alguns modelos mais antigos de chave de segurança têm bugs no firmware que produzem dados de autenticador incorretos ou lidam inadequadamente com o rpId (ID do relying party). Por exemplo, certas versões de firmware do YubiKey anteriores à 5.2.3 enviavam um comprimento incorreto de credentialId, fazendo com que o servidor rejeitasse a afirmação. O servidor do Mastodon valida todos os campos na resposta WebAuthn, então mesmo um erro de um único byte pode gerar um 401.
Origem do relying party incompatível
O WebAuthn vincula as credenciais a uma origem específica (protocolo + hostname + porta). Se você registrou a chave em https://mastodon.social mas depois tenta autenticar em https://mastodon.social:443 ou um domínio espelho, o navegador se recusará a liberar a credencial. O Mastodon retorna 401 porque nunca recebe uma afirmação válida.
Passos para resolver o erro 401 e fazer login com sucesso usando WebAuthn
- Atualize o firmware da sua chave de segurança
Acesse a página de suporte do fabricante para o modelo da sua chave. Para YubiKey, baixe o YubiKey Manager e verifique a versão do firmware na aba Dispositivo. Se a versão for inferior a 5.2.3, atualize usando a ferramenta de atualização do YubiKey Manager. Para outros fabricantes, use o atualizador oficial de firmware. Após a atualização, reconecte a chave. - Limpe os dados do site da sua instância do Mastodon no navegador
No Chrome, vá em Configurações > Privacidade e segurança > Configurações de site > Ver todos os dados do site. Pesquise pelo domínio da sua instância do Mastodon. Clique no ícone de lixeira para remover todos os cookies, armazenamento e estado WebAuthn. No Firefox, vá em Opções > Privacidade e Segurança > Cookies e dados do site > Gerenciar dados, encontre sua instância e clique em Remover selecionados. Feche todas as abas do navegador dessa instância. - Faça login usando sua senha e um código TOTP
Abra sua instância do Mastodon em uma nova janela do navegador. Digite seu e-mail e senha. Quando solicitado para autenticação de dois fatores, use um código do aplicativo TOTP em vez da chave de segurança. Este passo confirma que suas credenciais de conta ainda são válidas e que o problema está isolado ao WebAuthn. - Remova e re-registre a chave de segurança
Após fazer login, navegue até Preferências > Conta > Autenticação de dois fatores. Na seção Chaves de segurança, clique no ícone de lixeira ao lado da sua chave existente. Confirme a remoção. Em seguida, clique em Registrar chave de segurança, insira sua chave e siga as instruções do navegador. O Mastodon gerará um novo par de chaves pública-privada e armazenará a nova chave pública. - Teste o novo registro
Saia da sua conta. Na página de login, digite seu e-mail e senha. Quando o prompt WebAuthn aparecer, insira sua chave de segurança e toque nela. O navegador deve mostrar uma marca de verificação verde, e o Mastodon deve redirecioná-lo para sua página inicial. Se você ainda vir um erro 401, repita os passos 2 a 4 usando um perfil de navegador diferente.
Se o Mastodon ainda mostrar um erro 401 após o re-registro
WebAuthn não suportado pelo navegador
Alguns navegadores antigos ou modos de navegação privada bloqueiam o WebAuthn. Use Chrome 67+, Firefox 60+, Edge 18+ ou Safari 13.1+. No Safari, verifique se o menu Desenvolvedor não tem “Desabilitar WebRTC” ou “Desabilitar WebAuthn” ativados. Abra Preferências do Safari > Avançado e marque “Mostrar menu Desenvolvedor na barra de menus.” Depois, abra Desenvolvedor > Recursos Experimentais e verifique se a API de Autenticação Web está ativada.
Chave de segurança conectada através de um hub USB não confiável
Alguns hubs USB, especialmente os não alimentados ou de terceiros, podem interferir no handshake WebAuthn. Conecte a chave de segurança diretamente a uma porta USB do seu computador. Para chaves NFC, segure a chave contra o leitor NFC durante todo o tempo do prompt do navegador. Chaves Bluetooth devem ser pareadas com o sistema operacional antes que o navegador possa detectá-las.
Proxy da instância ou CDN interferindo no WebAuthn
Se sua instância do Mastodon estiver atrás de um proxy reverso ou de uma CDN como Cloudflare, o proxy pode remover ou modificar cabeçalhos WebSocket necessários para o WebAuthn. Entre em contato com o administrador da sua instância e peça para verificar se o cabeçalho Sec-WebSocket-Protocol está sendo passado sem modificações. O administrador pode testar desviando temporariamente o proxy para seu endereço IP.
Erro 401 WebAuthn do Mastodon vs outras falhas de autenticação
| Item | Erro 401 WebAuthn | 403 Proibido ou 429 Limite de taxa |
|---|---|---|
| Código de status HTTP | 401 Não Autorizado | 403 Proibido ou 429 Muitas solicitações |
| Causa raiz | Assinatura de afirmação WebAuthn inválida, desafio desatualizado ou origem incompatível | Conta desativada, IP bloqueado ou muitas tentativas de login falhas |
| Comportamento do navegador | O prompt WebAuthn aparece, o toque na chave é aceito, mas o servidor rejeita a resposta | O navegador mostra uma página de erro antes de qualquer prompt WebAuthn |
| Solução | Limpar dados do site e re-registrar a chave de segurança | Aguardar 15 minutos ou contatar o administrador da instância |
Agora você tem um método claro para resolver o erro 401 durante o login WebAuthn no Mastodon. Comece limpando os dados do site da sua instância no navegador e re-registrando a chave de segurança em Preferências > Conta > Autenticação de dois fatores. Se o problema persistir, atualize o firmware da chave ou mude para uma porta USB direta. Para casos avançados, peça ao administrador da sua instância para inspecionar os logs de afirmação WebAuthn no console Rails usando WebAuthn::AuthenticatorAssertionResponse para encontrar o campo exato que falhou na validação.