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 está constituido por la llave pública y la llave privada. Para generar un par de llaves, escriba el siguiente comando como usuario root en una terminal 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.
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?
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 Intro.
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.
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)?
Presione y para confirmar su decisión.
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.
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.
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 la actividad en la pantalla cese, sus llaves serán ubicadas en el directorio .gnupg en el directorio de inicio de root, ya que está ejecutando el comando desde root. Para listar las llaves de root, utilice 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 el Manual de configuración de sistemas cliente de Red Hat Network.