Oferecido por
Featured

Os lançamentos de dados mantêm as chaves de Bitcoin offline, mas nem todo mundo vai se dar ao trabalho de fazer isso

Um dado padrão de seis faces gera cerca de 2,6 bits de informação imprevisível a cada lançamento. Isso pode não parecer muito, mas, quando repetidos um número suficiente de vezes, esses lançamentos podem criar a aleatoriedade bruta necessária para proteger uma carteira de bitcoins sem depender de software ou de um componente eletrônico.

ESCRITO POR
PARTILHAR
Os lançamentos de dados mantêm as chaves de Bitcoin offline, mas nem todo mundo vai se dar ao trabalho de fazer isso

Pontos principais

  • Um lançamento justo de um dado de seis faces fornece cerca de 2,585 bits de entropia, de acordo com a fórmula de Claude Shannon.
  • A documentação da Coinkite afirma que 50 jogadas de dado atendem ao padrão de 128 bits para uma semente de carteira de bitcoin.
  • A análise “Wizard Sardine”, de Kevin Loaec, apontou riscos nas ferramentas do Coldcard além da semente principal.

Por que é tão difícil prever o resultado de um lançamento de dado

Claude Shannon, o matemático que fundou a teoria da informação, usou a entropia para medir o grau de incerteza de um resultado. Com um dado de seis faces imparcial, cada face tem a mesma chance de aparecer: uma em seis. Isso confere a cada lançamento aproximadamente 2,585 bits de entropia. O lançamento de uma moeda produz 1 bit, enquanto um dado de oito faces produz 3 bits.

Image of different colored diceA recente polêmica em torno do Coldcard impulsionou a geração de sementes baseada em dados nas redes sociais. Alguns usuários agora consideram isso essencial, outros afirmam que isso protegeu seus fundos, enquanto operadores experientes apontam que a maioria dos novatos não tolerará um processo de configuração lento e propenso a erros.

O importante não é que um dado rolando se comporte aleatoriamente no nível atômico. Isso não acontece. O resultado é regido pela física, mas há muitas variáveis pequenas mudando ao mesmo tempo para que alguém possa calcular o resultado com confiabilidade. O dado sai da mão com uma determinada velocidade, ângulo, altura e giro; em seguida, atinge a mesa e muda de direção a cada quicada.

Na prática, mesmo uma mudança minúscula no lançamento pode produzir um resultado completamente diferente. Uma posição ligeiramente diferente do dedo ou um arremesso um pouco mais forte altera a trajetória o suficiente para que o número final não possa ser previsto apenas observando o movimento. O resultado pode ser determinístico em teoria, mas, para a geração de carteiras, o que importa é que um invasor não consiga reproduzi-lo ou calculá-lo.

Transformando os lançamentos de dados em dados utilizáveis

Um computador não pode usar uma lista de resultados de jogadas de dados diretamente. As jogadas devem primeiro ser convertidas em dados binários, e o método de conversão é importante.

Um método básico de ímpar ou par é fácil de entender, mas desperdiça grande parte da entropia disponível. Cada jogada é reduzida a um único bit, embora o dado produza cerca de 2,6 bits de informação. Métodos mais eficientes coletam uma longa sequência de jogadas e processam a sequência inteira, geralmente por meio de uma função hash criptográfica. Isso preserva muito mais da aleatoriedade.

O mesmo princípio aparece no Diceware, um método de longa data para criar senhas seguras, e na geração manual de carteiras de Bitcoin. Uma frase típica de recuperação de carteira de 12 palavras é construída a partir de 128 bits de entropia. A cerca de 2,6 bits por jogada, aproximadamente 50 jogadas aleatórias fornecem informação bruta suficiente para ultrapassar esse limite.

A Coinkite, fabricante da carteira de hardware Coldcard, recomenda 99 ou mais jogadas para usuários que buscam cerca de 256 bits de entropia. Isso não torna a carteira duas vezes mais difícil de usar, mas confere ao segredo gerado uma margem de segurança matemática muito maior.

Um teste no mundo real de sementes geradas por dados

Essa distinção tornou-se importante depois que a Coinkite divulgou um problema de firmware que remonta a 2021. Em alguns dispositivos Coldcard, o software podia ignorar o gerador interno de números aleatórios do hardware e, em vez disso, usar um processo mais fraco vinculado a informações não confidenciais do dispositivo.

Como partes desse processo podiam ser reconstruídas, os invasores conseguiram restringir as possíveis chaves da carteira, em vez de vasculhar todo o espaço de chaves. A falha foi associada ao roubo de cerca de 1.128,6633 BTC de aproximadamente 1.100 endereços, até as 13h, horário da Costa Leste.

X screenshot
Fonte da imagem: X

As sementes de carteira criadas inteiramente a partir de um número suficiente de jogadas independentes de dados não foram expostas pela mesma via. Esses usuários haviam fornecido sua própria entropia, de modo que o gerador de hardware defeituoso não foi responsável pela criação do segredo principal da carteira.

Essa proteção, no entanto, se aplicava apenas à semente produzida a partir dos dados. Ela não protegia automaticamente todos os outros segredos gerados pelo dispositivo.

