Passkeys usam criptografia de chave pública para autenticar uma pessoa sem enviar uma senha ao servidor. A credencial fica com o autenticador ou provedor de passkeys; o servidor guarda a chave pública e dados da credencial. O navegador vincula a operação ao domínio, o que ajuda a resistir a phishing. Isso não elimina o risco de uma sessão roubada ou de um fluxo fraco de recuperação.
Cadastro: vincular uma credencial à conta
Depois de autenticar a pessoa com o método existente, o servidor cria um desafio aleatório e opções de registro. O navegador chama WebAuthn e devolve a resposta. Uma biblioteca confiável no servidor verifica desafio, origem, RP ID e os demais requisitos do registro; só então a credencial é associada à conta. Guarde o identificador da credencial, chave pública e metadados exigidos pela biblioteca, não uma chave privada.
Login: um desafio novo a cada tentativa
O servidor gera um desafio criptograficamente seguro, único por tentativa e vinculado à sessão. Após a interação com o autenticador, ele verifica a resposta: desafio esperado, origem e RP ID, presença do usuário, verificação do usuário quando exigida e assinatura com a chave pública cadastrada. Expire e invalide desafios após o uso; não confie em um booleano vindo do navegador.
Não implemente o protocolo criptográfico por conta própria. Use uma biblioteca WebAuthn mantida e siga suas orientações para validação de registro, autenticação e contadores, considerando autenticadores sincronizados.
Recuperação é parte do produto
Planeje perda de dispositivo, troca de provedor e inclusão de uma segunda passkey antes de desativar senhas. Ofereça gerenciamento de credenciais e notificações quando uma nova for adicionada. O método alternativo precisa ser proporcional ao risco: uma recuperação facilmente sequestrável pode anular a proteção do login principal.
- Teste cadastro e login nos navegadores e dispositivos que seu público usa, inclusive com gerenciadores de senhas.
- Proteja sessões com cookies Secure e HttpOnly, política SameSite adequada e renovação após autenticação.
- Limite tentativas e monitore falhas sem registrar desafios ou informações pessoais desnecessariamente.
- Teste cancelamento, autenticador indisponível, credencial revogada e recuperação acessível.