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

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

Omanualsugere que a criptografia simétrica é apropriada (e, portanto, não menos segura que a criptografia de chave pública?) quando você só precisa acessar o texto simples. Mas de acordo comessepost, como gpg --symmetricrequer apenas uma senha, um invasor só precisa forçar essa senha com força bruta, em vez da chave completa de 128/256 bits gerada a partir dela.

Parece-me que o procedimento correto é realmente ter um arquivo de chave de 128/256 bits que é usado para criptografar simetricamente meus dados; que por sua vez é criptografado simetricamente com uma chave gerada a partir de uma senha, assim como as chaves privadas são protegidas. Isso exigiria que um invasor aplicasse força bruta na chave simétrica completa - mesmo que adquirisse meu arquivo de chave, ele ainda teria que aplicar força bruta em minha senha.

Suporta gpgesse tipo de uso? Minha compreensão da situação é falha? Existe uma razão pela qual este não é um caso de uso válido?

--

Ou dito de outra forma:

Emessepergunta, presume-se que a proteção por senha seja suficiente - mas basicamente 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 como minha chave privada? Obviamente eu poderia usar minha chave privada, mas o manual sugere que a criptografia simétrica seria a escolha idiomática nesta situação.

Responder1

No OpenPGP, existem duas possibilidades permitidas para derivar a chave simétrica (de sessão) da senha: usar diretamente a senha para derivar a chave ou gerar uma chave aleatória que é criptografada com a chave gerada. No entanto, 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 por meio da senha, independentemente do tipo de armazenamento da chave usado.

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

Isso inclui uma contagem de sal e de octetos. O salt é combinado com a senha e o valor resultante é hash repetidamente. Isso aumenta ainda mais a quantidade de trabalho que um invasor deve realizar para tentar ataques de dicionário.

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

informação relacionada