¿Cómo puedo cifrar un archivo usando gpg sin incluir el ID de clave del destinatario?

27

Un archivo cifrado OpenPGP incluirá la ID de la clave de cifrado pública del destinatario deseado, como se explica en esta pregunta .

¿Hay alguna forma de eliminar esa información del archivo cifrado resultante? ¿ gpg proporciona una opción para no incluir esa información?

Si no es así, ¿qué soluciones se recomiendan? Quiero cifrar un archivo para un destinatario específico y compartirlo con cualquier tercero sin revelar la identidad del destinatario o del remitente.

(Se puede suponer que la clave pública del destinatario se comparte ampliamente y se asocia con la identidad real del destinatario).

    
pregunta Flimm 08.12.2012 - 21:35
fuente

4 respuestas

29

Use la marca -R (o --hidden-recipient ) en gpg para hacer esto. Más detalles en esta respuesta.

    
respondido por el kbs 22.01.2013 - 19:26
fuente
17

Existen varias opciones en gpg. Tenga en cuenta que puede usar todo esto en su archivo gpg.conf para configurarlos permanentemente (omitiendo el '-' delante de las opciones largas, pero tenga en cuenta que --try-secret-key es una opción solo disponible en la versión 2.1beta1 +, que ha estado en versión beta durante 3 años. La documentación se generó por error, creo que la mayoría de las personas no tendrán esta opción disponible):

--hidden-recipient name

   -R     Encrypt for user ID name, but hide the key ID of this user's key. This option   
          helps to hide the receiver  of  the  message and  is  a limited countermeasure
          against traffic analysis. If this option or --recipient is not specified, 
          GnuPG asks for the user ID unless --default-recipient is given.


--hidden-encrypt-to name
          Same as --hidden-recipient but this one is intended for use in the options file
          and may be used with your own user-id as a hidden  "encrypt-to-self".  These
          keys are only used when there are other recipients given either by use of 
          --recipient or by the asked user id.  No trust checking is performed for these user
          ids and even disabled keys can be used.


--throw-keyids

   --no-throw-keyids
          Do not put the recipient key IDs into encrypted messages. This helps to hide the 
          receivers of the message and is a limited countermeasure against traffic analysis. 
          ([Using a little social engineering anyone who is able to decrypt the message can
          check whether one of the other recipients is the one he suspects.])  On the 
          receiving side, it may slow down  the  decryption  process  because  all  
          available  secret keys must be tried.  --no-throw-keyids disables this option. This 
          option is essentially the same as using --hidden-recipient for all recipients.

En el extremo de recepción ... Tenga en cuenta que puede ser particularmente molesto si tiene muchas claves privadas porque gpg le pedirá su frase de contraseña para cada una hasta que se encuentre una que funcione. Para pasar rápidamente a través de las indicaciones, solo presione Intro para las teclas incorrectas, gpg no debería pedirle más de una vez por cada tecla como esta.

Hay una serie de técnicas posibles para recibir software (como clientes de correo) para aliviar este problema. Lo más práctico que conozco es generar un llavero temporal con la (s) clave (s) que se espera que sean el destinatario anónimo (por ejemplo, la dirección de correo electrónico en la que recibió el correo). En caso de fallar con esa / esas claves, se debería volver a llamar a gpg sin cambiar los llaveros para probar todas las claves secretas de los usuarios. Los comandos son como:

gpg --export-secret-keys <key(s)> > tmp_keyring
gpg --decrypt --no-default-keyring --secret-keyring tmp_keyring <...>
On failure:
gpg --decrypt <...>

Aquí están las opciones:

--try-secret-key name
          For  hidden  recipients  GPG needs to know the keys to use for trial decryption.
          The key set with --default-key is always tried first, but this is often not 
          sufficient.  This option allows to set more keys  to  be  used  for  trial
          decryption. Although any valid user-id specification may be used for name it makes 
          sense to use at least the long keyid to avoid ambiguities.  Note that gpg-agent 
          might pop up a pinentry for a lot keys to do the trial decryption.  If you want 
          to stop  all further trial decryption you may use close-window button instead 
          of the cancel button.

   --try-all-secrets
          Don't  look  at the key ID as stored in the message but try all secret keys in turn 
          to find the right decryption key. This option forces the behaviour as used by 
          anonymous recipients (created by using --throw-keyids  or  --hidden-recipient)
          and might come handy in case where an encrypted message contains a bogus key ID.

   --skip-hidden-recipients

   --no-skip-hidden-recipients
          During decryption skip all anonymous recipients.  This option helps in the case that 
          people use the hidden recipients feature to hide there own encrypt-to key from 
          others.  If oneself has many secret keys this may lead  to  a  major  annoyance
          because all keys are tried in turn to decrypt something which was not really 
          intended for it.  The drawback of this option is that it is currently not possible 
          to decrypt a message which includes real anonymous recipients.

Si está interesado en la privacidad, otra opción podría interesarle. Es literalmente inútil y francamente malo para su privacidad emitir su sistema operativo y versión de software al enviar correos electrónicos:

   --emit-version

   --no-emit-version
          Force inclusion of the version string in ASCII armored output.  If given once only 
          the name of the program and  the  major number  is  emitted  (default), given twice 
          the minor is also emitted, given triple the micro is added, and given quad an
          operating system identification is also emitted.  --no-emit-version disables 
          the version line.

Para obtener una descripción general de las mejores prácticas de gpg para seguridad y privacidad, consulte este manual por riseup labs .

    
respondido por el user9651 23.04.2014 - 16:01
fuente
3

No estoy seguro de si puedes eliminar esa información con un programa en particular, pero no veo por qué causaría problemas. En cuanto a la solución, el destinatario podría firmar una nueva clave pública con su clave privada, cifrar la nueva clave pública con la clave pública del remitente, enviar la nueva clave pública al remitente que el remitente podría utilizar para la transmisión. De esta manera, la nueva clave pública de "sesión" nunca se revela al mundo y no habría manera de vincularla al destinatario.

Vale la pena señalar que todavía es posible que alguien sepa que el destinatario habló con el remitente, por lo tanto, si está tratando de evitar que alguien se entere de la mitad de la conversación, esto no funcionará.

    
respondido por el AJ Henderson 10.12.2012 - 16:31
fuente
1

Como solución alternativa, el destinatario podría preparar una nueva clave pública (tal vez utilizando fechas de vencimiento muy cortas) y cifrar ese archivo con esta. Entonces, aunque aún será posible determinar para qué clave está cifrado el archivo, esa clave es nueva y, por lo tanto, no está asociada con nadie.

    
respondido por el Vucar Timnärakrul 09.12.2012 - 05:01
fuente

Lea otras preguntas en las etiquetas