WebAuthn e Passkey 101
Obtenha uma compreensão abrangente sobre WebAuthn, incluindo seu conceito, fluxo de trabalho, razões para sua popularidade e desafios associados.
WebAuthn está entre os autenticadores mais seguros nos padrões NIST AAL. Introduzido em 2013, é a escolha preferida das empresas para autenticação atualmente. No entanto, sua adoção ainda não é ampla, levando a muitas perguntas sobre WebAuthn e Passkeys. Vamos mergulhar no que você deve saber.
Conceito: Qual é a relação entre WebAuthn, Passkey e FIDO?
FIDO Alliance | A FIDO Alliance é uma organização que fornece padrões de autenticação sem senha, seguros e de código aberto, incluindo UAF, U2F e FIDO2. |
FIDO2 | FIDO2 é um conjunto de padrões para autenticação online segura desenvolvidos pela FIDO Allianc巍️ē. FIDO2 compreende dois principais componentes: WebAuthn para logins sem senha e CTAP para comunicação segura entre dispositivos. |
Passkey | Um passkey é uma credencial resistente ao phishing baseada em FIDO para substituir senhas.
|
WebAuthn | WebAuthn, uma API JavaScript desenvolvida pelo W3C e a FIDO Alliance, capacita aplicações web com padrões FIDO2 para autenticação. Passkey é um dos métodos de autenticação que WebAuthn suporta. |
Fluxo: Como o WebAuthn funciona?
4 principais entidades do WebAuthn
Basicamente, você pode conhecer as 4 principais entidades envolvidas no fluxo do WebAuthn.
-
Usuário: A pessoa que se inscreve ou autentica na aplicação web usando o WebAuthn.
-
Agente do Usuário: O navegador web que gerencia as chamadas à API WebAuthn e gerencia o processo de autenticação entre todas as diferentes partes confiadoras e autenticadores.
-
Parte Confiadora: Seu serviço ou aplicativo web ao qual o usuário está tentando acessar. O usuário interage com a Parte Confiadora através do Agente do Usuário.
-
Autenticador: O componente de hardware que o usuário possui para verificar sua identidade. Pode tomar várias formas com base na capacidade da plataforma ou navegador, como chaves de segurança (como Yubikeys), telefones ou tablets (conectados por Bluetooth, NFC ou USB), biometria baseada em dispositivo ou PINs, etc.
Fluxos de trabalho do WebAuthn
A criptografia assimétrica de chave pública é o processo central.
- Geração de par de chaves: O Agente do Usuário gera um par de chaves pública-privada. A chave pública é compartilhada com a Parte Confiadora, enquanto a chave privada permanece armazenada de forma segura no Autenticador do usuário.
- Desafio de Autenticação: Quando o usuário tenta fazer login, a Parte Confiadora envia um desafio de autenticação ao Agente do Usuário.
- Verificação do Usuário: O Agente do Usuário envia o desafio ao Autenticador, que interage com o usuário para verificação (por exemplo, biometria ou um pressionamento de botão).
- Assinatura Criptográfica: O Autenticador usa sua chave privada para assinar o desafio, criando uma assinatura criptográfica.
- Verificação e Acesso: O Agente do Usuário verifica a assinatura usando a chave pública e informa à Parte Confiadora sobre uma autenticação bem-sucedida. O acesso é concedido.
Para elaborar, divida em fases de inscrição e autenticação.
O fluxo de inscrição no WebAuthn:
O fluxo de autenticação no WebAuthn:
Vantagens: Por que o WebAuthn está se tornando uma tendência?
Múltiplos autenticadores
Você tem a opção de escolher entre múltiplos autenticadores para maior flexibilidade. Esses autenticadores vêm em dois tipos, para uso local e em nuvem, e você pode ativar um ou ambos para seu serviço.
Autenticador de Plataforma (Autenticador Interno)
O autenticador de plataforma está vinculado a um único e específico sistema operacional do dispositivo, como um computador, laptop, telefone ou tablet, com o qual o usuário faz login. Ele funciona exclusivamente no dispositivo para autorização usando métodos como biometria ou um código de acesso do dispositivo. É uma maneira rápida de autenticar, especialmente com biometria, e pode substituir a necessidade de entrada manual de senha. No entanto, se o usuário perder o dispositivo, pode se tornar uma barreira para o acesso. Por exemplo:
- macOS e iOS: iCloud Keychain verificado por Touch ID, Face ID ou código de acesso do dispositivo.
- Windows: Windows Hello verificado por reconhecimento facial, impressão digital ou PIN amigável.
- Android: O Gerenciador de Senhas do Google também suporta reconhecimento facial ou impressão digital para preencher automaticamente senhas para autorizar dispositivos.
Autenticador Itinerante (Autenticador Externo, Autenticador Cross-platform)
O autenticador itinerante é um dispositivo ou aplicativo de software separado e portátil, como uma chave de segurança de hardware ou um smartphone. Deve conectar o dispositivo usando USB ou manter NFC ou Bluetooth ativado. O autenticador itinerante não se limita a um único dispositivo ou navegador, proporcionando maior flexibilidade. Por exemplo:
- Chaves de segurança: também chamadas de tokens de hardware, como Yubikey.
- Smartphone móvel: como usar uma conta do Google baseada em nuvem no Android, ou uma conta iCloud no iPhone. Importante, a autenticação cross-device também precisa se conectar com Bluetooth, NFC ou USB para garantir que o autenticador do usuário esteja por perto. Autenticadores móveis muitas vezes requerem a leitura de código QR para vinculá-los com dispositivos desktop. (Os telefones Android, em particular, podem usar a Conexão Persistente para vinculá-los perfeitamente com o navegador Chrome para autorização com um clique, sem necessidade de leitura de código QR.)
Segurança de alta garantia
Segurança de alta garantia é essencial para proteger recursos empresariais. Isso é alcançado por meio das seguintes medidas:
- Proteção de chaves de privacidade: As chaves de privacidade nunca são compartilhadas com sites de terceiros (Parte Confiadora), o que ajuda a proteger contra violações de senhas e tentativas de phishing.
- Requisito de proximidade do dispositivo: Os dispositivos exigem "Autenticação de plataforma para um único dispositivo" ou "Autenticador itinerante limitado por USB, Bluetooth ou NFC" para estar em proximidade próxima ao usuário, prevenindo ataques remotos.
- Vinculação de Domínio: WebAuthn é estritamente vinculado ao domínio específico do site em que o usuário se inscreveu, fornecendo proteção contra ataques de phishing de sites não autorizados.
Experiência de usuário sem atritos para MFA & 1FA
WebAuthn melhora a segurança enquanto eleva a experiência de verificação sem senha do usuário:
- Experiência nativa e eficiência biométrica: WebAuthn adota métodos de autenticação específicos adaptados a várias plataformas e dispositivos, alinhando-se com os hábitos dos usuários. A autenticação biométrica elimina a necessidade de entrada manual, acelerando significativamente o processo de verificação.
- MFA direto ignorando 1FA: WebAuthn é comumente usado para MFA (Autenticação Multifator). Devido à sua robusta segurança, se a parte confiadora tiver registrado anteriormente o uso do WebAuthn no navegador, os usuários podem pular a etapa 1FA (Autenticação de Fator Único) e fazer o login diretamente através da verificação de passkey.
- Passkey substituindo a senha: Passkeys também podem servir como uma alternativa às senhas tradicionais para o 1FA. Os usuários podem fornecer sua passkey, antes ou depois de inserir sua conta, com a verificação de senha sendo necessária apenas quando a autenticação de passkey não está disponível.
Desafio: Por que WebAuthn não é amplamente adotado pelos usuários?
Limitações do navegador ou plataforma
Alguns navegadores ou plataformas não suportam o WebAuthn ou não possuem suporte para autenticadores itinerantes. Embora as estatísticas atuais do Caniuse mostrem suporte decente, com 97,37% de cobertura de plataforma desktop e 96,3% de plataforma móvel, ainda existem variações entre diferentes versões de navegadores e sistemas operacionais. Por exemplo, o Linux para desktop não suporta autenticadores de plataforma, o Android suporta totalmente o WebAuthn apenas no Chrome, e o Internet Explorer no macOS não suporta WebAuthn. Isso requer que os administradores peçam aos membros para impor escolhas específicas de navegador ou sistema operacional, ou configurar outros métodos de MFA alternativos.
Risco de perda de dispositivo
Particularmente para usuários que dependem de autenticadores de "Este dispositivo" de plataforma, perder o dispositivo pode resultar em perda de acesso a suas contas. A recuperação de conta pode ser um processo difícil. Para mitigar esse risco, é aconselhável que os usuários vinculem simultaneamente outros métodos de autenticação de backup ao configurar o WebAuthn.
Suporte limitado a sites e aplicativos
Muitos serviços e aplicativos ainda não oferecem suporte para passkeys. Os usuários muitas vezes carecem de familiaridade com vários métodos de autenticação e podem não entender completamente as distinções e limitações entre autenticadores de Plataforma e autenticadores Itinerantes. No entanto, grandes sistemas, navegadores e serviços SaaS estão adotando cada vez mais o WebAuthn, tornando-se uma tendência crescente que tanto as empresas quanto os usuários estão começando a abraçar.
Conclusão
Logto está se preparando para lançar o MFA (Autenticação Multifator) em novembro. A fase inicial suportará três métodos de verificação: app Autenticador TOTP, WebAuthn(Passkey) e Códigos de Backup, oferecendo uma solução completa de login e inscrição. Continuaremos a desenvolver recursos avançados relacionados ao WebAuthn. Estamos ansiosos por sua experiência e convidamos você a ficar atento no Product Hunt para o lançamento do próximo MFA.