¿Cómo puedo verificar si algunos datos son realmente la contrapartida desencriptada de una secuencia de bytes?

3

Más detalladamente: quiero crear un proxy que reciba datos descifrados de un cliente y pueda verificar que estos datos son lo que un servidor de origen envió al cliente.
Por ejemplo, un cliente establece una conexión con un servidor HTTPS, a través de este proxy. El cliente enviará algunas respuestas web provenientes del servidor web de origen al proxy, que a su vez tiene que decidir si esas son realmente la versión sin cifrar del flujo que se pudo observar previamente (encriptado).

    
pregunta alvatar 30.10.2016 - 23:29
fuente

3 respuestas

2

Eso no es posible.

La única forma conocida de verificar si el texto simple y el texto cifrado coinciden (con un algo moderno como AES) es cifrar / descifrar, y para eso es necesaria la clave. (Más aún, no hay una forma conocida de decidir si el texto cifrado es realmente datos cifrados (cualquier información) o simplemente basura aleatoria).

    
respondido por el deviantfan 30.10.2016 - 23:38
fuente
1

Descifrar y comparar

En un sistema criptográfico adecuado, tener un candidato a texto plano no debería y no ayuda significativamente a descifrar un mensaje, ya sea que puedas descifrarlo al tener las claves adecuadas o no puedes.

Además, ciertamente puede haber sistemas de cifrado que pueden proporcionar múltiples opciones de descifrado válidas y significativas para diferentes claves. No es el caso del protocolo HTTPS común, pero existen sistemas de cifrado denegables para el cifrado y la mensajería del disco duro. En ese caso, ni siquiera puede realizar esta verificación al tener una clave adecuada que descifre el texto cifrado al texto sin formato que tiene; ya que también podría tener otro mensaje cifrado adicional.

Pero para el proxy HTTPS, tendría que descifrar los datos capturados con la clave de sesión adecuada y comparar los resultados, o, de manera simétrica, cifrar el texto plano conocido con esa clave de sesión y compararlo con el texto cifrado esperado. La obtención de la clave de sesión se deja como un ejercicio para el lector.

    
respondido por el Peteris 31.10.2016 - 00:52
fuente
1

Como se mencionó en otras dos respuestas, realmente no puede descifrar los mensajes sin conocer las claves. Además, podría tener problemas éticos si utiliza este diseño fuera de su experimento.

Según sus comentarios, desea asegurarse de que el cliente no puede negar haber descifrado el texto si lo ha hecho correctamente. Esto tampoco es realmente posible lograrlo. Asumiendo que usted (el proxy) pudo descifrar el texto que vino del servidor, si no confía en el cliente, no puede confiar en que le envíen el texto descifrado correcto para su verificación.

En su caso, la forma más segura sería probar el proxy correctamente y luego solicitar registros cuando el cliente se queja de no poder descifrar el texto.

    
respondido por el Limit 01.11.2016 - 15:16
fuente

Lea otras preguntas en las etiquetas