A criptografia simétrica GnuPG é vulnerável a ataques de força bruta na frase secreta?

2

O manual sugere que a criptografia simétrica é apropriada (e, portanto, não menos segura que a chave pública criptografia?) quando só você precisa acessar o texto simples. Mas, de acordo com a esta postagem, pois gpg --symmetric requer apenas uma passphrase, um atacante só precisa forçar brutamente essa senha em vez da chave completa de 128/256 bits gerada a partir dela.

Parece-me que o procedimento correto é, na verdade, ter um arquivo de chave de 128/256 bits que é usado para criptografar simetricamente meus dados; que é simetricamente criptografado com uma chave gerada a partir de uma frase secreta, assim como as chaves privadas são protegidas. Isso exigiria que um invasor executasse brutalmente a chave simétrica completa - mesmo que eles adquirissem meu arquivo de chave, eles ainda teriam que forçar minha frase-chave com força bruta.

O gpg suporta esse tipo de uso? Minha compreensão da situação é falha? Existe uma razão pela qual esse não é um caso de uso válido?

-

Ou, em outras palavras:

Em essa pergunta supõe-se que a proteção da frase secreta seja suficiente - mas basicamente a minha pergunta é: e se eu não confiar em mim mesmo para memorizar uma boa senha de 256 bits? Posso usar um arquivo de chave simétrica apenas com a minha chave privada? Obviamente eu poderia realmente usar minha chave privada, mas o manual sugere que a criptografia simétrica seria a escolha idiomática nessa situação.

    
por kgmstwo 19.09.2015 / 06:42

1 resposta

2

No OpenPGP, existem duas possibilidades para derivar a chave simétrica (sessão) da frase secreta: usando diretamente a frase secreta para derivar a chave, ou gerando uma chave aleatória que é criptografada com a chave gerada. Ainda assim, em ambos os casos, a chave simétrica é sempre armazenada junto com o texto cifrado e a chave simétrica não pode ser separada sem perder a compatibilidade com o formato OpenPGP. No final, a chave também pode ser forçada pela frase-senha, não importa que tipo de armazenamento a chave seja usada.

O OpenPGP força a senha com força bruta, gerando uma grande entrada para hash (iterando a senha várias vezes para a entrada hash). Desta forma, forçar a senha é muito mais caro. De RFC 4880, OpenPGP, 3.7.1.3. S2K iterado e salgado :

This includes both a salt and an octet count. The salt is combined with the passphrase and the resulting value is hashed repeatedly. This further increases the amount of work an attacker must do to try dictionary attacks.

No GnuPG, o número de vezes para repetir a senha (e algumas outras opções) pode ser tweaked usando as opções --s2k-* .

    
por 20.09.2015 / 13:14