Llegamos a ustedes gracias a:



Columnas de opinión

¿Por qué no estamos usando SHA-3?

Por: Roger A. Grimes, columnista de CSO especializado en seguridad

[16/03/2018] En los últimos dos años, la mayor parte del mundo digital se vio obligado a pasar del defectuoso algoritmo SHA-1 (Secure Hash Algorithm versión 1) a SHA-2 (Secure Hash Algorithm versión 2) debido a ataques de cifrado cada vez más exitosos. Cualquiera que esté involucrado en esas migraciones conoce los cientos de horas de investigación y trabajo que le toma llevar a cabo una interrupción operacional mínima exitosa. En más casos de los que nos gustaría admitir, nos preparamos lo mejor que pudimos, "pulsábamos el interruptor" y luego esperábamos lo mejor. Las migraciones de cifrado no son algo que le desearía ni a mis peores enemigos.

¿Entonces por qué no pasamos a SHA-3 (Secure Hash Algorithm versión 3) en lugar de SHA-2, ya que sabemos que SHA-2 comparte los mismos defectos matemáticos que SHA-1, y SHA-3 no? ¿Por qué nos obligan a hacer una migración de cifrado SHA de nuevo?

Cifrado SHA y ataques cada vez más sofisticados

SHA-1 fue diseñado por la Agencia de Seguridad Nacional de los Estados Unidos (NSA, por sus siglas en inglés) y publicado por el Instituto Nacional de Estándares y Tecnología (NIST, por sus siglas en inglés) como estándar federal (FIPS Pub 180-1) en 1995. Produce un resumen de mensaje de 160 bits, que si está criptográficamente seguro significa que se necesitaría un ataque de adivinación de fuerza bruta de 2159 intentos en promedio para romper un hash. Incluso en el mundo actual de las computadoras en la nube más rápidas, 2159 intentos se consideran no triviales para crear un ataque útil. No trivial es el término que usan los cripto profesionales cuando quieren decir casi imposible, si no imposible, dada la comprensión actual de las matemáticas y la física.

A partir del 2005, se documentaron públicamente varios ataques teóricos contra SHA-1. Para el 2012, los ataques SHA-1 redujeron teóricamente la protección de SHA-1 de un promedio máximo de 159 bits a 57.5 a 61 bits de protección. Durante muchos años, esto fue solo un ataque teórico. Con el tiempo, se esperaba que lo teórico se convirtiera en práctico, y eso es exactamente lo que sucedió (aunque tardó otros cinco años).

Las cifras más antiguas que se resquebrajan con el tiempo son un resultado esperado para todos los cifrados criptográficos. En consecuencia, el NIST (junto con la NSA) realiza periódicamente concursos públicos en los que cualquier persona puede enviar cifrados de nueva creación para su revisión y posible selección. Estos concursos generalmente toman muchos años y son atendidos por los criptógrafos más importantes del mundo. Al final, se elige un nuevo estándar de cifrado y se anuncia como el nuevo cifrado requerido oficialmente por el gobierno de EE.UU. Así es como mucho de los cifrados, incluidos Advanced Encryption Standard (AES) y SHA-3, se utilizaron.

En enero de 2011 (con el documento NIST SP800-131A), SHA-2 se convirtió en el nuevo estándar hash recomendado. SHA-2, a menudo se denomina familia de hashes SHA-2, porque contiene muchos hashs de longitud diferente, incluidos resúmenes de 224 bits, 256 bits, 384 bits y 512 bits (cada uno discutido y publicado en los Documentos del Estándar Federal de Procesamiento de Información NIST). No puede determinar qué longitud de bit SHA-2 está utilizando alguien basándose solo en el nombre, pero la más popular es de 256 bits por un margen grande.

Movimiento lento de SHA-1 a SHA-2

Aunque los ataques exitosos contra SHA-1 estaban aumentando y SHA-2 ha sido el estándar de hash requerido por NIST desde el 2011, la mayoría del mundo no se había movido a SHA-2 para el 2016. El mundo reacciona más rápido al dolor. En ese momento, los ataques de SHA-1 públicos solo eran teóricos.

