¿Qué es una suma de comprobación y cómo se usa?

Los datos informáticos normalmente se almacenan en archivos binarios, que se encuentran en un sistema de archivos informáticos. Cuando los datos se guardan en una computadora, se configuran a un formato binario. Este proceso de conversión requiere la validación del tamaño de un archivo para garantizar que todo el archivo se guardó correctamente. Un algoritmo de suma de comprobación es una función matemática que comprueba los archivos en busca de daños antes de guardarlos.

Las sumas de verificación son números que representan la cantidad de bits en un mensaje de transmisión y los profesionales de TI las utilizan para detectar errores en las transmisiones de datos al más alto nivel. Cuando se ejecuta una función hash criptográfica, a cada dato o archivo se le asigna un valor de suma de comprobación.

En este artículo tienes toda la información necesaria sobre la suma de comprobación, qué es, cómo se usa en Windows y en Mac y cómo funciona.

¿Qué es una suma de comprobación?

Una suma de comprobación es una cadena de números y letras que se utiliza para «comprobar» si los datos o un archivo se han alterado durante el almacenamiento o la transmisión. Las sumas de verificación a menudo acompañan al software descargado de la web para que los usuarios puedan asegurarse de que el archivo o los archivos no se modificaron en tránsito. Si la suma de verificación del proveedor del software coincide con la suma de verificación de los archivos de instalación descargados en su computadora, entonces no se realizaron errores ni modificaciones. Si las sumas de verificación no coinciden, es posible que los piratas informáticos hayan comprometido la descarga.

Una suma de comprobación es el resultado de ejecutar un algoritmo, llamado función hash criptográfica, en una pieza de datos, generalmente un solo archivo. La comparación de la suma de comprobación que genera a partir de tu versión del archivo con la proporcionada por el origen del archivo ayuda a garantizar que tu copia del archivo sea genuina y esté libre de errores.

Una suma de comprobación también se denomina a veces suma hash y, con menor frecuencia, valor hash , código hash o simplemente hash.

Ejemplo

La idea de una suma de comprobación o una función hash criptográfica puede parecer complicada pero nos gustaría convencerte de lo contrario. Las sumas de verificación realmente no son tan difíciles de entender o crear.

Comencemos con un ejemplo simple, con suerte mostrando el poder de las sumas de verificación para demostrar que algo ha cambiado. La suma de comprobación MD5 para la siguiente frase es una larga cadena de caracteres que representan esa frase.

This is a test.
120EA8A25E5D487BF68B5F7096440019

Para nuestros propósitos aquí, esencialmente son iguales entre sí. Sin embargo, hacer incluso un pequeño cambio, como eliminar solo el punto, producirá una suma de verificación completamente diferente.

This is a test
CE114E4501D2F4E2DCEA3E17B546F339

Como puedes ver, incluso un cambio minúsculo en el archivo producirá una suma de verificación muy diferente, dejando muy claro que uno no es igual al otro.

Caso de uso

Supongamos que descargas una gran actualización de software, como un paquete de servicio. Este es probablemente un archivo enorme, que tarda varios minutos en descargarse.

Una vez descargado, ¿cómo sabes que el archivo se recibió correctamente? ¿Qué sucede si se perdieron algunos bits durante la transferencia y el archivo que tienes en tu computadora en este momento no es exactamente lo que se pretendía? Aplicar una actualización a un programa que no es exactamente como lo creó el desarrollador probablemente te cause grandes problemas.

Aquí es donde comparar sumas de verificación puede tranquilizarte. Suponiendo que el sitio web del que descargaste el archivo proporcione los datos de suma de verificación junto con el archivo que se va a descargar, puedes usar una calculadora de suma de verificación para producir una suma de verificación a partir de tu archivo descargado.

Por ejemplo, digamos que el sitio web proporciona la suma de verificación MD5:5a828ca5302b19ae8c7a66149f3e1e98 para el archivo que descargaste. Luego, usas tu propia calculadora de suma de verificación para producir una suma de verificación usando la misma función hash criptográfica, MD5 en este ejemplo, en el archivo de tu computadora. ¿Coinciden las sumas de comprobación? ¡Genial! Puedes estar seguro de que los dos archivos son idénticos.

