Nunca confiamos no transporte
Rádios têm um histórico ruim em segurança. Em vez de discutir qual deles é seguro o bastante, a AirNox parte do princípio de que nenhum é e constrói a segurança uma camada acima.

Nesta página
Meio de transporte não é credencial
O pareamento (pairing) Bluetooth prova que dois aparelhos passaram pela coreografia do pareamento. A proximidade NFC prova que alguma coisa esteve a poucos centímetros de um leitor. Um QR code prova que uma câmera viu um padrão. Nada disso prova quem está do outro lado, e cada um desses meios já foi atacado publicamente: escuta, rebaixamento da força das chaves, um toque retransmitido de um lado ao outro de uma cidade com dois celulares comuns.
Por isso tratamos os três como hostis. Qualquer um pode ser escutado, receber mensagens injetadas ou ter mensagens retransmitidas. Nada do que o meio alega é aceito como prova de coisa alguma.

Pareie uma vez
A confiança se estabelece uma única vez, quando você pareia o desktop e o celular. O desktop mostra um QR code e o celular escaneia. Depois, as duas telas mostram um código curto, e você compara. Se baterem, os dois aparelhos combinaram chaves que nenhum meio jamais viu, e cada um passa a conhecer a identidade do outro dali em diante. Se não baterem, alguma coisa se colocou no meio, e você para.
Essa comparação é o único momento em que um humano confere o canal, e é o momento que importa. Tudo o que vem depois herda a confiança que você estabeleceu com os próprios olhos.

A sessão
Depois do pareamento, toda mensagem entre o desktop e o celular trafega dentro de uma sessão que pertence à carteira. Ela é criptografada de ponta a ponta (end-to-end), então um meio que está sendo escutado não vaza nada além de ruído. Ela tem autenticação mútua (mutual authentication), então cada lado sabe que a mensagem veio do aparelho com que pareou, e não de algo se passando por ele. Ela é vinculada ao meio em que roda, então uma mensagem capturada num caminho não pode ser reenviada em outro.
A sessão é construída sobre um design de handshake moderno e bem estudado, do tipo usado por túneis seguros amplamente adotados. Não improvisamos criptografia.
O que é descartado
Se uma mensagem for alterada no caminho, ela falha na autenticação e é descartada. Se for reenviada, chega fora da sequência e é descartada. O mesmo vale para a que chega fora de ordem. E uma mensagem de um aparelho que não é o pareado nunca passa do handshake. Em todos os casos, o celular não mostra nada para assinar, porque nada válido chegou.
É por isso que a conveniência do Bluetooth LE e do NFC não custa nada em segurança. O meio pode ser tão fraco quanto quiser. Se o rádio por baixo é seguro ou não é uma pergunta que nunca precisamos responder.
Em qualquer meio, a mesma sessão
A sessão não sabe se está indo por luz, rádio ou toque. Você pode parear por QR e depois usar Bluetooth LE no trabalho diário e NFC num terminal, tudo sem parear de novo. Trocar de meio não muda em que se confia, porque nunca se confiou no meio, para começo de conversa.
Ainda é um air gap?
Os puristas dizem que air gap significa só luz. Não vamos brigar pela palavra. Se você quer a versão estrita, use QR codes e mais nada; ela está sempre disponível. A propriedade que nos importa está por baixo da palavra: o aparelho que guarda as chaves não tem rota para a internet, e as únicas coisas que atravessam são um pedido que o celular decodifica por conta própria e uma assinatura que ele escolheu produzir. Uma sessão por Bluetooth LE preserva essa propriedade. O que ela acrescenta é que você continua usando.
A série completa
- Considere o computador comprometido
- Mass Adoption Security: o assinador é um celular que você já tem
- Três caminhos através do air gap: QR codes, Bluetooth LE e NFC
- Invisível no ar: um assinador que nenhum scanner encontra
- Nunca confiamos no transporte
- O que o celular mostra: análise de transações no assinador
- O celular mantém seu próprio registro
- O cofre no seu desktop: Argon2id e um perfil que resiste a tentativas de adivinhação
- dApps sem carteira de navegador
- Um servidor MCP com regras: agentes de IA dentro de limites
- Uma só carteira protegida para tudo
- Pequena e nativa: C++, sem runtime JavaScript, da estação de trabalho ao Raspberry Pi