Este es uno de los capítulos del tutorial Como crear un repositorio PPA para distribuir tus aplicaciones. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.
Una de las características mas importantes de los repositorios en las distribuciones Linux son la seguridad que nos ofrecen. Esto es así porque cada paquete que se sube a un determinado repositorio debe ir firmado con una clave PGP, de manera que así hay una correspondencia clara entre el creador del paquete y el paquete. Así solo los paquetes con las claves permitidas podrán estar en el repositorio. Evidentemente, disponer de una clave PGP es un paso indispensable para poder subir nuestros paquetes al repositorio creado.
Evidentemente, una clave PGP, no solo es necesario para su uso con repositorios en Launchpad, también se puede utilizar para cifrar correos electrónicos, archivos, etc.
En este artículo, veremos que es una clave OpenPGP, como crear una clave PGP y como vincularla a nuestro perfil en Launchpad, para poder subir nuestros paquetes al repositorio que hemos creado.
¿Que es PGP y OpenPGP?
PGP, * Pretty Good Privacy* es una aplicación destinada a proteger la información mediante el uso de cifrado de clave pública, así como la autenticación de documentos mediante firma digital.
En el caso de la repositorios, como Launchpad, se utiliza la clave PGP para la firma de paquetes y la comprobación de su integridad. El creador del paquete utiliza la clave PGP para crear una firma digital. Para hacer esto, se calcula un resumen, hash, del paquete y luego se crea la firma digital de este paquete utilizando la clave PGP privada del creador del paquete.
Por otro lado OpenPGP es un protocolo de cifrado que se basa en PGP, y que define los formatos estandar para los mensajes cifrados, firmas y certificados para el intercambio de claves públicas.
Clave PGP
Antes de crear un paquete, debemos crear una clave OpenPGP, subirla al servidor de claves y asignar a nuestro usuario de Launchpad. Esto mismo, lo deberíamos de hacer para el caso de compartir un mensaje cifrado. La clave pública debe estar disponible para todos los usuarios, dado que es con ella con la que se cifran los mensajes, que solo podrán ser descifrados con la clave privada. En el caso de las firmas de paquetes o documentos, el funcionamiento es a la inversa, se utiliza la clave privada para la firma del documento, y la clave pública para comprobar que todo es correcto.
¿Para que es esto de la clave OpenPGP? Los paquetes que creamos se firman con nuestra clave OpenPGP. En nuestro repositorio solo están permitidos paquetes con nuestra firma. Cuando alguien baja un paquete de nuestro repositorio sabe a ciencia cierta que lo hemos hecho nosotros.
Crear una clave PGP
Para crear una clave PGP abrimos Contraseñas y claves, y seleccionamos la opción de menú Archivo > Nueva...
.
Esto nos mostrará un cuadro de diálogo como el que puedes ver en la siguiente captura de pantalla, donde debes seleccionar la opción Clave PGP
.
Aquí deberás introducir nombre completo y correo electrónico, tal y como indica en el propio cuadro de diálogo. Indicar, que este nombre y correo electrónico no tiene porque coincidir con el de tu usuario de Launchpad, aunque si que debe ser único. Es decir, si tienes dos usuarios en Launchpad, no pueden tener los dos la misma clave PGP.
Una vez creado seleccionamos la pestaña Claves GnuPG
, y en particular, la clave que terminamos de crear. A partir de aquí, seleccionamos el menú Remota > Sincronizar y publicar claves ...
, que nos mostrará el siguiente cuadro de diálogo,
Antes de nada, debemos seleccionar el Servidor de claves. En principio deberíamos elegir el que se aloja en ubuntu.com, porque es mas rápido para la tarea que queremos hacer. De cualquier forma podemos elegir cualquiera. Ahora bien, indicar que en el caso de elegir ubuntu.com nuestra clave estará disponible en 10 minutos a lo sumo, mientras que en el caso de elegir otro servidor puede tardar varias horas.
Una ves seleccionado el Servidor de claves, pulsamos el botón Sincronizar, y ya lo tenemos.
Ahora debemos importar a Launchpad nuestra clave PGP. Para ello, en nuestro perfil de Launchpad hacemos clic en el botón amarillo que hay al lado de Open PGP keys
,
Esto te lleva a la siguiente página donde podrás importar la clave OpenPGP. Aquí deberás pegar la huella digital de tu clave OpenPGP.
¿De donde sacar la huella digital? De nuevo tenemos que utilizar Contraseñas y claves y seleccionaremos Claves PGP > Claves GnuPG
y dentro seleccionaremos la clave que hemos creado en pasos anteriores. O bien haciendo doble clic, o desde el menú contextual, accedemos a las propiedades de nuestra clave. En las propiedades de nuestra clave seleccionamos la pestaña Detalles
y allí, en la parte derecha encontraremos la huella digital.
Una anotación; aquí está dividida en dos líneas de 5 bloques cada una, de 4 caracteres cada bloque. Al pegarla en Launchpad, debemos pegarla como una sola línea de 10 bloques, con cuatro caracteres por bloque.
Pulsamos el botón Import Key
, y esperamos el resultado. Aquí puede suceder lo siguiente,
- Que todo vaya correcto y nos diga que nos han enviado un correo
- Que nos diga que no lo ha podido importar, tal y como puedes ver en la siguiente captura de pantalla. Esto puede suceder porque te hayas equivocado o bien, porque todavía no esté actualizado el servidor de claves. Como he comentado anteriormente, si el servidor es el de Ubuntu será cuestión de minutos, pero si es otro servidor puede tardar mas tiempo.
Si todo ha ido bien, recibirás un correo con el que estés suscrito a Launchpad, con instrucciones para confirmar el registro de una nueva clave OpenPGP para utilizar con este servicio.
Por motivos de seguridad, las instrucciones de confirmación, que te envían en el correo, están cifradas con la misma clave OpenPGP que tu estás intentando registrar. ¿Que mejor forma que empezar a utilizar OpenPGP?
Dependiendo del cliente de correo que utilices, podrás utilizar diferentes complementos o extensiones para leer correos cifrados con OpenPGP. Si no te quieres complicar la vida, copia del contenido del correo, únicamente lo que se encuentra entre -----BEGIN PGP MESSAGE-----
y -----END PGP MESSAGE-----
incluidos ambos textos. Esto lo pegas en un archivo de texto mensaje.gpg
, y ejecutas la siguiente orden,
gpg mensaje.gpg
Esto creará un nuevo archivo de nombre mensaje
en el mismo directorio, con el contenido descifrado. En el te indica los detalles correspondientes a quien requiere el registro de la clave, detalles de la propia clave, y lo mas importante, un enlace. Este enlace se encuentra al final del archivo. Para ver el contenido del archivo, solo tienes que ejecutar la orden,
cat mensaje
Una vez localizado el enlace lo copias y pegas en el navegador de internet que utililces. Llegados a este punto, tan solo te queda confirmar la clave y ya lo tienes todo hecho.
Conclusiones
Una vez hemos creado nuestra clave PGP, ya estamos en disposición de crear nuestro primer paquete y subirlo a Launchpad.
En el próximo artículo, veremos un ejemplo muy sencillo, con el esquema básico de un paquete que podremos reutilizar para otros paquetes mas complejos.
Más información,
¡¡Excelente!! a la espera de la otra entrega. Gracias por estos tutoriales atareao
Gracias Jesús.
La siguiente entrega ya está en el horno.
Un saludo.