Вы находитесь на странице: 1из 9

PRIMERA PARTE: 3WAY HANDSHAKE DE TCP

Intercambio de paquetes Cliente Facebook


En este documento se describir el proceso de inicio de sesin en Facebook,
empezando por la descripcin del 3 Way HandShake de TCP, que se realiza
para establecer una conexin entre los interesados, despus se muestra el
proceso que se sigue para completar el inicio de sesin en Facebook donde
damos a conocer los pasos del HandShake para una capa de conexin segura o
TLS.
En primera instancia, se observa la conexin a nivel del protocolo TCP haciendo
uso del 3 way HandShake para establecer una conexin, esto se visualiza de la
siguiente manera:

Figura 1. Representacin en WireShark del 3 Way HandShake

A continuacin se explicara de manera ms detallada el proceso:


1) Se enva la peticin por parte del cliente hacia el servidor deseado
(mensaje 14), con la bandera de SYN encendida, indicando que se desea
establecer conexin con servidor y en este caso a travs del puerto 443:

Figura 2 Peticin por parte del cliente a Facebook para dar inicio al 3 Way HandShake

2) El servidor responde a la peticin enviando un mensaje con las banderas


de SYN y ACK encendidas indicando que se recibi la peticin anterior,
como consecuencia el servidor enva un mensaje indicando el recibido
del intento de conexin, con el nmero de ACK en 1:

Figura 3 Respuesta positiva por parte de Facebook para establecer la conexin

3) Para completar el 3 Way HandShake: el cliente enva un mensaje de ACK,


con el nmero de secuencia en 1 y ACK en 1, completando as la
secuencia lgica del protocolo que se utiliza para establecer una
conexin entre 2 mquinas:

Figura 4 Finalizacin del 3 Way HandShake a travs del envi de ACK por parte del cliente

El proceso anteriormente dicho se puede apreciar en la figura 5 Donde, la


direccin 10.0.2.15 (Cliente) enva una solicitud con la bandera SYN con el
indicador de secuencia en 0, posteriormente el servidor enva un mensaje de
SYN ACK con secuencia en 0 y ACK establecido en 1, informando as que este
se encuentra vivo, por ltimo, el cliente enva un mensaje de ACK con

secuencia en valor de 1 y ACK en 1, completando y estableciendo una


conexin dando por terminando el protocolo de 3 Way HandShake:

Figura 5 Representacin grfica del 3 Way HandShake

SEGUNDA PARTE: HANDSHAKE DE TLS


Como se mencion anteriormente, a continuacin, en la segunda parte de este
documento, se ver el protocolo HandShake para una capa de conexin segura
en accin; En la siguiente figura se muestra todo el proceso de inicio se sesin
en Facebook.

Figura 6 Representacin de HandShake en TLS

A continuacin se muestra un anlisis detallado del proceso en un paso a paso.


1) Fase 1: Establecer comunicacin entre los interesados: esta fase es
usada para iniciar una conexin y definir los parmetros de seguridad
que sern utilizados, el intercambio es iniciado por el cliente que enva
un mensaje de Client_Hello con los siguientes parmetros:
i. Versin
ii. Random: una estructura generada por el cliente, utilizada
durante el intercambio para prevenir ataques de repeticin
(actan como cookies)

iii. TimeStamp
iv. Numero aleatorio
v. SessionID
vi. Cipher Suite (Informacin de cifrado)
vii. Mtodo de compresin
a. A continuacin se muestra el proceso realizado para realizar la solicitud
de cliente hacia Facebook (Client Hello)

Figura 7 Representacin del Client Hello, que indica el inicio de la comunicacin a travs de
protocolo cifrado

b. Respuesta de Hello por parte de Facebook (Server Hello)

Figura 8 Respuesta por parte del servidor, que selecciona la opcin de cifrado

2) Fase 2: Aqu el servidor enva el certificado al cliente e informacin


adicional de las llaves, por ltimo el servidor solicita al cliente un
certificado, aqu es obligatorio es el mensaje de finalizacin de la
operacin por parte del servidor con el mensaje Server_done, con el
cual este indica la finalizacin del proceso de Hello y se prepara para
esperar una respuesta por parte del cliente.
A continuacin se lleva a cabo envo de certificados y llaves pblicas por parte
del servidor de Facebook: El servidor enva el certificado y comparte la
informacin de cifrado utilizado, luego, da por terminado la operacin Hello
para dar inicio al HandShake

Figura 9 Intercambio de certificados y llaves por parte del servidor

3) Fase 3: En esta fase, despus que el cliente recibe el mensaje de


Server Done el cliente verifica que el servidor haya enviado
informacin valida, posteriormente si todo es satisfactorio enva un
mensaje indicando su llave pblica y la informacin de cifrado de vuelta
al servidor, todo depende del esquema fijado anteriormente.
Envi de llave del cliente al servidor: el cliente enva su llave pblica al servidor
y se enva la especificacin de cifrado, esta ltima es utilizada para indicarle al
servidor que todo lo que est enviando desde ese momento se enviara cifrado
(Change Cipher Spec)

Figura 10 intercambio de certificados y llaves por parte del cliente e inicia la comunicacin de
manera cifrada.

4) Fase 4: En la ltima etapa, se completa el proceso de establecer la


conexin segura, el cliente ha enviado la especificacin de cifrado y el
servidor se ajusta a dicha especificacin, luego el servidor enva el
mensaje de finalizacin de manera cifrada, utilizando la informacin de
cifrado establecida previamente
el servidor enva de manera cifrada la informacin a partir de este momento,
ya que en primera instancia fue solicitada por el cliente, a travs del protocolo
TLS da inicio a la sesin e indica la finalizacin del HandShake, por ltimo, el
servidor habilita el uso de los protocolos de aplicacin, que para este caso, es
un protocolo http.

Figura 11 Finalizacin del HandShake de TLS a travs de la apertura de una nueva sesin, se
inicia la comunicacin cifrada.

5) Fase 5: despus de terminado el intercambio de paquetes para el inicio


de sesin entre los involucrados (Cliente y Facebook (server)), comienza
el intercambio de paquetes que al estar cifrados no pueden ser
visualizados dentro de la herramienta ya que los estudiantes no tienen
las llaves de cifrado, esta informacin se visualiza en la herramienta
WireShark de la siguiente manera:

Figura 12 Visualizacin del flujo de intercambio de datos de aplicacin

Contina el intercambio de paquetes entre los involucrados, donde se observan


envos de informacin por parte del cliente y las respectivas respuestas de
Facebook.
A continuacin se muestra en un diagrama de secuencia el proceso de inicio de
sesin:

Figura 13. Representacin grfica del HandShake de TLS