Cómo verificar la integridad de una imagen ISO de distribución de Linux

Cómo verificar la integridad de una imagen ISO de distribución de Linux

Cuando decidimos instalar un sistema operativo basado en el kernel de Linux, lo primero que hacemos es descargar su imagen de instalación, o ISO, del sitio web de distribución oficial. Sin embargo, antes de continuar con la instalación real, es crucial verificar la integridad de la imagen, para asegurarse de que sea lo que dice ser, y nadie lo ha comprometido. En este tutorial veremos los pasos básicos que podemos seguir para lograr esta tarea.

En este tutorial aprenderás:

  • ¿Cuál es la diferencia básica entre la encriptación y la firma de GPG?
  • Cómo descargar e importar una clave pública GPG desde un servidor clave
  • Cómo verificar una firma GPG
  • Cómo verificar la suma de verificación de un ISO
Cómo verificar la integridad de la imagen ISO

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Independiente de la distribución
Software GPG, SHA256SUM (debe instalarse de forma predeterminada)
Otro No hay otros requisitos
Convenciones #: los comandos de Linux se ejecutarán con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
$-Linux Commands para ser ejecutado como un usuario no privilegiado regular


Los pasos involucrados en la verificación de la integridad de un ISO descargado son básicamente dos:

  1. Verificar la firma del archivo que contiene la suma de verificación del ISO
  2. La verificación de la suma de verificación proporcionada en el archivo es la misma de la ISO real

Aquí veremos cómo realizar ambos pasos.

Paso 1

Verificación de la firma GPG del archivo de suma de verificación

Para estar seguros de que un ISO que descargamos no fue alterado, hay una cosa simple que hacer: verificar que su suma de verificación corresponde al indicado en el archivo que generalmente está disponible en la misma página que se descargó el ISO. Solo hay un problema: ¿cómo podemos estar seguros de que este archivo en sí no ha sido alterado?? Debemos verificar su firma GPG! Por cierto, ¿cuál es una firma de GPG y cuál es la diferencia entre firmar y encriptar con GPG??

Encriptación vs firmación

El cifrado de GPG se basa en el uso de pares de claves. Cada usuario genera una clave privada y pública: el primero, como su nombre lo sugiere, es estrictamente personal y debe mantenerse lo más seguro posible; El público puede distribuir y acceder libremente por el público. Básicamente, hay dos cosas que podemos hacer con GPG: encriptación y firma.

Digamos que tenemos dos personas: Alice y Bob. Si quieren beneficiarse del uso de GPG, lo primero que deben hacer es intercambiar sus claves públicas.

Si Alice quiere enviar un mensaje privado a Bob, y quiere asegurarse de que solo Bob pueda leer el mensaje, debe cifrarlo con la clave pública de Bob. Una vez que el mensaje esté encriptado, solo la clave privada de Bob podrá descifrarlo.

Eso es cifrado GPG; La otra cosa que podemos hacer con GPG es crear una firma digital. Supongamos que Alice quiere distribuir un mensaje público esta vez: todos deberían poder leerlo, pero se necesita un método para verificar que el mensaje sea auténtico y realmente fue escrito por Alice. En este caso, Alice debería usar su clave privada para generar un firma digital; Para verificar la firma de Alice, Bob, (o cualquier otra persona) usa la clave pública de Alice.



Un ejemplo del mundo real: descargar y verificar Ubuntu 20.04 ISO

Cuando descargamos un ISO de un sitio oficial que también debemos descargar, para verificarlo, también debemos descargar el archivo de suma de verificación correspondiente y su firma. Hagamos un ejemplo del mundo real. Supongamos que queremos descargar y verificar el ISO de la última versión de Ubuntu (20.04). Navegamos a la página de lanzamiento y desplazamos a la parte inferior de la página; Allí encontraremos la lista de archivos que se pueden descargar:

Ubuntu 20.04 Página de lanzamientos

Suponiendo que queremos verificar e instalar la versión "Desktop" de la distribución, debemos obtener los siguientes archivos:

  • Ubuntu-20.04-desktop-amd64.Yo asi
  • Sha256sums
  • Sha256sums.gpg

El primer archivo es la imagen de distribución en sí; el segundo archivo, Sha256sums, Contiene la suma de verificación de todas las imágenes disponibles, y ¿Dijo que es necesario verificar que las imágenes no se han modificado?. El tercer archivo, Sha256sum.gpg Contiene la firma digital de la anterior: la usamos para verificar que es auténtica.

Una vez que descargamos todos los archivos, lo primero que debemos hacer es verificar la firma GPG del archivo de suma de verificación. Para hacer eso, debemos usar el siguiente comando:

GPG -VERIFICAR SHA256SUMS.GPG SHA256SUMS 

Cuando se proporciona más de un argumento al GPG --verificar Comando, se supone que el primero es el archivo que contiene la firma y las otras para contener los datos firmados, que en este caso es la suma de verificación de la imagen de Ubuntu. Si la distribución de la que estamos trabajando actualmente no es Ubuntu, y es la primera vez que verificamos una imagen de Ubuntu, el comando debe devolver el siguiente resultado:

GPG: Firma hecha Jue 23 de abril de 2020 03:46:21 PM CEST GPG: Uso de la tecla RSA D94AA3F0EFE21092 GPG: No se puede verificar la firma: No hay clave pública 


El mensaje es claro: GPG no puede verificar la firma porque no tenemos la clave pública asociada con la clave privada que se usó para firmar datos. Donde podemos obtener la llave? La forma más fácil es descargarlo de un llave: En este caso usaremos llave.ubuntu.comunicarse. Para descargar la clave e importarla en nuestro llavero podemos ejecutar:

$ GPG -Keyserver Keyserver.ubuntu.com--recv-keys d94aa3f0efe21092 

