Sua passphrase é forte o suficiente?

Existem várias abordagens para criar uma boa passphrase para sua carteira. Você pode escolher algo rápido de digitar, mas não tão fácil de lembrar, como “5Xai1WhSYu”, ou optar por uma frase que seja fácil de lembrar, mas que leve mais tempo para ser inserida na sua Hardware Wallet, como “Comprar uma Trezor foi a escolha mais sábia que já fiz.”

Outra opção é criar uma sequência de palavras aleatórias, como “cavalo correto bateria grampo”. Tudo depende do que é mais fácil para você memorizar e da frequência com que você insere a passphrase. Neste post do blog, queremos dar a você uma ideia melhor de quão forte sua passphrase é, dependendo do método e do comprimento que você escolher.

Opção 1: Uma sequência aleatória de palavras

O primeiro método para criar uma passphrase é escolher várias palavras de uma lista de palavras, aleatoriamente. Você pode pegar um dicionário, abri-lo em uma página aleatória e selecionar uma palavra colocando o dedo na página, com os olhos fechados, repetindo esse processo várias vezes para obter uma passphrase de quatro ou cinco palavras.

No entanto, humanos não são muito bons em fazer escolhas aleatórias, então um método melhor pode ser selecionar palavras rolando alguns dados e usando o resultado para escolher uma palavra de uma lista.

Uma escolha popular é a lista Diceware de Arnold Reinhold [Rei95], publicada pela primeira vez em 1995. A lista contém 7.776 palavras, que é igual ao número de possíveis combinações ordenadas de cinco dados de seis lados (7776 = 6⁵). Recentemente, Joseph Bonneau fez melhorias nesta lista [Bon16], eliminando palavras incomuns ou difíceis de soletrar e introduzindo uma versão reduzida com apenas 1.296 palavras.


Você rola apenas quatro dados para selecionar palavras da Lista Diceware Curta (1296 = 6⁴). A lista funciona como um dicionário. Cada palavra é precedida por um número exclusivo de quatro dígitos. Esses quatro dígitos indicam a palavra que você deve escolher ao rolar esses números nos dados. Por exemplo, se você rolar:

Então, você deve escolher a palavra com o número 4216, que é “mover”:

4215 boca
4216 mover
4221 filme

Se você usar a Lista Diceware Curta para gerar sua passphrase, precisará de mais palavras para alcançar o mesmo nível de segurança da Lista Diceware Longa, mas as palavras na lista curta são menores. Como resultado, uma passphrase de quatro palavras da Lista Diceware Longa terá em média 28 letras, enquanto uma passphrase de cinco palavras da Lista Diceware Curta terá apenas 22,7 letras, em média. Por exemplo, as seguintes passphrases oferecem o mesmo nível de segurança:

Usando Diceware Curta: “flutuar volts limas rima ninho

Usando Diceware Longa: “rodovia opor giro gerenciando

Opção 2: Uma passphrase de caracteres aleatórios

Outro método para criar uma passphrase é usar as mesmas regras que você geralmente deve seguir para criar uma senha. Escolha uma sequência aleatória de caracteres com letras maiúsculas e minúsculas, números, pontuação e caracteres especiais como #!@+ etc.

Se você não gosta de usar caracteres especiais, por exemplo, não precisa necessariamente usá-los, mas precisará aumentar o comprimento da passphrase para alcançar o mesmo nível de segurança. Da mesma forma, se achar difícil lembrar se uma letra é maiúscula ou minúscula, pode optar por usar apenas letras minúsculas na sua passphrase, mas, novamente, será necessário que a passphrase seja mais longa para compensar.

Aqui estão alguns exemplos:

Opção 3: Uma frase válida

Usar uma frase válida ou um poema como passphrase também é uma opção. Será fácil de lembrar, mas precisa ser longa o suficiente e ter um nível de aleatoriedade adequado para garantir segurança.

O comprimento ideal depende da quantidade de entropia (aleatoriedade) por palavra. As estimativas para uma frase em inglês gramaticalmente correta e semanticamente válida variam. Uma estimativa conservadora é de 5,7 bits por palavra, conforme [Mon11], que é o valor usado nos cálculos abaixo.

O maior problema com essa opção permanece: humanos não são muito bons em fazer escolhas aleatórias. Você certamente não pode usar sua citação favorita de um livro ou filme, pois estas estariam no topo da lista de passphrases de um invasor. Da mesma forma, não pode usar um poema publicado, mas sim um poema que você mesmo crie.

Comprimento e segurança da passphrase

Assuma que um invasor roube sua seed de recuperação BIP-0039 e tente adivinhar a passphrase correta para acessar sua carteira. Eles podem fazer um ataque de força bruta/dicionário para buscar possíveis passphrases que você possa ter usado. Se você escolheu bem sua passphrase, isso exigirá muito tempo e poder computacional do invasor.

