Saltar al contenido

Verificando software 101

Verificar software suena a algo complejo que solo hacen los «técnicos», y por ello, hasta hace poco, yo tampoco me lo planteaba.

«Nunca he tenido un problema antes, así que ¿por qué debería empezar ahora?»

La mayoría de la gente descarga software de las «App Stores» donde organizaciones como Apple o Microsoft lo verifican por ti. Sin embargo, parece que como estás aquí leyendo este artículo, voy a suponer que te gusta Bitcoin y el uso de software de código abierto relacionado con Bitcoin. Para la mayoría de los recién llegados, descargar software libre y de código abierto de algún lugar como Github puede parecerse un poco al Salvaje Oeste. Aquí es donde tener el conocimiento para verificar que el software que estás descargando es de la fuente que esperas y contiene los contenidos exactos que los desarrolladores han provisto, puede ser muy útil.

¿Qué pasa si no verificas tu software? La mayoría de las veces no pasa nada en absoluto. Otras veces, el software malicioso puede infectar tu ordenador con malware que tiene un aspecto idéntico al del software que esperas ver, pero que podría estar construido para robar todos los sats que posees. Este software podría ser la interfaz a través de la cual interactúas con los ahorros de tu vida! Visto así, cinco minutos siguiendo esta guía parece una inversión que vale la pena, ¿no es así?


CONCEPTOS BÁSICOS

Algunos de los conceptos básicos y de la terminología aquí utilizada pueden ser familiares para los Bitcoiners. Los principios y la forma en que funcionan en relación al software es la misma.

  • Clave privada – Un secreto conocido sólo por su propietario. Se puede usar para firmar archivos o mensajes
  • Clave pública – Una identificación compartida públicamente que se puede usar para validar que un mensaje o firma ha venido de su correspondiente clave privada.
  • Firma – Proporcionada por la clave privada como un tipo de prueba que puede ser confirmada utilizando la correspondiente clave pública.
  • SHA256 – Función que, cuando se realiza en cualquier archivo, produce una cadena de letras y números como resultado. Éste puede compararse con otros resultados generados para verificar que el contenido del archivo coincida exactamente.

Verificación de Specter Desktop

Los siguientes pasos se hicieron en una máquina Linux, pero los comandos son idénticos para MacOS. La única diferencia es el nombre del archivo descargado en el paso 1. Para Mac será un archivo .dmg.

1/ Descarga la última versión de Specter Desktop para el sistema operativo de tu ordenador. Luego descarga el archivo sha256.signed.txt en tu carpeta de descargas

2/ A continuación, necesitamos descargar la clave que firma estos softwares. Dependiendo del software que estés utilizando, puedes obtenerla de varias maneras. En el caso de Specter Desktop, es Stepan Snigirev quién firma el software. En la página de releases de github se proporciona un archivo que contiene su clave pública (es el archivo .asc). Guárdalo en tu carpeta de descargas.


Siempre es aconsejable obtener la clave pública de una fuente fiable, como un sitio web oficial, pero es una buena práctica verificar la clave desde una segunda fuente. Puedes buscar una clave pública utilizando un nombre o un correo electrónico en línea. Comparar la huella digital (una versión abreviada de una clave pública) mostrada de las dos fuentes es una buena forma de verificar rápidamente que la clave pública es la misma.

Otra forma de obtener una clave pública es a partir de un bloque PGP hecho público como el mío. Simplemente guarda todo el bloque como un archivo de texto en tu ordenador.


3/ Ahora necesitamos importar esa clave pública al llavero de tu ordenador para que pueda usarla como referencia en los pasos que siguen. Abre tu carpeta de descargas, haz clic derecho y luego «abrir en terminal». En la terminal, escribe el siguiente comando

gpg –import ss-specter-release.asc

Nota al margen – si utilizas esta guía para un software diferente o has importado la clave utilizando un archivo de texto, deberás modificar la parte de archivo del comando anterior para que se ajuste al nombre de archivo que estás utilizando tú.
Consejo profesional – En la terminal, una vez que empieces a escribir un nombre de archivo, al pulsar la tecla TAB debería completarse automáticamente, sin necesidad de escribir todo el nombre del archivo.

4/ Ahora tenemos que asegurarnos de que el software firmado fue realmente firmado por la persona que creemos que fue. El comando a continuación comprobará que la firma del archivo sha256.signed.txt que descargamos en el paso 1 proviene de la llave de Stepan que importamos en el paso 3.

Dependiendo del software que esté descargando, algunos proyectos proporcionarán un archivo .sig en lugar de un archivo .txt pero el principio es el mismo.

gpg –verify sha256.signed.txt

Fíjate en la «Good signature from Stepan Snigirev«. Ahora podemos estar seguros de que el archivo que descargamos en el paso 1 está firmado por Stepan con su clave privada.

5/ Finalmente, necesitamos asegurarnos de que el contenido del archivo firmado por Stepan es exactamente el mismo que el del archivo que descargamos. Ejecuta el siguiente comando.

sha256sum specter_desktop-v1.0.0-x86_64-linux-gnu.tar.gz

Cuando comparamos la salida del comando anterior con el archivo de hash SHA256 compartido públicamente que aparece a continuación, obtenemos una coincidencia exacta (ver línea 6). Esto significa que el contenido del archivo que hemos descargado coincide exactamente con el que los desarrolladores han firmado para su publicación.


Si hubiera habido un solo byte de datos diferentes en el archivo que descargamos, comparado con el que firmó Stepan, la salida del paso 5 se vería completamente diferente y sugeriría que algo está mal. En este escenario, deberías contactar con el equipo de desarrollo.

Podría parecer una molestia verificar el software, particularmente si hay lanzamientos regulares. Pero piensa en los riesgos potenciales de no hacerlo. Sólo se necesita una pieza de software malicioso para un ataque exitoso.

Esta guía usó Specter Desktop como ejemplo, pero todo el software de código abierto debería seguir un camino casi idéntico. Recuerda…

  1. Importa la clave pública de los desarrolladores (sólo tienes que hacerlo una vez)
  2. Comprueba que la firma vino de la llave del desarrollador
  3. Verifica que el contenido del archivo coincida con el contenido del archivo que el desarrollador produjo

Próximamente haré un artículo de verificación centrado en Windows.


Este artículo ha sido escrito en inglés por Bitcoin Q+A y traducido por Lunaticoin. Bitcoin Q+A ha querido formar parte así de la Spanish Armada

Si te ha gustado este artículo y quieres leer más de Bitcoin Q+A, visita bitcoiner.guide y considera la posibilidad de tirar unos cuantos sats en el bote de las propinas.

Buy No KYC | Hold your keys | Run your node | Use Coinjoin | Value Privacy

¿Te ha sido útil este artículo? Puedes dejarme una propina onchain, paynyms en este link
BitcoinQ+A