As palavras-passe são o elo mais fraco na segurança das contas. Podem ser alvo de phishing, vazadas, reutilizadas ou esquecidas. Por isso, adicionámos suporte para Passkeys WebAuthn - um método de autenticação sem palavra-passe resistente a phishing, mais seguro e mais conveniente.
O que são Passkeys?
Passkeys são credenciais criptográficas armazenadas no seu dispositivo (telemóvel, portátil, chave de segurança) que substituem as palavras-passe para autenticação. Utilizam a norma WebAuthn (parte do FIDO2) e oferecem várias vantagens:
- Resistentes a phishing - As Passkeys estão ligadas ao domínio do website, por isso não podem ser usadas em sites falsos
- Sem segredos para vazar - Apenas a chave pública é armazenada no servidor
- Ligadas ao dispositivo - A chave privada nunca sai do seu dispositivo
- Protegidas por biometria - Tipicamente protegidas por Face ID, Touch ID ou Windows Hello
- Sincronização entre dispositivos - As plataformas modernas sincronizam Passkeys entre dispositivos através de contas iCloud, Google ou Microsoft
A nossa implementação
Integrámos o suporte para Passkeys WebAuthn na nossa pilha de autenticação django-allauth existente, fornecendo endpoints API tanto para web como para dispositivos móveis.
Fluxo de registo
Quando um utilizador regista uma nova Passkey, o fluxo funciona assim:
- O cliente solicita opções de registo ao servidor
- O servidor gera um desafio com informações do utilizador e da relying party
- A API WebAuthn do navegador solicita ao utilizador (biometria ou chave de segurança)
- O cliente envia a credencial de volta ao servidor
- O servidor verifica e armazena a chave pública
| |
Fluxo de autenticação
Para autenticação de dois fatores usando uma Passkey:
- O utilizador completa a autenticação primária (nome de utilizador/palavra-passe ou login social)
- O servidor devolve um desafio para verificação WebAuthn
- O navegador solicita a Passkey (toque biométrico)
- A credencial é verificada contra a chave pública armazenada
- O utilizador está totalmente autenticado
| |
Gestão de Passkeys
Os utilizadores podem gerir as suas Passkeys registadas:
- Listar todas as Passkeys com data de registo e última utilização
- Renomear Passkeys para identificação mais fácil (ex., “iPhone”, “MacBook”)
- Eliminar Passkeys (com proteção contra remoção do último autenticador)
| |
Endpoints da API
A nossa REST API fornece suporte completo para WebAuthn para a aplicação móvel:
| Endpoint | Método | Descrição |
|---|---|---|
/api/webauthn/register/options/ | GET | Obter desafio de registo |
/api/webauthn/register/complete/ | POST | Completar registo |
/api/webauthn/authenticate/options/ | GET | Obter desafio de autenticação |
/api/webauthn/verify/ | POST | Verificar credencial para 2FA |
/api/webauthn/ | GET | Listar Passkeys registadas |
/api/webauthn/<id>/ | PATCH | Renomear uma Passkey |
/api/webauthn/<id>/ | DELETE | Eliminar uma Passkey |
Considerações de segurança
Códigos de recuperação
Quando um utilizador regista o seu primeiro autenticador (Passkey ou TOTP), geramos automaticamente códigos de recuperação. Estes códigos de uso único podem ser utilizados se todos os outros métodos de autenticação ficarem indisponíveis:
| |
Prevenção de bloqueio
Os utilizadores não podem eliminar a sua última Passkey se isso os deixar sem qualquer método de autenticação de dois fatores:
| |
Monitorização
Rastreamos a utilização de Passkeys através de métricas Datadog para monitorização de segurança:
| |
Suporte de navegadores
WebAuthn é suportado em todos os navegadores modernos:
- Chrome 67+
- Firefox 60+
- Safari 13+
- Edge 79+
- Chrome móvel, Safari, Firefox
Para navegadores mais antigos, os utilizadores podem continuar a usar TOTP (aplicações de autenticação) ou códigos de recuperação.
A experiência do utilizador
Adicionar uma Passkey demora apenas segundos:
- Vá a Definições → Segurança → Autenticação de dois fatores
- Clique em Adicionar Passkey
- Nomeie o seu dispositivo (ex., “iPhone 15”)
- Autentique-se com Face ID / Touch ID / Windows Hello
- Pronto! A sua Passkey está registada
Os logins futuros requerem apenas uma confirmação biométrica - sem escrever palavras-passe ou copiar códigos de aplicações de autenticação.
Porquê escolhemos Passkeys
| Método | Risco de phishing | Experiência do utilizador | Recuperação |
|---|---|---|---|
| Palavras-passe | Alto | Fraca (esquecidas, fracas) | Reset por email |
| SMS 2FA | Médio (SIM swap) | Razoável | Número de telefone |
| Apps TOTP | Baixo | Entrada manual de código | Chaves de backup |
| Passkeys | Muito baixo | Excelente | Códigos de recuperação |
As Passkeys representam o futuro da autenticação. Já são suportadas pelas plataformas Apple, Google e Microsoft, tornando-as acessíveis a quase todos os nossos utilizadores.
Pronto para dispensar as palavras-passe? Ative as Passkeys nas suas definições de segurança!