Wizard Sardine analisa as letras miúdas

O pesquisador de segurança Kevin Loaec publicou uma avaliação da vulnerabilidade do Coldcard no site do Wizard Sardine em 1º de agosto. Sua observação mais importante dizia respeito aos recursos do Coldcard que geravam seus próprios segredos separadamente da semente principal da carteira.

“Acredito que seja extremamente importante ressaltar que mesmo os usuários que importaram ou geraram uma semente com dados estão vulneráveis, caso utilizem os recursos a seguir”, escreveu Loaec no X, antes de apresentar um diagrama do sistema afetado.

O diagrama mostra o gerador de números aleatórios defeituoso alimentando várias funções secundárias do Coldcard. Entre elas estavam a criação de carteiras de papel, a clonagem de dispositivos, a criptografia de sessões USB, o recurso de transferência “Secret Teleport”, a criação de chaves de co-assinatura, o gerador de senhas integrado e os códigos de autenticação do módulo de segurança de hardware.

X screenshot
Fonte da imagem: postagem no X pelo pesquisador de segurança Kevin Loaec.

Uma carteira principal criada com 99 lançamentos de dados permanecia em uma parte separada do sistema. O problema era que as outras ferramentas ainda podiam solicitar novos números aleatórios do gerador defeituoso. Como resultado, uma semente segura não garantia que todas as senhas, backups, códigos de autenticação ou chaves secundárias criadas no mesmo dispositivo fossem igualmente seguras.

Por que a maioria dos novos usuários não vai jogar os dados

A entropia gerada por dados é tecnicamente válida quando realizada corretamente, mas não é uma opção padrão realista para a maioria dos novos usuários. Lançar um dado 50 ou 99 vezes, inserir cada resultado com precisão e confirmar que nenhum lançamento foi pulado ou duplicado exige paciência e muita concentração. Um número digitado incorretamente pode alterar completamente a carteira final, e a maioria dos dispositivos não consegue distinguir se o erro decorreu de um lançamento inválido, de um erro de digitação ou de um mal-entendido das instruções.

X screenshot
Fonte da imagem: X

O processo também apresenta riscos que não existem com um gerador de hardware que funcione corretamente. Os usuários podem anotar os resultados em papel, fotografá-los, inserir os dados em uma ferramenta online ou deixar a lista em algum lugar onde outra pessoa possa encontrá-la. Algumas pessoas lançam o dado de forma repetitiva ou controlada, usam um dado viciado ou danificado, ou param antes do tempo porque o processo parece excessivo. A matemática pode ser sólida, mas a segurança do resultado depende inteiramente do procedimento do usuário.

X screenshot
Fonte da imagem: X

É por isso que jogar o dado nem sempre é considerado o melhor método para muitas pessoas, mesmo entre usuários experientes de bitcoin. Ele substitui a confiança em um dispositivo pela confiança em um processo manual. Para um usuário tecnicamente cuidadoso que entende de entropia, verifica o método e mantém a sequência de jogadas em sigilo, essa troca pode fazer sentido. Para um comprador comum que está configurando uma carteira pela primeira vez, isso aumenta as chances de cometer um erro irreversível, além de ser um processo incômodo.

X screenshot
Fonte da imagem: X

Também é difícil imaginar uma ampla adoção do bitcoin dependendo de pessoas sentadas à mesa registrando 99 resultados de jogadas de dados antes de poderem receber fundos e fazê-lo com segurança. As práticas de segurança precisam se adaptar à vida real em casa, às agendas lotadas, às distrações e aos usuários que não querem estudar criptografia. A entropia manual deve permanecer disponível como uma opção avançada, mas o objetivo de longo prazo é ter hardware e software que gerem aleatoriedade forte de maneira correta, expliquem claramente o que está acontecendo e exijam o mínimo possível de conhecimento especializado.

O que os proprietários de Coldcard devem verificar

Os proprietários de dispositivos Coldcard afetados devem, primeiro, verificar a versão do firmware instalada no dispositivo. Em seguida, devem analisar quais recursos utilizaram enquanto usavam o firmware antigo, em vez de se concentrarem apenas em como a semente da carteira principal foi gerada.

Qualquer pessoa que tenha usado o dispositivo afetado para gerar uma carteira de papel, um segredo de clonagem, uma senha, uma chave de co-assinatura ou um código de autenticação pode precisar substituir esse material imediatamente. A instalação da atualização impede que o mesmo problema afete novos segredos, mas não corrige nada que tenha sido criado anteriormente.

O incidente também reforça a justificativa prática para configurações de carteiras com vários fornecedores. Em um esquema de assinaturas múltiplas, dispositivos de hardware separados, de diferentes fabricantes, podem ser necessários para aprovar uma transação. Essa estrutura não torna impossíveis os bugs de firmware, mas pode impedir que um único gerador de números aleatórios defeituoso exponha sozinho toda a carteira.

Este artigo foi traduzido do inglês usando IA. A versão original em inglês é a fonte autorizada; traduções automáticas podem conter imprecisões, especialmente em terminologia jurídica e regulatória.