Red Hat Training

A Red Hat training course is available for Red Hat Satellite

3.2. Firma digital para los paquetes de RHN

Todos los paquetes distribuidos a través de RHN deben tener una firma digital. Una firma digital es creada con una llave privada única y puede ser verificada con la correspondiente llave pública. Después de crear un paquete, el SRPM (RPM de código fuente) y el RPM pueden ser firmados digitalmente con una llave GnuPG. Antes de que el paquete sea instalado, la llave pública es utilizada para verificar que el paquete fue firmado por alguien confiable y de que no ha sido modificado desde el momento de la firma.

3.2.1. Generación de un par de llaves GnuPG

Un par de llaves GnuPG consta de la llaves privadas y públicas. Para generar un para de llaves:
  1. Escriba el siguiente comando como el usuario root en el indicador de shell:
    gpg --gen-key
    Si ejecuta este comando como un usuario sin privilegios root, usted verá el siguiente mensaje:
    gpg: Warning: using insecure memory!
    
    Este mensaje aparece porque los usuarios sin privilegios root no pueden bloquear páginas de memoria. Ya que usted no quiere que nadie más tenga su llave privada GnuGP o su contraseña, deberá generar el par de llaves como root. El usuario root puede bloquear páginas de memoria, lo cual significa que la información nunca se escribe al disco.
  2. Después de ejecutar el comando para generar un par de llaves, verá una pantalla introductoria con las opciones de llave. La pantalla se asemeja a la siguiente:
    	gpg (GnuPG) 1.2.6; Copyright (C) 2004 Free Software
    	Foundation, Inc.  This program comes with ABSOLUTELY NO
    	WARRANTY. This is free software, and you are welcome to
    	redistribute it under certain conditions. See the file COPYING
    	for details. Please select what kind of key you want: (1) DSA
    	and ElGamal (default) (2) DSA (sign only) (4) RSA (sign only)
    	Your selection?
    
  3. Acepte la opción por defecto: (1) DSA and ElGamal. Esta opción le permitirá crear una firma digital y encriptar/desencriptar con estos dos tipos de tecnologías. Escriba 1 y presione Enter.
  4. Elija ahora el tamaño de la llave. En cuanto más grande sea la llave, su mensaje será más resistente a ataques. Se recomienda la creación de una llave de al menos 1024 bits.
  5. En la siguiente opción podrá especificar la duración de validez de la llave. Si elige una fecha de caducidad, informe a los usuarios de la llave la fecha de caducidad y suministre la llave pública de reemplazo cuando sea necesario. Se recomienda que no se elija una fecha de caducidad. Si no elige una fecha de caducidad se le preguntará si desea confirmar su decisión:
    La llave no expira ¿Correcto (s/n)?
    
  6. Presione y para confirmar su decisión.
  7. La siguiente tarea es proporcionar un ID de usuario que contenga su nombre, dirección de correo-e y un comentario opcional. Cada campo se solicita de manera individual. Cuando finalice, verá un resumen de la información introducida.
  8. Una vez aceptadas las opciones escogidas, introduzca su contraseña.

    Nota

    Como para la contraseña de su cuenta, una buena contraseña es necesaria para optimizar la seguridad en GnuPG. Mezcle mayúsculas y minúsculas en la frase secreta usada, utilice números y/o incluya marcas de puntuación.
  9. Una vez introducida y verificada la contraseña, su llave será generada. Un mensaje similar al siguiente aparecerá:
    Es necesario generar muchos bytes aleatorios. Es una buena idea realizar alguna
    otra tarea (escribir en el teclado, mover el ratón, usar los discos) 
    durante la generación primaria. Esto da al generador de números aleatorios
    mayor oportunidad de obtener suficiente entropía. 
    
    +++++.+++++.++++++++....++++++++++..+++++.+++++.+++++++.+++++++ +++.
    ++++++++++++++++++++++++++++++++++++++..........................++++
    
    Cuando cese la actividad en la pantalla, sus nuevas llaves se colocarán en el directorio .gnupg en el directorio principal de root. Este es el sitio predeterminado para las llaves generadas por el usuario root.
Para obtener la lista de llaves de root, use el comando:
gpg --list-keys
La salida será similar a la siguiente:
/root/.gnupg/pubring.gpg ----------------  pub 1024D/B7085C8A 2002-02-18
 Your Name<you@example.com> 
sub 1024g/E12AF9C4 2002-02-18
Para obtener su llave pública, utilice el siguiente comando:
gpg --export -a 'Your Name' > public_key.txt
Su llave pública será escrita en el siguiente archivo public_key.txt.
Esta llave pública es muy importante. Es la llave que debe ser implementada en todos los sistemas cliente que recibirán los paquetes personalizados a través de up2date. Las técnicas usadas para implementar la llave a lo largo de una organización se estudian en la Guía de configuración de clientes de RHN;.