OS X: Confirmar la integridad de un archivo descargado con sha y openssl

Posteriormente se han publicado SHA-2 en 2001 (formada por diversas funciones: SHA-224, SHA-256, SHA-384, y SHA-512) y la más reciente, SHA-3, que fue seleccionada en una competición de funciones hash celebrada por el NIST en 2012. Esta última versión se caracteriza por ser la que más difiere de sus predecesoras.

A lo largo de su historia, se conocen algunos ataques a esta familia de algoritmos:

  • En 1998 se encontró una vulnerabilidad para SHA-0, aunque esta no se podía extender a SHA-1. En cualquier caso, la NSA aumentó en ese momento la seguridad del SHA-1.
  • En 2004 se encontró una debilidad matemática en SHA-1, que permitiría encontrar colisiones de hash más rápido. Sin embargo, este hallazgo resulta poco relevante, pues la complejidad de búsqueda de colisiones pasaría de 280 a 269, algo que aún es computacionalmente inviable, requiriendo incluso más trabajo que MD5 (264).

Aplicación práctica

Imagina que cuelgas un archivo para descarga, o envías un archivo por correo y quieres la seguridad de que nadie ha modificado el archivo durante esa descarga o envío. Muchas veces esta modificación puede realizarse por un asaltante contra el servidor en el que se colgó el archivo o durante su transporte en un ataque man-in-the-middle.

Para evitar esto, y explicándolo de forma sencilla, lo que vamos a hacer es crear una cifra que identifica el archivo y su integridad, de forma que si ha sido modificado, aunque sea mínimamente, la diferencia entre ambas cifras demostrará que alguien lo ha “tocado” y por lo tanto, dejará de ser seguro. Por ejemplo, Apple, junto a sus descargas en sus páginas de soporte, incluye para algunas de ellas, notablemente las actualizaciones, la cifra “sha1” que puede se contrastada contra la cifra obtenida de la descarga para comprobar la integridad del archivo.

Para generar esta cifra abre el Terminal y usa el siguiente comando:

shasum -a 1 /ruta/al/archivo

El Terminal te devolverá una cadena alfanumérica larga (checksum) seguida de la ruta al archivo. Bien, nos interesa esa cadena, esa es la que tenemos que publicar en la web o hacer llegar de forma separada  al receptor de los archivos para que la pueda contrastar.

Para obtener esa cifra de un archivo descargado o recibido y contrastarla con la original, usaremos el comando:

openssl sha1 /ruta/al/archivo

Las dos cadenas alfanuméricas han de coincidir. Si no lo hacen, la integridad del archivo está comprometida y ha sido modificado en su origen o durante el transporte, o incluso al llegar a nuestro ordenador por ejemplo, por un software malicioso o quizás un antivirus.

0 0 votos
Article Rating
Subscribe
Notify of
0 Comments
Opiniones Inline
Ver todos los comentarios
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x