Herramientas de desarrollo · Calculadora de hash SHA
Por qué Web Crypto ofrece SHA-1 a SHA-512 pero no MD5 o SHA-3
· Cómo funciona
criptografía APIS del navegador sha-256 javascript
La API de resumen del navegador admite exactamente cuatro algoritmos. Esta publicación explica por qué se omitió MD5, por qué no se agregó SHA-3 y qué significa eso para una herramienta que se niega a ofrecer lo que la plataforma no proporciona.
¿Dónde está MD5? — la primera pregunta de cualquiera que migre un flujo de trabajo de suma de comprobación heredado
La Web Crypto API del navegador incluye exactamente cuatro algoritmos de resumen: SHA-1, SHA-256, SHA-384 y SHA-512. Si busca la calculadora de hash ToolAcre SHA esperando MD5 o SHA-3, no los encontrará. Esa especificidad no es una limitación de la herramienta; refleja una elección deliberada de plataforma. Comprender por qué se incluyeron estas cuatro y por qué se omitieron dos alternativas populares le dice mucho sobre cómo se diseñan las API del navegador.
Todos los navegadores principales exponen crypto.subtle.digest en orígenes seguros. Cuando su JavaScript llama a ese método, pasa a la implementación criptográfica de la plataforma: código nativo que se ejecuta con espacio aislado de seguridad y optimización del rendimiento. Los algoritmos de resumen ofrecidos fueron elegidos por el Grupo de trabajo sobre criptografía web del W3C con prioridades específicas: compatibilidad con los estándares de seguridad existentes, soporte disponible en bibliotecas criptográficas, madurez y las necesidades prácticas de seguridad de la plataforma web.
Los cuatro algoritmos que admite SubtleCrypto.digest: SHA-1, SHA-256, SHA-384 y SHA-512, y nada más
ToolAcre acepta los mismos cuatro identificadores aplicados por digestBytes: SHA-1, SHA-256, SHA-384 y SHA-512. Un nombre no reconocido se rechaza antes de llamar a Web Crypto, y el conjunto de pruebas pasa específicamente MD5 para confirmar ese rechazo. Por lo tanto, el seleccionador describe los límites de un producto probado en lugar de un estudio de cada resumen alguna vez estandarizado.
SHA-1 que aparece en esa lista no hace las cuatro recomendaciones equivalentes. Su objeto de resultado lleva una bandera rota y la interfaz repite una advertencia heredada; las otras tres son las opciones SHA-2 disponibles. La disponibilidad y la idoneidad deben permanecer separadas siempre que una herramienta de compatibilidad reproduzca un valor antiguo sin fomentar una nueva dependencia de él.
MD5 está ausente en esta implementación y Web Crypto; este artículo no agrega una justificación de estándares sin fuente
MD5 es una función hash criptográfica que produce un resumen de 128 bits, lo que lo hace más corto y computacionalmente más barato que SHA-256. Durante décadas fue la opción estándar para sumas de verificación y firmas digitales. Sin embargo, la resistencia a colisiones del MD5 está fundamentalmente rota. En 2004, los criptógrafos demostraron colisiones prácticas (dos entradas diferentes con el mismo resumen) y el algoritmo ha sido completamente desmantelado mediante trabajo académico. La vulnerabilidad matemática es absoluta y permanente.
La especificación Web Crypto del W3C tomó la decisión deliberada de no incluir MD5. El razonamiento es sencillo: enviar un algoritmo roto a millones de usuarios de navegadores normalizaría su uso en nuevas aplicaciones, aunque sólo debería aparecer en escenarios de compatibilidad heredados. Si una aplicación realmente requiere MD5 para la interoperabilidad con sistemas antiguos, ese código pertenece a un tiempo de ejecución del lado del servidor donde se comprende y audita el requisito, no en el navegador. Hacer que un algoritmo roto sea convenientemente accesible crearía expectativas de seguridad en los nuevos sistemas.
La calculadora de hash ToolAcre SHA tampoco incluye una implementación MD5. Al igual que la API de la plataforma que utiliza, se niega a hacer que un algoritmo roto sea convenientemente accesible. Si su aplicación requiere absolutamente MD5 (poco común fuera de los sistemas Git heredados), la implementación pertenece a su propia base de código con una nota clara de que es una corrección de compatibilidad. La accesibilidad crea expectativas y los algoritmos defectuosos no merecen expectativas.
SHA-3 está fuera de la API del navegador y de la herramienta; su historial de adopción está fuera de la evidencia del repositorio
SHA-3 fue estandarizado por el NIST en 2015 después de una larga competencia pública, y es criptográficamente sólido. Utiliza una construcción fundamentalmente diferente de SHA-2, llamada esponja, que ofrece propiedades teóricas interesantes y compensaciones de rendimiento según su hardware. En sistemas modernos, SHA-3 puede ser más rápido que SHA-256. Sin embargo, la plataforma del navegador no lo expone hoy, y este retraso refleja decisiones prácticas sobre la madurez de la plataforma y el ritmo de adopción.
El retraso en el envío SHA-3 refleja la realidad: Web Crypto fue diseñado para cubrir algoritmos de uso más amplio en la web y en HTTPS/TLS. Al finalizar la API, SHA-2 (256, 384, 512) fue el consenso abrumador para los nuevos sistemas, y pasar a SHA-3 está sucediendo mucho más lentamente que pasar de MD5 o SHA-1. La mayoría de las aplicaciones aún no necesitan SHA-3. El costo de expandir la API y probarla en todos los navegadores y plataformas no estaba justificado por la demanda en el momento del lanzamiento.
Esto no es un rechazo permanente. La API Web Crypto puede evolucionar. Si la adopción de SHA-3 se acelera, el grupo de trabajo podría agregarla. El conjunto actual representa los algoritmos maduros y ampliamente estandarizados que Web Crypto necesita para satisfacer las necesidades de seguridad inmediatas de la plataforma. Las API del navegador deben ser estables y mantenerse cuidadosamente; apresurarse a agregar funciones antes de que la necesidad generalizada genere una carga de mantenimiento y un riesgo de compatibilidad en los años venideros.
Por qué SHA-1 sigue ahí: necesidades de verificación heredadas y la diferencia entre ofrecer y recomendar
SHA-1 está incluido en Web Crypto a pesar de estar criptográficamente roto. Esta elección contraintuitiva a menudo sorprende a los desarrolladores. El algoritmo produce un resumen de 160 bits y los ataques de colisión contra SHA-1 ahora son prácticos: se pueden diseñar dos documentos diferentes para compartir el mismo resumen. Las colisiones de prefijo elegido permiten a los atacantes crear dos documentos que sean significativos mientras chocan, lo que rompe firmas y certificados. Sin embargo, permanece en la plataforma.
SHA-1 permanece en Web Crypto por una razón necesaria: compatibilidad heredada. Los identificadores de objetos Git se basan en SHA-1, y mientras el proyecto Git está en transición a SHA-256, millones de repositorios, referencias y sistemas de compilación existentes todavía emiten hashes SHA-1. Las huellas digitales de los certificados TLS de sistemas más antiguos contienen resúmenes SHA-1. Las API que emitieron firmas HMAC-SHA1 hace años aún necesitan validación. Estos sistemas implementados deben verificarse o migrarse. La plataforma incluye SHA-1 para hacer posible ese trabajo necesario.
La API de la plataforma incluye SHA-1 con el claro entendimiento de que está ahí por compatibilidad, no por recomendación. La interfaz de usuario del navegador etiqueta SHA-1 con una advertencia. La calculadora de hash SHA de ToolAcre muestra "Criptográficamente roto" junto al resultado SHA-1, lo que garantiza que cualquiera que la utilice comprenda que está trabajando con material heredado. La transparencia es esencial; Los usuarios nunca deben confundir la compatibilidad de SHA-1 con el respaldo de SHA-1.
Si la compatibilidad requiere MD5, utilice una implementación revisada fuera de esta herramienta y nunca confunda compatibilidad con seguridad.
Los cuatro algoritmos de Web Crypto se alinean con el ecosistema del conjunto de cifrado TLS y con los estándares de seguridad más importantes. SHA-256 es el valor predeterminado actual para hash de propósito general, utilizado en comprobaciones de integridad de subrecursos, direccionamiento de contenido y nuevos sistemas de seguridad. SHA-512 es más rápido en hardware de 64 bits y ofrece un resumen más amplio. SHA-384 es conocido principalmente por su uso en conjuntos de cifrado TLS.
SHA-1 se conserva para interoperabilidad, no porque alguien deba iniciar un nuevo sistema con él. Si está verificando una suma de verificación SHA-1 existente, haciendo coincidir una huella digital de certificado anterior o reproduciendo una ID de confirmación de Git, SHA-1 en ToolAcre le permite hacerlo. Si está diseñando un nuevo sistema, SHA-256 es la opción obvia. El algoritmo que elija indica su comprensión del modelo de seguridad.
Lo que esto no cubre: tiempos de ejecución del lado del servidor, que generalmente exponen muchos más algoritmos de resumen
Si su aplicación realmente necesita MD5, SHA-3 o cualquier otro algoritmo, la elección es clara: mantener ese código en el tiempo de ejecución del lado del servidor y exponer solo el resultado final al navegador. No envíe su propia implementación JavaScript de un algoritmo criptográfico para uso del navegador. El Web Crypto nativo del navegador es más rápido, más seguro y está auditado de maneras que una función JavaScript escrita a mano no puede igualar. Delegar en la plataforma es siempre la elección correcta cuando la plataforma proporciona lo que necesita.
Esto se aplica incluso a algoritmos "simples". Una implementación MD5 autoescrita puede parecer inofensiva porque MD5 está roto de todos modos, pero los algoritmos rotos no tienen gradaciones: simplemente están rotos. Enviar uno normaliza la práctica de implementar criptografía en el código de la aplicación. El navegador proporciona lo que la plataforma necesita; utilizar lo que proporciona. La criptografía manual es la mayor fuente de vulnerabilidades de seguridad en las aplicaciones web porque los desarrolladores subestiman la sutileza y los casos extremos.
Conclusión: las limitaciones son parte del producto: la calculadora de hash SHA ToolAcre ofrece los cuatro algoritmos que el navegador implementa de forma nativa y documenta esos límites.
La calculadora de hash SHA ToolAcre muestra esta restricción directamente: ve exactamente los cuatro algoritmos que proporciona Web Crypto, ni más ni menos. Si pega un valor y piensa "Necesito MD5", la ausencia es intencional. Si lo necesita, es una señal de que su sistema tiene un componente heredado que necesita un manejo cuidadoso, exactamente el tipo de cosas para las que sirve una herramienta especializada de migración del lado del servidor, no una utilidad de navegador. La honestidad de la herramienta sobre lo que ofrece y lo que no ofrece es en sí misma información valiosa.
El diseño de Web Crypto refleja décadas de práctica criptográfica: algoritmos estandarizados, auditados y probados en una amplia implementación. SHA-256 y SHA-512 son los valores predeterminados sensatos. SHA-384 lleva su linaje TLS. SHA-1 está ahí porque la web tiene SHA-1 resúmenes que deberán verificarse durante años. MD5 y SHA-3 no están ahí porque MD5 está roto y SHA-3 aún no es crítico para la plataforma.