> ## Content Index
> Fetch the complete content index at: https://www.eddieoz.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Fapico2 — The F**king Authenticator
- URL: https://www.eddieoz.com/fapico2-the-f-king-authenticator/
- Published: 2026-10-19T11:00:00.000Z
- Updated: 2026-10-19T11:00:01.000Z
- Description: O Fapico2 - The F**king Authenticator - é uma placa de US$ 5, a Raspberry Pi Pico 2, que vira um autenticador de hardware multi-applet: passkeys FIDO2, OpenPGP, OATH e Nostr, num único firmware, num único binário, num único dispositivo USB composto
- Author: Edilson Osorio Jr.
- Tags: Articles, Português

*Soberania digital não termina na seed phrase.*

Minha primeira carteira fria foi uma *hardware wallet*. Tratei o objeto como um talismã: uma caixa lacrada que guardava minhas economias de um jeito que a internet não alcançava. Ela dormia numa gaveta. A *seed phrase*, noutro cofre. A liturgia completa da autocustódia, celebrada sem falhas.

Aí veio a pergunta que quebra a liturgia: e o resto?

A conta de e-mail que recebe os alertas do banco. Os códigos 2FA das exchanges. A chave SSH que abre meus servidores. A identidade PGP que assina meus commits. Todos esses guardiões moram no celular — um dispositivo permanentemente conectado, cheio de apps, cheio de permissões, cheio de superfície de ataque. A chave que move meus sats dorme num cofre. As chaves que movem minha vida digital inteira dormem num app.

Não guardamos mais nossas chaves. Nós as alugamos.

O Fapico2 é uma resposta direta a essa contradição. Uma placa de US$ 5 — a Raspberry Pi Pico 2 \[6\] — vira um autenticador de hardware multi-applet: *passkeys* FIDO2, OpenPGP, OATH e Nostr, num único firmware, num único binário, num único dispositivo USB composto \[1\]. Sem conta no fornecedor. Sem nuvem. Sem assinatura. E a criptografia — geração, uso e selamento das chaves — acontece inteira dentro da placa.

A mesma lógica que tirou seu Bitcoin das exchanges pode tirar suas credenciais das mãos de quem não precisa tê-las.

---

## Parte I: A Ilusão de Segurança no Seu Bolso

O problema não são os apps de autenticação; é o modelo.

1\. O app é a superfície de ataque. Seus códigos TOTP vivem num banco de dados do app, sobre o sistema operacional do celular. Sua chave privada PGP, idem. Um *keylogger* captura o que você digita. Um *screen scraper* captura o que você vê. Um vazamento no *sync* da nuvem entrega tudo que o app "salvou por segurança". O guardião mora na mesma casa que os ladrões.

2\. A confiança é herdada, não verificada. Confiamos num app porque ele é "oficial", porque tem um logo conhecido, porque tem milhões de downloads. Isso não é segurança; é marketing. Um app oficial com um bug vira um vazamento oficial. Um app conhecido comprometido vira um canal de ataque conhecido, para milhões de pessoas ao mesmo tempo.

3\. O comprometimento é em cascata. Um app de 2FA comprometido não entrega um código. Entrega o e-mail, o e-mail entrega as exchanges, as exchanges entregam o caminho até suas moedas — por engenharia social, por redefinição de senha, por *SIM swap*. Sua carteira fria não importa se a identidade em volta dela é alugada.

Concedo o óbvio: apps são convenientes, e a maioria funciona bem a vida inteira. É exatamente assim que todo modelo de segurança falha — até o dia em que falha com você dentro.

---

## Parte II: O Que É o Fapico2

O Fapico2 transforma uma Raspberry Pi Pico 2 num autenticador que carrega numa única placa: *passkeys* FIDO2/U2F, identidade OpenPGP 3.4, códigos OATH (TOTP/HOTP), slots OTP no protocolo YubiKey e identidades Nostr \[1\]. Um firmware, um binário, um dispositivo USB composto. O ritual de comprar quatro tokens diferentes — um para *passkeys*, outro para PGP, outro para 2FA e um quarto para Nostr, que o mercado não vende — é substituído por uma placa que custa menos que um almoço.

O princípio é o da carteira fria: autocustódia para credenciais. As chaves geradas dentro da placa nunca saem dela. Em repouso, tudo é selado sob uma chave raiz derivada de uma linha OTP exclusiva do chip \[1\] — um *flash dump* arrancado da sua placa é inerte em qualquer outro lugar. O mesmo raciocínio que mantém chaves de Bitcoin fora de máquinas conectadas à internet se aplica às chaves que guardam seu e-mail, seu código e suas contas.

