Introducing the 2024 PKI & Digital Trust Report     | Download the Report

  • Inicio
  • Blog
  • Se acabó el tiempo para SHA-1: Keyfactorsugiere una vía de migración

Se acabó el tiempo para SHA-1: Keyfactorsugiere una vía de migración

SHA-1 es un algoritmo hash ampliamente adoptado que ya no puede considerarse fiable. Los actuales analistas de diseño de PKI deben sopesar las ventajas de implantar SHA-2 frente a los problemas de compatibilidad asociados a su adopción. Esta decisión de diseño está motivada por la reciente comprensión de que los hashes SHA-1 son criptográficamente débiles y la posibilidad de manipulación maliciosa de los valores hash resultantes es mucho más fácil de lo que se preveía en un principio. Se trata de un problema grave si una firma digital auténtica en un contrato por valor de 100 dólares no puede distinguirse de una firma digital fraudulenta en un contrato por valor de 100.000 dólares.

SHA-2 es una actualización del antiguo algoritmo hash SHA-1, que proporciona una PKI más segura y, en última instancia, más fiable. Pero, ¿merecen la pena las ventajas de SHA-2 y los gastos que conlleva su implantación? Esta entrada de blog explora SHA-2 con el fin de proporcionar contexto, antecedentes y posibles rutas de migración.

Breve historia de los algoritmos hash

Secure Hash Algorithm (SHA) es un tipo de función hash criptográfica cuyo trabajo consiste en garantizar que los datos no han sido modificados. Para ello, SHA calcula un valor hash criptográfico único para cada dato. Diferentes piezas de datos producen valores hash únicos, y cualquier cambio en una determinada pieza de datos dará lugar a un valor hash diferente. Y de eso se trata, los diferentes valores hash son la clave para determinar si los datos han sido alterados.

Los valores hash ayudan a garantizar la integridad de un dato dado porque prácticamente se garantiza que son únicos, es imposible predecirlos y, sin embargo, son fáciles de calcular.

SHA-0 fue un algoritmo hash de corta vida publicado en 1993. Se descubrió que SHA-0 era defectuoso y la Agencia de Seguridad Nacional (NSA) diseñó un sustituto llamado SHA-1. Tanto SHA-0 como SHA-1 son funciones hash de 160 bits. Esto significa que cada dato posible se reducirá a un número de 160 bits. SHA-1 goza actualmente de una amplia adopción y es compatible con la mayoría de los dispositivos y sistemas que utilizan funciones hash criptográficas.

¿Cuál es el problema con SHA-1?

Una consideración primordial para los diseñadores de hash criptográficos es minimizar la probabilidad de que dos piezas de datos diferentes produzcan el mismo valor hash. Cuando esto ocurre, se denomina "colisión de hash criptográfico".

El problema es que, aunque existe una cantidad infinita de bits de datos únicos, el número de valores hash computables es limitado. Utilizando SHA-1, hay2160 valores hash criptográficos posibles. La teoría matemática nos dice que la probabilidad de que dos mensajes computables cualquiera tengan el mismo valor debería ser aproximadamente de 1 entre280. En otras palabras, si uno quisiera encontrar dos mensajes que computaran el mismo valor, tendría que probar con280 mensajes diferentes antes de esperar encontrar dos cuyos hashes colisionaran. Aunque este número tan elevado hace improbable la adivinación del hash, los matemáticos de criptografía demostraron en 2005 que las colisiones del hash SHA-1 podían calcularse mucho más rápido que simplemente probando280 mensajes diferentes (2000 veces más rápido, de hecho).

Esta es la razón por la que SHA-1 se está eliminando progresivamente de la mayoría de las aplicaciones gubernamentales, y por la que el NIST ha recomendado que SHA-1 no se utilice después de 2010.

SHA-2 Antecedentes

SHA-2 es un algoritmo hash criptográfico más reciente que se basa en SHA-1. SHA-2 fue desarrollado por la NSA en 2001 para subsanar las deficiencias matemáticas de SHA-1. SHA-2 es en realidad una colección de cuatro algoritmos hash diferentes: SHA-224, SHA-256, SHA-384 y SHA-512.

SHA-2 evita los puntos débiles de SHA-1 aprovechando tamaños de clave mayores que hacen que las colisiones sean aún menos probables; no obstante, el desarrollo de SHA-3 está actualmente en marcha. Cabe señalar que SHA-3 no se basará en SHA-2". *Ver actualización más abajo

