Información blog

Linux, tutoriales, noticias, sistemas, redes y seguridad informática, entre otras cosas.

viernes, 30 de octubre de 2015

Claves en APT

En alguna ocasión que otra he recomendado evitar (a ser posible) el uso de repositorios no oficiales; es decir el uso de repositorios ajenos a los implementados por el sistema operativo por defecto... Aún así hay veces en las que no queda otra que recurrir a éstos, ocasiones en las que al añadir "a pelo" los repositorios, generalmente tendremos notificaciones de que algo no va como debería. en caso de estar trabajando en un entorno basado en Debian: véase Ubuntu, Mint, Elementary Os, etc...


Esto es debido a que todos ellos comparten el mismo gestor de paquetes: APT. Imaginemos que hemos querido añadir un repositorio de Opensuse a nuestra lista de repositorios mediante:

echo 'deb http://download.opensuse.org/repositories/filesystems:/snapper/Debian_8.0/ /' >> /etc/apt/sources.list.d/snapper.list

El mero hecho de ejecutar apt-get update nos dará este error:

  1. Obj http://download.opensuse.org  Packages
  2. Ign http://download.opensuse.org  Translation-es_ES
  3. Ign http://download.opensuse.org  Translation-es
  4. Ign http://download.opensuse.org  Translation-en
  5. Descargados 4.408 B en 8seg. (524 B/s)
  6. W: Error de GPG: http://download.opensuse.org  Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY 98C97FE7324E6311

Este problema es bastante conocido por aquellos que trabajan con apt. y la causa es debido a la carencia de la clave pública. Las claves públicas tienen un único objetivo: Verificar que el origen del paquete que se está descargando es legítimo. La mejor forma de saber qué claves poseemos actualmente es listandolas; listado que se obtiene con gran facilidad mediante:

apt-key finger

Este comando nos ofrecerá un listado detallado, en el cual se nos mostrarían las claves con sus respectivos nombres, fechas de caducidad, fingerprint... Dichas claves serán las encargadas de verificar que el paquete bajado y de comprobar que el paquete en cuestión es aquel que se ha pedido y no uno fraudulento... Es por ello que en caso de querer instalar un paquete desde un repositorio CUYA CLAVE NO TENEMOS; es decir, desde un repositorio "no confiable". El sistema nos preguntará si efectivamente queremos instalar el paquete en cuestión. El mensaje rezaría:

Clave_invalida

Esto no significa que no nos vaya a dejar instalar el paquete, pero sí que nos preguntará si realmente deseamos instalar un paquete de origen desconocido. Para añadir la clave tendremos que saber de donde descargarla; generalmente el repositorio que hemos añadido posee un fichero llamado Release.key, que almacena la clave pública del repositorio. Dicho Release.Key proviene de la misma ruta que el repositorio que hemos añadido, y tendría que ser descargado mediante el comando wget. Así como el repositorio que hemos añadido es:

deb http://download.opensuse.org/repositories/filesystems:/snapper/Debian_8.0/

El comando para obtener el Release.key de dicho repositorio sería:

wget http://download.opensuse.org/repositories/filesystems:snapper/Debian_8.0/Release.key

Es decir que la ruta de descarga sería la misma que la del repositorio, añadiendole el nombre Release.key al final. Gracias a ésto habríamos obtenido la clave pública si bien no la hemos añadido a nuestro listado de claves; esto no se lograría hasta no recurrir al comando apt-key add; tal y como hacemos a continuación:

apt-key add - < Release.key

Ahora, si efectuásemos el comando apt-get update no tendríamos ningún aviso por falta de verificación y cualquier aplicación descargada desde dicho repositorio no daría aviso alguno... Ahora si realizásemos de nuevo el comando apt-key finger, veríamos la clave que recién hemos añadido en el listado:


Imaginemos que en el futuro queremos eliminar esa clave; ¿Cómo lo haríamos? Si observáis bien ,la clave tiene una sección con la estructura: 2048R/32E6311. Dicha sección representa la clave pública, a la cual se puede hacer referencia nombrando a la sección posterior al caracter /. El comando de borrado de claves es apt-key del, con lo que para borrar esta clave en concreto tendríamos que escribir:

apt-key del 324E6311

Es recomendable borrar las claves que no se vayan a usar, pues el exceso de claves puede llegar a ser tan peligroso como la carencia de ellas.

Con esto ya tendríamos las nociones generales sobre las claves usadas en apt con el fin de mantener nuestro sistema seguro; este sistema no es infalible, pero sí que puede resultar de gran ayuda para comprobar que la veracidad de un paquete.

Espero que os haya resultado útil.

Saludos.

No hay comentarios :

Publicar un comentario