¿Cómo tener una frase de paso diferente para una subclave gpg?


16

Necesito automatizar un proceso de implementación y la herramienta firmará los artefactos de lanzamiento automáticamente. Mi llavero tiene una clave principal que uso solo para crear subclaves y dos subclaves. Una subclave para firmar y otra para cifrado.

Actualmente hay una sola frase de paso para todas las claves. No quiero especificar esta frase de contraseña en un archivo de configuración, ya que eso también pondría en riesgo la clave principal.

Entonces pensé que establecería una frase de paso diferente para la subclave haciendo:

$ gpg --edit-key [subkey-id]
gpg> passwd
gpg> save

Pero esto cambió la frase de paso para otras claves también.

¿Cómo puedo configurar una frase de paso separada para claves individuales?

Respuestas:


14

La configuración de frases de contraseña individuales para subclaves no es posible con GnuPG. Pero hay una solución alternativa, que incluso parece una buena práctica en este caso:

  1. Exporte la subclave de su elección (en el ejemplo, la subclave tiene ID 0xDEADBEEF). ¡No olvide el signo de exclamación, se asegura de que GnuPG realmente funcione con la subclave en sí y no con la clave principal a la que pertenece!

    gpg --export-secret-subkeys 0xDEADBEEF! >subkeys.pgp
    

    La subclave tendrá la clave primaria pública y un "código auxiliar de clave" primario privado adjunto, pero no la clave primaria privada en sí.

  2. Importe la subclave a otro directorio de inicio de GnuPG. El ejemplo espera que esté en el directorio raíz de su proyecto y tenga una carpeta etcpara cosas como este llavero allí.

    gpg --homedir ./etc/gnupg --import subkeys.pgp
    
  3. Cambia la frase de contraseña de la subclave separada.

    gpg --homedir ./etc/gnupg --edit-key 0xDEADBEEF
    
  4. En lugar de usar su llavero "normal", siempre consulte el directorio GnuPG separado como se mencionó anteriormente.

Como alternativa, puede considerar crear una clave de proyecto que firme con su propia clave. Esto podría tener la ventaja de que otros contribuyentes / usuarios también podrían firmar la clave (y así certificar que esta es la clave utilizada para el proyecto), y la entrega del proyecto podría ser más fácil en caso de que alguien más se haga cargo del mantenimiento.


1
Esto no funciona con GnuPG 2.2.4. No dice "Necesito la clave secreta para hacer esto". Muy triste: '(
steinybot

¿Entonces necesito usar claves gpg sin contraseña para la firma automática de repositorios?
SuperSandro2000

No, también puedes pre-cachear la frase de contraseña usando gpg-agent. Echa un vistazo a gpg-preset-passphrase.
Jens Erat el

5

Un archivo de correo gnupg.org muy desactualizado (2013) explica una solución incómoda para crear una contraseña separada para una subclave .
Implica que la restricción no está dentro de la estructura de datos del conjunto de claves (es decir, el grupo de subclaves maestras) sino solo en la interfaz de software para construir y modificar el conjunto de claves.

Una cita de la referencia:

Hola,

¿es posible tener una clave maestra y varias subclaves con las subclaves que tengan una frase de contraseña diferente (por ejemplo, más corta) que la clave maestra?

Lo que probablemente esté buscando es una tecla principal fuera de línea (vea --export-secret- subkeys). Pero la respuesta es sí. A gpg-agent no le importa la conexión de claves. Le pide incluso la misma frase de contraseña varias veces (para diferentes componentes de la misma clave).

Pero GnuPG no es compatible con esto directamente.

1) Exportar la clave secreta (--export-secret-keys sin --armor)

2) cambiar la frase de contraseña

3) Exportar nuevamente (a un archivo diferente, por supuesto)

4) Use gpgsplit en ambos archivos (en diferentes directorios). El resultado se ve así:

000001-005.secret_key 000002-013.user_id 000003-002.sig 000004-007.secret_subkey 000005-002.sig

5) Ahora mezcla los componentes de los dos grupos: mkdir combinado mv a / 000001 * a / 000002 * a / 000003 * combinado / mv b / 000004 * b / 000005 * combinado / cd combinado / cat *> different_passphrases.gpg

6) Eliminar la clave del registro: --delete-secret-key

7) Importar el nuevo: gpg --importar diferentes_contraseñas.gpg

Hauke ​​Laging

No he confirmado personalmente esta operación, solo estoy informando lo que he leído.

La falta de especificación y discusión en la documentación de GnuPG sobre este importante tema es decepcionante.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.