Llaves GPG: Entender y gestionar la confianza de los paquetes.

Entender la confianza
Confiar en llaves adicionales

La habilidad de apt de acceder a múltiples fuentes de paquetes conduce a una potencial vulnerabilidad de seguridad. Supongamos que intenta añadir un archivo de paquetes de José Hacker Aleatorio a su fichero sources.list para poder instalar el paquete gargleblast de Pepe. Por otro lado, es posible que (fuera de su conocimiento) el archivo de Pepe contenga versiones de paquetes como libc6 y ssh...¡versiones que roban su información privada o que abren puertas traseras en el sistema! Si estos paquetes tuviesen unos números de versión más elevados que los que se encuentran el archivo de Debian, apt los instalaría sin dudar en la siguiente actualización, permitiendo a Pepe realizar su sucia labor sin ser detectado. Pepe podría incluso entrar en los servidores réplica de Debian y reemplazar el software legítimo con su versión medicada.

Afortunadamente, las versiones más recientes de apt y de aptitude, tales como la versión documentada en este manual, tienen defensas incorporadas para repeler este tipo de ataques. apt utiliza unos fuertes mecanismos de seguridad basados en el conocido software de cifrado GPG para verificar que los paquetes distribuidos por los servidores réplica de Debian son los mismos que los que subieron desarrolladores de Debian. De esta manera, aptitude le avisará si intenta instalar un paquete desde una fuente que no pertenece a Debian, o si intenta actualizar un paquete de Debian a una versión que viene de una fuente que no es de Debian.

[Aviso]Aviso

Los mecanismos de seguridad de apt proporcionan una garantía casi perfecta de que los contenidos de su servidor réplica son idénticos o los del servidor central de Debian. Aun así, no son perfectos. Teóricamente, hay varias maneras en las que un paquete modificado se pueda introducir en el archivo central de Debian.

Asegurando que solo pueda instalar desde una fuente firmada le dará un alto grado de protección frente a los paquetes maliciosos, pero no puede eliminar todos los riesgos inherentes a instalar software.

Entender la confianza

apt permite al administrador de un archivo dotar de una firma al índice del archivo. Esta firma, que (por razones prácticas) no se puede falsificar, indica que los ficheros de paquete listados en el índice son los mismos que el administrador puso en el archivo en primer lugar: p. ej., que los contenidos de un paquete no se han manipulado desde su creación.[9] La firma se puede validar cerciorándose de que se corresponde con la llave pública del administrador. La llave pública del archivo de Debian se distribuye con apt, generalmente a través de su CD de Debian.

Cuando aptitude descarga el índice de un archivo, comprobará si el índice está apropiadamente firmado. Si no está firmado aptitude no confiara en los paquetes provenientes de ese archivo (más adelante se explicará lo que esto significa). Si tiene una firma pero es incorrecta o no se puede verificar, verá un aviso y aptitude se negará a confiar en paquetes procedentes de ese archivo.

Más adelante, cuando lleve a cabo un proceso de instalación, aptitude revisara si los paquetes son de una fuente firmada. Entonces verá un mensaje de aviso si se va a instalar un paquete sin firmar, o si un paquete se actualizará de una versión firmada a otra que no lo es, dándole la oportunidad de interrumpir la instalación.

[untrusted packages/versions warning]

Confiar en llaves adicionales

Puede encontrar útil que apt confié en archivos externos aparte de los ficheros de Debian. Para cada paquete en el que quiera confiar, tendrá que adquirir la llave pública que se utiliza para firmar el índice del archivo de paquetes. Éste es por lo general un fichero de texto cuyo nombre finaliza en .asc; puede ser suministrado por el administrador del sitio web o descargado desde un servidor de llaves públicas. Para más información acerca de llaves públicas y de como conseguirlas, consulte la página web de GPG.

La lista de llaves en las que apt confía se guarda en el fichero del anillo de llaves /etc/apt/trusted.gpg. Una vez que tenga la llave GPG, puede añadirla a este archivo ejecutando esta orden, gpg --no-default-keyring --keyring /etc/apt/trusted.gpg --import nueva_llave.asc. aptitude confiará entonces en cualquier archivo firmado con la llave contenida en nueva_llave.asc.

[Aviso]Aviso

Una vez que se añade un archivo de una llave al anillo de llaves de APT, !se le otorgara la misma confianza que a los propios servidores réplica de Debian¡ Haga esto sólo si está muy seguro de que la llave que está añadiendo es la correcta y si la persona que posee la llave es competente y de toda confianza.



[9] Como se ha mencionado antes, esto no índica que los paquetes del archivo sean seguros, o incluso no maliciosos; simplemente muestra que son genuinos.