Español

Herramientas de desarrollo · Calculadora de hash SHA

El hash no es cifrado: por qué no se puede descifrar un hash SHA-256

· Por qué es importante

criptografía seguridad codificación

Entrada que fluye hacia una función hash con una flecha apuntando hacia adelante para digerir, pero ninguna flecha que regresa hacia atrás
Ilustración de vector original de ToolAcre

No hay clave ni inversa: un hash es una función unidireccional. Esta publicación explica la diferencia con el cifrado, por qué los sitios de búsqueda de hash parecen invertir los hash y qué significa eso para el hash de datos personales.

Descifre estos hashes: el ticket que revela un malentendido sobre qué es el hash

Llega un ticket de soporte solicitando descifrar algunos hashes SHA-256. El desarrollador que lo lee sospecha que hay un malentendido sobre qué es el hashing. La confusión tiene sentido: tanto el hash como el cifrado implican algoritmos criptográficos, ambos producen resultados que parecen codificados y ambos son relevantes para la seguridad. Pero son herramientas fundamentalmente diferentes. El cifrado es reversible; el hash no lo es. Esta distinción es tan importante que confundirlos ha roto los sistemas de seguridad reales. El ticket representa una brecha común en la comprensión que afecta el diseño del sistema.

Una función hash es una función unidireccional. Puede aplicar hash a una entrada para obtener un resumen, pero no existe ninguna clave ni operación inversa que recupere la entrada del resumen. Esto no es una limitación ni un error; es la propiedad definitoria de un hash. La calculadora de hash ToolAcre SHA produce resúmenes del texto que usted pega y no hay un botón para "descifrar" porque no podría existir ningún botón. La operación es irreversible por matemáticas, no por elección. La ausencia de una función inversa no es una característica que pueda solicitar.

El cifrado tiene una clave y una inversa; el hashing no tiene ninguno de los dos: la diferencia de definición en términos sencillos

El cifrado funciona de manera diferente. Un algoritmo de cifrado toma texto sin formato y una clave y produce texto cifrado. El texto cifrado está codificado y es ilegible sin la clave. Fundamentalmente, la misma clave puede descifrar el texto cifrado y convertirlo en texto sin formato. El cifrado es reversible por diseño. Usted cifra para mantener los datos en secreto; lo descifras para leerlo de nuevo. La seguridad del cifrado depende de que la clave sea secreta. Sólo el poseedor de la clave puede revertir la transformación.

El hashing no tiene clave ni reversión. Se aplica un hash a algo para producir un resumen de longitud fija. La misma entrada siempre produce el mismo resumen. Una entrada diferente produce un resumen diferente: esa es la propiedad de resistencia a la colisión. Pero no se puede hacer un resumen y producir una entrada. La función sólo va en una dirección. Si necesita cifrar datos para poder descifrarlos más tarde, el hash es la herramienta equivocada. Si necesita una huella digital de datos para verificación o direccionamiento de contenido, el hash es correcto. Elegir la herramienta adecuada requiere comprender la diferencia.

Cómo funcionan los sitios de búsqueda de hash: diccionarios precalculados de entradas comunes, no descifrados

Esta distinción es tan importante que es la base de la seguridad de la verificación de contraseña. Un servidor no almacena contraseñas. Almacena el resultado del hash de la contraseña. Cuando un usuario inicia sesión, el servidor codifica su envío y lo compara con el valor almacenado. Si el servidor se ve comprometido y su base de datos es robada, el atacante no obtiene las contraseñas, solo los hashes. La naturaleza unidireccional del hash significa que el atacante no puede aplicar ingeniería inversa a las contraseñas a partir de los hash. La seguridad del sistema depende de esta propiedad.

Si el servidor usara cifrado en su lugar (si cifrara contraseñas y pudiera descifrarlas), entonces un compromiso que robara la clave expondría inmediatamente todas las contraseñas. El hash se elige específicamente porque es irreversible. Es por eso que los sistemas de contraseñas utilizan hash, no cifrado. La irreversibilidad no es una limitación; es todo el modelo de seguridad. Una base de datos de contraseñas cifradas es fundamentalmente más débil que una con hash porque el cifrado es reversible.

Las entradas de baja entropía son la debilidad: por qué el hash de una dirección de correo electrónico, un número de teléfono o un PIN corto ofrece poca protección

Existen sitios de búsqueda de hash para crear la ilusión de descifrado. Estos sitios albergan tablas precalculadas de entradas comunes y sus hashes. Las "tablas arcoíris" son diccionarios preparados previamente: una tabla puede contener los hashes de las mil contraseñas más comunes, o todas las combinaciones alfanuméricas hasta una determinada longitud, o listas completas de palabras en varios idiomas. El operador del sitio ya realizó el trabajo de hash y almacenó los resultados. Cuando alguien envía un hash a un sitio de búsqueda, el sitio no descifra nada. Simplemente busca el hash en su tabla. Si el hash está ahí (si alguna palabra del diccionario o patrón de contraseña coincide), la tabla devuelve la entrada original. Esto parece un descifrado mágico para alguien que no esté familiarizado con la técnica, pero es solo una búsqueda en la base de datos. El sitio no invierte el hash; lo está comparando con valores precalculados.

