PGP y GPG, ¿es realmente necesaria la firma de paquetes en Linux?

Estándar

Parece que últimamente vuelve a hablarse del tema de la firma de paquetes en los repositorios de una distribución de Linux. Sobre todo en Arch Linux, la distribución que uso actualmente, la cual no firma sus paquetes actualmente en la implementación de su gestor de paquetes (Pacman). A pesar de ser un gestor de paquetes muy bueno, a la altura o mejor que otros muy conocidos como apt o yum, algunos usuarios (más instigadores que usuarios diría yo) han vuelto a sacar el tema de la firma de paquetes, algo que ha sido discutido a lo largo de ya 3 años por los actuales mantenedores y que no brinda el estado de necesario dentro del proyecto.

Pero antes de seguir hablando de la firma de paquetes en Pacman, ¿qué es la esta firma? La firma de paquetes nos sirve en Linux para asegurar la autoría de dichos paquetes y para que las posibles modificaciones de estos paquetes sean seguras para aquel usuario que trate de instalarlos o actualizarlos. En algunos gestores de paquetes, como apt, cuando tratan de actualizar la base de datos local que guarda las versiones de los paquetes instalados y así asegurar que éstos están actualizados a la última versión del servidor descargan previamente una clave GPG pública que usa para verificar la confianza que tenemos en este repositorio.

GPG es una implementación libre de PGP (Pretty Good Privacy) que usa el estándar OpenGPG para cifrar mensajes y que está desarrollado bajo licencia GPL. Este tipo de cifrado fue inventado para proteger la información que circula por la red usando criptografía de clave pública. PGP usa diferentes fases para la encriptación de los datos. Primero usa una función hash criptográfica inicial, que codifica el mensaje en un bloque de tamaño fijo. Esto ya proporciona una seguridad alta que se usa sobre todo para encriptar contraseñas en servicios de autenticación de usuarios. Después de este paso se comprimen los datos, esto ahorra tamaño en el disco. Una vez comprimido se aplica una técnica criptográfica de clave simétrica y, por último, otra asimétrica basada en clave pública. Este método nos proporciona un cifrado de criptografía mixta (ya que usa los dos tipos de criptografía basada en claves) muy usado para la generación de certificados de seguridad que vemos muy a menudo en las webs cifradas.

La discusión entonces trata no del método de firma, sino de si se trata de una característica imprescindible para todos aquellos gestores de paquetes de las distribuciones de Linux. En mi opinión, estos cifrados aportan una seguridad extra en las distribución que puede estar potencialmente utilizadas por usuarios novatos e incluso de nivel intermedio que en muchas ocasiones confían demasiado en la instalación de software en Linux, por aquello de la ausencia de virus, lo que no nos libra de la posible instalación de software no firmado que puede dañar nuestros ordenadores. Este tipo de sistemas operativos ya incluyen estas firmas para evitar «sorpresas» en su software.

Pero en el caso particular del sistema operativo del que os hablo, Arch Linux, es completamente distinto ya que el nivel de experiencia en el uso de sistemas operativos del tipo Linux de los usuarios que usan esta distro es medio-alto como mínimo, ya que sólo su instalación ya puede suponer un calentamiento de cabeza para casi cualquier usuario común. Un usuario de este tipo de distros, Arch Linux por poner un ejemplo (también podríamos hablar de Gentoo), instala software de los repositorios principales del SO y, si necesita algún software de terceros, se segura completamente de su autoría y visita los bugtrackers para cerciorarse de que el software que esta descargando es completamente seguro y no dañará su equipo y en el caso de que sucediera algo extraño por parte de alguna actualización del programa en sí, sabría donde buscar los posibles errores y como solucionarlos de una manera relativamente fácil (digo relativamente, porque no siempre es sencillo corregir ciertos errores en las distros de Linux).

Como conclusión, me gustaría que reflexionarais acerca de la tendencia actual de homogeneizar los sistemas operativos como si todos los usuarios tuviésemos las mismas necesidades y/o habilidades. Por esto mismo elijo y recomiendo ampliamente Linux como sistema operativo, dado que tenemos la posibilidad de escoger que software instalamos a la hora de usar el sistema operativo en sí y qué tipo de necesidades queremos cubrir con nuestra distro favorita. Y vosotros, ¿qué opináis? ¿Es realmente necesaria la firma digital de paquetes en los repositórios? ¿Qué distro usáis? ¿Están firmados sus paquetes?

Inspirado por: The real story behind Arch Linux package signing

Un comentario en “PGP y GPG, ¿es realmente necesaria la firma de paquetes en Linux?

Deja un comentario