PGP (GnuPG) - qual era o nome do arquivo original?

11

John quer enviar 1.txtpara Paul.

Ele criptografa. Agora o arquivo é nomeado myFile.pgpe ele o envia para Paul.

Paul pega o arquivo.

Como (se possível) Paulo pode saber qual era o nome do arquivo original ( 1.txt)? Existe um parâmetro ( --xxx) para ver o nome do arquivo?

Estou usando o GNU PGP (GnuPG) no modo console .

Royi Namir
fonte

Respostas:

17

Com o GnuPG, o nome do arquivo original pode ser visto em gpg --list-packets.

$ gpg --list-packets test.gpg
: pubkey enc packet: versão 3, algo 1, keyid CE7B5510340F19EF
    dados: [4095 bits]
: pacote de dados criptografados:
    comprimento: 67
    mdc_method: 2
gpg: criptografado com chave RSA de 4096 bits, ID CE7B5510340F19EF, criado em 2009-10-31
      "Mantas Mikulėnas <[email protected]>"
: pacote compactado: algo = 2
: pacote de dados literal:
    modo b (62), criado 1356362981, nome = "senhas.txt",
    dados brutos: 8 bytes

(Nota: todo o pacote de dados literais, incluindo o nome do arquivo, é criptografado. Se você não tiver a chave privada, também não poderá ver o nome.)


Como alternativa, você pode usar --decryptjunto com --verbose(ou -v -dpara abreviar):

$ gpg --verbose --decrypt test.gpg> NUL
gpg: a chave pública é CE7B5510340F19EF
gpg: usando a subchave CE7B5510340F19EF em vez da chave primária D24F6CB2C1B52632
Chave RSA de 4096 bits, ID CE7B5510340F19EF, criada em 2009-10-31
         (subchave no ID da chave principal D24F6CB2C1B52632)
gpg: criptografado com chave RSA de 4096 bits, ID CE7B5510340F19EF, criado em 2009-10-31
      "Mantas Mikulėnas <[email protected]>"
gpg: dados criptografados AES256
gpg: nome original do arquivo = 'passwords.txt'

(No Linux, use em seu > /dev/nulllugar.)


Se você deseja descriptografar e salvar o arquivo inteiro, use a --use-embedded-filenameopção:

$ gpg -v - use-embedded-filename test.gpg
 … saída chata…
gpg: nome original do arquivo = 'passwords.txt'
O arquivo `passwords.txt 'existe. Substituir? (s / N) n

(Nota: você não deve usar -dou --decryptcom esta opção, pois ela nunca usa o nome do arquivo incorporado. Em vez disso, use a ação "padrão".)


Não esqueça que nem todos os arquivos têm nomes. No Linux, gpgé frequentemente usado para criptografar a saída de outro programa diretamente, sem salvá-la em um arquivo. Apareceria como:

Teste de $ echo | gpg --store | gpg --list-packets
: pacote compactado: algo = 1
: pacote de dados literal:
    modo b (62), criado 1356362394, name = "" ,
    dados brutos: 8 bytes

Ao criptografar (ou apenas armazenar), o nome do arquivo incorporado pode ser alterado com --set-filename.

Teste de $ echo | gpg --store --set-filename "test.txt" | gpg --list-packets
: pacote compactado: algo = 1
: pacote de dados literal:
    modo b (62), criado 1356362790, nome = "test.txt",
    dados brutos: 8 bytes
user1686
fonte
o --list-packetsnão extrai. apenas exibir ... (certo?)
Royi Namir
1
@RoyiNamir: Certo. Mas faz descriptografar, uma vez que alguns pacotes (incluindo o nome do arquivo original) são criptografados.
user1686
qual é a -v. ele não aparece emgpg -?
Royi Namir
@RoyiNamir: É a forma abreviada de --verbose. (Assim como -?e -dsão as formas curtas de --helpe --decrypt.) Minha versão do GnuPG faz mostrá-lo como: "-v, --verbose" sob a seção "Opções".
user1686
Eu não entendo: por que gpg -v --use-embedded-filename bbb.gpgextrair o arquivo?
Royi Namir