Como verificar o endereço de recebimento na tela da hardware wallet
Conferir o endereço no computador é verificação nenhuma, porque é o próprio software da máquina que o ataque compromete. A única tela confiável é a da carteira de hardware, e olhar só o início e o fim é o descuido com que os atacantes contam.
Conferir o endereço de recebimento na tela do computador não é meia verificação, é verificação nenhuma. O software da máquina é justamente o que o ataque compromete. A única superfície que você pode confiar é a tela da própria carteira de hardware, o aparelho físico que guarda sua chave offline, porque é ela que deriva o endereço de forma independente. Este guia mostra como verificar um endereço bitcoin na hardware wallet de verdade, e por que o hábito de olhar só o início e o fim da string é exatamente o descuido com que os atacantes contam.
Como conferir um endereço bitcoin com segurança
A resposta curta é uma só. Gere o endereço na sua carteira e leia o endereço inteiro na telinha do próprio aparelho, comparando cada trecho com o que a outra ponta vai usar, e nunca confie no endereço mostrado pelo computador ou pelo celular. A tela do aparelho é a única que não pode ter sido adulterada por um programa malicioso rodando no seu sistema, o chamado malware. Tudo que aparece fora dela é sugestão, não prova.
Isso vale nos dois sentidos da operação. Quando você recebe, é o endereço que você entrega a quem vai pagar. Quando você envia, é o endereço de destino que você digita ou cola no aplicativo. Nos dois casos, a verificação honesta acontece na tela do dispositivo, e não na do host, o computador ou celular ao qual a carteira está conectada.
Por que a tela do computador não conta
A intuição comum erra o alvo. As pessoas imaginam que o risco na autocustódia é o ladrão descobrir a chave privada, o número secreto que autoriza gastar as moedas. Se você quiser entender esse ponto a fundo, vale ler o que é a chave privada e por que ela nunca deve sair do aparelho. Acontece que a carteira de hardware foi desenhada justamente para a chave nunca sair de dentro dela. O atacante moderno sabe disso e nem tenta roubar a chave. Ele ataca o elo mais fraco, que é a informação exibida na tela do computador.
O motivo é simples de enxergar. Um endereço de recebimento é derivado da sua chave pública estendida, a xpub, por um caminho definido. Quando o aparelho calcula o endereço, ele o mostra na própria tela a partir do dado que só ele tem. Quando o mesmo endereço aparece no aplicativo do computador, ele passou por um sistema operacional inteiro, cheio de camadas onde um programa malicioso pode reescrever o que você vê. As duas telas deveriam mostrar a mesma coisa. Quando divergem, a verdadeira é a do aparelho.
Vale entender também de onde o endereço nasce. Ele é o produto do caminho de derivação, a receita padronizada que transforma sua chave em uma sequência de endereços. O tema aparece em detalhe em o que é caminho de derivação. O que importa aqui é que o aparelho recalcula esse endereço de forma independente e o exibe numa tela que o host não controla.
O sequestro da área de transferência
O ataque mais banal e mais eficaz é o sequestro da área de transferência, o clipboard hijack. A área de transferência é a memória temporária onde o sistema guarda o que você copia com um comando de copiar. Endereços bitcoin são longos e ninguém os digita à mão, então todo mundo copia e cola. O programa malicioso fica em segundo plano vigiando essa memória, e no instante em que detecta algo que parece um endereço de criptomoeda, ele substitui o conteúdo pelo endereço do atacante antes de você colar.
O efeito é perverso pela naturalidade. Você copia o endereço certo, cola, e o campo mostra um endereço com a mesma cara geral. Você aperta enviar. As moedas vão para o atacante, e a rede as considera uma transferência perfeitamente válida, porque foi você quem assinou. Não há estorno. Uma transferência confirmada em Bitcoin não volta.
“Você copiou o endereço certo. O que colou foi outro. Entre um passo e o outro, um programa que você nem sabe que está rodando trocou o destino.”
O envenenamento de endereço
A variante mais sofisticada é o envenenamento de endereço, o address poisoning. Aqui o atacante não precisa nem de um programa na sua máquina. Ele gera um endereço cujos primeiros e últimos caracteres são idênticos aos de um endereço com o qual você já transacionou, e envia para você uma transação minúscula, às vezes de valor zero, vinda desse endereço parecido. O objetivo é plantar essa string envenenada no seu histórico, para que, na próxima vez que você for pagar, você copie o endereço errado do próprio extrato.
A aposta do atacante é comportamental. Ele sabe que quase ninguém lê o endereço inteiro. As pessoas batem o olho no começo e no fim, veem que coincidem, e assumem que é o endereço certo. Veja como um endereço legítimo hipotético e um endereço envenenado hipotético se parecem quando quebrados em trechos.
| Trecho da string | Endereço legítimo | Endereço envenenado |
|---|---|---|
| Início, o que você confere | bc1q7f4m9 | bc1q7f4m9 |
| Meio, o que você ignora | x2k8vg0hs5w7c6 | b3j1lze0u8y7d2 |
| Fim, o que você confere | r3n1p8q4t | r3n1p8q4t |
Os dois exemplos acima são ilustrativos e não representam endereços reais. O ponto é o que eles mostram. As pontas são iguais de propósito, e o miolo é onde as moedas mudam de dono. Quem confere só o início e o fim aprova os dois como se fossem o mesmo endereço. Foi para esse hábito que o ataque foi construído.
O erro que os atacantes contam que você cometa
O erro central não é falta de cuidado, é o tipo errado de cuidado. Conferir início e fim parece diligência, e é justamente por parecer que ele engana. Um endereço bech32, o formato moderno começado por bc1, tem dezenas de caracteres, e gerar uma colisão nas pontas é barato para quem tem poder de computação. Bater só as extremidades dá uma sensação de segurança sem entregar segurança nenhuma.
O segundo erro é hierárquico. Verificar no lugar errado é pior do que não verificar, porque cria confiança falsa. Quem confere no computador e vê tudo certo baixa a guarda exatamente na hora em que deveria elevá-la. A regra que corrige os dois erros é única. Confira o endereço inteiro, e confira na tela do aparelho.
Verificar na tela do dispositivo
A verificação correta é um ritual curto e sempre igual. Ele não depende de qual fabricante você usa, porque o princípio é o mesmo em qualquer carteira de hardware séria. Se você ainda está montando sua carteira, o ponto de partida é como configurar sua primeira hardware wallet do zero, e o aparelho em si está explicado em o que é uma hardware wallet.
- No aplicativo da carteira, peça para gerar ou exibir um endereço de recebimento.
- Acione a opção de mostrar o endereço na tela do próprio aparelho. Toda carteira de hardware séria oferece isso.
- Compare o endereço da tela do aparelho com o do aplicativo, do primeiro ao último caractere, em blocos.
- Confira o miolo com o mesmo rigor das pontas, porque é lá que o ataque age.
- Só entregue ou use o endereço depois que as duas telas baterem por inteiro.
- Ao enviar, repita o rito com o endereço de destino antes de confirmar a assinatura no aparelho.
Ler o endereço em blocos ajuda a evitar o piloto automático. Em vez de tentar abraçar a string toda, divida-a em grupos de quatro ou cinco caracteres e confira grupo a grupo. É lento de propósito. A lentidão é o que quebra o automatismo com que o atacante conta.
Receber com carteira somente leitura
Para receber com frequência sem plugar o aparelho toda vez, existe a carteira somente leitura, o modo watch-only. Você exporta apenas a sua chave pública estendida, a xpub, para um aplicativo de acompanhamento. Com ela o aplicativo gera novos endereços de recebimento e mostra o saldo, mas não tem a chave privada e por isso não consegue gastar nada. É a forma de acompanhar entradas sem expor o segredo.
O ponto de atenção é que o watch-only não substitui a verificação na tela do aparelho, ele a torna ainda mais necessária. Como os endereços aparecem numa máquina conectada à internet, um endereço exibido ali também pode ter sido adulterado. A boa prática é validar na tela do aparelho, ao menos por amostragem, os endereços que o modo somente leitura gera, confirmando que pertencem mesmo à sua carteira.
Implicação para quem recebe em Bitcoin no Brasil
No Brasil cresce o número de pessoas que recebem parte da renda em Bitcoin, seja salário de empresa fora, seja pagamento de clientes de serviço, seja venda de produto. Para essas pessoas, o endereço de recebimento deixa de ser um evento raro e vira rotina, e a rotina é onde o descuido se instala. Cada endereço novo repassado a um pagador é uma oportunidade de erro se ele não passou pela tela do aparelho.
A recomendação operacional para quem recebe com frequência é padronizar o rito e nunca repassar um endereço que não foi conferido no dispositivo. Se você recebe de um mesmo pagador de forma recorrente, verifique o endereço na primeira vez com atenção total, e desconfie de qualquer alteração que apareça depois, porque endereço de recebimento não muda sozinho. A mudança inesperada de um endereço na hora de enviar ou receber é um dos sinais mais claros de que algo entre você e a rede foi comprometido.
Esse cuidado é o passo final de uma cadeia maior de posse. Ele faz mais sentido depois que você entende o papel da chave privada e depois que você já tirou as moedas do intermediário, tema de como migrar seus bitcoins da corretora para autocustódia. A verificação de endereço é o que garante que a posse recém-conquistada não escorra por um destino trocado.
A engenharia de custódia da Fugazzi Research parte de um princípio simples. A superfície de confiança precisa ser a menor possível, e o endereço é onde essa superfície costuma vazar. Quem estrutura patrimônio relevante em autocustódia encontra o método completo, do desenho de assinaturas ao protocolo de recebimento, nos estudos do Fugazzi Research. Verificar o endereço na tela do aparelho é a versão diária dessa mesma disciplina.
“A autocustódia tira o risco de contraparte e devolve o risco de operação. Verificar o endereço na tela do aparelho é o gesto que mantém esse segundo risco pequeno.”
Perguntas frequentes
Preciso conferir o endereço inteiro ou basta o início e o fim?
O endereço inteiro. Conferir só as pontas é exatamente o hábito que o envenenamento de endereço explora, porque o atacante gera uma string com início e fim iguais aos de um endereço seu conhecido e deixa o miolo diferente. Leia em blocos de quatro ou cinco caracteres, do primeiro ao último, e confira o meio com o mesmo cuidado das extremidades.
Por que não posso confiar no endereço que aparece no computador?
Porque o computador é justamente a superfície que o ataque compromete. Um programa malicioso pode reescrever o endereço exibido na tela ou trocar o que está na área de transferência no instante em que você cola. A tela da carteira de hardware deriva o endereço de forma independente, num ambiente que o sistema operacional não controla, e por isso é a fonte confiável.
O que é address poisoning?
É o envenenamento de endereço, uma técnica em que o atacante manda para você uma transação minúscula vinda de um endereço com início e fim parecidos com os de um endereço que você usa. A ideia é sujar seu histórico para que, na próxima vez que você copiar um endereço do extrato, você copie o do atacante sem perceber. A defesa é sempre verificar o endereço completo na tela do aparelho, e nunca reaproveitar endereços do histórico sem conferir.
Uma carteira somente leitura protege contra endereço trocado?
Não por si só. A carteira somente leitura, ou watch-only, deixa você acompanhar saldos e gerar endereços de recebimento sem expor a chave privada, o que é ótimo para privacidade e conveniência. Mas os endereços continuam aparecendo numa máquina conectada, então eles ainda precisam ser confirmados na tela do aparelho antes de virar destino de qualquer valor.
O endereço mudou na hora de enviar. O que faço?
Pare a operação. Endereço de recebimento não muda sozinho, então uma alteração inesperada entre copiar e colar é um sinal forte de sequestro da área de transferência por um programa malicioso. Não confirme a transação, revise o endereço na tela do aparelho contra a fonte original, e trate a máquina como potencialmente comprometida até entender a causa.
Fugazzi Research
Do conceito ao método aplicado.
Este conteúdo é gratuito. Nas recomendações da casa, o método é aplicado com dados, simulações e acompanhamento de cada call até o encerramento. Assinatura por R$ 249,90/mês, cancele a qualquer momento.
Ver o estudo aplicadoContinue no cluster
O que é hardware wallet e o que ela protege de fato
O que é uma chave privada e por que ela é a única coisa que importa
O que é um caminho de derivação e por que sua seed gera infinitas carteiras
Como configurar sua primeira hardware wallet do zero
Como migrar seus bitcoins da corretora para autocustódia
Sabor Bitcoin: O Custo Oculto da Conveniência dos ETFs no Brasil
Sobre o autor
Eduardo BiasiCNPI 10189
Analista de Valores Mobiliários credenciado pela APIMEC Brasil sob a Resolução CVM nº 20/2021, responsável técnico pela análise da Fugazzi Research.
Validar credenciamento na APIMECAutoria e conformidade
Conteúdo educacional produzido de forma independente pela Fugazzi Research, casa de análise credenciada como pessoa jurídica pela APIMEC Brasil, sob responsabilidade técnica do analista Eduardo Biasi, CNPI 10189 (Certificação Nacional do Profissional de Investimento), credenciado pela APIMEC Brasil sob a Resolução CVM nº 20/2021. Regulatório e Compliance.
Este conteúdo tem caráter informativo e não constitui oferta, solicitação ou recomendação de compra ou venda de valores mobiliários ou de qualquer ativo. Investimentos envolvem riscos. Rentabilidade passada não representa garantia de resultados futuros. Criptoativos, derivativos e operações alavancadas envolvem risco elevado, incluindo a possibilidade de perda total ou superior ao capital investido. A decisão de investimento é de responsabilidade do investidor e deve observar seu perfil.