¿Las sumas de verificación no coinciden? Esto puede significar cualquier cosa, desde el hecho de que alguien reemplazó la descarga con algo malicioso sin que tú lo supieras, hasta una razón menos siniestra como que abriste y cambiaste el archivo, o que la conexión de red se interrumpió y el archivo no terminó de descargarse. Intenta descargar el archivo nuevamente y luego crea una nueva suma de verificación en el nuevo archivo, y luego compara nuevamente.

Las sumas de verificación también son útiles para verificar que un archivo que descargó de un lugar que no sea la fuente original es, de hecho, un archivo válido y no ha sido alterado, maliciosamente o de otra manera, desde el original. Simplemente compara el hash que crea con el disponible en la fuente del archivo.

Tipos

Al igual que con los algoritmos de criptografía, los algoritmos de suma de comprobación pueden ser de varios tipos, y cada uno de ellos puede ser más adecuado para un propósito específico que sus contrapartes. Vamos a enumerar los tipos más comunes de algoritmos de suma de comprobación y te contaremos un poco más sobre cada uno de ellos, para que puedas comprender el concepto de una manera más efectiva.

Palabra de paridad o byte de paridad

Comenzamos con el algoritmo de suma de verificación más simple, mejor conocido como verificación de paridad longitudinal. La forma en que funciona este algoritmo es dividiendo los datos en palabras que tienen un número fijo de bits (n) y luego calculando el «o exclusivo» (XOR) de todas las palabras que acaba de procesar. El resultado de este cálculo se agrega al mensaje como una palabra adicional.

Para verificar la integridad de un mensaje, la parte receptora calcula el «o exclusivo» (XOR) de todas las palabras, incluida la suma de verificación, y verifica si el resultado es una palabra que consta de (n) ceros. Si es así, todo está bien, pero si no, sabrá que se ha producido un error en algún lugar durante la transmisión.

Aunque es el algoritmo de suma de comprobación más simple, no es exactamente el más eficiente. El algoritmo de paridad palabra/byte detectará con éxito una suma de comprobación incorrecta si se produce algún error de transmisión que afecta a un solo bit de la entrada o a un número impar de bits.

Sin embargo, si los bits están ubicados en la misma posición en dos palabras distintas y el error los afecta, el algoritmo no detectará un error, lo que te hará creer que todo está bien, cuando en realidad no es así. El mismo escenario puede ocurrir si intercambias dos o más palabras; el algoritmo no detectará un error, lo que podría ser bastante peligroso.

Complemento de suma

Como era de esperar, debido al hecho de que tiene fallas, hubo un intento de perfeccionar el algoritmo mencionado y descrito anteriormente, por lo que se distorsionó el algoritmo de complemento de suma. A diferencia del algoritmo de verificación de paridad, el complemento de suma agregó todas las «palabras» como números binarios sin signo, mientras descartaba cada bit de desbordamiento, además de agregar el complemento total de dos como la suma de verificación.

Para validar un mensaje, la parte receptora debe agregar todas las palabras al igual que lo hace el algoritmo de verificación de paridad longitudinal, incluida también la suma de verificación. Si la cadena resultante no es una palabra llena de ceros, es un fuerte indicador de que se ha producido un error de transmisión en algún momento. Sin embargo, este algoritmo también puede detectar errores de un solo bit.

Dependiente de la posición

El algoritmo de suma de comprobación dependiente de la posición tenía como objetivo corregir las fallas de ambas funciones descritas anteriormente, ya que no son exactamente capaces de detectar muchos errores comunes que pueden ocurrir en más de un bit. Algunos ejemplos de estos errores comunes incluyen insertar o quitar palabras con todos los bits puestos a cero, así como cambiar el orden de las palabras de datos.

Como resultado, se creó un diseño de algoritmo de suma de verificación para evitar estas limitaciones e informar con precisión sobre este tipo de errores. La forma en que funciona este algoritmo viene dada por su propio nombre: dependiente de la posición. Por lo tanto, este algoritmo verifica no solo el valor de cada palabra en la entrada, sino también su posición en la secuencia. Dado que se tiene en cuenta más de un parámetro, la función de suma de comprobación dependiente de la posición aumenta los costes de cálculo de la suma de comprobación.

