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

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

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

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

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

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

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

 $ Gpg --list-packets test.gpg
 : Pubkey enc packet: версия 3, algo 1, keyid CE7B5510340F19EF
     Данные: [4095 бит]
 : Зашифрованный пакет данных:
     Длина: 67
     Mdc_method: 2
 Gpg: зашифрован с 4096-битным ключом RSA, ID CE7B5510340F19EF, создан 2009-10-31
       "Mantas Mikulėnas <[email protected]>"
 : Сжатый пакет: algo = 2
 : Литеральный пакет данных: 
      Mode 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
          (Подраздел по основному ключу ID D24F6CB2C1B52632)
 Gpg: зашифрован с 4096-битным ключом RSA, ID CE7B5510340F19EF, создан 2009-10-31
       "Mantas Mikulėnas <[email protected]>"
 Gpg: зашифрованные данные AES256
 Gpg: исходное имя файла = 'passwords.txt'

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


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

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

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


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

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

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

 $ Echo Тестирование |  Gpg --store --set-filename "test.txt" |  Gpg --list-packages
 : Сжатый пакет: algo = 1
 : Литеральный пакет данных:
     Режим b (62), созданный 1356362790, name = "test.txt",
     Необработанные данные: 8 байт
Давайте будем гением компьютера.