
Suponiendo que he cifrado un archivo (posiblemente grande) usando GPG; p.ej
gpg --recipient "Some Name" -o this_file.gpg --encrypt this_file.txt
¿Es posible agregar otro destinatario sin descifrar primero el archivo y luego realizar otro cifrado?
Respuesta1
Respuesta corta: no
En primer lugar, ten en cuenta que si no eres uno de los destinatarios, es completamente imposible. Ni siquiera tienes la capacidad de descifrar el archivo y mucho menos agregar un destinatario. Incluso si lo cifraste hace dos segundos.
Suponiendo que sea un destinatario, es técnicamente posible. En realidad, el archivo está cifrado con una clave de sesión y la clave de sesión está cifrada con su clave pública, por lo que podríaEn teoriadescifre la clave de sesión y vuelva a cifrarla con la clave de otra persona, y luego empaquete todo en un archivo como si hubiera cifrado originalmente el documento para ambas personas.
Sin embargo,gpg no tiene esta capacidad. Lo más cerca que puedes estar con gpg es
- Utilice la
--show-session-key
opción para obtener la clave de sesión (que parece que también descifra el archivo, sin entender el punto en este caso) - Cifre esa clave de sesión con la clave pública de otra persona (en realidad, esto crea una nueva clave de sesión y usa esa clave de sesión para cifrar la clave de sesión original)
- Envíe ambos archivos.
- El destinatario puede descifrar la clave de sesión y utilizarla
--override-session-key
para descifrar el mensaje original.
Respuesta2
1) Esta situación es la razón por la que cifrar un archivo para usted (así como para los destinatarios previstos) siempre es una buena idea. RedGrittyBrick tiene razón al describir cómo funcionan GPG y PGP, lo que fluye hacia la respuesta de Nathang anterior.
2) Sin embargo, si tiene el archivo original, lo mejor es simplemente crear un nuevo archivo cifrado para el nuevo destinatario.
Suponiendo que no desea seguir la ruta de la clave de sesión según la sugerencia de Nathang, si cifró el archivo usted mismo (como se indica arriba en el n.° 1) en primer lugar, descifrelo y luego siga el paso n.° 2 anterior.
Si no tiene el original ni lo ha cifrado usted mismo, no podrá recuperar los datos ni cifrarlos a nadie más sin que el primer destinatario le envíe una copia.
Respuesta3
¿Es posible agregar otro destinatario sin descifrar primero el archivo y luego realizar otro cifrado?
No es posible sin descifraren absolutoperoparece que debería serposible sin descifrara un archivo:
gpg -d this_file.gpg | gpg -e -r "Some Name" -r "Another Name" -o this_file.gpg
Excepto que esto parece resultar en un archivo dañado (al menos a veces) porque gpg
se lee y se escribe en el mismo archivo simultáneamente:
En su lugar, podrías hacer lo siguiente (en un script) para evitar tener que administrar el archivo descifrado:
gpg -d -o this_file.txt this_file.gpg
gpg -e \
-r "Some Name" \
-r "Another Name" \
-o this_file.gpg \
--batch --yes \
this_file.txt
shred -u this_file.txt
shred
, con la -u
opción, sobrescribe de forma segura los datos y luego elimina el archivo que especifique. Existen programas similares para otras plataformas, como srm
Mac OS X.
O podrías escribir tu guión así (cortesía dedave_thompson_085) para evitar incluso la necesidad de almacenar los datos descifrados en un archivo:
gpg -d this_file.gpg \
| gpg -e \
-r "Some Name" \
-r "Another Name" \
-o this_file.gpg.new \
--batch --yes
mv -f this_file.gpg.new this_file.gpg
Respuesta4
Como ya se mencionó en respuestas anteriores y, también bien descrito en esteGPGHerramientas correo:
"No se pueden agregar destinatarios a un archivo que ya está cifrado. Si eso fuera posible, habría un grave problema de seguridad".
Dicho esto, una alternativa podría ser esta.complemento vim, un complemento muy útil para ver y editargpgarchivos cifrados:vim-gnupg.
Una vez instalado enempuje, se pueden agregar destinatarios a un archivo cifrado mediante el :GPGEditRecipients
comando.