Esta página foi traduzida automaticamente. Leia a versão original em inglês aqui.
isUserVerifyingPlatformAuthenticatorAvailable() retorna falso em todos os navegadores que não são o Safari, exigindo atualizações na lógica de detecção.Não implemente chaves de acesso.
Pelo menos não a qualquer custo e não se você não tiver os recursos para fazê-lo adequadamente.
Whitepaper empresarial de Passkeys. Guias práticos, padrões de implementação e KPIs para programas de passkeys.
Sim, as chaves de acesso são a melhor coisa que aconteceu com a autenticação de consumidores em uma década. Sim, elas acabam com o phishing. Sim, elas podem melhorar massivamente a experiência do usuário (UX). Mas as chaves de acesso mal implementadas também podem causar muitos danos.
A implementação de um servidor WebAuthn não é muito complexa. O verdadeiro desafio é tudo o que o envolve. Operar chaves de acesso com eficiência e em escala exige planejamento antecipado. Você precisa pensar em todos os problemas do "Dia 2" — as realidades operacionais que só surgem após o início da implementação das chaves de acesso.
Este artigo aborda os cinco problemas do Dia 2 que invariavelmente destroem projetos de chaves de acesso. Se você não consegue resolver todos eles, não está pronto para lançar as chaves de acesso. Se você conseguir, construirá uma autenticação que é, ao mesmo tempo, mais segura e mais utilizável do que qualquer coisa que as senhas poderiam oferecer.
Artigos recentes
♟️
Problemas do Dia 2 das Chaves de Acesso: 5 Riscos após o Lançamento
🔑
O que torna o manuseio seguro de documentos essencial para as empresas modernas?
♟️
Por que até a sua senha mais complexa será quebrada em breve
♟️
Reutilização de senhas no Japão: ainda em 84% [2026]
♟️
O papel da IA na detecção de ameaças cibernéticas
Na engenharia, o "Dia 1" é quando você constrói e lança. O "Dia 2" é quando você opera, mantém e escala o que lançou. Para as chaves de acesso, o Dia 1 pode ser simples:
A maioria das equipes consegue colocar uma implementação básica de chaves de acesso em funcionamento em poucos dias ou semanas.
O Dia 2 é onde os projetos falham. É o momento em que usuários reais, em dispositivos reais, com casos extremos reais, interagem com o seu sistema de chaves de acesso. É quando você descobre que aquela demonstração brilhante, que funcionou perfeitamente no seu MacBook, quebra em um laptop Windows executando o Chrome atrás de um proxy corporativo. É quando a sua equipe de suporte é inundada com tickets dizendo "não consigo mais fazer login".
A distância entre uma demonstração funcional de chaves de acesso e uma implantação de chaves de acesso em nível de produção é enorme. Já abordamos as armadilhas de implementação técnica e os motivos estratégicos pelos quais os projetos de chaves de acesso falham. Este artigo concentra-se especificamente no que acontece depois que você entra em produção, a partir de uma perspectiva operacional.
Se você não projetar a recuperação e o fallback adequadamente, ou você bloqueará os usuários em grande escala ou reintroduzirá silenciosamente os mesmos fluxos propensos a phishing que queria eliminar.
Considere um usuário que registra uma chave de acesso em seu iPhone e depois perde esse iPhone. Geralmente, grande parte desses casos de recuperação é agora tratada pelo gerenciador de credenciais (provavelmente as Senhas do iCloud nos iPhones). Desde que o usuário tenha acesso à sua conta da Apple, ele terá chaves de acesso sincronizadas disponíveis para fazer login em um novo dispositivo. Mas e se eles não tiverem mais acesso a essa conta na nuvem? É aqui que o seu caminho de recuperação normal entra em ação.
Digamos que você assuma que a chave privada ainda está disponível no dispositivo de onde o usuário tenta fazer login, então você inicia a cerimônia de login do WebAuthn. Isso resultará em um modal do SO/navegador pedindo ao usuário para "fazer login com sua chave de acesso em outro dispositivo". Basicamente, o usuário está agora bloqueado em sua conta. Não há outro dispositivo onde a chave de acesso esteja armazenada. O usuário fica extremamente confuso. Multiplique isso por milhares de usuários e você terá uma crise de suporte.
A reação comum é adicionar redefinições de conta baseadas em e-mail como um fallback. Mas isso anula o propósito das chaves de acesso: você acabou de reintroduzir um canal de recuperação vulnerável a phishing. Um invasor que possa comprometer o e-mail de um usuário agora pode contornar totalmente a sua implementação de chaves de acesso resistente a phishing.
Em nossa opinião, a abordagem correta é uma recuperação em camadas:
Em geral, você precisa decidir quais camadas de recuperação de contas podem ser justificadas a partir de uma perspectiva de custo/atrito. Por exemplo, no varejo / e-commerce, você pode oferecer apenas as duas primeiras camadas e aceitar o risco de phishing por razões financeiras. Em outros setores, onde a segurança é mais importante, você avança para a camada 3 e 4.
Cada camada adiciona complexidade. Você precisa decidir quais camadas o seu caso de uso exige, construí-las, testá-las em todas as combinações de dispositivos e monitorar o seu uso. Isso é significativamente mais trabalho do que a integração inicial do WebAuthn.
A maioria das equipes simplifica demais a recuperação (voltando a usar senhas ou SMS OTP) ou complica demais (por exemplo, exigindo chaves de segurança de hardware para toda recuperação). O equilíbrio correto depende do seu modelo de ameaças, base de usuários e requisitos regulatórios. Fazer isso da forma errada significa minar sua postura de segurança ou criar tanto atrito que os usuários abandonam o fluxo.
Igor Gjorgjioski
Head of Digital Channels & Platform Enablement, VicRoads
We hit 80% mobile passkey activation across 5M+ users without replacing our IDP.
See how VicRoads scaled passkeys to 5M+ users — alongside their existing IDP.
Read the case studySeus usuários não vivem em um mundo limpo e exclusivo da Apple. Eles trocam de dispositivo, misturam o Windows com o iOS, usam navegadores diferentes e trabalham em configurações gerenciadas por corporações. É aí que os fluxos de chaves de acesso falham se você não os planejou.
O ecossistema das chaves de acesso abrange três plataformas principais (Apple, Google e Microsoft), vários navegadores (Chrome, Safari, Firefox e Edge), dezenas de provedores de chaves de acesso / gerenciadores de credenciais (como 1Password, Bitwarden, Dashlane e outros) e inúmeras combinações de SO/navegador/dispositivo. Cada combinação pode se comportar de maneira ligeiramente diferente, por exemplo:
Quando um usuário cria uma chave de acesso em seu iPhone, mas deseja fazer login em um laptop Windows, ele pode usar a autenticação entre dispositivos (geralmente via código QR e Bluetooth). Esse fluxo funciona, mas é frágil:
Vimos esses casos extremos em primeira mão em milhares de combinações de dispositivos. Se você está criando chaves de acesso internamente, você precisará testar e lidar com cada uma delas. Se não puder, seus usuários encontrarão erros que sua equipe de suporte não consegue explicar.
Mesmo no mesmo dispositivo, navegadores diferentes se comportam de maneira diferente. O Chrome no macOS mostra modais de chaves de acesso diferentes dos do Safari no macOS. O Firefox tem o seu próprio comportamento. Dicas ao cliente e a detecção de user agent tornam-se essenciais para fornecer os fluxos certos para o usuário certo, mas analisá-los corretamente em todas as combinações é um fardo de manutenção que nunca termina.
O teste e o QA de chaves de acesso já são um desafio para os aplicativos web (abordamos isso em detalhes no Problema 5: Mudanças de plataforma). Mas se o seu produto também possui aplicativos nativos para iOS e Android, a complexidade se multiplica devido às decisões de arquitetura e ao comportamento específico da plataforma que as equipes focadas apenas na web nunca enfrentam.
A primeira decisão é se as chaves de acesso serão implementadas nativamente ou através de um WebView. Cada abordagem tem concessões:
| Aspecto | Implementação nativa | Implementação via WebView |
|---|---|---|
| Qualidade da UX | A melhor da categoria, sensação nativa da plataforma | Depende do tipo de WebView |
| Manutenção | Bases de código separadas para iOS e Android | Lógica da web compartilhada |
| Requisitos da plataforma | Deve seguir as alterações no SDK da Apple/Google | Deve lidar com os problemas de suporte das chaves de acesso no WebView |
| Complexidade | Alta (APIs específicas da plataforma) | Média (mas o tipo de WebView importa) |
Somente no iOS, você pode escolher entre WKWebView, SFSafariViewController, SFAuthenticationSession e ASWebAuthenticationSession - cada um com diferentes características de suporte a chaves de acesso. No Android, as Chrome Custom Tabs se comportam de forma diferente dos WebViews padrão. Estas são decisões que as equipes focadas apenas na web nunca precisam tomar, e cada escolha cria a sua própria superfície de manutenção.
Além da decisão arquitetônica, o iOS e o Android lidam com chaves de acesso de forma diferente no nível do sistema operacional:
NotAllowedError na web, mas como SimpleAuthenticationServices.AuthorizationError no iOS e User cancelled the operation no Credential Manager do Android - consulte os erros do WebAuthn em produção para um mapeamento completo de erros entre plataformasSe você operar um aplicativo da web e aplicativos nativos, não estará apenas duplicando o esforço de controle de qualidade, mas sim triplicando-o. A web, o iOS e o Android comportam-se como ambientes de chaves de acesso separados que precisam de testes de ponta a ponta independentes e de monitoramento. E ao contrário da web, onde você pode implantar uma correção instantaneamente, as correções de aplicativos nativos são limitadas pelos ciclos de revisão das lojas de aplicativos.
"Suporte a chaves de acesso" não significa "uso de chaves de acesso". Se você não tiver uma estratégia e uma medição de lançamento, a adoção irá decepcionar e o projeto será rotulado como um fracasso internamente.
Cobrimos isso de forma abrangente em nosso artigo sobre por que as implementações de chaves de acesso falham: se os usuários não migrarem para as chaves de acesso, o projeto já terá falhado. As senhas continuam dominantes, os custos do SMS OTP permanecem elevados, os riscos de phishing persistem e a sua organização não tem retorno sobre um investimento significativo em engenharia.
O argumento de negócios para a adoção das chaves de acesso é forte, mas apenas se a adoção realmente acontecer. Vimos empresas lançarem chaves de acesso com ótimas implementações técnicas, mas que alcançaram menos de 5% de adoção porque ninguém pensou na estratégia de implementação e adoção.
Impulsionar a adoção das chaves de acesso é um desafio de produto que exige:
Com base em nossa experiência com implantações de chaves de acesso em grande escala, eis o que as empresas devem almejar:
| Métrica | Fraca | Aceitável | Forte |
|---|---|---|---|
| Taxa de criação de chaves de acesso (dos usuários qualificados) | <10% | 10-60% | >60% |
| Taxa de login com chaves de acesso (de todos os logins) | <5% | 5-40% | >40% |
Se os seus números de adoção se parecerem com os da coluna "fraca" após três meses, o projeto está em apuros. Sem as análises para medir isso, você nem mesmo saberá.
As atualizações no sistema operacional e no navegador alteram os prompts, o comportamento de preenchimento automático e os fluxos de fallback. Se não houver monitoramento contínuo, você terá regressões e tickets de suporte sem nenhum aviso prévio.
Acabamos de publicar uma visão geral abrangente dos erros do WebAuthn que ocorreram em produção.
Diferentemente das senhas (que são apenas cadeias de caracteres validadas por seu servidor), as chaves de acesso dependem de uma profunda integração com o sistema operacional, o navegador e o gerenciador de credenciais. Quando a Apple lança uma nova versão do iOS, os prompts de criação da chave de acesso podem parecer diferentes. Quando o Chrome atualiza a sua lógica de preenchimento automático, o fluxo de login pode falhar. Quando um gerenciador de senhas lança uma nova versão, ele pode começar a interceptar as solicitações de chaves de acesso de maneiras que você não previu.
Um exemplo recente é o bug do iOS 26.2 onde isUserVerifyingPlatformAuthenticatorAvailable() retorna false em todos os navegadores que não sejam o Safari (Chrome, Edge, Firefox), o que exige o uso de uma lógica de detecção com reconhecimento de plataforma por meio de getClientCapabilities() como uma solução alternativa.
Para garantir que você tome conhecimento de todos os possíveis bugs e acompanhe a adoção, você precisa configurar a sua pilha de observabilidade de autenticação. Recomendamos que você tenha pelo menos o seguinte em funcionamento:
NotAllowedError) e erros inesperados (picos de AbortError provenientes de bugs de concorrência ou novos erros de chave de acesso no Credential Manager após uma atualização do Android)Esse é o tipo de infraestrutura de análise de autenticação que a maioria das equipes não constrói até que já tenham tido um incidente. Até lá, o dano à confiança do usuário e à credibilidade do projeto interno já foi feito.
O verdadeiro custo da implementação das chaves de acesso não é a construção inicial. É a manutenção contínua:
Assine nosso Substack de passkeys para receber as últimas novidades.
Tendo em vista esses problemas do Dia 2, apresentamos uma avaliação honesta de quando você deve e não deve lançar chaves de acesso.
Ir a fundo por razões regulatórias, sem um planejamento adequado, pode aumentar consideravelmente os custos. Um sistema de chaves de acesso mal implementado é pior do que nenhum sistema de chaves de acesso: ele corrói a confiança do usuário, gera custos de suporte e dá às partes interessadas internas motivos para cancelar o projeto.
Os problemas do Dia 2 descritos neste artigo são exatamente os motivos pelos quais muitas empresas optam por comprar a sua infraestrutura de chaves de acesso, em vez de construí-la. Construir um servidor WebAuthn é a parte fácil. A operação de um sistema de chaves de acesso a nível de produção em milhares de combinações de dispositivos, com recuperação adequada, monitoramento e análises de adoção, é o que separa uma demonstração de uma implantação real.
O Corbado existe especificamente porque os problemas do Dia 2 são difíceis. A nossa plataforma lida com a complexidade operacional para que você não precise construí-la e mantê-la.
O Corbado fornece fluxos de recuperação prontos para uso, com níveis de segurança adaptáveis. Desde estratégias de chaves de acesso sincronizadas até a autenticação entre dispositivos e a verificação automatizada de identidade. A lógica de recuperação é integrada e continuamente atualizada.
Os nossos SDKs de frontend são pré-testados em milhares de combinações de SO, navegador e provedores de chaves de acesso. A detecção de dispositivos, o manuseio de interfaces de usuário condicionais e o roteamento de fallback ocorrem automaticamente. Quando uma nova versão do navegador quebra alguma coisa, nós a consertamos em nosso SDK antes que seus usuários percebam.
O Corbado é compatível tanto com implementações nativas quanto com chaves de acesso do tipo WebView, com SDKs que abstraem as diferenças entre plataformas. Você se concentra na UX do seu aplicativo, enquanto nós cuidamos de toda a infraestrutura da chave de acesso no iOS e Android.
O nosso painel de análises rastreia todas as métricas importantes: taxas de criação de chaves de acesso, taxas de sucesso no login, taxas de fallback e os detalhamentos a nível de dispositivo. Você obtém insights práticos para promover a adoção e não apenas dados brutos.
O Corbado monitora continuamente as mudanças nos SO e navegadores que afetam as chaves de acesso. Nossos SDKs são atualizados de forma proativa. O seu ambiente de chaves de acesso permanece estável, mesmo com as mudanças no cenário da plataforma.
As chaves de acesso são o padrão ouro da autenticação. Isto não está em questão. Mas o caminho entre "chaves de acesso suportadas" e "chaves de acesso funcionando de forma confiável e em escala" é pavimentado com os problemas do Dia 2, que a maioria das equipes subestima.
Os cinco problemas que abordamos (recuperação, casos extremos entre dispositivos, complexidade dos aplicativos nativos, adoção e alterações na plataforma) não são raros. São os principais desafios operacionais de qualquer implantação de chaves de acesso em produção. O fato de os ignorarmos não faz com que desapareçam. Significa apenas que os seus usuários os descobrem primeiro.
A minha recomendação honesta: se não tem o conhecimento e os recursos necessários para criar as chaves de acesso de forma correta, não as lance. Invista nas capacidades (produto, engenharia, segurança e análise) ou trabalhe com um parceiro que já tenha resolvido esses problemas. O pior resultado é a implantação de uma chave de acesso incompleta que é revertida, pois ninguém fez um plano para o Dia 2.
Corbado é a Passkey Intelligence Platform para times de CIAM que rodam autenticação consumer em escala. Mostramos o que logs de IDP e ferramentas genéricas de analytics não enxergam: quais dispositivos, versões de SO, navegadores e gerenciadores de credenciais suportam passkeys, por que os registros não viram logins, onde o fluxo WebAuthn falha e quando uma atualização de SO ou navegador quebra silenciosamente o login — tudo sem substituir Okta, Auth0, Ping, Cognito ou seu IDP interno. Dois produtos: Corbado Observe adiciona observabilidade para passkeys e qualquer outro método de login. Corbado Connect entrega passkeys gerenciados com analytics integrado (junto ao seu IDP). VicRoads roda passkeys para mais de 5M de usuários com Corbado (+80% de ativação de passkey). Fale com um especialista em Passkeys →
Os cinco problemas operacionais são fluxos de recuperação e fallback inseguros, casos extremos do ecossistema entre dispositivos, complexidade de aplicativos nativos, baixa adoção pelos usuários e regressões silenciosas de atualizações de sistemas operacionais e navegadores. A maioria das equipes se concentra na integração inicial do WebAuthn e subestima esses desafios pós-lançamento, e é por isso que muitos projetos de chaves de acesso são revertidos ou discretamente abandonados internamente.
Os usuários podem se autenticar por meio de um código QR e fluxo de dispositivos cruzados via Bluetooth, mas isso exige que o Bluetooth esteja ativado em ambos os dispositivos e pode ser bloqueado por políticas de MDM e firewalls corporativos. A experiência do usuário varia significativamente entre os navegadores e, muitas vezes, os usuários não entendem por que estão lendo um código QR, tornando o roteamento de fallback com reconhecimento de dispositivo e a comunicação clara fundamentais para implantações corporativas.
Uma forte adoção significa uma taxa de criação de chaves de acesso superior a 60% dos usuários elegíveis e uma taxa de login com chave de acesso superior a 40% de todos os logins. Taxas abaixo de 10% de criação e abaixo de 5% de login após três meses sinalizam um lançamento fracassado. Medir isso exige uma infraestrutura dedicada que monitore as taxas de criação, taxas de sucesso de login, taxas de fallback e abandono detalhadas por combinação de dispositivo e sistema operacional.
A implementação nativa oferece a melhor UX da categoria, mas requer bases de código separadas para iOS e Android com tratamento de API específico da plataforma e pipelines de controle de qualidade independentes. As abordagens com WebView compartilham a lógica da web, mas introduzem inconsistências no suporte a chaves de acesso, dependendo do tipo de WebView. Somente no iOS, a escolha entre WKWebView, SFSafariViewController e ASWebAuthenticationSession tem características diferentes de suporte a chaves de acesso que devem ser avaliadas antes de se comprometer com uma arquitetura.
Uma recuperação simplificada, como redefinições baseadas em e-mail, reintroduz canais vulneráveis a phishing, enquanto uma recuperação excessivamente rígida, como o uso obrigatório de chaves de segurança de hardware, gera abandono. A abordagem recomendada ocorre em camadas: chaves de acesso sincronizadas como estratégia principal, autenticação entre dispositivos com código QR como segunda camada, verificação de identidade automatizada com testes de vivacidade como terceira e credenciais verificáveis digitais como quarta. Quais camadas implementar depende do seu modelo de ameaças, base de usuários e requisitos regulatórios.
Artigos relacionados
Índice