Ir al contenido

¡Se acercan los certificados de 47 días! ¿Estás preparado?

Actúa ahora →

¿Qué es SHA? ¿Para qué se utiliza?

¿Qué es SHA? ¿Para qué se utiliza?

SHA (Algoritmo de Hash Seguro) es una familia de funciones hash criptográficas que convierten datos de cualquier tamaño en un valor único de longitud fija llamado resumen hash. Es unidireccional y no requiere clave, por lo que no se puede revertir. SHA se utiliza para verificar la integridad de los datos, proteger contraseñas y asegurar firmas y certificados digitales.

SHA (Algoritmo de Hash Seguro) es una familia de funciones hash criptográficas que transforman cualquier entrada en una cadena de caracteres de longitud fija, denominada resumen hash. El proceso de hashing es unidireccional y sin clave: la misma entrada siempre produce el mismo resumen, pero este no se puede revertir para obtener la entrada original. SHA se utiliza para verificar la integridad de los datos, almacenar contraseñas de forma segura y respaldar firmas y certificados digitales.

Puntos Clave

  • SHA (Algoritmo de Hash Seguro) es una familia de funciones hash criptográficas unidireccionales que producen un resumen hash único de longitud fija a partir de cualquier entrada.
  • El hashing no es cifrado: es unidireccional y no utiliza clave, por lo que un hash no se puede descifrar para obtener los datos originales.
  • Un pequeño cambio en la entrada modifica por completo la salida (el efecto avalancha), lo que hace que SHA sea ideal para detectar manipulaciones.
  • SHA-1 está roto (el ataque de colisión SHAttered de 2017) y está obsoleto. SHA-2 (incluido SHA-256) es el estándar actual, y SHA-3 es una alternativa basada en un diseño diferente.
  • SHA se utiliza para la integridad de los datos, el almacenamiento de contraseñas, las firmas y certificados digitales, y la tecnología blockchain. Todos los certificados TLS de confianza pública están firmados con SHA-2.

¿Qué es SHA?

SHA significa Algoritmo de Hash Seguro. Es una familia de funciones hash que se utiliza para cifrar datos y certificados digitales . Una función hash toma una entrada de cualquier tamaño y, mediante operaciones bit a bit, sumas modulares y funciones de compresión, la reduce a una salida de longitud fija que no se puede leer ni revertir. La familia SHA desciende del diseño anterior de MD (Message Digest), pero es un conjunto de algoritmos distinto y más robusto diseñado por la NSA y estandarizado por el NIST.

Algoritmo SHA

El hashing no es cifrado.
Un error común es creer que el hashing es una forma de cifrado. No lo es. El cifrado es bidireccional y utiliza una clave: se cifra con una clave y se descifra con otra para recuperar los datos originales. El hashing es unidireccional y no requiere clave: una vez que se aplica el hashing a los datos, el resumen no se puede convertir de nuevo en la entrada original. No existe el "descifrado" de un hash. La única forma de encontrar la entrada detrás de un hash es adivinar entradas y aplicarles el hashing hasta que una coincida (un ataque de fuerza bruta). Esta propiedad unidireccional es precisamente la razón por la que el hashing se utiliza para verificar la integridad y almacenar contraseñas, donde nunca es necesario recuperar la original, solo comprobar si un valor coincide.

El efecto avalancha

SHA está diseñado para que incluso un cambio de un solo carácter en la entrada modifique por completo la salida. Al aplicar la función hash a la palabra "Heaven" y a la palabra "heaven", que solo se diferencian por una letra mayúscula, se obtienen dos resúmenes hash completamente distintos e independientes. Esta propiedad se conoce como efecto avalancha y es importante por dos razones: impide que un atacante deduzca información sobre la entrada a partir del resumen y permite al destinatario detectar que un mensaje fue alterado durante la transmisión, ya que cualquier cambio produce un resumen diferente.

Las funciones SHA también son deterministas: la misma entrada siempre produce el mismo resumen, por lo que cualquiera que utilice la misma función SHA puede recalcular y verificar un hash. Este determinismo es una de las razones por las que todos los certificados TLS de confianza pública en internet deben ser cifrados con una función SHA-2.

Servicios de cifrado personalizados

Evaluamos, elaboramos estrategias e implementamos soluciones y estrategias de cifrado.

La familia SHA: SHA-1, SHA-2 y SHA-3

Se utilizan varios nombres (SHA-1, SHA-256, SHA-512, etc.), pero pertenecen a distintas generaciones. SHA-256 y SHA-512, por ejemplo, son simplemente variantes de SHA-2 con diferentes tamaños de resumen.

