¿Qué es el cifrado SHA? SHA-1 frente a SHA-2
Los sitios web maliciosos están diseñados para aprovecharse de los usuarios y robar información personal o financiera. Los piratas informáticos emplean técnicas como drive-by downloads, malware JavaScript, malvertising y phishing para comprometer su sistema, a menudo sin su conocimiento. Estas amenazas ponen de relieve la importancia de adoptar hábitos de navegación seguros y medidas de seguridad sólidas en los sitios web. Herramientas como SiteLock Website Security pueden proteger de los ciberataques tanto a los usuarios como a los propietarios de los sitios.
Tabla de Contenidos
¿Qué es el cifrado SHA?
Los algoritmos SHA (Secure Hash Algorithms) son una familia de funciones hash criptográficas publicadas por el Instituto Nacional de Estándares y Tecnología (NIST) como Estándar Federal de Procesamiento de Información (FIPS) de Estados Unidos. Los cifrados SHA se utilizan para una gran variedad de métodos, como el hash de datos, archivos de certificados y otros fines criptográficos, incluso en criptomonedas como bitcoin. Estos algoritmos hash ayudan a asegurar la columna vertebral de la infraestructura moderna de Internet.
Las familias de funciones SHA más comunes que encontrarás son SHA-1 y SHA-2:
SHA-1 es una función hash de 160 bits que evolucionó a partir del algoritmo MD5. Originalmente, el hash SHA-1 fue creado por la Agencia de Seguridad Nacional (NSA) para formar parte de su Algoritmo de Firma Digital. Sin embargo, se descubrieron debilidades criptográficas en SHA-1, y el estándar dejó de aprobarse para la mayoría de usos criptográficos después de 2010. Como SHA-1 ya no cumple las normas de ciberseguridad actuales, SHA-2 se ha convertido en la función SHA más utilizada.
SHA-2 se desarrolló poco después de que se descubrieran ataques de fuerza bruta rentables contra SHA-1. Se trata de una familia de dos funciones hash similares, con diferentes tamaños de bloque, conocidas como SHA-256 y SHA-512. La principal diferencia entre SHA-256 y SHA-512 es el tamaño de las palabras: SHA-256 utiliza palabras de 32 bytes, mientras que SHA-512 utiliza palabras de 64 bytes. También existen versiones modificadas de cada estándar, conocidas como SHA-224, SHA-384, SHA-512/224 y SHA-512/256. La función SHA más utilizada hoy en día es SHA-256, que permite una gran protección a los niveles actuales de procesamiento informático. SHA-2 tiene una estructura Merkle-Damgård con función de compresión Davies-Meyer.
Más allá de estas opciones más conocidas, existen otras dos familias de variantes de SHA con las que puede encontrarse, SHA-0 y SHA-3:
SHA-0 es lo que ahora llamamos la versión básica de la función hash de 160 bits o 20 bytes de longitud, que se publicó en 1993 con el nombre de algoritmo SHA. El uso de la función hash se interrumpió muy poco después de su publicación debido al descubrimiento de un fallo importante y, tras un mayor desarrollo de la teoría subyacente, surgió SHA-1.
SHA-3 es la técnica de cifrado SHA que está creciendo más rápidamente en la actualidad. Se diferencia de otros SHA en que utiliza Keccak, una función hash desarrollada recientemente. La longitud admitida es la misma que en SHA-2, pero sigue habiendo diferencias significativas. Lo que hace diferente a SHA-3 es su estructura general, ya que se basa en una amplia gama de generación de funciones aleatorias, que normalmente admiten todas las permutaciones aleatorias, lo que permite introducir o absorber, como se denomina, cualquier cantidad de datos presentados y dar salida o exprimir los datos presentados. De este modo se obtiene un resultado pseudoaleatorio y, en teoría, más seguro.
SHA-1 frente a SHA-2: ¿cuál es la diferencia?
La diferencia entre SHA-1 y SHA-2 radica en la «longitud» o el «número de bits» que contiene el resumen del mensaje (contenido cifrado) para cualquier entrada dada. Así, cuanto mayor sea el número de bits que contenga el compendio, más difícil será descifrarlo utilizando las tácticas de fuerza bruta que obligaron a evolucionar más allá de SHA-1. SHA-2 produce un compendio de 256 bits, mientras que la función SHA-1 produce un compendio de 160 bits para la misma entrada. Debido a esta diferencia, SHA-1 ofrece una seguridad más débil, ya que a veces da el mismo compendio para dos valores de datos diferentes, mientras que SHA-2 produce un compendio único para cada valor de datos, ya que en él es posible un gran número de combinaciones (2^256 combinaciones posibles para una función de 256 bits).
¿Cómo se utiliza el cifrado SHA?
Los SHA se utilizan ampliamente en protocolos y aplicaciones de seguridad, como la seguridad de la capa de transporte (TLS), la capa de sockets seguros (SSL), las firmas digitales, los certificados de correo electrónico S/MIME, PGP e IPsec. La ley suele exigir este tipo de cifrado para aplicaciones específicas del gobierno estadounidense, como la protección de datos confidenciales. Y los proveedores de navegadores, como Google, Microsoft o Mozilla, han empezado a recomendar el uso de SHA-3 y a dejar de utilizar el algoritmo SHA-1.
Uno de los usos más importantes de SHA es dentro del protocolo SSL/TLS, ya que se utiliza como algoritmo hash para las firmas digitales.
SSL y TLS son protocolos criptográficos diseñados para proporcionar un canal de comunicación seguro entre clientes y servidores a través de Internet. Los certificados TLS/SSL son un tipo de certificado X.509 que se utiliza para validar la identidad de un servidor ante un navegador.
La intención de tener este tipo de certificado no es sólo proporcionar autenticación, sino también establecer la identidad del servidor remoto con el que se comunica el navegador cliente. Contiene los detalles del servidor web y los archivos clave asociados a él. Los certificados deben contener la información DNS y no haber caducado para ser aceptados correctamente y crear una sesión SSL/TLS sin errores de seguridad.
¿Cómo funciona el cifrado SHA?
SHA, como su nombre indica, es un algoritmo de hash. Cada dato que pasa por el algoritmo produce un hash único que no puede ser duplicado por ningún otro dato. La firma digital resultante también es única, ya que depende del hash generado a partir de los datos. En el caso de la comunicación real, se utiliza criptografía simétrica, en la que la misma clave que genera el hash o cifra los datos se utiliza para descifrarlos. Esto permite revelar la clave pública sin comprometer la clave privada.
La mayoría de los algoritmos hash se basan en el algoritmo original MD4 y, por tanto, comparten un método de funcionamiento similar.
El proceso básico detrás de cualquier tipo de hash es convertir la entrada, o mensaje original, en binario y luego realizar un conjunto de funciones simples que operan a través de procesos básicos estándar de transistores y buses como AND, XOR, NOT, Rotate y OR. El valor hash resultante es un hexadecimal único pero sin significado. El hecho de tener que realizar esas sencillas funciones para obtener un hash adecuado de una entrada de datos es parte de la razón por la que se pueden diseñar chips de aplicación específica (ASICS) que optimizan el hash.
En el caso del hash SHA-256, los chips de nueva creación se han diseñado específicamente para aumentar la velocidad de creación de un hash a partir de una entrada. En el caso del minado de bitcoins, esto significa que se pueden calcular más hashes por segundo, lo que aumenta las posibilidades de obtener la recompensa del minado.
¿Es seguro SHA?
SHA-1 (Secure Hash Algorithm 1) data de 1995 y se sabe que es vulnerable a ataques teóricos desde 2005. El Instituto Nacional de Estándares y Tecnología de Estados Unidos ha prohibido el uso de SHA-1 por parte de las agencias federales estadounidenses desde 2010, y las autoridades de certificados digitales no pueden emitir certificados firmados con SHA-1 desde el 1 de enero de 2016, aunque se han hecho algunas excepciones.
Sin embargo, a pesar de estos esfuerzos para eliminar gradualmente el uso de SHA-1 en algunas áreas, el algoritmo todavía se utiliza bastante ampliamente en una variedad de áreas, incluyendo la validación de:
- transacciones con tarjetas de crédito
- documentos electrónicos
- firmas PGP/GPG de correo electrónico
- repositorios de software de código abierto
- copias de seguridad
- actualizaciones de software
Estas exenciones presentan un mayor riesgo de exposición, por lo que se ha ejercido una presión significativa para que finalmente se pasen a un estándar más seguro. Muchos navegadores, como Google Chrome, empezaron a marcar cualquier certificado firmado con SHA-1 como inseguro para los visitantes.
Los SHA son, por definición, seguros. Sin embargo, el nivel de seguridad asociado a cada tipo ha aumentado con el tiempo a medida que se ha desarrollado una nueva iteración. Como hemos visto, SHA-0 tiene más vulnerabilidades expuestas que SHA-1, que tiene más vulnerabilidades expuestas que SHA-2. Esta tendencia continuará en el futuro a medida que se desarrollen nuevos tipos de SHA. Esta tendencia continuará en el futuro a medida que prosiga la carrera armamentística entre atacantes y defensores de los datos confidenciales.
¿Qué SHA debo utilizar?
Para proteger el cifrado de tus usuarios, deberías utilizar siempre el SHA más adecuado para el proyecto en el que estés trabajando. Hoy en día, lo más probable es que sean de la familia SHA-2, pero hay casos de uso para la mayoría de los tipos. Todos los certificados SHA no son compatibles con todos los servidores, por lo que conocer no sólo las necesidades de tu caso de uso, sino también tu equipo, es esencial para crear un entorno seguro.
A continuación se indica la versión de producto de diferentes servidores populares necesaria para ser compatible con los certificados digitales SHA-2:
- Servidor Apache: 2.0.63+
- Servidor HTTP de IBM: 8.5 (incluido con Domino 9)
- Productos basados en Java: Java 1.4.2+
- Mozilla: Productos basados en NSS 3.8+
- Oracle WebLogic: 10.3.1+
Como se ha mencionado anteriormente, SHA-256 es la función SHA más utilizada actualmente. Sin embargo, a medida que avance el procesamiento informático, SHA-256 se volverá más vulnerable a los ataques, de forma similar a sus encarnaciones anteriores. Asegurarse de estar al tanto de las actualizaciones más recientes de los Algoritmos Hash Seguros es la mejor manera de cifrar datos correctamente sin exponerse a riesgos.
Ahora que se ha familiarizado con el cifrado SHA, póngase en contacto con nosotros hoy mismo para obtener más información sobre cómo nuestros productos pueden proteger su sitio web de las amenazas a la seguridad.