Tomemos un momento para explicar el comando anterior. Con el -llave Opción, especificamos el KeyServer que queremos usar; el -recepcionalmente La opción, en cambio, toma un idiota como argumento, y es necesario para hacer referencia a la clave que debe importarse desde la llave. En este caso, la identificación de la clave que queremos buscar e importar es D94AA3F0EFE21092. El comando debe producir esta salida:

GPG: Clave D94AA3F0EFE21092: Clave pública "Ubuntu CD Image Clave automática Clave (2012)" GPG importado: Número total procesado: 1 GPG: Importado: 1 

Podemos verificar que la clave ahora esté en nuestro llavero iniciando el siguiente comando:

$ gpg-list-keys 

Debemos encontrar fácilmente la entrada en relación con la clave importada:

PUB RSA4096 2012-05-11 [SC] 843938DF228D22F7B3742BC0D94AA3F0EFE21092 UID [Desconocido] Ubuntu CD Imagen Clave de firma automática (2012)  

Ahora que importamos la clave pública, podemos volver a tratar para verificar el Sha256sum firma:

GPG -VERIFICAR SHA256SUMS.GPG SHA256SUMS 

Esta vez, como se esperaba, el comando tuvo éxito, y nos notificaron una buena firma:

GPG: Firma hecha Jue 23 de abril 2020 03:46:21 PM CEST GPG: Uso de la tecla RSA D94AA3F0EFE21092 GPG: Buena firma de "Ubuntu CD Image Automatic Streming Key (2012)" [Desconocido] GPG: Advertencia: esta clave no está certificada con una firma de confianza! GPG: No hay indicios de que la firma pertenezca al propietario. Huella digital de clave principal: 8439 38df 228d 22f7 B374 2BC0 D94A A3F0 EFE2 1092 


Leyendo la salida anterior, casi seguramente surgiría una pregunta: ¿qué hace el "No hay indicios de que la firma pertenezca al propietario" MENSAJE MEDIA? El mensaje aparece porque incluso si importamos la clave en nuestro llavero, no lo hemos declarado como confiable, y no hay una prueba real de que pertenece al propietario especificado. Para deshacerse del mensaje, debemos declarar que confiamos en la clave; Cómo podemos estar seguros de que se debe confiar en? Hay dos maneras:

  1. Verificar personalmente la clave pertenece al usuario o entidad especificada;
  2. Compruebe que ha sido firmado por una clave en la que ya confiamos, directamente o mediante una serie de claves intermedias.

Además, hay múltiples niveles de confianza que podemos asignar a una clave; Si está interesado en este tema (definitivamente debería estar!), y quiero saber más al respecto, el manual de privacidad de GNU es una buena fuente de información.

Paso 1

Verificación de la suma de verificación de la imagen

Ahora que verificamos que el Sha256sum La firma está bien, podemos continuar y verificar que la suma de verificación de la imagen descargada corresponde a la que realmente se almacena en el archivo, que tiene el siguiente contenido:

E5B72E9CFE20988991C9CD87BDE43C0B691E3B67B01F76D23F8150615883CE11 *UBUNTU-20.04-desktop-amd64.ISO CAF3FD69C77C439F162E2BA6040E9C320C4FF0D69AAD1340A514319A9264DF9F *UBUNTU-20.04-Live-server-amd64.Yo asi 

Como puede ver en cada línea del archivo, tenemos una suma de verificación asociada con una imagen. Asumiendo el Sha256sum El archivo se encuentra en el mismo directorio donde el Ubuntu 20.Se descargó la imagen 04 para verificar la integridad ISO, todo lo que tenemos que hacer es ejecutar el siguiente comando:

$ sha256sum -c sha256sum 


sha256sum se utiliza el programa para calcular y también verifica el resumen de mensajes SHA256. En este caso lo lanzamos usando el -C opción, que es la abreviatura de --controlar. Cuando se usa esta opción, le indica al programa que lea las suma de verificación almacenadas en el archivo aprobado como argumento (en este caso Sha256sum) y verifíquelo para la entrada asociada. La salida del comando anterior, en este caso, es lo siguiente:

Ubuntu-20.04-desktop-amd64.ISO: OK SHA256SUM: Ubuntu-20.04-Live-server-amd64.ISO: no hay dicho archivo o directorio Ubuntu-20.04-Live-server-amd64.ISO: fallido abierto o leído SHA256SUM: ADVERTENCIA: 1 Archivo listado no se pudo leer 

Desde la salida podemos ver que el Ubuntu-20.04-desktop-amd64.Yo asi ISO ha sido verificado, y su suma de verificación corresponde a la indicada en el archivo. También se nos notificó que era imposible leer y verificar la suma de verificación del Ubuntu-20.04-Live-server-amd64.Yo asi Imagen: Esto tiene sentido, ya que nunca lo descargamos.

Conclusiones

En este tutorial aprendimos a verificar un ISO descargado: aprendimos cómo verificar que su suma de verificación corresponde a la proporcionada en el archivo de suma de verificación, y cómo verificar la firma GPG de este último es bueno. Para verificar una firma GPG, necesitamos la clave pública correspondiente a la privada que la generó: en el tutorial también vimos cómo descargar una clave pública de un KeyServer, especificando su identificación.

Tutoriales de Linux relacionados:

  • Cómo montar la imagen ISO en Linux
  • Cosas para instalar en Ubuntu 20.04
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cómo abrir archivos ISO en Ubuntu Linux
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Cómo generar y hacer una copia de seguridad de un Keypair GPG en Linux
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Cómo arrancar dual Kali Linux y Windows 10
  • Descarga de Linux
  • Ubuntu 20.04 trucos y cosas que quizás no sepas