AlgoritmoTamaño del resumenEstado
SHA-1160 bitsFallo y obsoleto (colisión SHAttered, 2017). No lo utilice.
SHA-2 (SHA-224/256/384/512)De 224 a 512 bitsEstándar actual; SHA-256 es el más común. Seguro.
SHA-3 (SHA3-256/384/512)De 224 a 512 bitsAlternativa a SHA-2, con un diseño interno diferente (Keccak). Segura.

SHA-1 (obsoleto)

Introducido en 1993, SHA-1 fue el algoritmo hash seguro original, que generaba un resumen de 160 bits. Su resumen es demasiado corto para los estándares actuales, lo que hizo que los ataques de colisión (encontrar dos entradas diferentes que produzcan el mismo hash) fueran cada vez más factibles. En 2017, investigadores de Google y CWI demostraron una colisión práctica de SHA-1 en el histórico ataque SHAttered, confirmando la vulnerabilidad de SHA-1. Actualmente está obsoleto y no debe utilizarse con fines de seguridad.

SHA-2 (el estándar actual)

SHA-2 es el estándar actual de la industria, con una gama de tamaños de resumen que van desde 224 hasta 512 bits, siendo SHA-256 el más utilizado. Sus resúmenes más grandes hacen que las colisiones y los ataques de fuerza bruta sean computacionalmente inviables con la tecnología actual. Desde 2016, SHA-2 es obligatorio para todos los certificados y firmas digitales de confianza pública. La migración de la industria de SHA-1 a SHA-2 llevó años, ya que requirió la actualización de sistemas heredados, la sustitución de certificados y la reconfiguración de protocolos, pero SHA-256 es ahora el estándar predeterminado para certificados y firmas digitales SSL/TLS.

SHA-3 (la alternativa moderna)

SHA-3, estandarizado por el NIST en 2015, no reemplaza a SHA-2, sino que es una alternativa basada en un diseño interno completamente diferente (la estructura de esponja de Keccak). Gracias a su funcionamiento distinto, ofrece una protección adicional: si se descubriera una vulnerabilidad estructural en SHA-2, SHA-3 permanecería intacto. Su adopción no fue generalizada en su lanzamiento, ya que la mayoría de las organizaciones aún estaban migrando de SHA-1 a SHA-2, y SHA-2 seguía siendo seguro. SHA-3 puede ser más lento en software, pero es eficiente en hardware. Tanto SHA-2 como SHA-3 se consideran seguros en la actualidad.

¿Para qué se utiliza SHA?

SHA está presente en todos los sistemas de seguridad modernos, generalmente de forma discreta. Sus principales usos:

  • Firmas y certificados digitales: SHA-2 es obligatorio para todos los certificados TLS/SSL y firmas digitales. Los datos se someten a una función hash, y el hash es lo que se firma, lo cual es más rápido y seguro que firmar el mensaje completo.
  • Integridad de los datos: El hash de un archivo actúa como una huella digital. Si el archivo se modifica durante su transmisión o almacenamiento, su hash ya no coincide con el original, lo que revela manipulación o corrupción.
  • Almacenamiento de contraseña: Los sistemas almacenan el hash de una contraseña, no la contraseña en sí. Al iniciar sesión, la contraseña ingresada se somete a un proceso de hash y se compara. Si la base de datos es robada, los atacantes obtienen los hashes, no las contraseñas utilizables (especialmente si se utiliza un salting).
  • Protocolos seguros: SSH, S/MIME e IPsec utilizan funciones SHA como parte de su seguridad.
  • Blockchain: SHA-256 es fundamental para Bitcoin, ya que garantiza la seguridad del proceso de minería y enlaza los bloques de la cadena.

¿Por qué usar SHA?

  • Resistencia al ataque: Una contraseña cifrada con SHA-2 puede tardar años o décadas en ser descifrada por fuerza bruta, lo que disuade a los atacantes y protege las credenciales almacenadas.
  • Singularidad (resistencia a colisiones): Con SHA-2, en la práctica, distintas entradas producen resúmenes distintos, por lo que no existe ningún patrón que un atacante pueda explotar.
  • Verificación de integridad: Cualquier modificación de los datos, por pequeña que sea, produce un hash completamente diferente, lo que facilita la detección de cualquier manipulación.
  • Determinismo y velocidad: La misma entrada siempre produce el mismo valor hash, rápidamente, por lo que la verificación es eficiente y fiable.

SHA y la transición post-cuántica

A diferencia de los algoritmos de clave pública RSA y ECC , las funciones hash son relativamente resistentes a la computación cuántica. El ataque cuántico relevante (el algoritmo de Grover) solo proporciona una aceleración cuadrática, reduciendo a la mitad el nivel de seguridad de un hash en lugar de romperlo por completo. En la práctica, esto significa que SHA-256 y superiores siguen siendo seguros, y se recomienda SHA-384 y superiores para los usos a largo plazo y con la máxima seguridad. Las funciones hash también desempeñan un papel directo en la criptografía postcuántica : el estándar NIST SLH-DSA (FIPS 205) y los esquemas con estado LMS y XMSS construyen firmas digitales completamente a partir de funciones hash, precisamente porque el hashing se comprende muy bien y es resistente a la computación cuántica.

