El mes pasado, el sitio web de Linux Mint fue pirateado y se puso una ISO modificada para descargar que incluía una puerta trasera. Si bien el problema se solucionó rápidamente, demuestra la importancia de verificar los archivos ISO de Linux que descarga antes de ejecutarlos e instalarlos. Así es cómo.
Las distribuciones de Linux publican sumas de comprobación para que pueda confirmar que los archivos que descarga son lo que dicen ser, y estos suelen estar firmados para que pueda verificar que las sumas de comprobación no hayan sido manipuladas. Esto es particularmente útil si descarga una ISO desde algún lugar que no sea el sitio principal, como un espejo de un tercero, oa través de BItTorrent, donde es mucho más fácil para las personas manipular los archivos.
Cómo funciona este proceso
El proceso de verificar una ISO es un poco complejo, así que antes de entrar en los pasos exactos, expliquemos exactamente lo que implica el proceso:
- Descargará el archivo ISO de Linux del sitio web de la distribución de Linux, o en otro lugar, como de costumbre.
- Descargará una suma de comprobación y su firma digital del sitio web de la distribución de Linux. Estos pueden ser dos archivos TXT separados, o puede obtener un solo archivo TXT que contenga ambos datos.
- Obtendrá una clave PGP pública que pertenece a la distribución de Linux. Puede obtenerlo en el sitio web de la distribución de Linux o en un servidor de claves independiente administrado por las mismas personas, dependiendo de su distribución de Linux.
- Utilizará la clave PGP para verificar que la firma digital de la suma de comprobación fue creada por la misma persona que hizo la clave, en este caso, los encargados de la distribución de Linux. Esto confirma que la suma de comprobación en sí no ha sido manipulada.
- Generará la suma de verificación de su archivo ISO descargado y verificará que coincida con el archivo TXT de suma de verificación que descargó. Esto confirma que el archivo ISO no ha sido manipulado ni dañado.
El proceso puede diferir un poco para diferentes ISO, pero generalmente sigue ese patrón general. Por ejemplo, existen varios tipos diferentes de sumas de comprobación. Tradicionalmente, las sumas MD5 han sido las más populares. Sin embargo, las sumas SHA-256 ahora se utilizan con más frecuencia en las distribuciones modernas de Linux, ya que SHA-256 es más resistente a los ataques teóricos. Aquí discutiremos principalmente las sumas SHA-256, aunque un proceso similar funcionará para las sumas MD5. Algunas distribuciones de Linux también pueden proporcionar sumas SHA-1, aunque son incluso menos comunes.
Del mismo modo, algunas distribuciones no firman sus sumas de comprobación con PGP. Solo necesitará realizar los pasos 1, 2 y 5, pero el proceso es mucho más vulnerable. Después de todo, si el atacante puede reemplazar el archivo ISO para su descarga, también puede reemplazar la suma de comprobación.
Usar PGP es mucho más seguro, pero no infalible. El atacante aún podría reemplazar esa clave pública con la suya propia, aún podría engañarlo para que piense que la ISO es legítima. Sin embargo, si la clave pública está alojada en un servidor diferente, como es el caso de Linux Mint, esto es mucho menos probable (ya que tendrían que piratear dos servidores en lugar de uno solo). Pero si la clave pública se almacena en el mismo servidor que la ISO y la suma de comprobación, como es el caso de algunas distribuciones, entonces no ofrece tanta seguridad.
Aún así, si está intentando verificar la firma PGP en un archivo de suma de verificación y luego validar su descarga con esa suma de verificación, eso es todo lo que puede hacer razonablemente como usuario final que descarga una ISO de Linux. Sigues siendo mucho más seguro que las personas que no se molestan.
Cómo verificar una suma de comprobación en Linux
Usaremos Linux Mint como ejemplo aquí, pero es posible que deba buscar en el sitio web de su distribución de Linux para encontrar las opciones de verificación que ofrece. Para Linux Mint, se proporcionan dos archivos junto con la descarga ISO en sus espejos de descarga. Descargue la ISO y luego descargue los archivos “sha256sum.txt” y “sha256sum.txt.gpg” a su computadora. Haga clic derecho en los archivos y seleccione «Guardar enlace como» para descargarlos.
En su escritorio Linux, abra una ventana de terminal y descargue la clave PGP. En este caso, la clave PGP de Linux Mint está alojada en el servidor de claves de Ubuntu, y debemos ejecutar el siguiente comando para obtenerla.
gpg --keyserver hkp: //keyserver.ubuntu.com --recv-keys 0FF405B2
El sitio web de su distribución de Linux le indicará la clave que necesita.
Ahora tenemos todo lo que necesitamos: la ISO, el archivo de suma de verificación, el archivo de firma digital de la suma de verificación y la clave PGP. A continuación, cambie a la carpeta en la que se descargaron …
cd ~ / Descargas
… y ejecute el siguiente comando para verificar la firma del archivo de suma de comprobación:
gpg --verify sha256sum.txt.gpg sha256sum.txt
Si el comando GPG le permite saber que el archivo sha256sum.txt descargado tiene una “buena firma”, puede continuar. En la cuarta línea de la captura de pantalla a continuación, GPG nos informa que esta es una «buena firma» que afirma estar asociada con Clement Lefebvre, el creador de Linux Mint.
No se preocupe si la clave no está certificada con una «firma confiable». Esto se debe a la forma en que funciona el cifrado PGP: no ha configurado una red de confianza importando claves de personas de confianza. Este error será muy común.
Por último, ahora que sabemos que los mantenedores de Linux Mint crearon la suma de comprobación, ejecute el siguiente comando para generar una suma de comprobación a partir del archivo .iso descargado y compárelo con el archivo TXT de suma de comprobación que descargó:
sha256sum: compruebe sha256sum.txt
Verá muchos mensajes de «no existe tal archivo o directorio» si solo descargó un solo archivo ISO, pero debería ver un mensaje «OK» para el archivo que descargó si coincide con la suma de verificación.
También puede ejecutar los comandos de suma de comprobación directamente en un archivo .iso. Examinará el archivo .iso y escupirá su suma de comprobación. Luego, puede verificar que coincida con la suma de verificación válida mirando ambos con los ojos.
Por ejemplo, para obtener la suma SHA-256 de un archivo ISO:
sha256sum /path/to/file.iso
O, si tiene un valor md5sum y necesita obtener el md5sum de un archivo:
md5sum /path/to/file.iso
Compare el resultado con el archivo TXT de suma de comprobación para ver si coinciden.
Cómo verificar una suma de comprobación en Windows
Si está descargando una ISO de Linux desde una máquina con Windows, también puede verificar la suma de verificación allí, aunque Windows no tiene incorporado el software necesario. Por lo tanto, deberá descargar e instalar la herramienta de código abierto Gpg4win .
Busque el archivo de clave de firma y los archivos de suma de comprobación de su distribución de Linux. Usaremos Fedora como ejemplo aquí. El sitio web de Fedora proporciona descargas de suma de comprobación y nos dice que podemos descargar la clave de firma de Fedora desde https://getfedora.org/static/fedora.gpg.
Una vez que haya descargado estos archivos, deberá instalar la clave de firma utilizando el programa Kleopatra incluido con Gpg4win. Inicie Kleopatra y haga clic en Archivo> Importar certificados. Seleccione el archivo .gpg que descargó.
Ahora puede comprobar si el archivo de suma de comprobación descargado se firmó con uno de los archivos clave que importó. Para hacerlo, haga clic en Archivo> Descifrar / Verificar archivos. Seleccione el archivo de suma de comprobación descargado. Desmarque la opción «El archivo de entrada es una firma separada» y haga clic en «Descifrar / Verificar».
Seguro que verá un mensaje de error si lo hace de esta manera, ya que no se ha tomado la molestia de confirmar que los certificados de Fedora son realmente legítimos. Esa es una tarea más difícil. Esta es la forma en que PGP está diseñado para funcionar: se reúne e intercambia claves en persona, por ejemplo, y construye una red de confianza. La mayoría de la gente no lo usa de esta manera.
Sin embargo, puede ver más detalles y confirmar que el archivo de suma de comprobación se firmó con una de las claves que importó. De todos modos, esto es mucho mejor que confiar en un archivo ISO descargado sin verificarlo.
Ahora debería poder seleccionar Archivo> Verificar archivos de suma de comprobación y confirmar que la información del archivo de suma de comprobación coincide con el archivo .iso descargado. Sin embargo, esto no funcionó para nosotros, tal vez sea solo la forma en que se presenta el archivo de suma de comprobación de Fedora. Cuando probamos esto con el archivo sha256sum.txt de Linux Mint, funcionó.
If this doesn’t work for your Linux distribution of choice, here’s a workaround. First, click Settings > Configure Kleopatra. Select “Crypto Operations,” select “File Operations,” and set Kleopatra to use the “sha256sum” checksum program, as that’s what this particular checksum was generated with. If you have an MD5 checksum, select “md5sum” in the list here.
Now, click File > Create Checksum Files and select your downloaded ISO file. Kleopatra will generate a checksum from the downloaded .iso file and save it to a new file.
You can open both of these files–the downloaded checksum file and the one you just generated–in a text editor like Notepad. Confirm the checksum is identical in both with your own eyes. If it’s identical, you’ve confirmed your downloaded ISO file hasn’t been tampered with.
These verification methods weren’t originally intended for protecting against malware. They were designed to confirm that your ISO file downloaded correctly and wasn’t corrupted during the download, so you could burn and use it without worrying. They’re not a completely foolproof solution, as you do have to trust the PGP key you download. However, this still provides much more assurance than just using an ISO file without checking it at all.
Image Credit: Eduardo Quagliato on Flickr