En el 2015, la mayoría de los proveedores de criptografía más importantes del mundo decidieron forzar a sus clientes a pasar de SHA-1 a SHA-2 antes del 1 de enero del 2018, porque los saltos teóricos se iban a convertir en un verdadero quiebre pronto. Funcionó en su mayoría. La mayoría de las empresas se vieron obligadas a realizar migraciones de emergencia a SHA-2 por cualquier programa o dispositivo que dependiera de él. Escribí un whitepaper sobre el tema y varias columnas, incluida esta.

A principios del 2017, un gran porcentaje de clientes había migrado a SHA-2. Fue justo a tiempo. El 23 de febrero del 2017, Google anunció un exitoso ataque de colisión SHA-1 de la vida real, demostrado al presentar dos archivos PDF diferentes con el mismo hash SHA-1. Este ataque esencialmente rompió SHA-1 por completo.

No podría haber escrito un mejor resultado de migración global. Los proveedores de cifrado del mundo trasladaron con éxito la mayor parte del mundo de SHA-1 a SHA-2 justo antes de que se rompiera SHA-1. Quien no había migrado aun, la tenía mucho más fácil. Cientos de miles de empresas ya habían completado las migraciones exitosas, por lo que las instrucciones sobre cómo migrar estaban disponibles en la web, los proveedores estaban listos para ayudar, y la mayoría de los proveedores de software y dispositivos ya se habían preparado. La planificación y planificación de la migración SHA-1 a SHA-2 fue un éxito total. Se dieron muchas palmaditas en la espalda.

¿Por qué migrar a SHA-3?

SHA-1 y SHA-2 no fueron creados por concursos de fuentes públicas. Fueron creados por la NSA y luego publicados como patentes de uso público. Aunque no son idénticos, comparten algunas de las mismas matemáticas subyacentes, que contienen los mismos defectos criptográficos. Lo que permite que SHA-2 sea un hash más seguro es en gran medida proporcionado por su mayor longitud hash.

Problema con SHA-2

Aunque significativamente diferente, SHA-1 y SHA-2 comparten el mismo algoritmo de base (SHA), y en última instancia, algunas longitudes de hash están sujetas a los mismos tipos de ataques. En algunos escenarios, gran parte de la mejor protección de SHA-2 sobre SHA-1 se debe principalmente al uso de mayores entradas y salidas de SHA-2.

Los ataques públicos a SHA-2 han estado sucediendo desde el 2008. Al igual que sucedió con SHA-1, los ataques contra SHA-2 han ido mejorando y debilitando SHA-2 con el tiempo. Algunos ataques tienen la protección efectiva de SHA-2 hasta 237. Algunos de los últimos ataques, anunciados públicamente en el 2016, consideraban que los ataques SHA-2 ya eran "prácticos". ¿Suena familiar? debería, porque es lo que estábamos diciendo sobre SHA-1 hace solo dos o tres años.

Nuevamente, se espera que los sistemas de cifrado existentes sean atacados y se vuelvan más débiles con el tiempo. De hecho, NIST seleccionó SHA-3 utilizando un concurso público explícitamente para tener un nuevo estándar hash que no se derive de la familia SHA, listo para usarse cuando sea necesario. El concurso comenzó en el 2006, el cifrado de Keccak fue seleccionado como el único cifrado finalista en el 2010, NIST publicó proyectos de estándares en el 2015 y SHA-3 se convirtió en un estándar oficial recomendado el 5 de agosto del 2015.

Aquí es donde muchos se preguntaron por qué no nos movimos de SHA-1 a SHA-3. El mundo estaba siendo expulsado de SHA-1 con la mayor parte del esfuerzo de trabajo para la migración que vendrá a finales del 2016 y el 2017. La fecha oficial para mudarse de SHA-1 fue el 31 de diciembre del 2017. Con casi tres años de preparación, ¿Por qué no le decimos al mundo que se mude a SHA-3 en lugar de SHA-2?

¿Por qué no nos mudamos a SHA-3?

