Cuando descarga software de Internet, debe confiar en los desarrolladores de que su programa no es malicioso. Sin embargo, también debe preocuparse por los piratas informáticos. Un atacante puede ganar mucho al piratear un sitio web y reemplazar el software con una versión de puerta trasera.
Piense en un sitio que aloja una utilidad de billetera Bitcoin. Si un atacante logra reemplazar la versión legítima por una maliciosa, potencialmente puede robar dinero a decenas de miles de usuarios. Otro objetivo valioso para la puerta trasera es un sistema operativo. Esto le sucedió a Linux Mint en el pasado.
¿Entonces, qué puede hacer usted al respecto?
Hashes y firmas
Los desarrolladores que son conscientes de la seguridad a menudo agruparán sus archivos de configuración o archivos comprimidos con sumas de verificación que usted puede verificar. Puede leer cómo verificarlos en Windows o Linux. Sin embargo, el problema con estos hashes es que si un pirata informático reemplaza archivos en un sitio web, también puede reemplazar fácilmente los hashes. Esto hace que los hashes por sí solos sean casi inútiles, especialmente si están alojados en el mismo servidor donde residen los programas.
Para que estas sumas de verificación sean útiles, los desarrolladores también pueden firmarlos digitalmente, con la ayuda de un par de claves pública y privada. Solo la persona que posee esta clave privada puede crear firmas. Estos pueden verificarse solo con la clave pública correspondiente, que se publica en Internet. Si pasa la verificación, puede estar (casi siempre) seguro de que el propietario de la clave privada firmó su software.
Para que un hacker eluda este mecanismo de seguridad, tiene que robar la clave privada de alguna manera, lo cual es mucho más difícil si el propietario toma las medidas adecuadas para mantenerla en secreto. E incluso cuando la clave es robada, el propietario puede invalidarla revocándola y anunciándola. Si esto sucede, cuando descargue su clave pública e intente usarla para verificar una firma, se le notificará que se ha revocado.
Cómo verificar firmas usando GnuPG (GPG)
La utilidad gpg generalmente se instala de forma predeterminada en todas las distribuciones. Si, por alguna razón, falta, puede instalarlo con los comandos a continuación. En algunas distribuciones, si obtiene un error como «gpg: no se pudo iniciar el dirmngr ‘/usr/bin/dirmngr’: No existe tal archivo o directorio», debe instalar dirmngr
también.
En distribuciones basadas en Debian, Ubuntu o Debian, ejecute:
sudo apt install gnupg dirmngr
Para RedHat/CentOS:
sudo yum install gnupg dirmngr
y en Fedora:
sudo dnf install gnupg dirmngr
Puede seguir el ejemplo a continuación para probar cómo verificaría un ISO del instalador de Debian 9.8.0.
Descargue «SHA256SUMS», «SHA256SUMS.sign» y «debian-9.8.0-amd64-netinst.iso». Es posible que deba hacer clic con el botón derecho en los dos primeros archivos y seleccionar «Guardar enlace como» o el equivalente en su navegador web. De lo contrario, hacer clic en ellos puede mostrar su contenido en lugar de descargarlo automáticamente.
Abra un emulador de terminal y cambie al directorio donde se encuentran sus descargas.
Verificación de sumas de verificación
Espere a que finalice la descarga de ISO. A continuación, verifique las sumas de verificación SHA256.
Verá el nombre del archivo seguido de un mensaje «OK» cuando la suma de verificación sea correcta. Para verificar otros tipos de sumas de verificación, tiene los siguientes comandos: sha1sum
, sha512sum
, md5sum
. Pero se recomienda que use al menos una suma SHA256, o superior, si está disponible.
Algunos sitios no ofrecen archivos como SHA256SUMS, donde los nombres de los archivos y las sumas de verificación se agrupan para facilitar la verificación. Si solo muestran la suma en su sitio, verifique el hash del archivo con un comando como:
sha256sum debian-9.8.0-amd64-netinst.iso
Uso de GPG para verificar sumas de verificación firmadas
En este ejemplo, el equipo de Debian firmó el archivo “SHA256SUMS” con su clave privada y lo guardó en el archivo “SHA256SUMS.sign”. Verificar la firma con:
gpg --verify SHA256SUMS.sign SHA256SUMS
Recibirás este mensaje:
gpg: Signature made Sun 17 Feb 2019 05:10:29 PM EET gpg: using RSA key DF9B9C49EAA9298432589D76DA87E80D6294BE9B gpg: Can't check signature: No public key
Esto significa que no tiene la clave pública en su computadora, lo cual es normal. Tienes que importarlo desde un servidor de claves.
gpg --keyserver keyring.debian.org --recv-keys DF9B9C49EAA9298432589D76DA87E80D6294BE9B
Si un servidor de claves no funciona, puede usar uno alternativo. Por ejemplo, podrías reemplazar keyring.debian.org
con keyserver.ubuntu.com
.
Pero, ¿cómo sabes que esta clave es legítima? Desafortunadamente, para estar absolutamente seguro, necesitarías construir algo llamado red de confianza. Obviamente, no lo tienes en este momento. Pero hay un par de cosas que puedes hacer.
Busca en Google la huella dactilar de la llave (DF9B9C49EAA9298432589D76DA87E80D6294BE9B). Si no encuentra nada, intente buscar en Google solo los últimos ocho caracteres (6294BE9B). Se mencionará una clave legítima en muchos sitios web con respecto a software similar. Además, las publicaciones generalmente se extenderán a lo largo de los años, ya que una clave protegida de forma segura se utilizará durante mucho tiempo.
Si eres realmente paranoico, descarga un Imagen de BitTorrent y luego verifique la suma de verificación y las firmas. Por la forma en que funcionan los torrents, es imposible reemplazar los archivos cargados por cientos de usuarios diferentes. Además, BitTorrent también tiene mecanismos propios para verificar la integridad de cada fragmento de datos que descarga.
Ahora que tiene la clave pública, finalmente puede verificar la firma:
gpg --verify SHA256SUMS.sign SHA256SUMS
Si ve «Buena firma», significa que todo está correcto. No se preocupe por la advertencia, es normal porque, como se mencionó, no tiene una red de confianza establecida para la clave pública.
Conclusión
Como ya sabrás, nada es seguro en Internet. Pero ciertamente es más seguro tomar medidas de precaución, y verificar las firmas digitales de los archivos que descargas puede ayudarte a evitar el software malicioso. Muchas veces, cuando los usuarios han descargado sistemas operativos de puerta trasera o software de billetera Bitcoin, podrían haber evitado el problema si verificaran las firmas, ya que no han sido manipuladas.