TLS (y SSL) usó o usa SHA-1 de tres maneras.
-
1.0 y 1.1 utilizaron HMAC-SHA1 para integridad de los datos en casi todos los conjuntos de cifrado (algunos antiguos utilizaron HMAC-MD5 pero en su mayoría ya se han quedado en el camino). 1.2 agrega algunos nuevos conjuntos de cifrado que utilizan HMAC-SHA2 (SHA-256 o SHA-384) y algunos nuevos conjuntos de cifrado que usan AEAD que combina integridad en el cifrado (específicamente AES o algunos otros con GCM, AES con CCM y ChaCha20-Poly13505; en la práctica sólo son comunes AES-GCM y ChaCha).
La construcción HMAC bloquea los ataques de colisión como el nuevo para SHA1. Los conjuntos de claves que utilizan HMAC-SHA1 siguen siendo tan seguros ahora como lo eran antes, y tan seguros como HMAC-SHA2, que es, no del todo, porque ya hubo y hay ataques no relacionados con el hash . Específicamente, todos los conjuntos de claves HMAC usan RC4, que está muy debilitado y ahora está prohibido de todas las versiones de TLS, o cifrados en modo CBC con MAC-then-encrypt, que han sido sometidos a una serie de rellenos - ataques de oráculo - y en 1.0 también un ataque IV conocido (BEAST). La solución para estos ataques es usar conjuntos de cifrado AEAD (con ninguno HMAC-SHA1 o HMAC-SHA2), que requiere 1.2.
"SHAttered" no hace ninguna diferencia. Ya deberías haber preferido 1.2 con AEAD no HMAC-SHA1 O HMAC-SHA2 , y aún así deberías.
PRF y derivación de clave. 1.0 y 1.1 usaron una combinación de doble-HMAC-MD5 y doble-HMAC-SHA1 para el PRF utilizado en el protocolo de enlace para la derivación de clave y finalizado; 1.2 utiliza doble HMAC-SHA2. Como se mencionó anteriormente, HMAC protege contra el ataque de colisión, además de que la derivación clave y los datos finalizados son prácticamente incontrolables por parte de un atacante de todos modos. No hay diferencia.
-
Certificados. TLS, incluido el 1.2, generalmente (aunque no siempre) se basa en los certificados y sus firmas, y el ataque de colisión puede poner en peligro las firmas de certificados en al menos algunos casos . Esto fue cierto para MD5 con el ataque "deshonesto" hace una década, y resultó en un retiro bastante rápido de los certificados MD5. La comunidad ha reconocido durante años que los certificados SHA1 estaban igualmente en riesgo: a las CA se les prohibió emitir certificados firmados por SHA1 durante al menos 2 años, dependiendo de la autoridad a la que vaya, y algunos (¿la mayoría?) Navegadores, algunos otros clientes y servidores , y muchas herramientas (en particular el probador ampliamente utilizado de SSLLabs) han estado advirtiendo más o menos ruidosamente e intrusivamente sobre certificados firmados por SHA1 durante al menos un año; ahora, como apunta el sitio web destrozado, algunos (¿muchos?) pronto comenzarán a rechazar estos certificados.
Si todavía está utilizando certificados firmados por SHA1; detener. Esto se aplica a todas las versiones de TLS y también a los usos no certificados SSL / TLS, como el cifrado de correo electrónico y la firma de código.
En conclusión, "SHAttered" no proporciona ninguna razón adicional para usar 1.2, pero ya tenía una buena razón para 1.2. Proporciona más razones para usar certificados SHA2, en todas partes, no solo en TLS. La única razón real para cambiar a 1.2 debido a "SHAttered" es que la publicidad, el ruido, las exageraciones, el miedo y la incomprensión generalizada le permiten aprovechar los recursos y las aprobaciones de los gerentes que no entienden el problema de todos modos.