Algunos ejemplos de algoritmos de suma de comprobación dependientes de la posición son Adler-32, comprobaciones de redundancia cíclica (CRC) y la suma de comprobación de Fletcher.

Suma de comprobación difusa

Este tipo de algoritmo de suma de comprobación se desarrollará como una forma eficaz de detectar el correo no deseado. La forma en que funciona esta función se basa en datos cooperativos provenientes de varios ISP. Estas bases de datos aparecieron en correos electrónicos sospechosos o denunciados como spam.

Sin embargo, dado que el contenido de cada correo no deseado puede ser muy diferente al siguiente, haría que los algoritmos de suma de verificación clásica y las verificaciones concurrieran ineficaces y, por lo tanto, no valdría la pena usar. A su vez, el uso de un algoritmo de suma de verificación difusa puede reducir al mínimo el cuerpo de un correo y luego calcular una suma de verificación como de costumbre.

La razón por la que esta técnica funciona es que aumenta la posibilidad de que los correos electrónicos que son ligeramente diferentes generen exactamente la misma suma de verificación. Por el momento, hay algunos servicios centralizados (DCC, por ejemplo) que reciben envíos de sumas de verificación de ISP cooperantes de todos los correos electrónicos detectados por su software de detección de spam.

Hay un cierto umbral que el recuento de una suma de comprobación aproximada enviada no debe superar. Si es así, la base de datos marca el envío como correo no deseado potencial.

Cómo usar una suma de comprobación en Windows

Existen muchas herramientas y utilidades para validar sumas de verificación en Windows, pero usaremos herramientas integradas que vienen con Windows 7, Windows 8 y Windows 10.

Comienza descargando el archivo que deseas verificar como de costumbre. Recuerda que si se trata de un archivo comprimido (en zip), querrás ejecutar la suma de comprobación en la carpeta comprimida antes de extraer el contenido.

El sitio web de VLC te permite simplemente hacer clic en un enlace para ver la suma de verificación directamente en la página de descarga. Otros proveedores de software pueden requerir que descargues la suma de verificación en un archivo de texto, en cuyo caso puedes abrirlo con el Bloc de notas o un editor de texto similar.

La suma de comprobación es una larga cadena de números y letras aparentemente aleatorios. Una vez que puedas verlo, sigue estos pasos:

  • Abre el símbolo del sistema manteniendo presionada la tecla de Windows y presionando ‘R’ . Escribe «cmd» en el campo de texto y presiona Enter.
  • Navega a la carpeta donde se encuentra su archivo. Si usas la configuración predeterminada, este comando debería funcionar.
  • Ingresa el siguiente comando, reemplazando [FILENAME] con el archivo que deseas validar, incluida su extensión, y [HASH] con el algoritmo hash especificado por el proveedor del software. En este caso, la página de descarga de VLC dice que el algoritmo hash es SHA256.
    certutil -hashfile [NOMBRE DE ARCHIVO] [HASH]
  • Presiona Entrar para generar la suma de verificación. Compara la suma de verificación del proveedor de software con la que acabas de crear.

Si las dos sumas de verificación coinciden, estás listo para comenzar. El archivo no ha sido dañado o modificado desde la versión original.

Si las sumas de verificación no coinciden, hay un problema. Es posible que no se haya descargado correctamente o que un pirata informático haya secuestrado tu conexión para que descargues un archivo corrupto de un servidor malicioso. La versión modificada podría contener malware u otros defectos. No recomendamos instalar ningún software que no tenga una suma de verificación validada.

El comando certutil de Windows puede usar los siguientes algoritmos hash para generar una suma de verificación: MD2, MD4, MD5, SHA1, SHA256, SHA384 y SHA512.

Usar una suma de comprobación en Mac OS

Puedes validar una suma de verificación en Mac usando funciones integradas en Terminal. Comienza descargando el archivo que deseas validar junto con la suma de verificación del proveedor. Nuevamente, usaremos VLC Media Player como ejemplo.

Cuando descargas VLC, la suma de verificación se puede ver directamente en la página de descarga, pero algunos programas pueden requerir que descargues la suma de verificación en un archivo de texto separado. Puedes abrir un archivo de este tipo en TextEdit para ver la suma de comprobación.

