¿Los paquetes de red capturan lo que se encripta en un dispositivo?

1

¿Los paquetes de red capturan lo que se encripta en mi dispositivo antes de enviarlo al host? Por ejemplo. En instagram cuando inicias sesión desde un dispositivo móvil. Usted envía una solicitud de publicación. En esa solicitud posterior, tienen un nombre de usuario, una contraseña y un parámetro llamado "signed_body" cuyo valor está en hash (cifrado), por lo que cada usuario tiene un valor único signed_body.

Hasta ahora estoy olfateando paquetes desde mi dispositivo iOS. Recibo paquetes utilizando Wirehark. Tengo un montón de paquetes. Así que me preguntaba si estos paquetes tienen el valor de signed_body descifrado. OBJETIVO = (Si lo hicieran, obtendría ese valor y lo haría yo mismo y haría llamadas al servidor de Instagram en un formato aceptado).

Solo para que la gente entienda lo que ha firmado: parece un cuerpo. Estoy olfateando los protocolos HTTP usando MiTM Proxy. Instagram proporciona este cuerpo firmado a cada usuario y a casi todas las solicitudes, por lo que es único cada vez. Así que asumí que Wirehark me da todos los paquetes en los que uno de ellos podría ser la clave desencriptada

Losdatosestánenmodohexadecimal.

    
pregunta Biplov Dahal 20.09.2016 - 00:56
fuente

1 respuesta

1

Podemos ver (en el hexdump) que la carga útil de la solicitud POST está urlencoded y contiene dos valores: signed_body y ig_sig_key_version . El primero contiene una cadena que consta de 64 caracteres (que probablemente son una representación hexadecimal de 32 bytes) seguidos de un punto y un JSON, el último es un número entero. Y esa es la carga útil.

TLS transporta esta carga útil a través de una conexión cifrada (y de confianza, a menos que esté en un mitmproxy y la confíe). Y eso es todo lo que hace TLS. En pocas palabras, estás confundiendo las capas OSI, TLS protege la capa de transporte, pero la carga útil está en la capa de aplicación. TLS transferirá cualquier carga útil de la misma manera, es decir, tenía la carga útil contenida clowns= en lugar de signed_body= TLS no se preocuparía en absoluto.

Cualquiera que sea signed_body (aparte de ser un JSON que contiene su nombre de usuario, contraseña e información del dispositivo) depende del diseño de la aplicación de Instagram, sin embargo, definitivamente no está relacionado con TLS. Pueden o no pueden usar algún tipo de hash cristalográfico para generar los primeros 64 caracteres del contenido JSON más algún número aleatorio. O (más probablemente) usan esos 64 caracteres como un token de protección CSRF, que se intercambia con el servidor en cada solicitud.

    
respondido por el grochmal 20.09.2016 - 03:21
fuente

Lea otras preguntas en las etiquetas