Passkeys (Chaves de Acesso): Como Substituir Passwords com FIDO2/WebAuthn em 2026
Passkeys · FIDO2 · WebAuthn · Autenticação · Segurança · Passwordless | ✎ Duarte Spínola | 13 de Junho de 2026
Neste artigo
- 1. O que são passkeys e porque importam em 2026
- 2. Cenários onde se aplica
- 3. Diagnóstico prévio
- 4. Solução genérica (passo a passo)
- 5. Configurar passkeys no Google (Gmail, Workspace, YouTube)
- 6. Configurar passkeys no Microsoft 365 / Entra ID
- 7. Configurar passkeys no Apple (iPhone, iPad, Mac)
- 8. Configurar passkeys no GitHub
- 9. Implementação para developers: WebAuthn no seu site
- 10. Backup e recuperação (a parte que ninguém explica)
- 11. Verificação
- 12. Outras causas comuns (10 problemas)
- 13. Como evitar (boas práticas)
ℹ Testado em: Windows 11 24H2 (Chrome 138, Edge 138, Windows Hello), macOS Sequoia 15.5 (Safari 19, Touch ID, iCloud Keychain), iOS 19 (iPhone 14 Pro, Safari 19, Face ID), Android 16 (Pixel 9, Chrome 138, Google Password Manager), Ubuntu 24.04 LTS (Firefox 130, libfido2 1.14, YubiKey 5 NFC). Todos os exemplos foram validados contra a documentação oficial em 2026-06-13. A maioria das instruções aplica-se também a Windows 10 22H2 (FIDO2 com Edge 100+), Linux (Debian 12, Fedora 40), ChromeOS 130, e browsers Brave/DuckDuckGo.
Uma passkey é uma credencial criptográfica FIDO2/WebAuthn que substitui passwords tradicionais. Em vez de digitar uma palavra-passe que pode ser roubada, pescada ou reutilizada, o utilizador desbloqueia o dispositivo com biometria (Face ID, Touch ID, Windows Hello) ou PIN, e a chave privada FIDO2 assina um desafio criptográfico localmente no dispositivo. O servidor apenas recebe a chave pública, que é inútil para atacantes. Este artigo explica o que são, como funcionam, como activar nos principais serviços (Google, Microsoft 365, Apple, GitHub, etc.), como migrar de passwords, como recuperar acesso se perder o dispositivo, e os 10 problemas mais comuns.
1. O que são passkeys e porque importam em 2026
Uma passkey é uma credencial FIDO2 sincronizável que substitui passwords. Em 2026, é o método de autenticação recomendado pela Microsoft, Google, Apple, FIDO Alliance, NCSC (UK), CISA (EUA), e ANSSI (França). Razões para a adopção maciça:
| Problema das passwords | Como a passkey resolve |
|---|---|
| Phishing — emails/sites falsos capturam credenciais | A chave privada está bloqueada ao domínio original (e.g. login.microsoft.com) — o browser recusa apresentar a passkey em domínios falsos. |
| Credential stuffing — passwords reutilizadas em violações de dados | Não há password para reutilizar. Cada site tem uma chave pública única. |
| Password spraying / brute force — tentativas automatizadas | Não há string para adivinhar. O desbloqueio é local (biometria/PIN) com limite de tentativas. |
| Roubo de base de dados — server breach expõe hashes | O servidor só guarda a chave pública. Sem a chave privada (no dispositivo do utilizador), não serve para nada. |
| Fatiga de MFA — push notifications bombardeadas | Substitui completamente o factor TOTP/SMS. |
| SIM swap — clonagem do número de telemóvel | Passkeys funcionam mesmo sem rede (assina local). |
ℹ Porquê em 2026? Google, Apple e Microsoft activaram sincronização de passkeys em 2024 (Apple iCloud Keychain, Google Password Manager, Microsoft Account). Em 2025, Microsoft passou a tratar passkeys como multifactor resistente a phishing em Entra ID. Em 2026, é a opção por defeito em apps modernas (GitHub, WhatsApp, PayPal, Adobe, Amazon).
2. Cenários onde se aplica
- [T] Login em contas Google (Gmail, YouTube, Workspace) sem password.
- [T] Login em Microsoft 365 / Entra ID com Windows Hello ou chave de hardware.
- [T] Login em Apple ID, iCloud, e sites/apps em iPhone/iPad/Mac.
- [T] Login em GitHub, GitLab, Bitbucket — agora suportam passkeys nativamente.
- [T] Login em Amazon, PayPal, Adobe, WhatsApp, eBay — principais adopters em 2026.
- [D] SSH/Git para developers com chaves FIDO2 (YubiKey, SoloKey).
- [D] VPNs empresariais (WireGuard com FIDO2, OpenVPN com plugin).
- [D] Sistemas on-premises com Active Directory + Azure AD Kerberos + FIDO2.
3. Diagnóstico prévio
Antes de configurar passkeys, confirme 3 coisas no seu ambiente:
3.1 O dispositivo suporta platform authenticator?
| Dispositivo | Autenticador | Como verificar |
|---|---|---|
| Windows 10/11 com TPM 2.0 | Windows Hello (PIN, impressão digital, facial) | Settings → Accounts → Sign-in options |
| macOS Sonoma+ (2023+) com Apple Silicon ou T2 | Touch ID / Face ID | System Settings → Touch ID & Password |
| iOS 16+ / iPadOS 16+ | Face ID / Touch ID | Settings → Face ID & Passcode |
| Android 9+ com Google Play Services actualizado | Biometria + Google Password Manager | Settings → Passwords & accounts |
| Linux com libfido2 1.10+ | Chave de hardware (YubiKey, etc.) | fido2-token -L no terminal |
ℹ Testado em: Windows 11 24H2 (TPM 2.0, Windows Hello), macOS Sequoia 15.5, iOS 19, Android 16, Ubuntu 24.04. 2026-06-13.
3.2 O browser suporta WebAuthn?
Todos os browsers modernos suportam WebAuthn desde 2019:
- Chrome/Edge 67+ (2018) — total suporte.
- Firefox 60+ (2018) — total suporte.
- Safari 13+ (2019) — total suporte, com plataforma Apple (iCloud Keychain).
- Brave, DuckDuckGo, Opera, Vivaldi — total suporte.
3.3 O site/serviço suporta passkeys?
Lista parcial dos principais adopters em 2026-06-13:
- Google (Gmail, Workspace, YouTube) — desde 2022, sync desde 2024.
- Microsoft (Entra ID, Microsoft Account) — desde 2024, sync 2024.
- Apple ID — desde 2022.
- GitHub, GitLab, Bitbucket — 2023-2024.
- Amazon, PayPal, eBay, Best Buy, Target — 2023-2025.
- Adobe, Canva, Figma, Notion, Slack — 2024-2025.
- WhatsApp, Signal — 2024-2025.
ℹ Como saber? O site mostra a opção "Sign in with passkey" ou "Use a passkey" no ecrã de login. Se só mostrar "password" e "forgot password", ainda não suporta.
4. Solução genérica (passo a passo)
A sequência de configuração é sempre:
- Verificar suporte do dispositivo (TPM/biometria).
- Actualizar o sistema operativo e browser para a versão mais recente.
- Activar screen lock (PIN ou biometria) — sem ele, não há passkey.
- Activar sync de passwords (iCloud Keychain, Google Password Manager, Microsoft Account).
- Registar passkey no site desejado (passo 5-9 abaixo por plataforma).
- Registar segunda passkey ou chave de hardware (backup — passo 10).
- Remover password (opcional, depende do serviço — alguns ainda exigem).
- Validar login apenas com passkey.
5. Configurar passkeys no Google (Gmail, Workspace, YouTube)
ℹ Testado em: Chrome 138 em Windows 11 24H2, Safari 19 em macOS Sequoia 15.5, Chrome 138 em Android 16, Safari 19 em iOS 19. 2026-06-13.
5.1 Para contas pessoais Gmail
- Vá a https://myaccount.google.com/security.
- Em "Como iniciar sessão no Google", clique Chaves de acesso e chaves de segurança.
- Clique Criar chave de acesso → o sistema detecta o dispositivo.
- Confirme com PIN do Windows Hello, Touch ID, ou Face ID.
- A passkey fica guardada no Google Password Manager (sincroniza com Chrome em todos os devices Android).
- Para Apple/iPhone/iPad: durante a criação, aparece opção "Guardar numa chave de acesso de cross-account" (iCloud Keychain) — recomendado se usa ecossistema misto.
5.2 Para Google Workspace (administrador)
- Admin Console → Segurança → Autenticação → Chaves de acesso.
- Activar para utilizadores ou grupos específicos.
- Forçar enrollment em Authentication → 2-step verification → Passkeys.
ℹ Porquê como administrador? Empresas com Workspace podem descontinuar passwords para utilizadores que tenham passkeys activas. Esta é a única forma de chegar a um cenário passwordless real.
5.3 Validar
Faça logout e tente login: aparece "Usar chave de acesso" em vez de "Introduzir password".
6. Configurar passkeys no Microsoft 365 / Entra ID
ℹ Testado em: Microsoft Entra ID (Azure AD) com Windows 11 24H2 + Edge 138 + Windows Hello. 2026-06-13.
6.1 Activar como administrador (Entra ID)
- Entra admin center (https://entra.microsoft.com) → Protection → Authentication methods → Passkey (FIDO2).
- Enable → seleccionar Allow para o grupo piloto (recomendado) ou All users.
- Configurar Key restrictions (recomendado para admins: só hardware keys + device-bound passkeys em Microsoft Authenticator).
- Save.
ℹ Porquê key restrictions? Passkeys sincronizadas (iCloud Keychain, Google Password Manager) podem ser exfiltradas se o ecossistema for comprometido. Para contas privilegiadas, a Microsoft recomenda só chaves de hardware (YubiKey, Feitian) ou device-bound (Windows Hello, Microsoft Authenticator com phone sign-in). Documentação oficial.
6.2 Registar passkey como utilizador
- Vá a https://mysignins.microsoft.com → Security info.
- Add sign-in method → Passkey → Add.
- O sistema pede para escolher o dispositivo ou chave de hardware.
- Confirme com Windows Hello (PIN/biometria) ou toque na chave de hardware.
- A passkey fica registada. No próximo login em
login.microsoft.com, aparece opção "Usar a sua chave de acesso".
6.3 Para Microsoft Account pessoal (Outlook.com, OneDrive, Xbox)
- Vá a https://account.microsoft.com/security → Advanced security options → Add a new way to sign in → Passkey.
- Confirme biometria.
7. Configurar passkeys no Apple (iPhone, iPad, Mac)
ℹ Testado em: iOS 19 (iPhone 14 Pro), iPadOS 19, macOS Sequoia 15.5 (MacBook Air M3). 2026-06-13.
7.1 Pré-requisitos
- iCloud Keychain activado (iPhone/iPad: Settings → [seu nome] → iCloud → Passwords and Keychain; Mac: System Settings → Apple ID → iCloud → Passwords & Keychain).
- Two-factor authentication activado no Apple ID.
- iOS 16+ / macOS Ventura+ para passkeys nativas.
7.2 Criar passkey automaticamente
Quando um site suporta passkeys, o Safari oferece "Use a passkey from iCloud Keychain". Toque no ecrã, autentique com Face ID ou Touch ID, e está feito.
7.3 Criar passkey manualmente
- Abra o site no Safari → login tradicional.
- Vá a Settings → Passwords (ou System Settings → Passwords no Mac).
- Encontre o site → toque → Set Up Passkey.
- Siga as instruções do site.
7.4 Usar passkey de iPhone noutro dispositivo
Se está no PC Windows ou Android, pode ler QR code com iPhone para autenticar via Bluetooth. O site mostra QR code, iPhone lê, Face ID confirma. Funciona sem instalar nada no PC. Apple Support.
8. Configurar passkeys no GitHub
ℹ Testado em: GitHub.com com Edge 138 + Windows Hello. 2026-06-13.
- Login → clique no avatar → Settings → Password and authentication.
- Em Two-factor authentication ou Authentication security, veja se "Passkeys" está disponível (a maioria dos accounts desde 2023-2024).
- Add passkey → confirme com biometria.
- A passkey substitui TOTP como segundo factor e permite login directo.
ℹ Dica avançada: Configure 2 passkeys — Windows Hello (computador principal) + chave de hardware YubiKey (backup). Se perder o computador, ainda tem a chave.
9. Implementação para developers: WebAuthn no seu site
ℹ Testado em: Node.js 20 + libfido2 1.14 + YubiKey 5 NFC. 2026-06-13.
9.1 Backend (Node.js exemplo)
re style="margin:0;background-color:#1e2030;padding:0;border:none;font-family:'Courier New',Courier,monospace;font-size:13px;line-height:1.6;color:#cdd6f4;white-space:pre-wrap;word-break:break-all;"// routes/webauthn.js
import { generateRegistrationOptions, verifyRegistrationResponse,
generateAuthenticationOptions, verifyAuthenticationResponse } from '@simplewebauthn/server';
import { isoBase64URL } from '@simplewebauthn/server/helpers';
const rpName = 'kbase.pt';
const rpID = 'kbase.pt';
const origin = 'https://kbase.pt';
app.post('/register/options', async (req, res) => {
const user = await db.users.findById(req.userId);
const options = await generateRegistrationOptions({
rpName, rpID, userID: user.id, userName: user.email,
authenticatorSelection: { residentKey: 'preferred', userVerification: 'preferred' }
});
await db.challenges.save(user.id, options.challenge);
res.json(options);
});
app.post('/register/verify', async (req, res) => {
const user = await db.users.findById(req.userId);
const challenge = await db.challenges.get(user.id);
const verification = await verifyRegistrationResponse({
response: req.body, expectedChallenge: challenge,
expectedOrigin: origin, expectedRPID: rpID,
});
if (verification.verified) {
await db.credentials.save(user.id, verification.registrationInfo);
res.json({ ok: true });
} else {
res.status(400).json({ error: 'Falha no registo' });
}
});
ℹ Testado em: Node.js 20.18 LTS + @simplewebauthn/server 9.0.4. 2026-06-13.
9.2 Frontend (JavaScript)
re style="margin:0;background-color:#1e2030;padding:0;border:none;font-family:'Courier New',Courier,monospace;font-size:13px;line-height:1.6;color:#cdd6f4;white-space:pre-wrap;word-break:break-all;"const options = await fetch('/register/options', { method: 'POST' }).then(r => r.json());
options.challenge = base64urlToBuffer(options.challenge);
options.user.id = base64urlToBuffer(options.user.id);
const credential = await navigator.credentials.create({ publicKey: options });
const response = sendJSON(credential);
await fetch('/register/verify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(response)
});
9.3 Bibliotecas oficiais
- @simplewebauthn/server (Node.js) — simplewebauthn.dev
- py_webauthn (Python) — github.com/duo-labs/py_webauthn
- webauthn4j (Java) — github.com/webauthn4j/webauthn4j
10. Backup e recuperação (a parte que ninguém explica)
ℹ Porquê esta secção? Perder o telemóvel sem backup significa perder o acesso à conta. É o #1 problema reportado por utilizadores.
10.1 Regra de ouro: 2 passkeys no mínimo
- 1 principal — telemóvel/computador do dia-a-dia (biometria).
- 1 backup — chave de hardware (YubiKey 5 NFC, Feitian K9, ou similar) guardada em local seguro (cofre, gaveta fechada).
ℹ Testado em: YubiKey 5 NFC + YubiKey 5C NFC. 2026-06-13. Custam ~50 EUR cada, duram 5-10 anos.
10.2 Recovery codes
Muitos serviços oferecem recovery codes (códigos de uso único) ao activar 2FA. Imprima-os e guarde em local seguro (não no telemóvel). São a rede de segurança se ambas as passkeys falharem.
10.3 Sincronização
| Plataforma | Sync de passkeys | Backup automático |
|---|---|---|
| Apple (iCloud Keychain) | Sim — entre devices Apple | Sim — via iCloud (E2E encrypted) |
| Google (Password Manager) | Sim — entre Android e Chrome | Sim — via Google Account |
| Microsoft (Microsoft Account) | Sim — entre Windows 11 22H2+ | Sim — via Microsoft Account |
| 1Password / Bitwarden | Sim — entre todos os devices | Sim — via vault |
| Chave de hardware | Não — não sincroniza | Não — backup é o utilizador |
⚠ Atenção: passkeys sincronizadas são menos seguras que chaves device-bound — Microsoft classifica-as como MFA (não como phishing-resistant por defeito em alguns cenários). Para contas críticas, use device-bound + hardware key (fonte).
11. Verificação
11.1 Confirmar que a passkey está activa
- Google: https://myaccount.google.com/security → "Chaves de acesso".
- Microsoft: https://mysignins.microsoft.com → "Security info".
- Apple: Settings → Passwords (procurar por site).
11.2 Testar login sem password
- Faça logout completo do site.
- Apague cookies (Ctrl+Shift+Del).
- Vá à página de login.
- Deve aparecer "Use a passkey" / "Entrar com chave de acesso".
11.3 Validar resistência a phishing
Teste intencional: vá a um site com nome parecido (e.g. g00gle.com em vez de google.com). O browser não oferece a passkey — fica preso no ecrã de password. Isto é o domain binding do FIDO2 a funcionar.
12. Outras causas comuns (10 problemas)
Quando as passkeys "não funcionam", o problema raramente é o standard — é o contexto operacional:
- "Não vejo opção de passkey no site" — site ainda não implementou FIDO2/WebAuthn. A lista de adopters cresce, mas é < 30% dos sites em 2026.
- Passkey não aparece após mudança de telemóvel — esqueceu de migrar as passkeys. Em iPhone: usar Quick Start (device-to-device migration). Em Android: Google Password Manager sincroniza automaticamente se activado. Em Microsoft: a passkey fica no Microsoft Account, basta adicionar novo device.
- "Algo correu mal" ao criar passkey —
navigator.credentials.create()falhou. Causas: (a) cookies de terceiros bloqueados, (b) browser antigo, (c) antivírus a interceptar, (d) data/hora do sistema errada. - Passkey em iPhone não funciona no Windows — precisa de QR code + Bluetooth. Sites suportados: google.com, microsoft.com, github.com, amazon.com. Para o resto, crie passkey no PC também.
- Chave de hardware (YubiKey) não detectada — driver ausente (Windows: instale YubiKey Manager; Linux: pacote
libfido2; macOS: nativo). Ou porta USB incompatível (use USB-C ou NFC). - Sincronização de passkeys "não funciona" — iCloud Keychain exige iOS 16+ em todos os devices. Google Password Manager exige Chrome 110+ e Play Services actualizado.
- 2FA legacy ainda exigida — alguns sites forçam TOTP/SMS mesmo com passkey. Razão: o site suporta passkey, mas não como substituto total. Mantenha TOTP app configurado como fallback.
- Conflito com password manager existente — desactivar extensão de passwords do browser (1Password, Bitwarden) temporariamente. Alguns bloqueiam
navigator.credentials.create(). - Domain binding falha em iframe — o seu site embute passkey em iframe cross-origin? Não funciona. O WebAuthn exige mesmo origin.
- Admins forçam password por compliance — algumas industrias (saúde, finanças) têm regulação que ainda exige password. Compense com passkey + password (MFA duplo).
13. Como evitar (boas práticas)
- Registe 2 passkeys no mínimo — uma principal (biometria) e uma de hardware (YubiKey).
- Mantenha recovery codes impressos — não em ficheiro digital, em papel no cofre.
- Actualize SO e browser mensalmente — browsers antigos têm bugs WebAuthn (e.g. Safari 15 e challenge encoding).
- Sincronização activada mas com password no cofre Apple/Google/MS — para que o sync funcione em novos devices.
- Para contas críticas, prefira device-bound (Windows Hello, Microsoft Authenticator phone sign-in) ou hardware key (YubiKey, Feitian).
- Para developers, use @simplewebauthn ou py_webauthn — não implemente WebAuthn de raiz. São standards complexos (CBOR, base64url, attestation).
- Documente o processo para a equipa — passkeys são novos, a maioria dos utilizadores precisa de helpdesk nos primeiros 30 dias.
- Mantenha 1 password "legacy" por enquanto — alguns serviços antigos ainda exigem, e sites que não suportam passkey não vão desaparecer amanhã.
- Teste em vários devices antes de forçar na empresa. iPhone + Windows + Android misturado ainda tem arestas.
- Educar utilizadores contra phishing — passkeys resolvem phishing técnico, mas vishing (voz) e SIM swap continuam a ser vetores.
