Os pesquisadores descobriram uma vulnerabilidade que reside no JavaScript SecureRandom() função usada para gerar endereços Bitcoin aleatórios e suas chaves privadas correspondentes.
A falha torna antigos endereços de Bitcoin gerados no navegador ou via aplicativo de carteira baseado em JS vulneráveis a ataques de força bruta. Como um resultado, os invasores podem obter acesso às carteiras dos usuários e roubar seus fundos de criptomoeda.
JavaScript SecureRandom() Biblioteca não é aleatória com segurança
A criptografia é profundamente implacável com os erros. Você não mexe com isso. Você não rola o seu próprio - você precisa de algoritmos endurecidos para a batalha que foram testados pela tortura pelos criptógrafos mais tecnicamente implacáveis que você pode encontrar, disse os pesquisadores que relataram o problema.
Em cima disso, eles adicionaram, “o popular JavaScript SecureRandom() a biblioteca não é aleatória com segurança”.
O problema é decorrente da função não gerar dados aleatórios como deveria.
A função irá gerar chaves criptográficas que, apesar de seu comprimento, tem menos que 48 pedaços de entropia, o que significa que a saída da chave não terá mais do que 48 pedaços de entropia, mesmo que sua semente tenha mais do que isso, pesquisadores adicionaram.
SecureRandom() em seguida, executa o número obtido por meio do algoritmo RC4 obsoleto, que é conhecido por ser mais previsível do que deveria ser, i.e. menos pedaços de entropia. portanto, sua chave é mais previsível.
Todas as alternativas acima significam que os endereços Bitcoin gerados por meio do SecureRandom() funções estão sujeitas a ataques de força bruta que podem revelar a chave privada do usuário. Se o último acontecer, os fundos do usuário podem ser roubados.
Quem é afetado?
Pelo visto, todas as carteiras geradas por ferramentas js dentro dos navegadores desde o início do Bitcoin até 2011 são afetados pela fraqueza Math.random se aplicável às implementações relacionadas, o Math.random ou RC4 (cromada) fraqueza entre 2011 e 2013, e a fraqueza do RC4 para usuários do Chrome até o final de 2015, pesquisadores esclareceram.
Em outras palavras, essas chaves serão fáceis de quebrar por ataque de força bruta do poder de computação.
A falha afeta os usuários se eles usarem endereços criptográficos antigos gerados por JavaScript no navegador. Se esse é o caso, os usuários devem retirar imediatamente seus fundos dessas carteiras.
Os seguintes são provavelmente afetados:
– BitAddress pré-2013;
– bitcoinjs antes 2014;
– software atual que usa repositórios antigos que eles encontraram no Github.
Endereços recentes gerados por JavaScript provavelmente não são afetados, pesquisadores dizem. Contudo, JavaScript não é a melhor maneira de gerar chaves, então é melhor se os usuários migrarem seus fundos.