PGP (GnuPG) - каково было исходное имя файла?

11

Джон хочет отправить 1.txtПолу.

Он шифрует это. Теперь файл назван myFile.pgp, и он отправляет его Полу.

Пол получает файл.

Как (если это возможно) Пол может узнать, какое было исходное имя файла ( 1.txt)? Есть ли параметр ( --xxx), чтобы увидеть имя файла?

Я использую GNU PGP (GnuPG) в режиме консоли .

Ройи Намир
источник

Ответы:

17

С GnuPG, оригинальное имя файла можно увидеть в gpg --list-packets.

$ gpg --list-packages test.gpg
пакет pubkey: версия 3, алгоритм 1, ключ CE7B5510340F19EF
    данные: [4095 бит]
: зашифрованный пакет данных:
    длина: 67
    mdc_method: 2
gpg: зашифрован 4096-битным ключом RSA, ID CE7B5510340F19EF, создан 2009-10-31
      "Мантас Микуленас <grawity@gmail.com>"
: сжатый пакет: algo = 2
: буквальный пакет данных:
    режим b (62), создан 1356362981, name = "passwords.txt",
    необработанные данные: 8 байт

(Примечание. Весь буквенный пакет данных, включая имя файла, зашифрован. Если у вас нет личного ключа, вы также не сможете увидеть имя.)


Кроме того, вы можете использовать --decryptвместе с --verbose(или -v -dдля краткости):

$ gpg --verbose --decrypt test.gpg> NUL
gpg: открытый ключ CE7B5510340F19EF
gpg: использование ключа CE7B5510340F19EF вместо первичного ключа D24F6CB2C1B52632
4096-битный ключ RSA, ID CE7B5510340F19EF, создан 2009-10-31
         (подраздел главного ключа с идентификатором D24F6CB2C1B52632)
gpg: зашифрован 4096-битным ключом RSA, ID CE7B5510340F19EF, создан 2009-10-31
      "Мантас Микуленас <grawity@gmail.com>"
GPG: AES256 зашифрованные данные
gpg: оригинальное имя файла = 'passwords.txt'

(В Linux используйте > /dev/nullвместо этого.)


Если вы хотите расшифровать и сохранить весь файл, используйте --use-embedded-filenameпараметр:

$ gpg -v --use-embedded-filename test.gpg
 … скучный вывод…
gpg: оригинальное имя файла = 'passwords.txt'
Файл "passwords.txt" существует. Переписать? (да / нет) н

(Примечание. Не следует использовать -dили --decryptс этим параметром, поскольку он никогда не использует встроенное имя файла. Вместо этого используйте действие «по умолчанию».)


Не забывайте, что не все файлы имеют имена. В Linux gpgчасто используется для непосредственного шифрования вывода другой программы без сохранения его в файле. Затем он будет отображаться как:

Тестирование $ echo | gpg --store | gpg --list-пакеты
: сжатый пакет: algo = 1
: буквальный пакет данных:
    режим b (62), создан 1356362394, name = "" ,
    необработанные данные: 8 байт

При шифровании (или просто сохранении) внедренное имя файла может быть изменено с помощью --set-filename.

Тестирование $ echo | gpg --store --set-filename "test.txt" | gpg --list-пакеты
: сжатый пакет: algo = 1
: буквальный пакет данных:
    режим b (62), создан 1356362790, name = "test.txt",
    необработанные данные: 8 байт
user1686
источник
--list-packetsне извлекает. просто показать ... (верно?)
Ройи Намир
1
@RoyiNamir: Верно. Но это делает расшифровывать, поскольку некоторые пакеты ( в том числе исходного файла) шифруются.
user1686
что это -v. это не появляется вgpg -?
Ройи Намир
@RoyiNamir: это короткая форма --verbose. (Так же , как -?и -dв короткие формы --helpи --decrypt.) Моя версия GnuPG делает показать , как: «-V, --verbose» в разделе «Параметры».
user1686
Я не понимаю: зачем gpg -v --use-embedded-filename bbb.gpgраспаковывать файл?
Рой Намир