Por que a fonte de entropia na geração de chaves privadas é tão importante
Este artigo está disponível nos seguintes idiomas:
Você sabia que uma chave privada do Bitcoin é um número de 256 bits? Isso significa que existem cerca de 2^256 combinações possíveis — um número tão grande que supera o total de átomos no universo observável.
Private keys are the linchpin of cryptocurrency security, serving as the cryptographic equivalent of a master password for your digital assets. Their security relies heavily on randomness or entropy, which is crucial in generating them. Entropy is measured in bits, quantifying a system's degree of randomness or uncertainty.
Para entender a importância da aleatoriedade, considere: entropia ruim na geração de chaves privadas já causou vulnerabilidades graves e até invasões. Em 2024, mais de US$ 239 milhões foram perdidos devido a private keys comprometidas, mostrando como é fundamental garantir que essas chaves sejam geradas com entropia de alta qualidade.
Então, se uma chave privada do Bitcoin é só um número, quanto tempo um supercomputador levaria para quebrá-la usando força bruta? Continue lendo até o fim deste artigo para descobrir.
O que é entropia?
Entropia é uma medida de aleatoriedade ou imprevisibilidade, essencial para gerar chaves criptográficas seguras. O conceito vem da teoria da informação, onde a entropia quantifica o grau de incerteza de um sistema. Em outras palavras, quanto mais imprevisível algo é, maior sua entropia.
Alta entropia é fundamental para private keys em cripto, pois garante que as chaves sejam praticamente impossíveis de adivinhar ou quebrar por força bruta. Essa aleatoriedade geralmente vem de várias fontes, como eventos de hardware, ruídos ambientais ou interações do usuário, como movimentos do mouse e toques no teclado. O sistema operacional reúne esses eventos imprevisíveis para gerar um número realmente aleatório, que serve de base para uma chave privada segura.
Sem entropia suficiente, as chaves geradas podem se tornar previsíveis, tornando-se vulneráveis a ataques. Por exemplo, se a fonte de entropia for falha, pode gerar saídas iguais ou similares repetidamente, permitindo que invasores prevejam ou até recriem a chave privada.
Essa aleatoriedade é tão crucial que até sistemas sofisticados, como plataformas em nuvem e máquinas virtuais, utilizam hardware dedicado para garantir um fornecimento confiável de entropia de alta qualidade para operações criptográficas.
Como a entropia funciona?
Em carteiras de hardware, a entropia é essencial para gerar private keys seguras. Veja como funciona:
Fonte de entropia
Carteiras de hardware como a Tangem Wallet possuem Geradores de Números Aleatórios de Hardware (HRNGs) dedicados. Esses dispositivos geram aleatoriedade medindo fenômenos físicos, como ruído eletrônico ou variações térmicas. Essa entropia bruta é fundamental para criar private keys imprevisíveis.
Algumas carteiras permitem que o usuário contribua com entropia inserindo dados aleatórios manualmente, como jogadas de dados. Embora misturar entropia controlada pelo usuário com a gerada pelo hardware possa não alterar o grau de entropia, é um recurso interessante.
Geração da chave
Depois de coletar entropia suficiente, a carteira a utiliza para gerar a private key. Esse processo normalmente envolve combinar a entropia com algoritmos criptográficos como SHA-256 para criar uma chave de 256 bits. Muitas carteiras de hardware usam o padrão BIP39 para gerar uma frase mnemônica (sequência de 12 a 24 palavras) a partir da entropia. Essa frase pode ser usada para recuperar a chave privada, se necessário.
Segurança do processo
O firmware da carteira garante que a entropia seja bem misturada para evitar previsibilidade. Em seguida, armazena a private key em um ambiente resistente a violação dentro do dispositivo. Por isso, a maioria das carteiras de hardware possui um elemento seguro com certificação CC. O firmware da Tangem também foi auditado duas vezes por empresas independentes de segurança: Kudelski Security e Riscure.
De modo geral, carteiras de hardware isolam os processos de geração de entropia e armazenamento das chaves do restante das operações do dispositivo. Essa separação minimiza o risco de exposição a malwares ou outras ameaças externas.
Backup e recuperação
A frase mnemônica gerada a partir da entropia pode ser anotada e guardada em local seguro. Ela é fundamental para recuperar a carteira caso o dispositivo seja perdido ou danificado. A própria frase contém a entropia usada para gerar a chave, tornando-se um método de backup seguro.
Carteiras de hardware dependem de entropia de alta qualidade para garantir que as private keys geradas sejam seguras e resistentes a ataques, tornando esse um dos métodos mais seguros para armazenar criptomoedas.
Por que a entropia é importante?
Como contêm as mesmas informações, mas em formatos diferentes, sua entropia deve ser tão privada quanto sua frase de recuperação. Reforçando: qualquer pessoa com acesso à sua entropia pode acessar toda a sua carteira!
Assim como a seed phrase dá acesso a todas as suas private keys e, portanto, a todas as contas protegidas por aquela carteira, o mesmo vale para sua entropia! Por isso, é fundamental para a segurança garantir que sua entropia seja o mais aleatória possível e difícil de deduzir.
Você não gostaria que alguém adivinhasse sua entropia e tivesse acesso aos seus fundos, certo? É justamente por isso que esse número precisa ser tão difícil de prever. Deve ser tão aleatório que adivinhar a sequência ou encontrar a mesma combinação duas vezes seja estatisticamente impossível.
Se sua entropia for fácil de adivinhar, hackers podem explorar isso e acessar seus fundos. Por isso, escolher uma carteira cripto que leve isso em conta é extremamente importante.
Entendendo entropia e seed phrases
A aleatoriedade da sua seed phrase é fundamental para manter a segurança. Selecionar palavras manualmente ou usar padrões previsíveis enfraquece muito a proteção da sua carteira. O método baseado em entropia utilizado pela Tangem garante o nível de aleatoriedade necessário para uma proteção robusta contra ataques cripto.
Embora a Tangem forneça as ferramentas para gerar entropia segura, é importante lembrar que proteger sua seed phrase é sua responsabilidade. Nunca compartilhe essa informação com ninguém, nem mesmo com representantes da Tangem. Sua seed phrase é a chave para seus ativos digitais, e manter esse segredo é vital para a segurança da sua carteira.
Exploit na Trust Wallet: por que entropia forte faz diferença
Ao escolher uma carteira cripto, é essencial priorizar como ela gera aleatoriedade. A violação de segurança na Trust Wallet em 2022 foi atribuída principalmente à previsibilidade na geração de entropia da carteira.
SecBit fez um ótimo trabalho pesquisando e explicando essa vulnerabilidade em seu artigo: Trust Wallet's Fomo3D Summer: Fresh Discovery of Low Entropy Flaw From 2018, mas vamos destacar os principais pontos aqui.
A plataforma iOS da Trust Wallet utilizava a biblioteca trezor-crypto para gerar palavras mnemônicas BIP39. A biblioteca continha um código de exemplo que nunca deveria ter sido usado em ambiente real. O próprio código trazia um aviso dizendo que não era para uso em situações reais, apenas para testes.
- O código tem duas partes principais: random32() e random_buffer().
- random32():
- Essa parte cria números aleatórios, mas de forma pouco segura.
- Usa o horário atual para iniciar o processo de geração dos números.
- O problema é que, se você souber aproximadamente quando o número foi criado, pode conseguir adivinhar.
- Pior ainda: se duas pessoas criarem números no mesmo segundo, obterão o mesmo "aleatório". - random_buffer():
- Essa parte preenche um espaço com bytes aleatórios (unidades de dados).
- Usa o random32() para isso, então herda os mesmos problemas de segurança. - O grande problema:
- Esse código foi usado para criar seed phrases que dão acesso às carteiras de criptomoedas dos usuários.
- Como a aleatoriedade não era realmente aleatória, ficou muito mais fácil para hackers adivinharem essas frases do que deveria ser.
- Em vez de adivinhar entre milhões de possibilidades, bastava tentar entre alguns milhares (baseado nos horários possíveis em que a frase foi criada). - O erro:
- A Trust Wallet ignorou esse aviso e usou o código mesmo assim.
- Isso fez com que a entropia das frases usadas para criar as carteiras dos usuários fosse muito mais fácil de recriar do que deveria.
A recente violação de segurança na Trust Wallet reforça a importância vital de uma geração forte de entropia para proteger carteiras cripto. A Trust Wallet resolveu o problema compensando os usuários pelos prejuízos.
Como a Tangem Wallet gera entropia
A Tangem Wallet oferece segurança robusta para seus ativos cripto, começando pelo processo de geração de entropia. A carteira utiliza um Gerador de Números Aleatórios Verdadeiro certificado, amplamente testado por especialistas independentes. Isso garante que os números gerados sejam imprevisíveis, protegendo seus ativos contra possíveis ataques.
Quanto tempo levaria para quebrar uma chave privada do Bitcoin por força bruta?
Para responder a essa pergunta, vamos analisar o processo e considerar a escala do desafio:
Uma chave privada do Bitcoin é, de fato, apenas um número, mas é imensamente grande. Especificamente, é um número de 256 bits, o que significa que existem 2^256 chaves privadas possíveis.
Mesmo com os supercomputadores mais potentes disponíveis hoje, quebrar uma chave privada do Bitcoin por força bruta levaria um tempo inimaginável. Estamos falando de escalas de tempo muito superiores à idade do universo.
Assumindo que um supercomputador pudesse checar 1 trilhão (10^12) chaves por segundo, encontrar uma única private key ainda levaria cerca de 3,67 x 10^57 anos em média. O universo tem cerca de 13,8 bilhões de anos (1,38 × 10^10 anos).
Ou seja, o tempo para quebrar uma private key do Bitcoin é cerca de 1,33 × 10^47 vezes a idade do universo.
É impressionante o que conseguimos realizar em um planeta jovem e úmido chamado Terra.