Si no has leído la primera parte de estos textos puedes revisarla aqui.
Bueno antes de profundizar mas y poder dar un enfoque sobre a la seguridad, tendremos que conocer un par de cosas. Una de ellas es el formato de la cabecera TCP.

Que significa TCP, bueno es la abreviación de Transmission Control Protocol que en español significa Protocolo de Control de Transmicion. Es un protocolo de capa 4 basado en el modelo OSI.

Vale pues debemos saber que los segmentos TCP son utilizados en muchos programas y son indispensables para realizar una conexión y pasar así a una transmisión de flujos de datos.

La cabecera del protocolo proporciona datos básicos para que esta acción se pueda realizar, algunas de estas acciones pueden ser:
    +Nombre del host
    +Dirección de origen
    +Dirección de destino
    +etc... (veremos a continuación mas profundo)



La cabecera TCP, al igual que otros protocolos de transmisión siguen un estándar, proporcionando así los datos básicos para que un paquete llegue a su destino.
Estos comparten las mismas características, permitiendo así que aya una interacción entre distintos hosts.

Se preguntaran que función tiene TCP.
Bueno TCP, es como algo intermedio entre el protocolo IP y la aplicación que desee interactuar. Entonces entra TCP,aumentando las funciones que IP ofrece, como seguridad, fiabilidad, evitar perdida de datos, etc.
Ahora TCP es un protocolo para conexión de punto a punto, es decir no en la red y estas conexiones reciben el nombre de circuitos virtuales.

En el texto anterior explique el Three Way HandShake, ahora explicare un poco como funciona.

Dos host's establecen una conexión para el intercambio, si esto se cumple, son aptos para que se logre un flujo de datos.
A una conexión TCP se le denomina circuitos virtual. Como seguridad, implementan una técnica para verificar que los bytes no se hayan dañado o modificado en el camino.
Se regreso un reconocimiento de que se recibieron correctamente los paquetes, de lo contrario se indica igualmente para indicar el fallo y terminar en dado caso el flujo de datos.
Si el emisor esta transfiriendo demasiado rápido y sobrepasa el buffer del receptor, tiene el privilegio de descartar paquetes, por ende puede pedir la retransmisión posterior del mismo.

La aplicación envía flujos de bytes a la capa TCP, y estos son enviado a la red.
TCP se encarga de dividir el flujo y enviarlo en tamaños apropiados (MTU) y se añade la cabecera.
TCP transporta lo anterior al protocolo IP y por medio de la red llega a la capa TCP de destino.
Entra checksum y se revisa la perdida de datos y/o modificación del mismo.
TCP comunica que todo llego correcto o no, entra un time limit o tiempo limite, igualmente para verificar que no se pierda un dato en el camino o que este sucediendo un bufferoverflow.
Si resulta time-out, significa que el segmento tcp/ip que se tenia que haber recibido, no llego, tardo demasiado según la aplicación o se perdió en el camino y el receptor pide la retransmision del mismo.
También checksum se encarga de revisar que no se dañaron bytes en la transferencia.

Ahora si, después de tanta teoría vamos a analizar el la cabecera TCP

Cabecera TCP

Ahora tratare de explicar cada uno de los siguientes.

    +Puerto de Origen: Es el puerto por el cual se comunicara el host que quiere iniciar el flojo de datos (cliente).

    +Puerto de Destino: Es el puerto por el cual se comunicara el host que aceptara el flujo de datos (remoto).

    +Numero de secuencia: Sirve como control para evitar a l perdida de bytes en el segmento y en el orden correcto. También varía dependiendo el valor SYN. Si SYN esta activo (1) sera ISN + 1. Si SYN no lo esta (0), indica el numero de secuencia del primer bytes de datos.

    +Numero de Acuse De Recibo o ACK: Si ACK esta activo, indica que el numero de secuencia que se espera recibir. Se suele enviar continuamente, una vez establecida la conexión.

    +Longitud de la Cabecera TCP: Este indica el tamaño de la cabecera TCP en palabras, cuantos bytes hay entre el inicio del paquete TCP y el inicio de los datos.

    +Reservado: Son guardados para que se utilicen después.

    +Bits de Control o Flags: Son 8 "indicadores", y se hace referencia cuando se les necesita. Activo (1), Desactivo(2).

    +Ventana: Indica el numero de bytes que el receptor esta esperando recibir.

    +Suma de Verificación o Checksum: Se utiliza para comprobar si hay errores en la cabeceras o en los datos.

    +P. Urgente: Cuando el flag URG esta en 1 (activo), indica el desplazamiento con respecto al numero de secuencia que indica el ultimo byte de datos marcados como urgentes.

    +Opciones: Este puede variar, e indica que el largo de la cabecera debe estar de forma correcta.

    +Datos: Este es el payload o "carga", es la parte con datos del paquete TCP. Pueden ser cualquier dato o datos de otros protocolos (HTTP, SSH, FTP, TELNET, etc).


Vale estos son todos los puntos que había que aclarar, faltan algunos e inspeccionar con un poco mas de la cabecera y su tamaño, etc.
Pero lo seguiremos viendo en el siguiente.
Fuente: Indetectables



Publicar un comentario

 
Top