Servicios de cifrado personalizados

Evaluamos, elaboramos estrategias e implementamos soluciones y estrategias de cifrado.

Cómo ayuda la consultoría de cifrado

Utilizar las funciones hash adecuadas y descartar las débiles, como SHA-1 y MD5, es fundamental para una sólida estrategia criptográfica. Los Servicios de Asesoramiento en Cifrado de Encryption Consulting ayudan a las organizaciones a evaluar dónde se utiliza el hashing, identificar algoritmos obsoletos y alinear las prácticas de hashing, firma y certificación con las directrices de NIST y FIPS , incluyendo la preparación para la transición post-cuántica. Respaldado por las prácticas certificadas ISO/IEC 27001:2022 y SOC 2.

Preguntas frecuentes

¿Qué es SHA?

SHA (Algoritmo de Hash Seguro) es una familia de funciones hash criptográficas que convierten datos de cualquier tamaño en un valor de longitud fija llamado resumen hash. Es unidireccional, lo que significa que el resumen no se puede revertir para obtener los datos originales, y no requiere clave. SHA se utiliza para verificar que los datos no hayan sido alterados, para almacenar contraseñas de forma segura y como base para firmas y certificados digitales. SHA-256 es la versión más utilizada.

¿Para qué se utiliza SHA?

SHA se utiliza para diversos fines de seguridad: verificar la integridad de los datos (el hash de un archivo revela si ha sido modificado), almacenar contraseñas de forma segura (los sistemas almacenan el hash, no la contraseña) y proteger firmas y certificados digitales (los datos se cifran mediante hash y el hash se firma). Es obligatorio para todos los certificados TLS/SSL de confianza pública, se utiliza en protocolos seguros como SSH e IPsec, y es fundamental para sistemas blockchain como Bitcoin.

¿Es cifrado SHA?

No. SHA es una función hash, no un método de cifrado. El cifrado es bidireccional y utiliza una clave, por lo que los datos cifrados pueden descifrarse y recuperarse con la clave correcta. El hashing es unidireccional y no requiere clave: una vez que los datos se han cifrado, el resumen no puede revertirse. La única forma de encontrar la entrada original tras un hash es mediante la prueba y la adivinación. Por eso, el hashing se utiliza para la verificación de integridad y el almacenamiento de contraseñas, donde no es necesario recuperar la original.

¿Sigue siendo seguro SHA-1?

No. SHA-1 está obsoleto y es un algoritmo defectuoso. Su resumen de 160 bits es demasiado corto, lo que hacía factibles los ataques de colisión (dos entradas diferentes que producen el mismo hash). En 2017, investigadores de Google y CWI demostraron una colisión práctica en el ataque SHAttered, confirmando la inseguridad de SHA-1. No debe utilizarse con fines de seguridad. SHA-2 (como SHA-256) es el estándar actual, y SHA-3 es una alternativa segura.

¿Cuál es la diferencia entre SHA-1, SHA-2 y SHA-3?

SHA-1 es el algoritmo original de 160 bits, ahora obsoleto y vulnerable. SHA-2 es el estándar actual, una familia que ofrece resúmenes de 224 a 512 bits (SHA-256 es el más común) y es seguro. SHA-3, estandarizado en 2015, es una alternativa segura basada en un diseño interno completamente diferente (Keccak), que proporciona protección en caso de que se descubra una vulnerabilidad en SHA-2. Tanto SHA-2 como SHA-3 se consideran seguros hoy en día; SHA-1 no lo es.

¿Es SHA seguro frente a las computadoras cuánticas?

En general, sí. Las funciones hash son mucho más resistentes a los ataques cuánticos que los algoritmos de clave pública como RSA. El ataque cuántico relevante, el algoritmo de Grover, solo reduce a la mitad la seguridad efectiva de un hash en lugar de destruirla, por lo que SHA-256 y superiores siguen siendo seguros, y se recomienda SHA-384 y superiores para una mayor seguridad a largo plazo. El hashing goza de tanta confianza que los estándares de firma post-cuántica como SLH-DSA (FIPS 205) y los esquemas LMS y XMSS se basan completamente en funciones hash.

Refuerza tus prácticas de hash y certificados.

Utilizar las funciones hash actuales y descartar las débiles supone un pequeño cambio con un gran beneficio en materia de seguridad. Explore los Servicios de Asesoramiento en Cifrado de Encryption Consulting para evaluar sus prácticas de hash, firma y certificados conforme a los estándares actuales.