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 Copiar enlaceEnlace copiado en el portapapeles!
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 Copiar enlaceEnlace copiado en el portapapeles!
Procedimiento
Generar un par de claves GNU Privacy Guard (GPG):
gpg --gen-key
# gpg --gen-key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Confirme y vea la clave generada:
gpg --list-keys
# gpg --list-keys
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exportar la clave pública:
gpg --export -a '<Nombre_de_clave>' > RPM-GPG-KEY-pmanager
# gpg --export -a '<Nombre_de_clave>' > RPM-GPG-KEY-pmanager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotaIncluya el nombre real que ha seleccionado para la clave en lugar de <Nombre_de_la_clave>.
Importar la clave pública exportada a una base de datos RPM:
rpm --import RPM-GPG-KEY-pmanager
# rpm --import RPM-GPG-KEY-pmanager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.2. Añadir una firma a un paquete ya existente Copiar enlaceEnlace copiado en el portapapeles!
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
$ rpm --addsign blather-7.9-1.x86_64.rpm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotaSe 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 Copiar enlaceEnlace copiado en el portapapeles!
Procedimiento
Para comprobar las firmas de un paquete con múltiples firmas, ejecute lo siguiente:
rpm --checksig blather-7.9-1.x86_64.rpm
$ rpm --checksig blather-7.9-1.x86_64.rpm blather-7.9-1.x86_64.rpm: size pgp pgp md5 OK
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Las dos cadenas
pgp
en la salida del comandorpm --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 Copiar enlaceEnlace copiado en el portapapeles!
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 Copiar enlaceEnlace copiado en el portapapeles!
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
$ rpm --resign blather-7.9-1.x86_64.rpm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotaSe 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
$ rpm --resign b*.rpm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotaSe 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 Copiar enlaceEnlace copiado en el portapapeles!
Procedimiento
Construya el paquete con el comando
rpmbuild
:rpmbuild blather-7.9.spec
$ rpmbuild blather-7.9.spec
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Firme el paquete con el comando
rpmsign
utilizando la opción--addsign
:rpmsign --addsign blather-7.9-1.x86_64.rpm
$ rpmsign --addsign blather-7.9-1.x86_64.rpm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Opcionalmente, verificar la firma de un paquete:
rpm --checksig blather-7.9-1.x86_64.rpm
$ rpm --checksig blather-7.9-1.x86_64.rpm
blather-7.9-1.x86_64.rpm: size pgp md5 OK
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
$ rpmbuild -ba --sign b*.spec
Tenga en cuenta que debe introducir la contraseña para desbloquear la clave secreta de la firma.