Cómo usar el comando docker trust key generate para crear claves de firma

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo generar pares de claves de firma utilizando el comando gpg, un paso fundamental para la comunicación segura y la distribución de software. Generará un nuevo par de claves RSA y RSA con un tamaño de clave y un período de validez especificados, proporcionando información esencial de identificación de usuario durante el proceso.

Después de la generación de la clave, aprenderá cómo ingresar y confirmar la frase de contraseña para su nueva clave, una medida de seguridad crucial. Luego verificará el archivo de clave pública generado para garantizar su corrección. Finalmente, explorará cómo generar un par de claves en un directorio específico, demostrando flexibilidad en la gestión de sus claves.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/exec("Execute Command in Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") subgraph Lab Skills docker/exec -.-> lab-555252{{"Cómo usar el comando docker trust key generate para crear claves de firma"}} docker/create -.-> lab-555252{{"Cómo usar el comando docker trust key generate para crear claves de firma"}} end

Generar un nuevo par de claves de firma

En este paso, aprenderá cómo generar un nuevo par de claves de firma utilizando el comando gpg. Un par de claves de firma consta de una clave privada y una clave pública. La clave privada se utiliza para firmar datos, y la clave pública se utiliza para verificar la firma. Este es un concepto fundamental en la comunicación segura y la distribución de software.

Primero, abra su terminal. Ya se encuentra en el directorio ~/project.

Para generar un nuevo par de claves, utilice el siguiente comando:

gpg --full-generate-key

Después de ejecutar el comando, se le pedirá que seleccione el tipo de clave que desea. Para este laboratorio, utilizaremos la opción predeterminada, que es RSA and RSA. Presione Enter para aceptar la opción predeterminada.

gpg (GnuPG) 2.2.27; Copyright (C) 2021 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 1

A continuación, se le preguntará sobre el tamaño de la clave. Un tamaño de clave más grande proporciona más seguridad, pero tarda más en generarse y utilizarse. Para este laboratorio, utilizaremos el tamaño de clave predeterminado de 3072 bits. Presione Enter para aceptar la opción predeterminada.

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072)

Luego, se le preguntará cuánto tiempo debe ser válida la clave. Para este laboratorio, haremos que la clave sea válida durante un año. Escriba 1y y presione Enter.

Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0) 1y

Confirme que la clave expirará en la fecha mostrada escribiendo y y presionando Enter.

Key expires at ...
Is this correct? (y/N) y

Ahora, necesita proporcionar información de identificación de usuario. Esta información se asocia con su clave pública y ayuda a otros a identificarte.

Primero, ingrese su nombre real. Para este laboratorio, puede utilizar LabEx User. Escriba LabEx User y presione Enter.

Real name: LabEx User

A continuación, ingrese su dirección de correo electrónico. Para este laboratorio, puede utilizar [email protected]. Escriba [email protected] y presione Enter.

Email address: [email protected]

Opcionalmente, puede agregar un comentario. Para este laboratorio, dejará el campo de comentario vacío. Presione Enter para omitir el comentario.

Comment:

Revise la información que ingresó. Si es correcta, escriba O para Aceptar y presione Enter. Si necesita realizar cambios, escriba C para Cambiar o Q para Salir.

You selected this USER-ID:
    "LabEx User <[email protected]>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O

Finalmente, se le pedirá que ingrese una frase de contraseña para proteger su clave privada. Este es un paso de seguridad crucial. Elija una frase de contraseña segura que pueda recordar. Necesitará ingresar esta frase de contraseña nuevamente en el siguiente paso.

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator more entropy.

El sistema luego generará el par de claves. Esto puede tomar un momento.

Ingresar y confirmar la frase de contraseña para la nueva clave

En el paso anterior, inició el proceso de generación de un nuevo par de claves GPG. El último paso de este proceso es ingresar y confirmar una frase de contraseña para su clave privada. Esta frase de contraseña es esencial para proteger su clave privada del uso no autorizado.

Ahora debería ver un cuadro de diálogo o un aviso en su terminal pidiéndole que ingrese una frase de contraseña.