Uma maneira de realizar essa tentativa é alugando uma GPU NVIDIA Tesla V100 da Amazon AWS, capaz de calcular 2160 milhões de hashes SHA-512 por segundo (veja os benchmarks do hashcat) ao custo de $3,06 por hora (veja Amazon EC2 Pricing).

Com a seed de recuperação em mãos, verificar uma passphrase requer 2048 cálculos HMAC, a derivação de algumas chaves públicas e a verificação se alguma delas aparece na blockchain. Isso totaliza mais de 4096 cálculos SHA-512, além do trabalho adicional de verificação na blockchain. Assim, o invasor poderia verificar no máximo 620 milhões de passphrases por $1.

Isso pode parecer um número enorme, mas se você usar uma passphrase aleatória de 12 letras minúsculas, o invasor precisaria verificar cerca de 48.000.000.000.000.000 passphrases em média antes de acertar a correta. Isso se traduz em $77 milhões nos preços de hoje! Se você adicionar letras maiúsculas e números, precisaria apenas de 9 ou 10 letras aleatórias para alcançar o mesmo nível de segurança.

É importante considerar que o custo do poder computacional deve diminuir no futuro, tornando esse ataque mais barato. Ao escolher o comprimento da passphrase, você deve garantir que ela permaneça segura pelos próximos anos.

De acordo com a lei de Moore, o custo de qualquer esforço de ataque fixo cai pela metade a cada 18 meses [Len05]. Isso significa que em 10 anos o custo de um ataque pode cair para um centésimo dos custos atuais. No exemplo acima, isso se traduz em cerca de $750.000, o que provavelmente não valeria a pena para um invasor, a menos que ele saiba que você está armazenando mais de $1.000.000 em criptoativos na sua Trezor.

Por fim, a tabela que você estava esperando. Esta tabela mostra quanto custaria quebrar sua passphrase hoje e em 2030, dependendo do comprimento e método que você usa:

Por exemplo, se você quiser uma passphrase que custe pelo menos $10.000.000 para ser quebrada em 2030 e planeja usar a lista curta do Diceware, então, de acordo com a tabela, você precisará criar uma passphrase de 5,8 palavras. Naturalmente, você deve arredondar para cima, criando uma passphrase de 6 palavras.

O tempo necessário para realizar um ataque de força bruta em qualquer linha da tabela é imenso. As estimativas exatas variam de acordo com o poder computacional disponível para o invasor, por isso, o custo em dólares é uma métrica mais adequada.

Mostre-me a matemática

Na tabela, trabalhamos com a suposição de que um invasor pode alugar uma GPU NVIDIA Tesla V100 da Amazon AWS, que, conforme explicado acima, pode ser usada para verificar 620 milhões de passphrases por $1. Portanto, a questão é: se o invasor tentar passar por todas as passphrases possíveis de um determinado comprimento e construídas usando um método específico, quantas ele precisará verificar antes de encontrar a correta? Em média, o número de passphrases que precisam ser verificadas é metade do total.

Para passphrases de caracteres aleatórios, o número total de passphrases de um determinado comprimento é \( n^k \), onde \( n \) é o tamanho do alfabeto e \( k \) é o comprimento da passphrase em caracteres. Assim, para letras minúsculas, \( n = 26 \); para alfanumérico minúsculo, \( n = 36 \); para alfanumérico sensível a maiúsculas, \( n = 62 \); e para todos os caracteres ASCII imprimíveis, \( n = 95 \).

Para passphrases de palavras aleatórias, o número total é novamente \( n^k \), mas agora \( n \) é o número de palavras na lista de palavras e \( k \) é o comprimento da passphrase em palavras, então \( n = 7776 \) para o Diceware Longo e \( n = 1296 \) para o Diceware Curto.

Para uma passphrase em inglês válida como uma sentença, o número total depende da entropia por palavra. Conforme mencionado acima, usamos a estimativa de 5,7 bits por palavra de [Mon11]. Nesse caso, o número total de passphrases é \( 2^{(5.7 \times k)} \approx 52^k \), onde \( k \) é o comprimento da passphrase em palavras.

Uma vez que você tenha o número total de passphrases, divida-o por 2 e, em seguida, divida o resultado por 620 milhões para obter o custo em dólares hoje. Lembre-se de que, em média, o invasor precisa verificar apenas metade do número total de passphrases, e é por isso que é necessário dividir por 2.

Quanto à previsão do custo do ataque nos próximos anos, assumimos a lei de Moore, segundo a qual o custo de qualquer esforço de ataque fixo cai pela metade a cada 18 meses. Portanto, para calcular o custo do ataque em \( m \) meses a partir de hoje, pegue a estimativa do custo atual e divida por \( 2^{(m/18)} \). Na tabela acima, usamos \( m = 126 \) meses para janeiro de 2030.

Compartilhe este artigo nas redes sociais

Veja outras categorias

Artigos relacionados

____