E a parte que separa o Fapico2 de quase tudo no mercado: o firmware é Rust, licença AGPLv3, e o *build* do dispositivo não tem pilha de rede nenhuma \[1\]. Não é "confie em nós, somos transparentes" — é "compila você mesmo". Como diz o repositório: se você está lendo isto, você pode reconstruir o dispositivo a partir do código-fonte \[1\].

---

## Parte III: A Criptografia Que Fica No Dispositivo

Três mecanismos sustentam a promessa de autocustódia. Nenhum é marketing; todos estão no código.

1\. Geração na placa. As chaves nascem do TRNG de hardware do RP2350 — o gerador de aleatoriedade verdadeira gravado no silício — e são usadas só ali \[1\]. O que sai da placa é assinatura e código; o que nunca sai é material de chave. E toda operação que toca chave privada exige toque físico \[1\]. Nada é assinado por acidente. O banco que valida seu código ainda media a transação — e nunca toca o material de chave que gera o código.

2\. Selamento em repouso. Cada registro é cifrado com AEAD sob uma chave raiz derivada da linha OTP `otp_key_1` — gravada de forma unidirecional nos fusíveis do chip — mais a identidade do próprio chip \[1\]. Em notação: `HKDF(otp_key_1, hash do serial ‖ chipid)` \[1\]. O firmware se recusa a iniciar se a linha OTP não estiver disponível; não existe constante pública de contingência \[1\]. Ou seja, o *flash dump* sozinho não abre nada — a chave do armazenamento não está nele. Duas placas idênticas, do mesmo lote, derivam chaves raiz diferentes.

3\. Commit por registro. O armazenamento não é um bloco monolítico: cada credencial é gravada individualmente, com verificação de integridade. Uma gravação interrompida (*torn-write*) não corrompe o resto \[1\]. Um reset do FIDO — o que um navegador ou o `ykman fido reset` disparam — não leva junto suas credenciais OATH nem suas identidades Nostr \[1\]. Falha isolada é falha pequena.

Os números dão escala à promessa: 844 *passkeys* residentes — derivadas do layout atual da flash e verificadas por um teste que matricula credenciais até o armazenamento recusar \[2\] — contra 100 num YubiKey 5 \[1\]. 68 slots OATH \[2\]. 8 identidades Nostr \[2\]. Uma gaveta de tokens num objeto do tamanho de um polegar.

---

## Parte IV: Fapico2 vs. o Resto do Mercado

|                        | Fapico2                          | YubiKey 5                | Apps (Authy, Google Auth.) |
| ---------------------- | -------------------------------- | ------------------------ | -------------------------- |
| Firmware               | AGPLv3, reconstruível            | Proprietário, selado     | Proprietário               |
| Onde as chaves vivem   | Na placa (TRNG)                  | No secure element        | No app, no celular         |
| Quem detém a custódia  | Você                             | Você + Yubico (firmware) | A operadora do app         |
| Rede no dispositivo    | Nenhuma                          | Nenhuma                  | Sempre                     |
| Passkeys residentes    | 844 (derivado)                   | 100                      | —                          |
| Nostr (NIP-07)         | Sim, assinatura na placa         | Não                      | Não                        |
| NFC                    | Não                              | Sim                      | —                          |
| Auditoria independente | Não (red-team interno publicado) | Sim                      | Variável                   |

Que fique claro: o YubiKey é a escolha madura. Tem auditoria independente, certificações, anos de batalha. Este artigo não é um ataque a ele. A diferença é o modelo de confiança: no YubiKey, você confia que a Yubico fez e fará certo — e o firmware é selado, então "verificar por conta própria" não é uma opção que exista. No Fapico2, o código está todo na mesa. Se não confia no *build*, verifica. Se encontra um bug, conserta. Se quiser *forkar*, *forka*. Confiança selada contra confiança inspecionável.

Os apps de autenticador não são concorrentes — são o problema descrito na Parte I. O código TOTP mora no mesmo aparelho onde moram os *keyloggers*. A conveniência é o produto; o armazém das suas credenciais é o preço.

O applet Nostr merece destaque porque não tem equivalente no mercado. A extensão de navegador expõe o padrão NIP-07 (`window.nostr`) \[5\]; o evento é hasheado no navegador e só o *sighash* de 32 bytes chega à placa; o nonce do NIP-44 é gerado no dispositivo \[1\]. Toda operação que toca a chave privada exige toque físico, e a custódia pode incluir um PIN com orçamento de três tentativas — esgotadas, a placa trava, e só um reset de fábrica destrói as identidades \[4\]. A custódia é *import-only*: não existe comando de exportação em nenhum dialeto, por decisão de projeto \[4\] — uma chave importada de software mantém sua cópia em papel; uma chave gerada na placa nunca sai dela.

---

## Parte V: Menos de US$ 10 e Código Aberto

