Gostaria de poder verificar qual algoritmo simétrico (interno) foi usado para criptografar um arquivo com GPG usando uma chave pública.
Em algum lugar que li, isso pode ser feito com --list-packets
, então tentei
$ gpg --list-packets encrypted_file.asc
gpg: encrypted with 256-Bit ECDH key, ID 0865135E90D1AF38, created 2020-03-20
"First Last <[email protected]>"
# off=0 ctb=84 tag=1 hlen=2 plen=94
:pubkey enc packet: version 3, algo 18, keyid 0865135E90D1AF38
data: [263 bits]
data: [392 bits]
# off=96 ctb=d2 tag=18 hlen=3 plen=1965 new-ctb
:encrypted data packet:
length: 1965
mdc_method: 2
# off=118 ctb=a3 tag=8 hlen=1 plen=0 indeterminate
:compressed packet: algo=1
# off=120 ctb=cb tag=11 hlen=2 plen=0 partial new-ctb
:literal data packet:
mode b (62), created 0, name="_CONSOLE",
raw data: unknown length
Eu pensei que o algoritmo de criptografia simétrica estava codificado em mdc_method
, mas qualquer que seja o algoritmo que eu use para criptografar, ele sempre é exibido 2
lá. Portanto, esta não parece ser a abordagem correta.
Como posso descobrir o algoritmo simétrico?
O truque é adicionar opção
-vv --show-session-key
ao comando:Isso adiciona uma linha como a seguinte à saída:
O número antes dos dois pontos (
8
aqui) é o algoritmo simétrico usado para criptografar o conteúdo do arquivo de acordo com esta lista (retirada das fontes do GnuPG ):Portanto, neste caso, o arquivo foi codificado usando AES-192.
Observe que
AES
significa AES-128.