A adoção de chaves de segurança (security keys) baseadas em padrões FIDO2/WebAuthn está crescendo rapidamente como resposta a ataques de phishing e vazamento de senhas.
Felizmente, hoje qualquer maker ou profissional pode criar sua própria chave física de autenticação — robusta, auditável e de baixíssimo custo — usando a placa Waveshare RP2040-Zero (que já tinha parada aqui) e o ecossistema open source Pico Keys.
Este artigo traz uma visão aprofundada dos benefícios dessa solução, um passo a passo detalhado de instalação, dicas de uso avançado, além de comparativos de desempenho e segurança.
Visão Geral
As chaves físicas FIDO2 oferecem defesa contra phishing, autenticação passwordless e gerenciamento isolado de credenciais. Com o firmware Pico Fido, parte do projeto Pico Keys, o microcontrolador RP2040 pode se comportar como um autêntico Passkey USB, compatível com CTAP 2.1, U2F, WebAuthn e até OATH/TOTP. A placa Waveshare RP2040-Zero, por sua vez, traz o processador dual-core Cortex-M0+ a 133 MHz, 264 KB de SRAM e 2 MB de flash em um formato diminuto com conector USB-C.
Benefícios de Usar Pico Keys + RP2040-Zero
| Vantagem | Explicação |
|---|---|
| Custo ultrabaixo | Placa RP2040-Zero custa cerca de R$30–R$45, enquanto chaves comerciais custam R$300+ |
| Código aberto completo | Firmware, esquemáticos e documentação no GitHub permitem auditoria comunitária |
| Multi-protocolos num só dispositivo | CTAP 2.1, U2F, WebAuthn, TOTP/HOTP, YubiOTP, gerenciamento de credenciais residentes |
| Atualizações frequentes | Lançamentos regulares (ex. version 6.6 e 6.2) com correções de segurança e novos recursos |
| Ferramenta de configuração via navegador | Pico Commissioner permite alterar VID/PID, LED, políticas de segurança sem software extra |
| Hardware fácil de encontrar | Qualquer placacom RP2040 funciona; usei a RP2040-Zero por facilidade e USB-C |
| Comunidade atuante | Suporte no GitHub Issues, fóruns da Raspberry Pi e grupos de makers |
Entendendo o Ecossistema Pico Keys
Arquitetura dos Firmwares
- Pico Fido – implementa FIDO2 Passkey, CTAP 2.1 e credenciais residentes.
- Pico HSM – foco em operações PKI e múltiplas chaves privadas.
- Pico OpenPGP – suporte a OpenPGP e PIV para e-mail seguro.
Para uma chave de login 2FA/passwordless, usarei o Pico Fido.
Recursos de Segurança
- Usuário presente: botão físico obrigatório a cada autenticação.
- Extensões CredProtect, HMAC-Secret, LargeBlobKey.
- Limitação: o RP2040 não possui componentes de segurança dedicada; se a placa for roubada, é possível extrair o conteúdo da flash.
Materiais Utilizados
| Item | Especificação Sugerida | Quantidade |
|---|---|---|
| Waveshare RP2040-Zero | Placa MCU com USB-C, 2 MB flash | 1 |
| Cabo USB-C de dados | Compatível com transferência de dados | 1 |
| Computador com Windows, macOS ou Linux | Acesso à internet e porta USB-C/A | 1 |
1. Baixando o Firmware Pico Fido
- Acesse picokeys.com/pico-fido.
- Clique em Download e escolha:
- Firmware: Pico Fido
- Vendor: Waveshare
- Model: RP2040-Zero
- Salve o arquivo
.uf2(ex.:pico_fido_rp2040zero_v6.6.uf2).
Nota: UF2s distribuídos usam VID/PID genérico FEFF:FCFD; você poderá alterá-los depois no Pico Commissioner.
2. Gravando o Firmware na RP2040-Zero
2.1 Entrar no Modo Bootloader
- Desconecte a placa do PC.
- Pressione e mantenha BOOTSEL.
- Conecte o cabo USB-C ao PC.
- Solte o botão.
- Surgirá uma unidade de disco chamada RPI-RP2.
2.2 Copiar o Firmware
- Arraste o arquivo
.uf2para dentro da unidade RPI-RP2. - A cópia leva 2–3 s; o drive desaparece e a placa reinicia com o novo firmware.
- O LED piscará indicando Idle (500 ms ON a cada segundo) ou Request (quase aceso).
3. Configurando a Chave com Pico Commissioner
- Visite picokeys.com/pico-commissioner no Chrome/Edge.
- Conecte a RP2040-Zero.
- Clique em Connect (WebUSB).
- Defina:
- Nome do dispositivo (ex.: “Minha Pico Key”).
- (Opc.) Brilho do LED.
- (Opc.) VID/PID: use 0x234b:0000 (Nitrokey) ou mantenha FEFF:FCFD.
- Clique Apply. A placa reinicia com as novas definições.
4. Registrando a Chave em Serviços Online
4.1 Google Account
- Acesse
myaccount.google.com/security. - Em “Como fazer login”, selecione Chaves de segurança → Adicionar.
- Quando solicitado, insira a RP2040-Zero e pressione o botão físico.
- Renomeie a chave (ex.: “RP2040 Zero”) e conclua.
4.2 GitHub
- Vá em Settings → Password and authentication → Two-factor.
- Escolha Register new security key.
- Conecte a Pico Key, pressione o botão e confirme.
Qualquer site compatível com FIDO2/WebAuthn seguirá fluxo semelhante, pois o browser detecta a chave como dispositivo HID padrão.
5. Fluxo de Uso Diário
- Ao logar, o site envia um desafio FIDO2.
- O browser solicita presença do usuário na chave.
- Você pressiona o botão; o firmware assina o desafio com a chave privada residente.
- Credenciais nunca deixam a placa, garantindo proteção contra phishing.
6. Recursos Avançados
6.1 OTP / OATH
- Pico Fido implementa TOTP/HOTP compatível com Google Authenticator.
- Via Commissioner, adicione slots OATH e use o modo teclado: a chave digita o código ao apertar o botão.
6.3 LargeBlob (Senha Wi-Fi, SSH Keys)
- A extensão LargeBlob permite armazenar até 2,048 bytes de dados cifrados na flash.
- Útil para senhas Wi-Fi ou chaves SSH protegidas por PIN.
7. Comparativo com Chaves Comerciais
| Critério | Pico Key (RP2040) | YubiKey 5C NFC | Nitrokey 3A |
|---|---|---|---|
| Preço médio (BR) | R$40 | R$490 | R$380 |
| Código aberto | Sim (GPLv3) | Parcial (applet fechada) | Sim |
| Elemento seguro | Não | EAL5+ | SE050 |
| Protocolos | FIDO2, U2F, OATH, OTP, WebAuthn | Idem + PIV | Idem + PGP |
| Secure Boot | Somente RP2350 / ESP32-S3 | Sim | Sim |
| Atualizações por WebUSB | Sim (UF2) | Apenas via Updater | sim |
8. Limitações e Boas Práticas de Segurança
- Ausência de componentes dedicados a segurança da placa: quem obtiver acesso físico pode clonar a flash do RP2040 e executar brute force no PIN.
- Proteja o PIN: use 6–8 dígitos ou senhas alfanuméricas para dificultar ataques offline.
- Perda ou roubo: revogue a chave nos serviços cadastrados imediatamente.
- Firmware de terceiros: só instale UF2s oficiais; ative Secure Boot se migrar para RP2350 no futuro.
9. Troubleshooting
| Sintoma | Causa Provável | Solução |
|---|---|---|
| LED não pisca após flash | UF2 corrompido ou placa reiniciou sem energia | Refazer flash; usar cabo USB diferente |
| Browser não reconhece chave | VID/PID genérico bloqueado por driver | Ajustar VID/PID via Commissioner ou editar Info.plist CCID |
| “PIN incorreto” após atualização | Reset de dados durante upgrade maior | Restaurar backup ou re-inicializar chave e registrar novamente |
| Falha em copiar UF2 (drive some) | Antivirus intercepta escrita | Desativar proteção temporária ou usar SO alternativo |
10. Futuro: RP2350, NFC e EdDSA Nativa
- RP2350 (Pico 2) traz OTP de 16 KB e Secure Boot, corrigindo a principal lacuna de hardware seguro.
- Firmware já inclui rollback protection e PIN hash na OTP a partir da versão 6.2.
- NFC / BLE ainda em estudo, mas ESP32-S3 já é suportado pelo mesmo código-base.
- Ed25519 e secp256k1 ativados como build flags para pós-quântica leve.
Conclusão
Transformar a Waveshare RP2040-Zero em uma chave de segurança completa é um projeto acessível, educativo e poderoso.
O combo Pico Keys + RP2040 oferece todos os recursos essenciais de uma YubiKey, com transparência total de código e um investimento inferior a R$50.
Embora falte um elemento seguro dedicado, boas práticas de PIN forte, backup criptografado e revogação rápida mitigam o risco para a maioria dos casos de uso pessoais e de pequenas empresas.
Ao seguir este guia, você está pronto para abandonar senhas frágeis e adotar um padrão de autenticação moderno, resiliente e sob seu total controle.
Boas compilações — e logins ainda mais seguros!
Caso queira entrar em contato, meus perfis e e-mail estão na seção Sobre.