¿Es Git el crowdsourcing de ataques criptográficos?

48

Un hash criptográfico fuerte hace que las colisiones sean improbables. Muchos protocolos criptográficos se basan en ese hecho. Pero Git está utilizando hash SHA-1 como identificadores de objetos. Así que hay muchos de hashes ya computados en los repositorios públicos de Git de la web, junto con detalles sobre cómo reproducirlos.

¿Hay algún ataque conocido en algún protocolo donde se pueda aprovechar? Algo así como "bueno, puedo hacer algo malo si sustituyo este texto simple desconocido con algún otro texto simple con el mismo hash SHA-1, así que en lugar de calcular una colisión lo buscaré en Google". Por supuesto, el espacio de todos los hashes aún están lejos de estar cubiertos por las confirmaciones de Git, pero, sin embargo, creo que todas las confirmaciones de Git que hay por ahí pueden equivaler a algunas horas de CPU de cómputo de hashes SHA-1. Sin embargo, no estoy seguro de que esa suposición esté justificada.

Por lo que puedo ver, tal ataque solo funcionaría si el hash es visible, el texto sin formato desde el que se generó no lo es, pero parte del texto generado por el cifrado es, y también se puede cifrar un texto diferente . Así que parece que podría aplicarse a algunos protocolos basados en clave pública, donde puede cifrar pero no descifrar. Además, no tiene control sobre el texto sin formato en conflicto, por lo que las cosas obvias como poner su propio nombre como beneficiario de alguna transacción financiera no funcionarán. ¿Hay escenarios en los que una colisión de hachís de este tipo pueda causar serios problemas con una probabilidad no despreciable?

    
pregunta MvG 12.12.2014 - 11:27
fuente

3 respuestas

50

¿Es Git crowdsourcing la producción de SHA-1 preimágenes ? No en un grado significativo.

Github no dice cuántos envíos se están rastreando, pero probablemente no sean más de unos pocos miles de millones. Para comparación, existen 1,461,501,637,330,902,918,203,684,832,716,283,019,655,932,542,976 hashes SHA-1 posibles, por lo que las probabilidades de encontrar un texto plano que coincida con un hash de interés arbitrario son efectivamente inexistentes.

    
respondido por el Mark 12.12.2014 - 13:03
fuente
13

Es probable que pueda calcular sus propios hash SHA1 más rápidamente a partir de pequeños textos arbitrarios que la que recopila los hashes que otra persona calculó. Pero hay muchos posibles compendios de SHA1, aproximadamente tantos como átomos en el mundo. Eso ilustra el desafío si desea mantener una lista de todos los resúmenes conocidos y buscar esa lista.

    
respondido por el rvdheij 12.12.2014 - 17:40
fuente
9

La cantidad de esfuerzo humano que se ha invertido en calcular cada uno de esos hash SHA-1 encontrados en Git es significativa. Y eso significa que el número de hashes computados de esa manera es bastante limitado.

Si desea encontrar colisiones, necesita cero esfuerzo humano por hash y muy poco tiempo de computadora gastado en cada hash.

Bitcoin puede ser el único sistema con suficiente potencia de cómputo para realizar las operaciones criptográficas 2 ^ 80 necesarias para encontrar una colisión SHA-1 a través de la fuerza bruta. Aunque la mayor parte de esta potencia informática es un hardware especializado que solo hace SHA-2 y no se puede reutilizar para calcular SHA- 1 hashes.

Todavía proporciona una idea de la escala de despliegue necesaria para un ataque de fuerza bruta. Bitcoin ha demostrado que 2 ^ 80 operaciones criptográficas son factibles. Y solo por esa razón, deberíamos pasar a hashes más fuertes que SHA-1 ASAP.

Si Bitcoin se hubiera basado en SHA-1, ya se habría producido una colisión. Y eso habría sido por la fuerza bruta sin siquiera explotar cualquier debilidad en SHA-1. Esto se debe a que Bitcoin no hace nada más que calcular hashes todo el tiempo y tiene hardware especializado para hacerlo.

La función hash real utilizada en bitcoin tiene una salida mayor que SHA-1, por lo que es muy probable que no haya habido una colisión. Además, habría requerido un diseño diferente para poder averiguar si se produjo una colisión porque Bitcoin, tal como existe hoy, descarta la mayoría de los hashes de inmediato, por lo que incluso si se produjera una colisión no lo sabríamos.

    
respondido por el kasperd 13.12.2014 - 17:36
fuente

Lea otras preguntas en las etiquetas