Olá, gostaria que alguém pudesse esclarecer uma dúvida a respeito do seguinte assunto: qual o impacto que uma passphrase realmente tem na segurança de uma chave privada? A situação hipotética que eu deixo é a seguinte:
Uma chave de Bitcoin criada a partir de entropia real, utilizando 100 lançamento de dados com 6 faces. Gerando assim, uma chave de 300 bits representada por 24 palavras.
Contudo, será utilizada uma passphrase ‘fraca’, a exemplo de 1234.
Qual o impacto, se houver, que essa “25” tem na entropia e na segurança dessa chave privada?
Para entender o impacto de uma passphrase de baixa entropia é necessário entender seu papel do processo de derivação.
Um dos passos do bip39 para transformar as 12 ou 24 palavras em uma chave privada é passar os bits por uma função pbkdf2. Esta função recebe como parâmetro um “salt”. Este salt é a sua passphrase. Caso nenhuma passphrase seja informada, será utilizado uma string vazia.
Caso alguém tenha acesso às 12 ou 24 palavras, e sua passphrase seja de baixa entropia, este atacante poderia tentar uma ataque de força bruta testando passar para a função pbkdf2 diferentes passphrases até que ela gere uma chave privada que tenha saldo.
Em resumo, a passphrase faz com que as palavras da sua seed (12 ou 24 palavras) gerem um conjunto de chaves privadas diferente do que gerariam caso nenhuma passphrase fosse utilizada.
Ela funciona como um elemento extra na segurança e que pode receber um texto arbitrário.
Ou seja, em uma situação em que as 12 ou 24 palavras nunca sejam expostas, embora a passphrase possua baixa entropia e a chave privada “original” (sem passphrase) tenha sido gerada com alta e real entropia, isso não interferirá em nada na segurança da chave privada, pois a passphrase não tem o “poder” de diminuir a entropia da chave privada.