Capítulo 4. Temas avanzados


Esta sección cubre temas que están más allá del alcance del tutorial introductorio pero que son útiles en el empaquetado de RPM en el mundo real.

4.1. Paquetes de firmas

Los paquetes están firmados para garantizar que ningún tercero pueda alterar su contenido. Un usuario puede añadir una capa adicional de seguridad utilizando el protocolo HTTPS al descargar el paquete.

Hay tres formas de firmar un paquete:

Para poder firmar un paquete, es necesario crear una clave GNU Privacy Guard (GPG) como se describe en Sección 4.1.1, “Creación de una clave GPG”.

4.1.1. Creación de una clave GPG

Procedimiento

  1. Generar un par de claves GNU Privacy Guard (GPG):

    # gpg --gen-key
  2. Confirme y vea la clave generada:

    # gpg --list-keys
  3. Exportar la clave pública:

    # gpg --export -a '<Nombre_de_clave>' > RPM-GPG-KEY-pmanager
    Nota

    Incluya el nombre real que ha seleccionado para la clave en lugar de <Nombre_de_la_clave>.

  4. Importar la clave pública exportada a una base de datos RPM:

    # rpm --import RPM-GPG-KEY-pmanager

4.1.2. Añadir una firma a un paquete ya existente

Esta sección describe el caso más habitual cuando un paquete se construye sin firma. La firma se añade justo antes de la publicación del paquete.

Para añadir una firma a un paquete, utilice la opción --addsign que ofrece el paquete rpm-sign.

Tener más de una firma permite registrar la ruta de propiedad del paquete desde el constructor del paquete hasta el usuario final.

Procedimiento

  • Añadir una firma a un paquete:

    $ rpm --addsign blather-7.9-1.x86_64.rpm
    Nota

    Se supone que debes introducir la contraseña para desbloquear la clave secreta de la firma.

4.1.3. Comprobación de las firmas de un paquete con múltiples firmas

Procedimiento

  • Para comprobar las firmas de un paquete con múltiples firmas, ejecute lo siguiente:

    $ rpm --checksig blather-7.9-1.x86_64.rpm
    blather-7.9-1.x86_64.rpm: size pgp pgp md5 OK

    Las dos cadenas pgp en la salida del comando rpm --checksig muestran que el paquete ha sido firmado dos veces.

4.1.4. Un ejemplo práctico de cómo añadir una firma a un paquete ya existente

Esta sección describe una situación de ejemplo en la que puede ser útil añadir una firma a un paquete ya existente.

Una división de una empresa crea un paquete y lo firma con la clave de la división. A continuación, la sede central de la empresa comprueba la firma del paquete y añade la firma corporativa al paquete, indicando que el paquete firmado es auténtico.

Con dos firmas, el paquete llega a un minorista. El minorista comprueba las firmas y, si coinciden, añade también la suya.

El paquete llega ahora a una empresa que quiere desplegarlo. Tras comprobar todas las firmas del paquete, saben que se trata de una copia auténtica. Dependiendo de los controles internos de la empresa que lo despliega, puede optar por añadir su propia firma para informar a sus empleados de que el paquete ha recibido su aprobación corporativa

4.1.5. Sustitución de la firma en un paquete ya existente

Este procedimiento describe cómo cambiar la clave pública sin tener que reconstruir cada paquete.

Procedimiento

  • Para cambiar la clave pública, ejecute lo siguiente:

    $ rpm --resign blather-7.9-1.x86_64.rpm
    Nota

    Se supone que debes introducir la contraseña para desbloquear la clave secreta de la firma.

La opción --resign también permite cambiar la clave pública de varios paquetes, como se muestra en el siguiente procedimiento.

Procedimiento

  • Para cambiar la clave pública de varios paquetes, ejecute:

    $ rpm --resign b*.rpm
    Nota

    Se supone que debes introducir la contraseña para desbloquear la clave secreta de la firma.

4.1.6. Firmar un paquete en el momento de la compilación

Procedimiento

  1. Construya el paquete con el comando rpmbuild:

    $ rpmbuild blather-7.9.spec
  2. Firme el paquete con el comando rpmsign utilizando la opción --addsign:

    $ rpmsign --addsign blather-7.9-1.x86_64.rpm
  3. Opcionalmente, verificar la firma de un paquete:
$ rpm --checksig blather-7.9-1.x86_64.rpm
blather-7.9-1.x86_64.rpm: size pgp md5 OK
Nota

Cuando construya y firme varios paquetes, utilice la siguiente sintaxis para evitar introducir la frase de contraseña Pretty Good Privacy (PGP) varias veces.

$ rpmbuild -ba --sign b*.spec

Tenga en cuenta que debe introducir la contraseña para desbloquear la clave secreta de la firma.

Red Hat logoGithubRedditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

© 2024 Red Hat, Inc.