La razón número uno por la cual el mundo no se movió a SHA-3 es porque casi ningún software o hardware del mundo lo apoyó. Incluso, si quisiera mudarse a SHA-3, no podría haberlo hecho, a menos que haya escrito su propio código y firmware para cada dispositivo que posee o utiliza.

Además de eso, SHA-3 era un recién llegado relativo cuando los planes de migración a SHA-2 estaban siendo resueltos. Si estuvo en las primeras reuniones de desaprobación de SHA-1, SHA-3 ni siquiera era un estándar oficial todavía. Más importante aún, SHA-2, aunque algo derivado de SHA-1, no era tan explotable como SHA-1. El uso de cualquier versión de SHA-2 proporcionó suficiente protección por el momento. En tercer lugar, SHA-3 fue ampliamente visto por muchos como mucho más lento que SHA-2. Entonces, ¿por qué recomendar algo que era más lento y no era necesario?

La mayoría de los proveedores de SHA-2 tuvieron que actualizar sus rutinas SHA-2 para arreglar los defectos de todos modos. Para los proveedores de cifrado podría haber sido igual de fácil escribir en algoritmos SHA-3 que implementar SHA-2. Los proveedores de cifrado lo habrían hecho si la vía recomendada fuera SHA-1 a SHA-3 en lugar de tener que pasar a este paso intermedio de SHA-2.

¿Qué pasa con los problemas de velocidad de SHA-3?

SHA-3 es más lento solo en software. En hardware, fácilmente supera a SHA-1 y SHA-2. Las rutinas criptográficas son manejadas cada vez más por componentes de hardware, y se espera que aumenten en el futuro.

En cuanto a software, SHA-1 es tres veces más rápido y SHA-2 es dos veces más rápido que SHA-3 en las CPU de Intel. Si bien esto no suena bien, la mayoría de los componentes de verificación de hash en la mayoría de los programas y dispositivos se utilizan tan escasamente, que doblar o triplicar el tiempo necesario para comprimir o verificar un hash no sería excesivamente oneroso en la mayoría de los casos. Debido a que nuestras CPUs se vuelven cada vez más rápidas, no pasará mucho tiempo antes de que el aumento en el tiempo no se note en absoluto. Además, los autores del cifrado hash seleccionado como SHA-3 le han dicho al NSA/NIST algunas maneras de hacerlo significativamente más rápido en software.

Más importante, ¿por qué tener un hash más rápido si no se puede confiar en él?

Cómo prepararse para la migración de SHA-3

No hay duda de que dentro de unos años todos estaremos ejecutando una migración SHA-3. ¿Qué puede hacer?

Primero, tenga en cuenta la próxima migración de SHA-3. ¿Cuándo se le obligará a hacerlo, nadie lo sabe? Depende de cómo se sigan acumulando los ataques prácticos contra SHA-2. Un día, Google u otra persona anunciará que SHA-2 se ha roto y que todos tendremos que mudarnos. No necesita hacerse el sorprendido.

En segundo lugar, tenga sus viejos planes y documentos de migración SHA-2 a mano. Una migración SHA-3 se parecerá mucho a sus esfuerzos de migración SHA-2. Piense en lo que hubiera hecho diferente. ¿Cuáles fueron las lecciones aprendidas de su migración a SHA-2? Actualice sus documentos de migración de cifrado existentes ahora para que las lecciones aprendidas no se pierdan. ¿Sigue documentando qué productos de software y hardware ha utilizado y qué cifra?

Finalmente, recuerde que las migraciones de cifrado serán un ciclo normal, regular y continuo si trabaja en el mundo de TI. Usted, sus compañeros de trabajo y sus proveedores deben convertirse en cripto-ágiles. Abordo el concepto de cripto agilidad aquí.

Como columnista especializado en seguridad, Roger A. Grimes es un colaborador de CSO con más de 40 certificaciones. Es autor de ocho libros sobre seguridad informática. Ha estado luchando contra el malware y los hackers malintencionados desde 1987, comenzando con el desmontaje de los primeros virus DOS. Actualmente ejecuta ocho honeypots para rastrear el comportamiento de los hackers y malware, y es consultor de empresas que van desde las Fortune 100 a pequeñas empresas.