Ejemplo resuelto: aplicar hash a un valor adivinable y mostrar cómo un diccionario lo recuperaría, frente a un valor aleatorio largo que no podría

Esta es la razón por la que las entradas de baja entropía son vulnerables. Si aplica un hash a una contraseña común como "contraseña" o un valor predecible como la dirección de correo electrónico de alguien, existe una posibilidad razonable de que un sitio de búsqueda ya haya calculado ese hash y lo haya almacenado. La búsqueda devuelve el valor original al instante. Si aplica un hash a una cadena aleatoria de 256 caracteres, ningún sitio de búsqueda en el mundo tendrá ese hash en particular precalculado. El sitio de búsqueda no devuelve nada porque la entrada no estaba en su diccionario. La seguridad del hash depende completamente de la entropía de la entrada.

La calculadora de hash SHA de ToolAcre demuestra esto directamente. Hash una palabra común, y un atacante decidido podría buscarla si ejecutara su propio servicio de diccionario. Hash un valor aleatorio largo, e incluso es poco probable que un diccionario masivo lo contenga. El determinismo del hash (entradas idénticas dan resultados idénticos) es lo que hace posibles los ataques de diccionario. También es lo que hace que los hashes sean útiles para la verificación. La misma propiedad que permite la búsqueda también permite la verificación.

Cuando realmente desea cifrar: los casos en los que los datos deben volver a aparecer y en los que un hash es la herramienta incorrecta

Cuando realmente desea cifrar (cuando necesita enviar datos secretos y recuperarlos más tarde), un cifrado es la herramienta adecuada. AES es el estándar moderno para el cifrado simétrico: se comparte una clave, cifra texto sin formato y descifra texto cifrado. La criptografía RSA o de curva elíptica se utiliza para el cifrado asimétrico: una clave pública cifra y una clave privada descifra. Estas herramientas son reversibles por diseño. La seguridad proviene del secreto de las claves, no de la irreversibilidad. El error es utilizar hash cuando se necesita cifrado. Si codifica un número de tarjeta de crédito con la intención de verificarlo más tarde, no tendrá forma de descifrarlo. Si aplica hash a un identificador personal y luego necesita recuperarlo, el hash fue la elección equivocada. Estas son situaciones que requieren cifrado.

Un ejemplo resuelto separa claramente los dos usos. Tiene una lista de ID de usuario que deben mantenerse en secreto entre sí y con su propio personal. Los cifra con AES y almacena el resultado. Más tarde, cuando necesite buscar un usuario, lo descifrará y lo leerá. El hash no funcionaría; Una vez codificados, los ID se pierden para siempre. Por el contrario, tienes contraseñas de usuario. Los trituras y almacenas el hash. Cuando un usuario inicia sesión, aplica un hash a su envío y lo compara con el valor almacenado. Nunca necesitarás recuperar las contraseñas. El cifrado sería incorrecto; No le sirven las contraseñas de texto sin formato después de la configuración inicial.

Lo que esto no cubre: diseños de hashing salado y con clave, que elevan el listón pero son un tema aparte

El salting y el hash con clave merecen un tratamiento separado porque ninguno de los dos convierte un resumen en cifrado. Una sal hace que entradas iguales de baja entropía produzcan diferentes registros almacenados, y una clave puede restringir quién calcula un valor de autenticación válido. La salida sigue siendo irreversible; Los intentos de recuperación aún proceden probando entradas candidatas en lugar de aplicar una inversa.

El hashing de contraseñas agrega un costo deliberado y una sal, mientras que HMAC autentica los mensajes con una clave secreta. ToolAcre no implementa ninguna operación. Mantenerlos fuera de este artículo evita el peligroso atajo de describir SHA-256 simple más un prefijo improvisado como equivalente a un registro de contraseña revisado o una construcción de autenticación de mensaje.

Conclusión: solo un sentido: la calculadora de hash SHA de ToolAcre calcula resúmenes; no hay ningún botón de retroceso porque no puede existir ninguno

La calculadora de hash SHA de ToolAcre le muestra el hash en acción: pegue texto, obtenga un resumen y listo. Ninguna reversión es posible o prevista. La herramienta correctamente se niega a proporcionar una función de "descifrar", porque no puede existir. Si necesita cifrado, utilice un cifrado adecuado. La ausencia de reversión no es una limitación de la herramienta; es un hecho matemático sobre el hash. Las funciones unidireccionales son herramientas poderosas precisamente porque no se pueden revertir. Comprometen datos de una manera que no se pueden recuperar. Proporcionan verificación sin revelar el original. Permiten sistemas de contraseñas que son seguros incluso si roban la base de datos. Los hashes de contraseñas salados y con un costo adecuado se vuelven inviables para revertirlos mediante adivinanzas. La irreversibilidad es el mecanismo de seguridad.

La calculadora de hash SHA de ToolAcre calcula resúmenes que son unidireccionales, útiles y calculados correctamente mediante la propia implementación Web Crypto del navegador. Si necesita hash para verificación o integridad, úselo. Si necesita mantener los datos en secreto y recuperarlos más tarde, el cifrado es su herramienta. Comprender la diferencia entre hash irreversible y cifrado reversible es fundamental para la seguridad y para crear sistemas que hagan lo que realmente necesita.