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

  1. Pico Fido – implementa FIDO2 Passkey, CTAP 2.1 e credenciais residentes.
  2. Pico HSM – foco em operações PKI e múltiplas chaves privadas.
  3. 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

  1. Acesse picokeys.com/pico-fido.
  2. Clique em Download e escolha:
    • Firmware: Pico Fido
    • Vendor: Waveshare
    • Model: RP2040-Zero
  3. 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

  1. Desconecte a placa do PC.
  2. Pressione e mantenha BOOTSEL.
  3. Conecte o cabo USB-C ao PC.
  4. Solte o botão.
  5. Surgirá uma unidade de disco chamada RPI-RP2.

2.2 Copiar o Firmware

  • Arraste o arquivo .uf2 para 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

  1. Visite picokeys.com/pico-commissioner no Chrome/Edge.
  2. Conecte a RP2040-Zero.
  3. Clique em Connect (WebUSB).
  4. Defina:
    • Nome do dispositivo (ex.: “Minha Pico Key”).
    • (Opc.) Brilho do LED.
    • (Opc.) VID/PID: use 0x234b:0000 (Nitrokey) ou mantenha FEFF:FCFD.
  5. Clique Apply. A placa reinicia com as novas definições.

4. Registrando a Chave em Serviços Online

4.1 Google Account

  1. Acesse myaccount.google.com/security.
  2. Em “Como fazer login”, selecione Chaves de segurança → Adicionar.
  3. Quando solicitado, insira a RP2040-Zero e pressione o botão físico.
  4. Renomeie a chave (ex.: “RP2040 Zero”) e conclua.

4.2 GitHub

  1. Vá em Settings → Password and authentication → Two-factor.
  2. Escolha Register new security key.
  3. 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

  1. Ao logar, o site envia um desafio FIDO2.
  2. O browser solicita presença do usuário na chave.
  3. Você pressiona o botão; o firmware assina o desafio com a chave privada residente.
  4. 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

  1. 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.
  2. Proteja o PIN: use 6–8 dígitos ou senhas alfanuméricas para dificultar ataques offline.
  3. Perda ou roubo: revogue a chave nos serviços cadastrados imediatamente.
  4. 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.