Dificultades de adopción de SHA-2

La adopción generalizada de SHA-1 por parte de los sistemas que requieren funciones hash podría servir para ilustrar la dificultad de la adopción de SHA-2. El amplio espectro de posibles dispositivos, aplicaciones y sistemas criptográficos exige un amplio espectro de vías de gestión y actualización. Y lo que es más difícil, no todo lo que utiliza SHA-1 es compatible con SHA-2.

La actualización de toda la PKI de una empresa de SHA-1 a SHA-2 no sólo requerirá la instalación de autoridades de certificación capaces de emitir certificados SHA-2, sino también garantizar que todos los suscriptores, partes de confianza, aplicaciones y dispositivos puedan utilizar realmente los certificados basados en SHA-2 resultantes.

Para los sistemas Microsoft, las capacidades SHA-2 son nativas de Windows Vista, Windows 7 y Windows Server 2008 (R2). Sin embargo, los clientes de Windows XP Service Pack 3 y Windows Server 2003 SP2 con KB 968730 sólo tienen soporte limitado para SHA-2. La compatibilidad con SHA-2 en estas plataformas se limita a las funciones SSL/TLS .

Las aplicaciones que utilizan certificados, incluso en plataformas compatibles, también tendrán que ser evaluadas para determinar su compatibilidad con SHA-2. Por ejemplo, Microsoft Outlook 2003 no puede validar un certificado SHA-2 S/MIME.

También habrá que evaluar plataformas como dispositivos móviles, mainframes, ordenadores de gama media, dispositivos WAP, servidores radius, concentradores VPN, etc. para garantizar la compatibilidad con SHA-2. En muchos casos, será necesario realizar algún tipo de actualización.

En resumen, debido a que SHA-1 está integrado en tantas plataformas diferentes, puede ser un reto determinar exactamente cuál puede ser el impacto de migrar a SHA-2. Incluso los sistemas más recientes incluyen soporte para SHA-1 por compatibilidad con las antiguas CA.

Ruta de actualización sugerida a SHA-2

En casi todos los casos, el mejor enfoque para pasar a una PKI basada en SHA-2 implicaría migrar a una PKI enraizada por separado. Una PKI independiente que utilice únicamente SHA-2 para los certificados emitidos y los certificados de CA.

Figura 1 SHA-1 y SHA-2 PKI

Para ello es necesario crear una CA raíz basada en SHA-2 en paralelo con la PKI original. Esta raíz independiente se firma con SHA-2, al igual que los certificados de CA subordinados. Los suscriptores de la empresa y las partes confiantes deberán confiar en ambas raíces durante la migración.

Una PKI separada permite a los administradores de PKI migrar cuidadosamente las plataformas y aplicaciones a una nueva PKI basada en SHA-2 de forma escalonada y controlada. Finalmente, cuando todos los abonados, partes usuarias y aplicaciones hayan migrado, la PKI original basada en SHA-1 quedará desprovista de usuarios o aplicaciones y será dada de baja.

Cabe señalar que la adopción de SHA-2 tiene un aspecto político. Una PKI basada en SHA-2 también permitirá la adopción de una Política de Certificación (CP) empresarial independiente. Esto permitirá la adopción de una PC que requiera la interrupción del algoritmo hash SHA-1.

Conclusión

SHA-1 es un algoritmo hash que goza actualmente de una amplia adopción. Sin embargo, este algoritmo hash criptográfico presenta deficiencias matemáticas que se resuelven con SHA-2. La implantación de una PKI basada en SHA-2 requerirá una PKI empresarial raíz independiente y una estrategia de migración bien pensada. De este modo se obtendrá una PKI que siga siendo fiable y que proteja contra la creciente debilidad del algoritmo hash criptográfico SHA-1.

*ACTUALIZACIÓN:

El 2 de octubre de 2012, el NIST anunció el ganador de su actual concurso de funciones hash. El algoritmo criptográfico hash seleccionado se llama "Keccak". (Se pronuncia Catch-ack)

Como resultado de esta selección, "Keccak" pasará a denominarse "SHA-3".

https://www.nist.gov/itl/csd/sha-100212.cfm

https://en.wikipedia.org/wiki/Keccak

Entradas relacionadas:

Anuncio SHA-3