┌─────────┤ Please enter the passphrase to protect your new key ├─────────┐
│                                                                         │
│ Passphrase: _________________________________________                   │
│                                                                         │
│        <OK>                                          <Cancel>           │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

Ingrese una frase de contraseña segura en el campo "Passphrase". Recuerde esta frase de contraseña, ya que la necesitará cada vez que utilice su clave privada (por ejemplo, para firmar). Para este laboratorio, puede utilizar una frase de contraseña simple como mypassphrase123. Escriba mypassphrase123 y presione Enter o haga clic en <OK>.

Luego, se le pedirá que confirme su frase de contraseña ingresándola nuevamente. Esto ayuda a garantizar que escribió la frase de contraseña correctamente.

┌─────────┤ Please re-enter the passphrase to protect your new key ├─────────┐
│                                                                          │
│ Repeat passphrase: _________________________________________             │
│                                                                          │
│        <OK>                                           <Cancel>            │
│                                                                          │
└──────────────────────────────────────────────────────────────────────────┘

Ingrese la misma frase de contraseña (mypassphrase123) nuevamente en el campo "Repeat passphrase" y presione Enter o haga clic en <OK>.

Después de confirmar la frase de contraseña, GPG terminará de generar su par de claves. Debería ver una salida similar a esta, que indica que la generación de la clave se ha completado:

gpg: key ... marked as ultimately trusted
gpg: revocation certificate stored as '/home/labex/.gnupg/openpgp-revocs.d/....rev'
public and secret key created and signed.

pub   rsa3072 2023-10-27 [SC]
      ...
uid           [ultimate] LabEx User <[email protected]>
sub   rsa3072 2023-10-27 [E]

La salida muestra información sobre su nueva clave generada, incluyendo el tipo de clave (rsa3072), la fecha de creación, el ID de la clave (...) y la identificación de usuario que proporcionó (LabEx User <[email protected]>). La línea pub se refiere a la clave pública, y la línea sub se refiere a la subclave (utilizada para el cifrado).

Ahora ha generado con éxito un par de claves GPG y ha protegido su clave privada con una frase de contraseña.

Verificar el archivo de la clave pública generada

En los pasos anteriores, generó con éxito un par de claves GPG. Ahora, verifiquemos que la clave pública se haya generado correctamente y esté disponible. La clave pública es lo que compartirá con otros para que puedan verificar sus firmas o cifrar mensajes para usted.

Para listar las claves públicas en su anillo de claves, utilice el comando gpg --list-keys. Dado que especificó "LabEx User" como el nombre durante la generación de la clave, puede filtrar la salida para mostrar solo su clave.

gpg --list-keys "LabEx User"

Debería ver una salida similar a esta, que confirma la presencia de su clave pública:

pub   rsa3072 2023-10-27 [SC]
      ...
uid           [ultimate] LabEx User <[email protected]>
sub   rsa3072 2023-10-27 [E]

Esta salida muestra los detalles de su clave pública, incluyendo el tipo de clave (pub), el algoritmo (rsa3072), la fecha de creación (2023-10-27), las capacidades ([SC] para Firmar y Certificar), el ID de la clave (...), la identificación de usuario (LabEx User <[email protected]>) y la información sobre la subclave de cifrado (sub).

Para exportar su clave pública a un archivo, puede utilizar el comando gpg --output <filename> --armor --export <user ID>. La opción --armor muestra la clave en formato ASCII armado, que es un formato de texto legible por humanos. Exportemos la clave pública de "LabEx User" a un archivo llamado labex_user_public.key en su directorio actual (~/project).

gpg --output labex_user_public.key --armor --export "LabEx User"

Este comando creará un archivo llamado labex_user_public.key en su directorio ~/project que contiene su clave pública.

Puede ver el contenido de este archivo utilizando el comando cat:

cat labex_user_public.key

La salida mostrará el bloque de la clave pública en formato ASCII armado, comenzando con -----BEGIN PGP PUBLIC KEY BLOCK----- y terminando con -----END PGP PUBLIC KEY BLOCK-----.