A lista de compras é uma placa: Raspberry Pi Pico 2, entre US$ 5 e US$ 7 \[6\]. É isso. Sem elemento seguro proprietário para confiar, sem hardware lacrado para devolver ao fornecedor.

O caminho mais curto: baixe a imagem `fapico2.uf2` da release alpha (sha256 nas notas da release) ou compile do código-fonte com `./build.sh`, que produz `firmware/fapico2.uf2` \[1\]. Para gravar: segure o botão BOOTSEL, conecte a placa e copie o arquivo para o drive `RP2350` que aparece. A reenumeração pode levar até um minuto — normal \[1\].

No Linux, são dois ajustes pontuais, e os dois importam: a allowlist do libccid para OpenPGP e OATH — sem ela o sistema não vê nenhum leitor de smartcard, o que parece hardware quebrado e não é \[3\] — e a regra udev para a interface HID do Nostr (`platform/udev/70-fapico2-nostr.rules`) \[1\]. A placa enumera como `fa20:0002`, dispositivo composto CCID + CTAP-HID \[3\]. FIDO2 funciona imediatamente em qualquer lugar — Chrome, `ykman` e Yubico Authenticator verificados contra hardware real \[1\].

O manual completo, com cada tela e cada procedimento: [https://eddieoz.github.io/fapico2/](https://eddieoz.github.io/fapico2/?ref=eddieoz.com) \[7\].

---

## Parte VI: O Que Este Dispositivo Não É

Aqui está a parte que nenhum anúncio de segurança escreve. O Fapico2 é alpha, e a honestidade sobre isso faz parte do projeto.

A porta de debug SWD está aberta em toda imagem publicada — de propósito, para que placas alpha continuem recuperáveis \[1\]. Ou seja: com acesso físico breve e um *probe* de debug, alguém extrai todas as chaves que o dispositivo guarda. Até a primeira tag `vX.Y.Z-release`, isto é hardware de avaliação: não faça dele a única chave de nada que você não possa perder \[1\].

Não é auditado independentemente — a avaliação *red-team* publicada é de um *build* anterior; parte dos achados foi tratada — nem tudo \[1\]. Não tem certificação FIPS/Common Criteria nem NFC — um Pico 2 não tem rádio \[1\]. PIV está adiado. Um *advisory* de timing RSA conhecido segue sem correção upstream \[1\].

Por que publicar as próprias fraquezas? Porque as fraquezas não são críticasc e a alternativa é pior. O repositório diz em voz alta o que a indústria inteira evita: as falhas dele são públicas — e achados publicados são mais úteis do que a garantia que silencia \[1\].

---

## Conclusão: Custódia É Um Pacote Fechado

Autocustódia não é um produto; é um pacote. A carteira fria guarda os sats. O autenticador guarda as chaves que guardam todo o resto — e-mail, código, servidores, identidade. Um sem o outro é uma porta com duas fechaduras e uma chave só.

A matemática é implacável: US$ 5 e uma tarde, contra o custo de uma única cascata de credenciais. Você já pagou o preço da aprendizagem no Bitcoin — "not your keys, not your coins" custou caro demais para a indústria esquecer. A mesma matemática se aplica à sua identidade digital: se as chaves que te definem moram num app que você não controla, a soberania é emprestada.

A questão não é se você vai proteger suas chaves. O ponto é quem segura as chaves que protegem você.

---

## Referências

1. fapico2 README — [https://github.com/eddieoz/fapico2](https://github.com/eddieoz/fapico2?ref=eddieoz.com) (seções "What it does", "Security model, in plain terms", "What this is not", "Getting started")
2. fapico2 docs/capacity.md — derivação dos tetos de armazenamento (844 / 68 / 8)
3. fapico2 docs/identity.md — VID/PID `fa20:0002` e allowlist libccid
4. fapico2 docs/adr/0006-nostr-pin-custody.md — custódia PIN do applet Nostr (import-only)
5. fapico2-nostr-extension — [https://github.com/eddieoz/fapico2-nostr-extension](https://github.com/eddieoz/fapico2-nostr-extension?ref=eddieoz.com) (NIP-07 via WebHID)
6. Raspberry Pi Pico 2 — [https://s.click.aliexpress.com/e/\_c37D3YYz](https://s.click.aliexpress.com/e/%5Fc37D3YYz?ref=eddieoz.com)
7. Manual do usuário (mdBook) — [https://eddieoz.github.io/fapico2/](https://eddieoz.github.io/fapico2/?ref=eddieoz.com)

![](https://storage.ghost.io/c/bc/c6/bcc6be81-dfc2-48d1-b46c-a8c08936114e/content/images/2026/02/eddieoz@sats4.life-qr-code.png) 

## Send sats if you liked. 

[⚡️eddieoz@sats4.life](lightning:eddieoz@sats4.life)