Cifró el archivo con la clave pública de "Some Name". ¿Y qué usará para otro destinatario?
ott--
66
@ott: Eso no es exactamente cómo funciona (AFAIK). PGP cifra el archivo con una clave simétrica, no con una clave pública de destinatarios. Luego, encripta por separado varias copias de esa clave simétrica utilizando la clave pública de cada destinatario.
RedGrittyBrick
@RedGrittyBrick No sé sobre pgp, pero gpg lo usa --symmetricpara eso. Con --recipientél utiliza la clave pública del destinatario. Puede haber más de 1 destinatario, pero debe hacerse en un comando, no en 2 comandos separados.
ott--
3
@ott: Leí que " También es posible cifrar un archivo simultáneamente para cualquier número de destinatarios múltiples por medio de un comando del formulariogpg -e -r <name1> -r <name2> ... <file> " Sin embargo, no lo he intentado yo mismo. Se ajusta a lo que aprendí de la criptografía hace muchos años, que es que casi siempre es más eficiente usar algoritmos simétricos rápidos para cifrar el texto del mensaje. Solo la clave del mensaje se cifra utilizando un cifrado asimétrico lento.
RedGrittyBrick
Respuestas:
8
Respuesta corta: no
En primer lugar, tenga en cuenta que si no es uno de los destinatarios, es completamente imposible. Ni siquiera tiene la capacidad de descifrar el archivo, y mucho menos agregar un destinatario. Incluso si lo cifraste hace dos segundos.
Suponiendo que es un destinatario, es técnicamente posible. El archivo en realidad está encriptado con una clave de sesión y la clave de sesión está encriptada con su clave pública, por lo que en teoría podría desencriptar la clave de sesión y volver a encriptarla a la clave de otra persona, y luego empaquetar todo en un archivo como si usted originalmente había encriptado el documento a ambas personas.
Sin embargo, gpg no tiene esta capacidad . Lo más cercano que puede obtener con gpg es
Use la --show-session-keyopción para obtener la clave de sesión (que también parece descifrar el archivo, perdiendo el punto en este caso)
Cifre esa clave de sesión en 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ía los dos archivos.
El destinatario puede descifrar la clave de sesión y usar --override-session-keypara descifrar el mensaje original.
1) Esta situación es la razón por la cual siempre es una buena idea cifrar un archivo para usted (así como para los destinatarios previstos). RedGrittyBrick es correcto arriba al describir cómo funcionan GPG y PGP, que fluye en la respuesta de nathang arriba.
2) Sin embargo, si tiene el archivo original, es mejor que simplemente cree un nuevo archivo cifrado para el nuevo destinatario.
Suponiendo que no desea seguir la ruta de la clave de sesión de la sugerencia de nathang, si cifró el archivo para usted (como se indicó anteriormente en el n. ° 1), descifre y luego siga el paso n. ° 2 anterior.
Si no tiene el original ni lo cifró para usted, no puede recuperar los datos y no puede cifrarlos a nadie más sin que el primer destinatario le envíe una copia.
shred, con la -uopción, sobrescribe de forma segura los datos y luego elimina el archivo que especifique. Existen programas similares para otras plataformas, como srmen Mac OS X.
O puede escribir su script de esta manera (cortesía de dave_thompson_085 ) para evitar incluso la necesidad de almacenar los datos descifrados en un archivo:
--symmetric
para eso. Con--recipient
él utiliza la clave pública del destinatario. Puede haber más de 1 destinatario, pero debe hacerse en un comando, no en 2 comandos separados.gpg -e -r <name1> -r <name2> ... <file>
" Sin embargo, no lo he intentado yo mismo. Se ajusta a lo que aprendí de la criptografía hace muchos años, que es que casi siempre es más eficiente usar algoritmos simétricos rápidos para cifrar el texto del mensaje. Solo la clave del mensaje se cifra utilizando un cifrado asimétrico lento.Respuestas:
Respuesta corta: no
En primer lugar, tenga en cuenta que si no es uno de los destinatarios, es completamente imposible. Ni siquiera tiene la capacidad de descifrar el archivo, y mucho menos agregar un destinatario. Incluso si lo cifraste hace dos segundos.
Suponiendo que es un destinatario, es técnicamente posible. El archivo en realidad está encriptado con una clave de sesión y la clave de sesión está encriptada con su clave pública, por lo que en teoría podría desencriptar la clave de sesión y volver a encriptarla a la clave de otra persona, y luego empaquetar todo en un archivo como si usted originalmente había encriptado el documento a ambas personas.
Sin embargo, gpg no tiene esta capacidad . Lo más cercano que puede obtener con gpg es
--show-session-key
opción para obtener la clave de sesión (que también parece descifrar el archivo, perdiendo el punto en este caso)--override-session-key
para descifrar el mensaje original.fuente
1) Esta situación es la razón por la cual siempre es una buena idea cifrar un archivo para usted (así como para los destinatarios previstos). RedGrittyBrick es correcto arriba al describir cómo funcionan GPG y PGP, que fluye en la respuesta de nathang arriba.
2) Sin embargo, si tiene el archivo original, es mejor que simplemente cree un nuevo archivo cifrado para el nuevo destinatario.
Suponiendo que no desea seguir la ruta de la clave de sesión de la sugerencia de nathang, si cifró el archivo para usted (como se indicó anteriormente en el n. ° 1), descifre y luego siga el paso n. ° 2 anterior.
Si no tiene el original ni lo cifró para usted, no puede recuperar los datos y no puede cifrarlos a nadie más sin que el primer destinatario le envíe una copia.
fuente
No es posible sin descifrar en absoluto, pero parece que debería ser posible sin descifrar en un archivo :
Excepto que esto parece resultar en un archivo dañado (al menos a veces) porque
gpg
está leyendo y escribiendo en el mismo archivo simultáneamente:En su lugar, puede hacer lo siguiente (en un script) para evitar la necesidad de administrar el archivo descifrado:
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, comosrm
en Mac OS X.O puede escribir su script de esta manera (cortesía de dave_thompson_085 ) para evitar incluso la necesidad de almacenar los datos descifrados en un archivo:
fuente
gpg -d file.gpg | gpg -e ... -o file.new; mv file.new file.gpg
o su espejomv file.gpg file.old; gpg -d file.old | gpg -e ... -o file.gpg
. O (tal vez también) inteligentemente, simplemente mantenga el viejo inodo :{ rm file.gpg; gpg -d /dev/fd/3; } 3<file.gpg | gpg -e ... -o file.gpg