-----BEGIN PGP PUBLIC KEY BLOCK-----

... (your public key content) ...

-----END PGP PUBLIC KEY BLOCK-----

Esto confirma que su clave pública se ha exportado con éxito a un archivo. Ahora puede compartir este archivo con otros que necesiten verificar sus firmas o cifrar datos para usted.

Generar un par de claves en un directorio especificado

En los pasos anteriores, generó un par de claves GPG que se almacenó en el directorio de inicio predeterminado de GPG (~/.gnupg). A veces, es posible que desee generar claves y almacenarlas en una ubicación diferente, quizás para proyectos específicos o para mantenerlas separadas de su anillo de claves principal.

En este paso, aprenderá cómo generar un par de claves GPG y especificar un directorio diferente para almacenar los archivos de claves.

Primero, creemos un nuevo directorio donde almacenaremos el nuevo par de claves. Crearemos un directorio llamado mykeys dentro de su directorio ~/project.

mkdir ~/project/mykeys

Ahora, para generar un par de claves y almacenarlo en el directorio ~/project/mykeys, debe utilizar la opción --homedir con el comando gpg. Esta opción le indica a GPG que utilice el directorio especificado como su directorio de inicio en lugar del predeterminado.

Utilice el siguiente comando para iniciar el proceso de generación de claves, especificando el directorio ~/project/mykeys:

gpg --homedir ~/project/mykeys --full-generate-key

Se le guiará a través del mismo proceso de generación de claves que en el Paso 1 y el Paso 2.

  1. Seleccione el tipo de clave: Elija la opción predeterminada RSA and RSA presionando Enter.
  2. ¿Qué tamaño de clave desea? Elija el tamaño predeterminado 3072 presionando Enter.
  3. ¿Por cuánto tiempo es válida la clave? Ingrese 1y para un año y presione Enter.
  4. ¿Es esto correcto? Escriba y y presione Enter.
  5. Nombre real: Ingrese Project User y presione Enter.
  6. Dirección de correo electrónico: Ingrese [email protected] y presione Enter.
  7. Comentario: Deje el campo vacío presionando Enter.
  8. ¿Cambiar (N)ombre, (C)omentario, (E)mail o (O)k/(Q)uit? Escriba O y presione Enter.
  9. Ingrese la frase de contraseña: Ingrese una frase de contraseña (por ejemplo, projectpassphrase456) y presione Enter.
  10. Repita la frase de contraseña: Ingrese la misma frase de contraseña (projectpassphrase456) nuevamente y presione Enter.

Después de completar estos pasos, GPG generará el par de claves y almacenará los archivos necesarios dentro del directorio ~/project/mykeys.

Puede verificar que la clave se haya generado en el directorio especificado listando las claves en ese directorio de inicio:

gpg --homedir ~/project/mykeys --list-keys "Project User"

Debería ver una salida similar a esta, que muestra la clave que acaba de generar:

gpg: directory '/home/labex/project/mykeys' created
gpg: keybox '/home/labex/project/mykeys/pubring.kbx' created
pub   rsa3072 2023-10-27 [SC]
      ...
uid           [ultimate] Project User <[email protected]>
sub   rsa3072 2023-10-27 [E]

Observe las líneas que indican que el directorio de GPG y la caja de claves se crearon dentro de ~/project/mykeys. Esto confirma que la clave se generó en la ubicación especificada.

Resumen

En este laboratorio, aprendió cómo generar un nuevo par de claves de firma utilizando el comando gpg. Este proceso implica seleccionar el tipo de clave (por defecto, RSA y RSA), especificar el tamaño de la clave (por defecto, 3072 bits) y establecer el período de validez de la clave (establecido en un año en este laboratorio). También aprendió cómo ingresar y confirmar una frase de contraseña para la nueva clave para proteger la clave privada. Finalmente, verificó el archivo de la clave pública generada y exploró la generación de un par de claves en un directorio especificado, comprendiendo los conceptos fundamentales de las claves privadas y públicas para la comunicación segura y la distribución de software.