PGP (GnuPG): ¿cuál era el nombre de archivo original?

11

John quiere enviar 1.txta Paul.

El lo encripta. Ahora se nombra el archivo myFile.pgpy se lo envía a Paul.

Paul obtiene el archivo.

¿Cómo (si es posible) puede Paul saber cuál era el nombre del archivo original ( 1.txt)? ¿Hay un parámetro ( --xxx) para ver el nombre del archivo?

Estoy usando GNU PGP (GnuPG) en modo consola .

Royi Namir
fuente

Respuestas:

17

Con GnuPG, se puede ver el nombre de archivo original en gpg --list-packets.

$ gpg --list-packets test.gpg
: paquete pubkey enc: versión 3, algo 1, keyid CE7B5510340F19EF
    datos: [4095 bits]
: paquete de datos cifrados:
    longitud: 67
    mdc_method: 2
gpg: cifrado con clave RSA de 4096 bits, ID CE7B5510340F19EF, creado el 31-10-2009
      "Mantas Mikulėnas <[email protected]>"
: paquete comprimido: algo = 2
: paquete de datos literal:
    modo b (62), creado 1356362981, nombre = "passwords.txt",
    datos sin procesar: 8 bytes

(Nota: todo el paquete de datos literales, incluido el nombre del archivo, está encriptado. Si no tiene la clave privada, tampoco podrá ver el nombre).


Alternativamente, puede usar --decryptjunto con --verbose(o -v -dpara abreviar):

$ gpg --verbose --decrypt test.gpg> NUL
gpg: la clave pública es CE7B5510340F19EF
gpg: usando la subclave CE7B5510340F19EF en lugar de la clave primaria D24F6CB2C1B52632
Clave RSA de 4096 bits, ID CE7B5510340F19EF, creada el 31-10-2009
         (subclave en ID de clave principal D24F6CB2C1B52632)
gpg: cifrado con clave RSA de 4096 bits, ID CE7B5510340F19EF, creado el 31-10-2009
      "Mantas Mikulėnas <[email protected]>"
gpg: datos cifrados AES256
gpg: nombre del archivo original = 'passwords.txt'

(En Linux, use > /dev/nullen su lugar).


Si desea descifrar y guardar todo el archivo, use la --use-embedded-filenameopción:

$ gpg -v --use-embedded-filename test.gpg
 ... salida aburrida ...
gpg: nombre del archivo original = 'passwords.txt'
El archivo `passwords.txt 'existe. ¿Sobrescribir? (y / N) n

(Nota: no debe usar -do --decryptcon esta opción, ya que nunca usa el nombre de archivo incrustado. En su lugar, use la acción "predeterminada").


No olvide que no todos los archivos tienen nombres. En Linux, a gpgmenudo se usa para cifrar la salida de otro programa directamente, sin guardarlo en un archivo. Luego aparecería como:

$ echo Pruebas | gpg --store | gpg --list-packets
: paquete comprimido: algo = 1
: paquete de datos literal:
    modo b (62), creado 1356362394, nombre = "" ,
    datos sin procesar: 8 bytes

Al cifrar (o simplemente almacenar), el nombre de archivo incrustado se puede cambiar con --set-filename.

$ echo Pruebas | gpg --store --set-filename "test.txt" | gpg --list-packets
: paquete comprimido: algo = 1
: paquete de datos literal:
    modo b (62), creado 1356362790, nombre = "test.txt",
    datos sin procesar: 8 bytes
usuario1686
fuente
El --list-packetsno extrae. solo muestra ... (¿verdad?)
Royi Namir
1
@RoyiNamir: Correcto. Pero hace descifrar, ya que se cifran algunos paquetes (incluyendo el nombre de archivo original).
user1686
lo que es el -v. no aparece engpg -?
Royi Namir
@RoyiNamir: Es la forma corta de --verbose. (Al igual que -?y -dson las formas cortas de --helpy --decrypt.) Mi versión de GnuPG lo muestra como: "-v, --verbose" en la sección "Opciones".
usuario1686
No entiendo: ¿por qué gpg -v --use-embedded-filename bbb.gpgextraer el archivo?
Royi Namir