PGP (GnuPG) - jaka była oryginalna nazwa pliku?

11

Jan chce wysłać 1.txtdo Pawła.

Szyfruje to. Teraz plik ma nazwę myFile.pgpi wysyła go do Pawła.

Paul dostaje plik.

Jak (jeśli to możliwe) Paul może wiedzieć, jaka była pierwotna nazwa pliku ( 1.txt)? Czy istnieje parametr ( --xxx), aby zobaczyć nazwę pliku?

Używam GNU PGP (GnuPG) w trybie konsoli .

Royi Namir
źródło

Odpowiedzi:

17

W GnuPG można zobaczyć oryginalną nazwę pliku gpg --list-packets.

$ gpg --list-packets test.gpg
: pakiet pubkey enc: wersja 3, algo 1, keyid CE7B5510340F19EF
    dane: [4095 bitów]
: zaszyfrowany pakiet danych:
    długość: 67
    mdc_method: 2
gpg: zaszyfrowane 4096-bitowym kluczem RSA, ID CE7B5510340F19EF, utworzone 31.10.2009
      „Mantas Mikulėnas <[email protected]>”
: skompresowany pakiet: algo = 2
: dosłowny pakiet danych:
    tryb b (62), utworzony 1356362981, name = "passwords.txt",
    surowe dane: 8 bajtów

(Uwaga: Cały dosłowny pakiet danych, w tym nazwa pliku, jest zaszyfrowany. Jeśli nie masz klucza prywatnego, nie zobaczysz też nazwy).


Alternatywnie możesz użyć --decryptwraz z --verbose(lub -v -dw skrócie):

$ gpg --verbose --decrypt test.gpg> NUL
gpg: klucz publiczny to CE7B5510340F19EF
gpg: użycie podklucza CE7B5510340F19EF zamiast klucza podstawowego D24F6CB2C1B52632
4096-bitowy klucz RSA, ID CE7B5510340F19EF, utworzony 31.10.2009
         (podklucz na identyfikatorze klucza głównego D24F6CB2C1B52632)
gpg: zaszyfrowane 4096-bitowym kluczem RSA, ID CE7B5510340F19EF, utworzone 31.10.2009
      „Mantas Mikulėnas <[email protected]>”
gpg: zaszyfrowane dane AES256
gpg: oryginalna nazwa pliku = 'passwords.txt'

(W systemie Linux użyj > /dev/nullzamiast tego.)


Jeśli chcesz odszyfrować i zapisać cały plik, użyj --use-embedded-filenameopcji:

$ gpg -v --use-embedded-filename test.gpg
 … nudne wyjście…
gpg: oryginalna nazwa pliku = 'passwords.txt'
Plik `passwords.txt 'istnieje. Przepisać? (t / N) n

(Uwaga: nie należy używać tej opcji -dani jej używać --decrypt, ponieważ nigdy nie używa ona osadzonej nazwy pliku. Zamiast tego należy użyć akcji „domyślnej”).


Nie zapominaj, że nie wszystkie pliki mają nazwy. W systemie Linux gpgjest często używany do bezpośredniego szyfrowania danych wyjściowych innego programu, bez zapisywania go w pliku. Pojawi się wtedy jako:

$ echo Testowanie | gpg --store | gpg - lista-pakietów
: skompresowany pakiet: algo = 1
: dosłowny pakiet danych:
    tryb b (62), utworzony 1356362394, name = "" ,
    surowe dane: 8 bajtów

Podczas szyfrowania (lub po prostu przechowywania) osadzoną nazwę pliku można zmienić za pomocą --set-filename.

$ echo Testowanie | gpg --store --set-filename "test.txt" | gpg - lista-pakietów
: skompresowany pakiet: algo = 1
: dosłowny pakiet danych:
    tryb b (62), utworzony 1356362790, name = "test.txt",
    surowe dane: 8 bajtów
użytkownik1686
źródło
--list-packetsnie wyodrębnić. po prostu wyświetl ... (prawda?)
Royi Namir
1
@RoyiNamir: Racja. Ale to nie deszyfrować, gdyż niektóre pakiety (w tym oryginalnego pliku) są szyfrowane.
user1686,
co to jest -v. nie pojawia się wgpg -?
Royi Namir
@RoyiNamir: To krótka forma --verbose. (Podobnie jak -?i -dto krótkie formy --helpi --decrypt.) Moja wersja GnuPG nie pokazują go jako: „--verbose” w sekcji „Opcje”.
user1686,
Nie rozumiem: po co gpg -v --use-embedded-filename bbb.gpgrozpakowywać plik?
Royi Namir,