Con la suma de verificación del proveedor de software en la mano, sigue estas instrucciones:

  • Abre una Terminal haciendo clic en el ícono de la lupa en la esquina superior derecha, busca «terminal» y haz clic en el primer resultado.
  • Suponiendo que descargaste el archivo, deseas ingresar a tu carpeta de Descargas predeterminada, navega a esa carpeta usando el comando cd en la Terminal: Descargas de CD.
  • El comando para generar una suma de comprobación varía según el algoritmo hash. En este caso, es SHA256. Introduce el siguiente comando en la terminal:
    shasum -a 256 vlc-3.0.6.dmg.
  • La suma de comprobación aparecerá en la siguiente línea de la terminal. Compáralo con la suma de verificación generada por el proveedor del software y asegúrate de que coincida.

Si las dos sumas de verificación coinciden, entonces el archivo no se corrompió ni modificó desde la versión original, y estás listo para comenzar.

Si las sumas de verificación no coinciden, entonces no lo instales. Es posible que no se haya descargado correctamente o que la conexión haya sido secuestrada para que descargues un archivo malicioso. No recomendamos instalar ningún software que no tenga una suma de verificación validada.

Si estás utilizando un algoritmo hash que no sea SHA256 en Mac, estos son los comandos que necesitarás, reemplazando [nombre de archivo] con el nombre del archivo que deseas validar:

  • MD5: md5 [nombre de archivo]
  • SHA1: shasum -a 1 [nombre de archivo]
  • SHA256: shasum -a 256 [nombre de archivo]
  • SHA384: shasum -a 384 [nombre de archivo]
  • SHA512: shasum -a 512 [nombre de archivo]

Recomendamos usar SHA256 o superior cuando sea posible. MD5 y SHA1 han quedado obsoletos y no son tan seguros.

Cómo funcionan las sumas de verificación

Hashing es una función de cifrado unidireccional que toma datos de cualquier tamaño y genera un valor de tamaño fijo. El algoritmo hash SHA256 utilizado anteriormente, por ejemplo, te proporciona una secuencia de 64 letras y números conocida como «hash». Ya sea que la entrada sea un archivo de texto con una oración o un sistema operativo completo, la longitud de la salida siempre será de 64 caracteres. El hash será el mismo siempre que los datos ingresados ​​en el algoritmo hash permanezcan constantes.

Al descargar software, el valor hash se utiliza como suma de comprobación. Las empresas también utilizan hash para verificar las contraseñas de los usuarios sin almacenar la contraseña en texto sin formato en un servidor. En los sistemas de correo electrónico que usan firmas digitales, el hash se usa para garantizar que los correos electrónicos no se hayan modificado en tránsito, donde el valor hash se denomina «resumen del mensaje» en lugar de suma de verificación.

Las sumas de verificación son una parte integral del protocolo IP, la tecnología subyacente que permite Internet. Cuando los datos se transmiten a través de Internet en paquetes IP, se utilizan sumas de verificación para garantizar que esos paquetes no hayan sido modificados. A diferencia de las descargas de software, estos protocolos automatizan el proceso de validación sin necesidad de intervención del usuario.

Si se altera incluso un bit de datos o código en los datos originales, el valor hash, la suma de comprobación o el resumen del mensaje serán drásticamente diferentes. Por lo tanto, si una parte del software descargado contiene errores o modificaciones que lo hacen diferente de lo que el proveedor de software publicó oficialmente, los valores hash, las sumas de verificación o los resúmenes de mensajes no coincidirán.

Conclusión

A fin de cuentas, si alguna vez escuchaste sobre las sumas de verificación pero no sabes demasiado sobre el tema y ahora estás confundido acerca de lo que significa, para qué se usa y cómo funciona, lo tenemos cubierto. En pocas palabras, una suma de verificación es primordial para verificar la integridad de los datos y se aplica a una amplia gama de dominios, incluidos, entre otros, correos electrónicos, contraseñas, archivos descargados e incluso resolución de problemas de RAM/HDD.

Cada sistema operativo tiene sus propias particularidades con respecto al cálculo y la comparación de la suma de verificación, por lo que es posible que desees consultar nuestras instrucciones si le resulta difícil calcular una suma de verificación en computadoras Mac o Windows. Si notas alguna diferencia entre su suma de verificación calculada y la original, siempre debes verlo como un problema potencial de intrusión o corrupción.