PGP (GnuPG) - apa nama file aslinya?

11

John ingin mengirim 1.txtke Paul.

Dia mengenkripsi itu. Sekarang file itu dinamai myFile.pgp, dan dia mengirimkannya ke Paul.

Paul mendapatkan file itu.

Bagaimana (jika mungkin) dapat Paul tahu apa nama file asli ( 1.txt) itu? Apakah ada parameter ( --xxx) untuk melihat nama file?

Saya menggunakan GNU PGP (GnuPG) dalam mode konsol .

Royi Namir
sumber

Jawaban:

17

Dengan GnuPG, nama file asli dapat dilihat di gpg --list-packets.

$ gpg --list-packets test.gpg
: paket pubkey enc: versi 3, algo 1, keyid CE7B5510340F19EF
    data: [4095 bit]
: paket data terenkripsi:
    panjangnya: 67
    mdc_method: 2
gpg: dienkripsi dengan kunci RSA 4096-bit, ID CE7B5510340F19EF, dibuat 2009-10-31
      "Mantas Mikulėnas <[email protected]>"
: paket terkompresi: algo = 2
: paket data literal:
    mode b (62), dibuat 1356362981, name = "passwords.txt",
    data mentah: 8 byte

(Catatan: Seluruh paket data literal, termasuk nama file, dienkripsi. Jika Anda tidak memiliki kunci pribadi, Anda tidak dapat melihat namanya juga.)


Atau, Anda dapat menggunakan --decryptbersama dengan --verbose(atau -v -dsingkatnya):

$ gpg --verbose --decrypt test.gpg> NUL
gpg: kunci publik adalah CE7B5510340F19EF
gpg: menggunakan subkey CE7B5510340F19EF alih-alih kunci primer D24F6CB2C1B52632
Kunci RSA 4096-bit, ID CE7B5510340F19EF, dibuat 2009-10-31
         (subkunci pada ID kunci utama D24F6CB2C1B52632)
gpg: dienkripsi dengan kunci RSA 4096-bit, ID CE7B5510340F19EF, dibuat 2009-10-31
      "Mantas Mikulėnas <[email protected]>"
gpg: AES256 data terenkripsi
gpg: nama file asli = 'passwords.txt'

(Di Linux, gunakan > /dev/nullsebagai gantinya.)


Jika Anda ingin mendekripsi dan menyimpan seluruh file, gunakan --use-embedded-filenameopsi:

$ gpg -v --use-embedded-filename test.gpg
 ... output yang membosankan ...
gpg: nama file asli = 'passwords.txt'
File `passwords.txt 'ada. Timpa? (y / T) n

(Catatan: Anda tidak boleh menggunakan -datau --decryptdengan opsi ini, karena tidak pernah menggunakan nama file yang disematkan. Sebagai gantinya, gunakan tindakan "default".)


Jangan lupa bahwa tidak semua file memiliki nama. Di Linux, gpgsering digunakan untuk mengenkripsi output program lain secara langsung, tanpa menyimpannya dalam file. Maka akan muncul sebagai:

$ echo Testing | gpg --store | gpg --list-packet
: paket terkompresi: algo = 1
: paket data literal:
    mode b (62), dibuat 1356362394, name = "" ,
    data mentah: 8 byte

Saat mengenkripsi (atau hanya menyimpan), nama file yang disematkan dapat diubah dengan --set-filename.

$ echo Testing | gpg --store --set-filename "test.txt" | gpg --list-packet
: paket terkompresi: algo = 1
: paket data literal:
    mode b (62), dibuat 1356362790, name = "test.txt",
    data mentah: 8 byte
pengguna1686
sumber
yang --list-packetstidak ekstrak. hanya menampilkan ... (kanan?)
Royi Namir
1
@RoyiNamir: Benar. Tapi itu tidak mendekripsi, karena beberapa paket (termasuk nama file asli) akan dienkripsi.
user1686
apa itu -v. itu tidak muncul digpg -?
Royi Namir
@RoyiNamir: Ini bentuk singkat dari --verbose. (Sama seperti -?dan -dmerupakan bentuk singkat dari --helpdan --decrypt.) Versi saya dari GnuPG tidak menunjukkan sebagai: "-v, --verbose" di bawah "Options" bagian.
user1686
Saya tidak mengerti: mengapa gpg -v --use-embedded-filename bbb.gpgmengekstrak file?
Royi Namir