¿Existe este tipo de hash?

1

Supongamos que tiene dos cadenas definidas por el usuario, X, Y, y desea incluirlas en el hash Z. Eso es lo que harían la mayoría de los sitios web, X es la contraseña del usuario e Y es el salt. Se necesita mucho tiempo para que Z vuelva a X + Y.

Lo que estoy buscando, es esto más que tiene la capacidad de recuperar X si se le da Y, Z. Entonces, si F era una función donde F (X, Y) = Z (actuando como SHA1, SHA2, etc.), Quiero una función F 'donde F' (Z, Y) = X. ¿Hay algún tipo de algoritmo de hash que se parezca a esto?

Parece un cifrado de clave pública-privada donde Y es tu clave pública y X es tu mensaje, produciendo Z, luego, utilizando una clave privada Y alternativa, puedes combinarla con la Z para recuperar tu mensaje X, pero lo que quiero es la capacidad de X, Y de ser arbitrariamente definido por el usuario. ¿Es esto teóricamente posible? Si es así, ¿existe este tipo de algoritmo de cifrado "triangular"?

Leí acerca de enlace hoy, que es un servicio que contiene TODAS sus contraseñas de Internet en una cuenta. Estoy casi seguro de que están almacenando las contraseñas en texto sin formato, o incluso si están cifradas, su servidor tiene tanto la clave como los datos cifrados, y si un atacante accede a ellos, podrían recuperar todos los datos de los usuarios. contraseñas.

Luego pensé en el tipo de hashing que mencioné anteriormente, cómo funcionaría:

Un usuario establece un "token de seguridad" como una contraseña, que es diferente a la contraseña de su cuenta. Cuando el usuario ingresa sus contraseñas en el formulario de los servicios, la contraseña se revisa, el lado del cliente usa la función F (X, Y) = Z, donde Y es su token de seguridad y Z es el "hash". Sólo el "hash" se almacena en el servidor. Cuando el usuario desea recuperar todas sus contraseñas almacenadas, el servidor envía al cliente los "hash", que pueden decodificarse utilizando el token de seguridad del usuario, en el propio cliente.

Con este método, el servicio no almacenará ningún dato de contraseña en texto sin formato.

    
pregunta Eric 15.07.2012 - 04:05
fuente

3 respuestas

3

Sí, esto es lo mismo que Criptografía de clave privada

  

Los algoritmos de clave simétrica son una clase de algoritmos para criptografía que utilizan las mismas claves criptográficas para el cifrado de texto simple y el descifrado de texto cifrado.

Z=F(X,Y) es igual que C=F(P,K) donde C = texto cifrado, F = algoritmo simétrico utilizado, P = texto sin formato y K = clave definida por el usuario.

AES y Blowfish son dos algoritmos de uso común.

    
respondido por el Nemo 15.07.2012 - 05:13
fuente
2

Si es reversible, es cifrado, no un hash.

Un método conocido para encadenar cifrados de bloques (es decir, AES, Blowfish, 3DES, etc.) se llama Comentarios de salida (OFB) . Esencialmente, en lugar de cifrar el texto sin formato, para cada bloque que cifre la salida del bloque anterior. Esto produce un flujo constante de bits pseudoaleatorios de sonido criptográfico que luego XOR con su texto simple ( à la RC4) para producir la salida criptográfica.

Con las transformaciones XOR, si XOR la salida con cualquiera de las entradas, obtienes la otra entrada, que suena como si se ajustara a tu esquema.

    
respondido por el tylerl 16.07.2012 - 06:07
fuente
1

Sí. Utilice un algoritmo de cifrado de clave simétrica para cifrar los datos.

Más detalladamente, trata a X como texto simple y a Y como la clave. Luego se puede obtener Z cifrando X bajo la clave Y: Z = Encriptar (Y, X). Si tiene Y y Z, puede recuperar X descifrando: trate a Y como la clave y Z como el texto cifrado, y descifre, es decir, X = Descifrar (Y, Z).

La seguridad de esto es solo tan buena como la cantidad de entropía en Y. Necesitas que Y sea indiscutible (por ejemplo, tener al menos 80 bits de verdadera entropía) para que esto sea seguro. Si Y es una contraseña, probablemente no sea muy segura, ya que la mayoría de los usuarios eligen contraseñas de baja entropía.

Pero realmente, la pregunta que está haciendo es sobre cómo almacenar las contraseñas de manera segura, de manera que la contraseña se pueda recuperar. La respuesta es utilizar un cifrado reversible, pero darse cuenta de que ahora el manejo de la clave de descifrado es crucial: cualquiera que tenga acceso a la clave de descifrado puede descifrar todas las contraseñas. Por lo tanto, es importante comprender que este enfoque no crea seguridad fuera del aire; Se está barajando en lo que tienes que confiar. Aún tiene que mantener esa clave muy segura, y la pregunta de los $ 64,000 es cómo mantener esa clave segura. La respuesta estándar involucra cosas como HSM (módulos de seguridad de hardware) o servidores cuidadosamente asegurados. Estas son cosas de nivel de gurú que no debería intentar a menos que ya tenga experiencia en seguridad informática.

Ver también ¿Cómo deben almacenarse las contraseñas si deben ser recuperables? , Cómo cifrar una contraseña almacenada en una base de datos (es necesario descifrar más adelante) , podría mint.com ser más seguro y, de ser así, ¿cómo? .

    
respondido por el D.W. 16.07.2012 - 00:49
fuente

Lea otras preguntas en las etiquetas