Bienvenidos a este capítulo de este Curso de redes para hackers – La Capa de Transporte. Comparte este articulo y síguenos para recibir más capítulos, guías y cursos gratis.

Esta guía es parte de un curso mucho más grande en donde te enseñamos a convertirte en hacker de 0 a 100. Desde los conocimientos más básicos hasta conseguir empleo.

En esta guía veremos desde cero un tema tan amplio como son las redes informáticas y lo haremos desde el punto de vista del hacking y la ciberseguridad.

Para saber más comente a continuación, respondemos todos y cada uno de los comentarios.

Índice

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Introducción a la Capa de Transporte

La capa de transporte es el cuarto nivel del modelo OSI que sirve para regular el flujo de información desde el origen hasta el destino. Esta capa se encarga de que haya conexión de extremo a extremo y confiabilidad, entonces también trata de minimizar al máximo la tasa de errores, en el caso de que sea alta la tasa de errores buscará un plan B. En esta capa se segmentan los datos.  La capa de transporte es responsable de la transmisión de datos a través de la red.

En este nivel, los datos no conceptualizan en términos de paquetes individuales, sino más bien en términos de una conversación. Para lograr esto, se utilizan protocolos que se definen como “reglas de la comunicación.

Los protocolos ven la transmisión completa de los muchos paquetes comprobando los errores en la conversación, reconociendo las transmisiones exitosas y solicitando la retransmisión de estas si se detectan errores. La capa de red y la capa de transporte trabajan en conjunto como un sistema postal.

La capa de red se ocupa de direccionar los datos, al igual que una persona se direcciona un sobre. A continuación, la capa de transporte actúa como la oficina local de correos del remitente, ordenando y agrupando todos los datos con la misma dirección de manera similar en envíos más grandes con destino a otras oficinas locales, donde estos datos serán entregados.

El Modelo de Referencia OSI

OSI (Open System Interconection – Interconexión de Sistemas Abiertos) y es un modelo de referencia que describe cómo la información de una aplicación de software en una computadora se mueve a través de un medio físico a la aplicación de software en otra computadora.

OSI consta de siete capas y cada capa realiza una función de red particular. El modelo OSI fue desarrollado por la Organización Internacional de Normalización (ISO) en 1984 y ahora se considera un modelo arquitectónico para las comunicaciones entre computadoras. El modelo OSI divide toda la tarea en siete tareas más pequeñas y manejables. A cada capa se le asigna una tarea específica.

Cada capa es autónoma, por lo que la tarea asignada a cada capa se puede realizar de forma independiente. Lo utilizamos para explicar y entender una comunicación entre un host y su destino en una red LAN, MAN o WAN. Hay dos tipos básicos de modelos para describir las funciones que deben estar presentes para que las comunicaciones de red sean exitosas: modelos de protocolo y modelos de referencia.

Este modelo de vinculación de sistemas presenta diferentes niveles que se encuentran relacionados entre sí, se estandariza la comunicación a fin de poder lograr, a través de diferentes niveles, el intercambio de información.

El modelo OSI en redes es muy útil cuando se trata de solucionar problemas relacionados con las redes . 

Por ejemplo, si alguien no puede conectar su computadora a Internet o un sitio web se vuelve inaccesible para cientos de usuarios, el modelo OSI ayuda a encontrar el problema y solucionarlo. Los profesionales de redes suelen llevar los problemas a una capa específica para solucionarlos fácilmente.

Lista de protocolos y dispositivos del modelo OSI en cada capa

Cada uno de sus niveles tiene una función específica, solucionando el problema de la incompatibilidad que existía en diferentes redes. Las capas: son niveles dentro de una estructura de red, y cada uno de los niveles tiene una función que debe cumplirse de manera concatenada.

Este modelo de comunicación permitía lograr que toda forma de enviar información a través de un dispositivo hacia Internet y viceversa tuviese un camino bien estructurado y fácil de comprender, a fin de que en cuestión de segundos lograra el resultado esperado. Ese camino se reflejaba en una estructura de 7 tipos de capas, teniendo en cuenta que se comienza desde la séptima hasta la primera.

A continuación se muestran los protocolos y dispositivos del modelo OSI compatibles en diferentes capas:

A continuación se muestran los protocolos y dispositivos del modelo OSI compatibles en diferentes capas:

Capa – FunciónProtocolosDispositivoUnidad de datos
7. Aplicación: Interacción humano-computadora a través de aplicaciones que acceden a servicios de red.SMTP, HTTP, FTP, POP3, SNMP, UPnP, DHCP, DNS, HTTPS, NFS, NPT, Telnet, SSH, TFTP, IMAP, etc.Gateway (puerta de enlace)Mensaje/datos
6. Presentación: Formato de datos y cifrado/descifradoMPEG, HTML, DOC, JPEG, MP3, MP4, ASCH, SSL, TLS, AFP, etc.Redireccionador de puerta de enlaceMensaje/datos
5. Sesión: Comunicación entre hosts.NetBIOS, SAP, RPC, SMB, Socks, SIP, RPT, etc.Gateway (puerta de enlace)Mensaje/datos
4. Transporte: Transmisión de datos.TCP, UDP, SCTP, SSL, TLSCortafuegosTCP: Segmentos – UDP: datagrama
3. Red: Determinación de ruta y direccionamiento lógico.(IPV) y (IPS). ARP, IP, NAT, ICMP, IGMP, IPsec, OSPF, etc.EnrutadorPaquete, datagrama
2. Enlace de datos: Direccionamiento físico.ARP, Ethernet, L2PT, LLDP, MAC, LLC, ATM, HDP, NDP, PPP, PPTP, VTP, VLAN, etc.Conmutador, puente, punto de accesoFrame, celda
1. Físico: Transmisión de señales binarias a través de medios físicos.Ethernet, IEEE802.11, ISDN, USB, Bluetooth, RS-232, SDH, DSL, etc.Concentrador, NIC, cable, inalámbrico, modembit, frame

4 Capa de transporte

La capa 4 es responsable de la comunicación de un extremo a otro entre los dos dispositivos. Esto incluye tomar datos de la capa de sesión y dividirlos en fragmentos llamados segmentos antes de enviarlos a la capa 3. La capa de transporte en el dispositivo receptor es responsable de volver a ensamblar los segmentos en datos que la capa de sesión puede consumir.

La capa de transporte también es responsable del control de flujo y del control de errores. El control de flujo determina una velocidad de transmisión óptima para garantizar que un remitente con una conexión rápida no abrume a un receptor con una conexión lenta. La capa de transporte realiza control de errores en el extremo receptor asegurándose de que los datos recibidos estén completos y solicitando una retransmisión si no lo está.

La capa de transporte del modelo OSI divide los datos que fluyen entre dos dispositivos en pequeños segmentos. Obtiene los datos de la capa de sesión y los envía a la capa de red después de dividirlos en segmentos. 

En otras palabras, permite la interacción de extremo a extremo entre los dispositivos preparando los datos para que los consuma la capa de sesión. 

Esta capa controla el flujo para que la transmisión de datos se realice a una velocidad óptima. La capa de transporte también controla los errores para asegurarse de que el receptor reciba los datos completos. 

Utiliza TCP y UDP como protocolos principales. 

  • La capa de transporte es una capa 4 que garantiza que los mensajes se transmitan en el orden en el que se envían y que no haya duplicación de datos.
  • La responsabilidad principal de la capa de transporte es transferir los datos por completo.
  • Recibe los datos de la capa superior y los convierte en unidades más pequeñas conocidas como segmentos.
  • Esta capa puede denominarse capa de extremo a extremo, ya que proporciona una conexión punto a punto entre el origen y el destino para entregar los datos de manera confiable.

Los dos protocolos utilizados en esta capa son:

  • Protocolo de control de transmisión
    • Es un protocolo estándar que permite que los sistemas se comuniquen a través de Internet.
    • Establece y mantiene una conexión entre hosts.
    • Cuando se envían datos a través de la conexión TCP, el protocolo TCP divide los datos en unidades más pequeñas, conocidas como segmentos. Cada segmento viaja por Internet utilizando múltiples rutas y llegan en diferentes órdenes a su destino. El protocolo de control de transmisión reordena los paquetes en el orden correcto en el extremo receptor.
  • Protocolo de datagramas de usuario
    • El Protocolo de Datagramas de Usuario es un protocolo de capa de transporte.
    • Se trata de un protocolo de transporte poco fiable, ya que en este caso el receptor no envía ningún acuse de recibo cuando se recibe el paquete y el emisor no espera ningún acuse de recibo. Por tanto, esto hace que el protocolo no sea fiable.

Funciones de la capa de transporte:

  • Direccionamiento de punto de servicio: Los equipos ejecutan varios programas simultáneamente, por lo que la transmisión de datos desde el origen al destino no solo se realiza de un equipo a otro, sino también de un proceso a otro. La capa de transporte añade el encabezado que contiene la dirección conocida como dirección de punto de servicio o dirección de puerto. La responsabilidad de la capa de red es transmitir los datos de un equipo a otro y la responsabilidad de la capa de transporte es transmitir el mensaje al proceso correcto.
  • Segmentación y reensamblado: cuando la capa de transporte recibe el mensaje de la capa superior, lo divide en varios segmentos y a cada segmento se le asigna un número de secuencia que lo identifica de forma única. Cuando el mensaje llega a su destino, la capa de transporte lo reensambla en función de sus números de secuencia.
  • Control de conexión: La capa de transporte proporciona dos servicios: un servicio orientado a la conexión y un servicio sin conexión. Un servicio sin conexión trata cada segmento como un paquete individual y todos viajan por diferentes rutas para llegar al destino. Un servicio orientado a la conexión establece una conexión con la capa de transporte en la máquina de destino antes de entregar los paquetes. En el servicio orientado a la conexión, todos los paquetes viajan por una única ruta.
  • Control de flujo: La capa de transporte también es responsable del control de flujo, pero se realiza de extremo a extremo en lugar de a través de un solo enlace.
  • Control de errores: la capa de transporte también es responsable del control de errores. El control de errores se realiza de extremo a extremo en lugar de a través de un único enlace. La capa de transporte del remitente garantiza que el mensaje llegue al destino sin errores.

Protocolos de capa de transporte

En esta capa la comunicación se da entre procesos del sistema operativo. Como el número de proceso que usa el sistema operativo es aleatorio queda una abstracción denominada número de puerto para que de forma anticipada se pueda saber que puerto utiliza una determinada aplicación.

Entonces, en lugar de enviar paquetes a un número de proceso se envían a un número de puerto. Será luego función del sistema operativo saber qué número de proceso utiliza un determinado puerto.

Para tener una conexión efectiva y reducir la pérdida de datos al máximo se crearon una serie de capas (Pila) para organizar y hacer más eficiente la conexión, en cada capa existen una serie de protocolos o reglas que se tienen que seguir para que sea posible la comunicación y la correcta transmisión de información. 

La mayoría de redes utilizan una pila de capas para organizarse, cada una se construye a partir de la que tiene debajo. Cada capa proporciona servicios a la capa superior y oculta detalles de cómo implementa sus propios servicios a la capa inferior. La jerarquía de los protocolos y su organización en capas reduce la complejidad del diseño de una red y permite la correcta transmisión de los datos.

Existen dos modelos de comunicación principales divididos en capas: Modelo OSI y el modelo TCP/IP. La jerarquía de los protocolos y su organización en capas, reduce la complejidad del diseño de una red y permite la correcta transmisión de datos. Hay dos aspectos principales (aunque hay muchos más) a tener en cuenta cuando se esté eligiendo el protocolo o la manera en la que se van a transmitir los datos:

En esta capa se utilizan ampliamente dos protocolos: UDP y TCP.

UDP (User Datagram Protocol) La rapidez de los mensajes: Se usa más en la transmisión de datos multimedia (audio, video, presentaciones, etc), transferencia de voz sobre la red. es un protocolo similar a IP: entrega con mejor esfuerzo, no realiza control de flujo ni congestión. su simpleza lo hace ideal para situaciones donde no se requieran esas funciones, como tráfico en tiempo real.

TCP (Transmissión Control Protocol) La confiabilidad de los mensajes: Se refiere a que algo (el mensaje) llegue correctamente y no tenga errores, que no se modifiquen en el camino, que estén íntegros y que sean entregados en el orden correcto. es un protocolo sumamente robusto que garantiza la entrega de paquetes al destinatario con mecanismo de acuses de recibo.

También proporciona mecanismos para control de flujo (para no enviar más datos de los que el receptor puede procesar) y el control de congestión (enviar más o menos segmentos o paquetes de acuerdo con las condiciones de la red).

La confiabilidad que ofrece este protocolo lo hace ideal para la mayoría de las aplicaciones al no tener que preocuparse por la entrega de paquetes, algo que si deben hacer si utilizan protocolo UDP en la capa de transporte.

Ataques y defensa de la Capa de transporte

Ataques Comunes

  • Secuestro de Sesión TCP: Un atacante intercepta y toma el control de una sesión TCP activa, haciéndose pasar por uno de los participantes.
  • Ataques de Amplificación UDP: Usar pequeñas solicitudes UDP que generan grandes respuestas para sobrecargar un servidor o red.
  • SYN Flood: Un atacante envía múltiples solicitudes SYN para agotar los recursos de un servidor, impidiendo que procese nuevas conexiones.

Estrategias de Defensa

  • SYN Cookies: Implementar SYN Cookies para mitigar los efectos de un ataque SYN Flood, asegurando que el servidor pueda manejar un mayor número de solicitudes.
  • Filtrado de Paquetes UDP: Configurar firewalls para filtrar y limitar el tráfico UDP no deseado y evitar ataques de amplificación.
  • TLS/SSL: Utilizar cifrado TLS/SSL para proteger la integridad y confidencialidad de las sesiones TCP, dificultando el secuestro de sesiones.

Capa de transporte

La capa de transporte es la cuarta capa desde arriba. La función principal de la capa de transporte es proporcionar los servicios de comunicación directamente a los procesos de aplicación que se ejecutan en diferentes hosts.

La capa de transporte proporciona una comunicación lógica entre los procesos de aplicación que se ejecutan en diferentes hosts. Aunque los procesos de aplicación en diferentes hosts no están conectados físicamente, los procesos de aplicación utilizan la comunicación lógica proporcionada por la capa de transporte para enviarse mensajes entre sí.

Los protocolos de la capa de transporte se implementan en los sistemas finales pero no en los enrutadores de red. Una red informática proporciona más de un protocolo a las aplicaciones de red. Por ejemplo, TCP y UDP son dos protocolos de capa de transporte que proporcionan un conjunto diferente de servicios a la capa de red.

Todos los protocolos de la capa de transporte proporcionan servicios de multiplexación y demultiplexación. También proporcionan otros servicios, como transferencia de datos confiable, garantías de ancho de banda y garantías de retardo.

Cada una de las aplicaciones de la capa de aplicación tiene la capacidad de enviar un mensaje mediante TCP o UDP. La aplicación se comunica mediante cualquiera de estos dos protocolos. Tanto TCP como UDP se comunicarán con el protocolo de Internet en la capa de Internet. Las aplicaciones pueden leer y escribir en la capa de transporte. Por lo tanto, podemos decir que la comunicación es un proceso bidireccional.

Servicios proporcionados por la capa de transporte

Los servicios que proporciona la capa de transporte son similares a los de la capa de enlace de datos. La capa de enlace de datos proporciona los servicios dentro de una única red, mientras que la capa de transporte proporciona los servicios a través de una interconexión de redes formada por muchas redes. La capa de enlace de datos controla la capa física, mientras que la capa de transporte controla todas las capas inferiores.

La meta final de la capa de transporte es proporcionar un servicio eficiente, confiable y económico a sus usuarios, que normalmente son procesos de la capa de aplicación. Para lograr este objetivo, la capa de transporte utiliza los servicios proporcionados por la capa de red. El firmware o software de la capa de transporte que se encarga del transporte se llama entidad de transporte, la cual puede estar en el núcleo del sistema operativo, en un proceso independiente, en un paquete de libreria o en la tarjeta de red.

Hay dos tipos de servicio en la capa de transporte, orientado y no orientado a la conexión. En el servicio orientado a la conexión consta de tres partes: establecimiento, transferencia de datos, y liberación. En el servicio no orientado a la conexión se tratan los paquetes de forma individual.

Es la primera capa que lleva a cabo la comunicación extremo a extremo, y esta condición ya se mantendrá en las capas superiores.

Primitivas del servicio de transporte

Para permitir que los usuarios accedan al servicio de transporte, la capa de transporte debe proporcionar algunas operaciones a los programas de aplicación, es decir, una interfaz del servicio de transporte. Cada servicio de transporte tiene su propia interfaz. Con el propósito de ver los aspectos básicos, en esta sección examinaremos primero un servicio de transporte sencillo y su interfaz.

El servicio de transporte es parecido al servicio en red, pero hay algunas diferencias importantes. La principal, es que, el propósito del servicio de red es modelar el servicio ofrecido por las redes reales, con todos sus problemas. Las redes reales pueden perder paquetes, por lo que generalmente el servicio no es confiable.

En cambio, el servicio de transporte (orientado a la conexión) si es confiable. Claro que las redes reales no están libres de errores, pero ese es precisamente el propósito de la capa de transporte: ofrecer un servicio confiable en una red no confiable.

Otra diferencia entre la capa de transporte y la de red es a quien van dirigidos sus servicios. El servicio de red lo usan únicamente las entidades de transporte. Pocos usuarios escriben sus entidades de transporte y pocos usuarios o programas llegan a ver los aspectos internos del servicio de red. En cambio, muchos programas ven primitivas de transporte. En consecuencia el servicio de transporte debe ser adecuado y fácil de usar.

Las primitivas de un transporte sencillo serían:

  • LISTEN: Se bloquea hasta que algún proceso intenta el contacto.
  • CONNECT: Intenta activamente establecer una conexión.
  • SEND: Envía información.
  • RECEIVE: Se bloquea hasta que llegue una TPDU de DATOS.
  • DISCONNECT: Este lado quiere liberar la conexión.

Y con estas primitivas podemos hacer un esquema sencillo de manejo de conexiones.

Sockets de Berkeley

Este es otro grupo de primitivas de transporte, las primitivas usadas en UNIX para el TCP. En general son muy parecidas a las anteriores pero ofrecen más características y flexibilidad.

Ejemplo de capa de transporte

Entendamos la capa de transporte con la ayuda de un ejemplo.

Tomemos un ejemplo de envío de correo electrónico.

  • Cuando enviamos un correo electrónico, el correo electrónico en el modelo OSI , cada capa se comunica con la capa correspondiente del receptor.
  • Entonces, cuando el correo llega a la capa de transporte del lado del remitente, el correo electrónico se divide en pequeños segmentos. Luego, los segmentos rotos se envían a la capa de red y la capa de transporte también especifica el puerto de origen y destino.
  • En el lado del receptor, la capa de transporte vuelve a ensamblar todos los segmentos para obtener los datos y utiliza el número de puerto para identificar la aplicación para entregar los datos.

Comunicación de proceso a proceso

La capa de transporte es responsable de la entrega del mensaje al proceso apropiado.

Utiliza un número de puerto para entregar los datos segmentados al proceso correcto entre los múltiples procesos que se ejecutan en un host en particular. Un número de puerto es una dirección de 16 bits utilizada por la capa de transporte para identificar cualquier programa cliente-servidor.

Liberación de una conexión

La liberación de una conexión es más fácil que su establecimiento. Hay dos estilos de terminación de una conexión: liberación asimétrica y liberación simétrica. La liberación asimétrica es la manera en que funciona el mecanismo telefónico: cuando una parte cuelga, se interrumpe la conexión. Trata la conexión como dos conexiones unidireccionales distintas, y requiere que cada una se libere por separado.

La liberación asimétrica

Es abrupta y puede resultar en la pérdida de datos. Por lo que es obvio que se requiere un protocolo de liberación más refinado para evitar la pérdida de datos. Una posibilidad es usar la liberación simétrica, en la que cada dirección se libera independientemente de la otra. Aquí, un host puede continuar recibiendo datos aun tras haber enviado una TPDU de desconexión.

La liberación simétrica

Es ideal cuando un proceso tiene una cantidad fija de datos por enviar y sabe con certidumbre cuándo los ha enviado. En otras situaciones, la determinación de si se ha efectuado o no todo el trabajo y se debe terminarse o no la conexión no es tan obvia. Podríamos pensar en un protocolo en el que el host 1 diga:”Ya termine, ¿Terminaste también?”. Si el host 2 responde “Ya termine también. Adiós”, la conexión puede liberarse con seguridad.

Pero no es tan fiable por el problema de que siempre tendremos que esperar la confirmación de los mensajes recibidos y si esta confirmación no llega no libera la conexión y después puede que necesite la confirmación de que llegó la confirmación y entraríamos en un bucle del que no podemos salir.

Podemos hacer que al host 1 si no le llega la confirmación después de N intentos (es que quiere la desconexión), se libere. Esto produce una conexión semiabierta en la que el host 1 está desconectado pero el host 2 no como no le llega la confirmación no se desconecta nunca. Para solucionar esto creamos una regla por la cual si al host 2 no le llega ninguna TPDU durante cierta cantidad de segundos, se libera automáticamente.

Los servicios proporcionados por los protocolos de la capa de transporte se pueden dividir en cinco categorías:

  • Entrega de principio a fin
  • Direccionamiento
  • Entrega confiable
  • Control de flujo
  • Multiplexación

Entrega de extremo a extremo:

La capa de transporte transmite el mensaje completo al destino. Por lo tanto, garantiza la entrega de extremo a extremo de un mensaje completo desde un origen hasta el destino.

Entrega confiable:

La capa de transporte proporciona servicios de confiabilidad al retransmitir los paquetes perdidos y dañados.

La entrega confiable tiene cuatro aspectos:

  • Control de errores
  • Control de secuencia
  • Control de pérdidas
  • Control de duplicación

Control de errores

La función principal de la confiabilidad es el control de errores . En realidad, ninguna transmisión estará 100 por ciento libre de errores. Por lo tanto, los protocolos de la capa de transporte están diseñados para proporcionar una transmisión sin errores.

La capa de enlace de datos también proporciona el mecanismo de gestión de errores, pero garantiza únicamente una entrega sin errores de nodo a nodo. Sin embargo, la confiabilidad de nodo a nodo no garantiza la confiabilidad de extremo a extremo.

La capa de enlace de datos comprueba si hay errores entre cada red. Si se produce un error en uno de los enrutadores, la capa de enlace de datos no lo detectará, sino que solo detectará los errores que se hayan producido entre el principio y el final del enlace.

Por lo tanto, la capa de transporte realiza la comprobación de errores de extremo a extremo para asegurarse de que el paquete haya llegado correctamente.

Control de secuencia

El segundo aspecto de la confiabilidad es el control de secuencia que se implementa en la capa de transporte.

En el extremo emisor, la capa de transporte se encarga de garantizar que los paquetes recibidos de las capas superiores puedan ser utilizados por las capas inferiores. En el extremo receptor, se encarga de garantizar que los distintos segmentos de una transmisión puedan volver a ensamblarse correctamente.

Control de pérdidas

El control de pérdidas es un tercer aspecto de la fiabilidad. La capa de transporte garantiza que todos los fragmentos de una transmisión lleguen al destino, no solo algunos de ellos. En el extremo emisor, todos los fragmentos de la transmisión reciben números de secuencia de una capa de transporte. Estos números de secuencia permiten que la capa de transporte del receptor identifique el segmento que falta.

Control de duplicación

El control de duplicación es el cuarto aspecto de la confiabilidad. La capa de transporte garantiza que no lleguen datos duplicados al destino. Los números de secuencia se utilizan para identificar los paquetes perdidos; de manera similar, permite al receptor identificar y descartar segmentos duplicados.

Control de flujo y almacenamiento en buffer

El control de flujo se utiliza para evitar que el emisor sobrecargue al receptor. Si el receptor está sobrecargado con demasiados datos, descarta los paquetes y solicita la retransmisión de los mismos. Esto aumenta la congestión de la red y, por lo tanto, reduce el rendimiento del sistema.

La capa de transporte es responsable del control de flujo. Utiliza el protocolo de ventana deslizante que hace que la transmisión de datos sea más eficiente y controla el flujo de datos para que el receptor no se vea sobrepasado. El protocolo de ventana deslizante está orientado a bytes en lugar de a tramas.

Respecto de la manera en que se manejan las conexiones mientras están en uso, uno de los aspectos clave es el control de flujo. Se necesita un esquema para evitar que un emisor rápido desborde a un receptor lento. La diferencia principal es que un enrutador por lo regular tiene relativamente pocas líneas, y un host puede tener numerosas conexiones. Esta diferencia hace poco práctico emplear la implementación que se hace en la capa de enlace.

En esta capa lo que se hace es que si el servicio de red no es confiable, el emisor debe almacenar en un buffer todas las TPDUs enviadas, igual que en la capa enlace de datos. Sin embargo, con un servicio de red confiable son posibles otros arreglos.

En particular, si el emisor sabe que el receptor siempre tiene espacio de buffer, no necesita tener copias de las TPDUs que envía. Sin embargo, si el receptor no garantiza que se aceptará cada TPDU que llegue, el emisor tendrá que usar buffers de todas maneras. En el último caso, el emisor no puede confiar en la confirmación de recepción de la capa red porque esto solo significa que ha llegado la TPDU, no que ha sido aceptada.

Los Buffers pueden ser de tres tipos, y usaremos cada uno de ellos cuando más nos convenga.

El equilibrio óptimo entre el almacenamiento del buffer en el origen y en el destino depende del tipo de tráfico transportado por la conexión.

Same Order Delivery:

Este servicio de la capa de transporte garantiza que los segmentos se envíen y reciban en un orden determinado. Para ello, cada paquete está numerado y puede ordenarse correctamente.

Integridad de los datos:

Durante la transmisión de datos entre dos sistemas, estos pueden resultar dañados, perderse o llegar al destinatario en el orden equivocado. La capa de transporte utiliza mecanismos de detección de errores para garantizar que los datos se entreguen con el contenido correcto. Con este propósito, el transport layer envía un acuse de recibo al remitente.

La capa de transporte proporciona integridad de datos mediante:

  • Detectar y descartar paquetes corruptos.
  • Seguimiento de paquetes perdidos y descartados y retransmisión.
  • Reconocer paquetes duplicados y descartarlos.
  • Almacenar en búfer los paquetes desordenados hasta que lleguen los paquetes faltantes.

Control de flujo

El control de flujo regula y optimiza el tráfico de datos. En este caso, la velocidad de la transmisión se puede estrangular o aumentar para ajustar el intercambio de datos, con objeto de evitar sobrecargar al receptor.

La capa de transporte proporciona integridad de datos mediante:

  • Detectar y descartar paquetes corruptos.
  • Seguimiento de paquetes perdidos y descartados y retransmisión.
  • Reconocer paquetes duplicados y descartarlos.
  • Almacenar en búfer los paquetes desordenados hasta que lleguen los paquetes faltantes.

Evitar la congestión

Si a pesar de todo se producen cuellos de botella en los nodos y conexiones, la capa de transporte puede tomar medidas para evitar una obstrucción a largo plazo. Puede, por ejemplo, reducir la velocidad de transmisión.

  • En la red, si la carga en la red es mayor que la capacidad de carga de la red, entonces puede ocurrir congestión.
  • El control de la congestión se refiere a los mecanismos y técnicas para controlar la congestión y mantener la carga por debajo de la capacidad.
  • La capa de transporte reconoce nodos sobrecargados y caudales reducidos y toma las medidas adecuadas para superarlos.

Multiplexación y Demultiplexación

La capa de transporte utiliza la multiplexación para mejorar la eficiencia de la transmisión. La multiplexión de varias conversaciones en conexiones, circuitos virtuales o enlaces físicos desempeña un papel importante en diferentes capas de la arquitectura de red. En la capa de transporte puede surgir la necesidad de multiplexión por varias razones. Por ejemplo, si en un host solo se dispone de una dirección de red, todas las conexiones de transporte de esa máquina tendrán que utilizarla. Cuando llega una TPDU, se necesita algún mecanismo para saber a cuál proceso asignarla. Esta situación se conoce como multiplexión hacia arriba.

La multiplexión también puede ser útil en la capa transporte para la utilización de circuitos virtuales, que dan más ancho de banda cuando se reasigna a cada circuito una tasa máxima de datos. La solución es abrir múltiples conexiones de red y distribuir el tráfico entre ellas. Esto se denomina multiplexión hacia abajo.

Los paquetes que se transfieren de un sistema a otro pueden provenir de muchas fuentes diferentes. Mediante la multiplexación, la capa de transporte permite a los usuarios abrir aplicaciones y servicios de diferentes fuentes dentro de una misma red.

La capa de transporte proporciona el servicio de multiplexación para mejorar la eficiencia de transmisión en la comunicación de datos. En el lado del receptor, se requiere demultiplexación para recopilar los datos provenientes de diferentes procesos. 

La multiplexación puede ocurrir de dos maneras:

  • Multiplexación ascendente: la multiplexación ascendente significa que varias conexiones de la capa de transporte utilizan la misma conexión de red. Para que resulte más rentable, la capa de transporte envía varias transmisiones con destino al mismo destino por la misma ruta; esto se logra mediante la multiplexación ascendente. Significa que múltiples conexiones de capa de transporte utilizan la conexión de la misma red. La capa de transporte transmite varias transmisiones con destino al mismo destino a lo largo de la misma ruta en la red.

Multiplexación descendente: la multiplexación descendente significa que una conexión de la capa de transporte utiliza varias conexiones de red. La multiplexación descendente permite que la capa de transporte divida una conexión entre varias rutas para mejorar el rendimiento. Este tipo de multiplexación se utiliza cuando las redes tienen una capacidad baja o lenta. Significa que una conexión de capa de transporte utiliza múltiples conexiones. Esta multiplexación permite a la capa de transporte dividir una conexión de red entre varias rutas para mejorar el rendimiento de la red.

Direccionamiento

Según el modelo en capas, la capa de transporte interactúa con las funciones de la capa de sesión. Muchos protocolos combinan protocolos de capa de sesión, presentación y aplicación en una sola capa conocida como capa de aplicación.

En estos casos, la entrega a la capa de sesión significa la entrega a la capa de aplicación. Los datos generados por una aplicación en una máquina deben transmitirse a la aplicación correcta en otra máquina. En este caso, el direccionamiento lo proporciona la capa de transporte.

La capa de transporte proporciona la dirección del usuario, que se especifica como una estación o un puerto. La variable de puerto representa un usuario TS particular de una estación específica, conocida como punto de acceso al servicio de transporte (TSAP). Cada estación tiene solo una entidad de transporte.

Cuando un proceso desea establecer una conexión con un computador de aplicación remoto, debe especificar a cuál se conectará (¿a quién le llegará el mensaje?). El método que normalmente se emplea es definir direcciones de transporte en las que los procesos pueden estar a la escucha de solicitudes de conexiones.

En Internet, estos puntos terminales se denominan puertos, pero usaremos el término genérico de TSAP (Punto de Acceso al Servicio de Transporte). Los puntos terminales análogos de la capa de red se llaman NSAP (Punto de Acceso al Servicio de Red). Las direcciones IP son ejemplos de NSAPS.

Los protocolos de la capa de transporte necesitan saber qué protocolos de capa superior se están comunicando.

Recuperación de caídas

Si los hosts y los enrutadores están sujetos a caídas, la recuperación es fundamental. Ahora, si la entidad de transporte está por entero dentro de los hosts, la recuperación de caídas de red y de enrutadores es sencilla.

Si la capa de red proporciona servicio de datagramas, las entidades de transporte esperan pérdida de algunas TPDUs todo el tiempo, y saben cómo manejarla. Si la capa de red proporciona servicio orientado a la conexión, entonces la pérdida de un circuito virtual se maneja estableciendo otro nuevo y sondeando la entidad de transporte remota para saber cuales TPDUs ha recibido y cuales no.

Un problema más complicado es la manera de recuperarse de caídas del host. Al reactivarse, sus tablas están en el estado inicial y no sabe con precisión donde estaba.

En un intento por recuperar su estado previo, el servidor podría enviar una TPDU de difusión a todos los demás host, anunciando que se acaba de caer y solicitando a todos sus clientes que le informen el estado de todas la conexiones abiertas.

¿Qué funciones desempeña la capa de transporte?

La función principal de la capa de transporte es proporcionar una transmisión de datos funcional y segura de extremo a extremo dentro de una red. Para ello, la capa de transporte del modelo OSI toma los datos de la capa de sesión (capa 5) y los hace llegar a la capa de red (capa 3). Si es necesario, la capa de transporte también puede dividir los segmentos en unidades más pequeñas o de mayor tamaño para facilitar su transmisión.

Se puede transmitir con un protocolo orientado a conexión (TCP) o con uno no orientado a conexión (UDP). La capa de transporte puede utilizar una conexión de red, utilizar una conexión para varias conexiones o distribuir una conexión de transporte a diferentes conexiones de red. Ahora bien, siempre actúa con transparencia.

Otra de las funciones de la capa de transporte es establecer, interrumpir y supervisar la conexión. Si la transmisión tiene lugar en el modo orientado a conexión, una correcta transferencia de datos se confirma con un acuse de recibo. De este modo, el equipo que ha enviado los datos sabe que todas las unidades se han transmitido correctamente. Si el equipo emisor no recibe el acuse de recibo, iniciará automáticamente un nuevo intento de transmisión. La capa de transporte no tiene en cuenta los medios utilizados en las tres primeras capas.

La capa de transporte recibe los servicios de la capa de red y luego brinda servicios a la capa de sesión.

Del lado del remitente

Al final del remitente, la capa de transporte recopila datos de la capa de aplicación, es decir, del mensaje, y realiza la segmentación para dividir el mensaje en segmentos y luego agrega el número de puerto de origen y destino en el encabezado y envía ese mensaje a la capa de red. .

En el lado del recepto

En el extremo del receptor, la capa de transporte recopila datos de la capa de red y luego vuelve a ensamblar los datos segmentados e identifica el número de puerto leyendo su encabezado para enviar ese mensaje al puerto apropiado en la capa de sesión.

Consulte la imagen a continuación para ver el funcionamiento de la capa de transporte:

Protocolos de la capa de transporte

La capa de transporte está representada por dos protocolos: TCP y UDP. El protocolo IP en la capa de red envía un datagrama desde un host de origen al host de destino.

Internet tiene dos protocolos principales en la capa de transporte, uno no orientado a la conexión, UDP, y otros orientados a la conexión, el TCP y SCTP.

En la actualidad, los sistemas operativos admiten entornos multiusuario y multiprocesamiento, y un programa en ejecución se denomina proceso. Cuando un host envía un mensaje a otro host, significa que el proceso de origen está enviando un proceso a un proceso de destino. Los protocolos de la capa de transporte definen algunas conexiones a puertos individuales conocidos como puertos de protocolo.

Un protocolo IP es un protocolo de host a host que se utiliza para entregar un paquete desde el host de origen al host de destino, mientras que los protocolos de capa de transporte son protocolos de puerto a puerto que funcionan sobre los protocolos IP para entregar el paquete desde el puerto de origen a los servicios IP, y desde los servicios IP al puerto de destino.

Cada puerto está definido por una dirección entera positiva y tiene 16 bits.

UDP User Datagram Protocol

UDP (User Datagram Protocol): un protocolo de red minimalista que permite el envío de datagramas en redes basadas en IP. Prioriza rapidez sobre confiabilidad, solo envia el mensaje.

UDP significa Protocolo de datagramas de usuario. UDP es un protocolo simple y proporciona una funcionalidad de transporte no secuenciada. UDP es un protocolo sin conexión. Este tipo de protocolo se utiliza cuando la confiabilidad y la seguridad son menos importantes que la velocidad y el tamaño.

UDP es un protocolo de nivel de transporte de extremo a extremo que agrega direcciones de nivel de transporte, control de errores de suma de comprobación e información de longitud a los datos de la capa superior. El paquete producido por el protocolo UDP se conoce como datagrama de usuario.

Es un protocolo de transporte de datos liviano que funciona sobre IP. UDP proporciona un mecanismo para detectar datos corruptos en paquetes, pero no intenta resolver otros problemas que surgen con los paquetes, como paquetes perdidos o desordenados. Es por eso que a UDP a veces se le conoce como Protocolo de datos no confiable. 

UDP es simple pero rápido, al menos en comparación con otros protocolos que funcionan sobre IP. A menudo se utiliza para aplicaciones urgentes (como la transmisión de vídeo en tiempo real) donde la velocidad es más importante que la precisión.

En sistemas Linux y Unix, puede emitir el comando lsof para ver qué procesos utilizan puertos UDP. 

Este protocolo proporciona una forma para que las aplicaciones envíen datagramas IP encapsulados sin tener una conexión.

A diferencia de los protocolos orientados a conexión, las transmisiones no orientadas a conexión prescinden del acuse de recibo. Aunque se omita este mecanismo de seguridad, los protocolos no orientados a conexión siguen siendo útiles para las transmisiones en tiempo real, como las videoconferencias. Protocolos como UDP utilizan puertos entre 0 y 65 535.

Algunas características de este protocolo son:

  • Genera pocos gastos y se utiliza para aplicaciones que no requieren envío de datos confiable.
  • No orientado a la conexión, descrito en la RFC 768, sólo posee 8 bytes de carga.
  • No rastrea la recepción de datagramas en el destino, sólo envía los datagramas recibidos a la capa de aplicación a medida que llega y no reenvía datagramas perdidos. Por esto es más rápido y ligero.
  • Proporciona un servicio de datagramas poco fiable.
  • UDP es uno de los protocolos de capa de transporte más simples que proporciona funcionalidad de transmisión de datos no secuencial.
  • UDP se considera un protocolo de capa de transporte sin conexión.
  • Se hace referencia a que este tipo de protocolo se utiliza cuando la velocidad y el tamaño son más importantes que la confiabilidad y la seguridad.
  • Es un protocolo de nivel de transporte de un extremo a otro que agrega direcciones de nivel de transporte, control de errores de suma de comprobación e información de longitud a los datos recibidos de la capa superior.
  • El datagrama de usuario es el paquete construido por el protocolo UDP.

Formato de datagrama de usuario

El datagrama de usuario tiene un encabezado de 16 bytes que se muestra a continuación:

  • Dirección del puerto de origen: define la dirección del proceso de aplicación que ha entregado un mensaje. La dirección del puerto de origen es una dirección de 16 bits.
  • Dirección del puerto de destino: define la dirección del proceso de aplicación que recibirá el mensaje. La dirección del puerto de destino es una dirección de 16 bits.
  • Longitud total: define la longitud total del datagrama de usuario en bytes. Es un campo de 16 bits.
  • Suma de comprobación: la suma de comprobación es un campo de 16 bits que se utiliza en la detección de errores.

Servicios UDP

  • Comunicación de proceso a proceso
  • Servicio sin conexión
  • Entrega rápida del mensaje.
  • Suma de comprobación

Desventajas del protocolo UDP

  • UDP proporciona funciones básicas necesarias para la entrega de una transmisión de extremo a extremo.
  • No proporciona ninguna función de secuenciación o reordenamiento y no especifica el paquete dañado cuando informa un error.
  • UDP puede descubrir que se ha producido un error, pero no especifica qué paquete se ha perdido, ya que no contiene un ID o número de secuencia de un segmento de datos en particular.

TCP Transmission Control Protocol

TCP (protocolo de control de transmisión) se diseñó específicamente para proporcionar un flujo de bytes confiable de extremo a extremo a través de una interred no confiable. Una interred difiere de una sola red debido a que diversas partes podrían tener diferentes topologías, anchos de banda, retardos, tamaños de paquete. TCP tiene un diseño que se adapta de manera dinámica a las propiedades de la interred y que se sobrepone a muchos tipos de situaciones.

Proporciona servicios completos de capa de transporte a las aplicaciones. Es un protocolo orientado a la conexión, es decir, se establece una conexión entre ambos extremos de la transmisión. Para crear la conexión, TCP genera un circuito virtual entre el emisor y el receptor durante la duración de una transmisión.

El protocolo TCP proporciona un servicio completo y fiable, descrito en la RFC 793. Cada segmento de TCP posee 20 bytes de carga en el encabezado. Asigna números de puerto entre 0 y 65 535 y utiliza el procedimiento de acuse de recibo descrito anteriormente.

Características del protocolo TCP

  • Transferencia de datos en secuencia: el protocolo TCP transfiere los datos en forma de secuencia continua de bytes. TCP agrupa los bytes en forma de segmentos TCP y luego los pasa a la capa IP para su transmisión al destino. TCP segmenta los datos y los reenvía a IP.
  • Fiabilidad: TCP asigna un número de secuencia a cada byte transmitido y espera un acuse de recibo positivo del TCP receptor. Si no se recibe un acuse de recibo en un intervalo de tiempo de espera, los datos se retransmiten al destino.
    El TCP receptor utiliza el número de secuencia para volver a ensamblar los segmentos si llegan fuera de orden o para eliminar los segmentos duplicados.
  • Control de flujo: al recibir, TCP envía un acuse de recibo al remitente indicando el número de bytes que puede recibir sin desbordar su búfer interno. El número de bytes se envía en ACK en forma del número de secuencia más alto que puede recibir sin ningún problema. Este mecanismo también se conoce como mecanismo de ventana.
  • Multiplexación: la multiplexación es un proceso que consiste en aceptar datos de distintas aplicaciones y reenviarlos a distintas aplicaciones en distintos equipos. En el extremo receptor, los datos se reenvían a la aplicación correcta. Este proceso se conoce como demultiplexación. TCP transmite el paquete a la aplicación correcta mediante los canales lógicos conocidos como puertos.
  • Conexiones lógicas: la combinación de sockets, números de secuencia y tamaños de ventana se denomina conexión lógica. Cada conexión se identifica por el par de sockets que utilizan los procesos de envío y recepción.
  • Full Duplex: TCP proporciona un servicio Full Duplex, es decir, el flujo de datos en ambas direcciones al mismo tiempo. Para lograr el servicio Full Duplex, cada TCP debe tener buffers de envío y recepción para que los segmentos puedan fluir en ambas direcciones. TCP es un protocolo orientado a la conexión. Supongamos que el proceso A desea enviar y recibir los datos del proceso B. Se producen los siguientes pasos:
    • Establecer una conexión entre dos TCP.
    • Los datos se intercambian en ambas direcciones.
    • La conexión ha finalizado.

Formato de segmento TCP

  • Dirección del puerto de origen: se utiliza para definir la dirección del programa de aplicación en un equipo de origen. Es un campo de 16 bits.
  • Dirección del puerto de destino: Se utiliza para definir la dirección del programa de aplicación en un equipo de destino. Es un campo de 16 bits.
  • Número de secuencia: un flujo de datos se divide en dos o más segmentos TCP. El campo de número de secuencia de 32 bits representa la posición de los datos en un flujo de datos original.
  • Número de reconocimiento: un número de reconocimiento de 32 campos que reconoce los datos de otros dispositivos que se comunican. Si el campo ACK está configurado en 1, especifica el número de secuencia que el receptor espera recibir.
  • Longitud del encabezado (HLEN): especifica el tamaño del encabezado TCP en palabras de 32 bits. El tamaño mínimo del encabezado es de 5 palabras y el tamaño máximo es de 15 palabras. Por lo tanto, el tamaño máximo del encabezado TCP es de 60 bytes y el tamaño mínimo es de 20 bytes.
  • Reservado: Es un campo de seis bits que está reservado para uso futuro.
  • Bits de control: cada bit de un campo de control funciona de forma individual e independiente. Un bit de control define el uso de un segmento o sirve como comprobación de validez para otros campos.

Hay un total de seis tipos de banderas en el campo de control:

  • URG: El campo URG indica que los datos de un segmento son urgentes.
  • ACK: Cuando se configura el campo ACK, se valida el número de reconocimiento.
  • PSH: El campo PSH se utiliza para informar al remitente que se necesita un mayor rendimiento, por lo que, si es posible, los datos deben enviarse con mayor rendimiento.
  • RST: El bit de reinicio se utiliza para restablecer la conexión TCP cuando ocurre alguna confusión en los números de secuencia.
  • SYN: El campo SYN se utiliza para sincronizar los números de secuencia en tres tipos de segmentos: solicitud de conexión, confirmación de conexión (con el bit ACK establecido) y reconocimiento de confirmación.
  • FIN: El campo FIN se utiliza para informar al módulo TCP receptor que el remitente ha finalizado el envío de datos. Se utiliza en la terminación de la conexión en tres tipos de segmentos: solicitud de terminación, confirmación de terminación y acuse de recibo de confirmación de terminación.
    • Tamaño de la ventana: La ventana es un campo de 16 bits que define el tamaño de la ventana.
    • Suma de comprobación: la suma de comprobación es un campo de 16 bits que se utiliza en la detección de errores.
    • Puntero urgente: si el indicador URG se establece en 1, entonces este campo de 16 bits es un desplazamiento del número de secuencia que indica que es un último byte de datos urgente.
    • Opciones y relleno: Define los campos opcionales que transmiten la información adicional al receptor.

Diferencias entre TCP y UDP

Base de comparaciónTCPUDP
DefiniciónTCP establece un circuito virtual antes de transmitir los datos.UDP transmite los datos directamente a la computadora de destino sin verificar si el receptor está listo para recibirlos o no.
Tipo de conexiónEs un protocolo orientado a la conexión.Es un protocolo sin conexión.
Velocidadlentoalto
FiabilidadEs un protocolo confiable.Es un protocolo poco confiable.
Tamaño del encabezado20 bytes8 bytes
reconocimientoEspera el reconocimiento de datos y tiene la capacidad de reenviar los paquetes perdidos.Ni toma el acuse de recibo ni retransmite la trama dañada.

SCTP (Protocolo de Transmisión para el Control de Flujo)

  • El protocolo SCTP proporciona un servicio completo y fiable.
  • Ofrece los mismos servicios a las aplicaciones que el protocolo TCP.
  • Admite conexiones entre sistemas que tienen más de una dirección (host múltiple).
  • La conexión SCTP entre el sistema transmisor y receptor se denomina asociación.
  • Los datos de la asociación se organizan en bloques.
  • SCTP es uno de los protocolos de capa de transporte orientados a la conexión .
  • Permite la transmisión de datos entre emisor y receptor en modo full duplex.
  • Este protocolo simplifica la creación de conexiones a través de una red inalámbrica y el control de la transmisión de datos multimedia.

Características de SCTP

  • Unidifusión con múltiples propiedades
  • Transmisión confiable
  • Orientado a mensajes
  • multidireccional

Ataques y Defensa en la Capa de Transporte del Modelo OSI

La capa de transporte es la cuarta capa del modelo OSI y desempeña un papel fundamental en la comunicación de red, proporcionando servicios esenciales como el control de flujo, la segmentación y el reensamblaje de datos, y el manejo de errores. Esta capa es responsable de asegurar que los datos se transmitan de manera confiable entre dos puntos de comunicación, y su función es crítica para la integridad y eficiencia de la comunicación de datos. Sin embargo, debido a su importancia, la capa de transporte también es un objetivo frecuente para los atacantes cibernéticos.

Funciones Clave de la Capa de Transporte

  1. Control de Flujo: Regula la cantidad de datos que se envían para evitar la congestión y asegurar que el receptor no se vea abrumado.
  2. Segmentación y Reensamblaje: Divide los datos en segmentos más pequeños para la transmisión y los reensambla en el destino.
  3. Control de Errores: Verifica que los datos se reciban correctamente y, si es necesario, solicita la retransmisión de segmentos dañados o perdidos.
  4. Establecimiento y Terminación de Conexiones: Configura y cierra conexiones entre los dispositivos de origen y destino, garantizando que los datos se envíen y reciban en el orden correcto.

Protocolos Clave en la Capa de Transporte

  1. TCP (Transmission Control Protocol): Protocolo orientado a la conexión que garantiza la entrega confiable de datos mediante la reordenación de paquetes y la corrección de errores.
  2. UDP (User Datagram Protocol): Protocolo no orientado a la conexión que permite la transmisión rápida de datos sin garantía de entrega o reordenación, ideal para aplicaciones donde la velocidad es crítica.
  3. SCTP (Stream Control Transmission Protocol): Protocolo que combina características de TCP y UDP, ofreciendo un equilibrio entre confiabilidad y velocidad.

1. SYN Flooding (Inundación SYN)

SYN Flooding es un tipo de ataque de denegación de servicio (DoS) en el que un atacante envía una gran cantidad de solicitudes SYN a un servidor, pero no completa el proceso de conexión TCP (el “handshake” de tres vías). Esto provoca que el servidor mantenga múltiples conexiones abiertas en espera de respuesta, consumiendo recursos y, eventualmente, impidiendo que el servidor acepte nuevas conexiones legítimas.

Consecuencias:

  • Interrupción del Servicio: El servidor se ve sobrecargado y no puede manejar nuevas conexiones, lo que resulta en una interrupción del servicio para los usuarios legítimos.
  • Consumo de Recursos: Los recursos del servidor, como la memoria y el CPU, se agotan debido a las conexiones incompletas.

Defensa Contra SYN Flooding:

  1. SYN Cookies: Una técnica en la que el servidor responde a las solicitudes SYN de manera que no consume recursos hasta que la conexión se completa, mitigando el impacto del ataque.
  2. Limitar el Número de Conexiones: Configurar límites en el número de conexiones pendientes que un servidor puede aceptar, rechazando nuevas conexiones cuando se alcanza el límite.
  3. Filtrado de Tráfico: Utilizar firewalls o sistemas de detección de intrusiones (IDS) para identificar y bloquear el tráfico SYN anómalo.

Secuestro de Sesiones TCP (TCP Session Hijacking)

En este ataque, un atacante intercepta o adivina el número de secuencia de una conexión TCP establecida entre dos dispositivos. Al hacerlo, el atacante puede inyectar datos maliciosos en la comunicación o tomar el control de la sesión, suplantando a uno de los participantes.

Consecuencias:

  • Intercepción de Datos: El atacante puede capturar datos sensibles que se transmiten entre los dos dispositivos.
  • Manipulación de la Sesión: El atacante puede alterar el flujo de datos o interrumpir la comunicación, causando pérdida de información o ejecución de comandos maliciosos.
  • Suplantación de Identidad: El atacante puede actuar como una de las partes en la sesión, llevando a cabo acciones en nombre del usuario legítimo.

Defensa Contra Secuestro de Sesiones TCP:

  1. Cifrado de Sesiones (SSL/TLS): Implementar cifrado en las comunicaciones TCP para que incluso si un atacante intercepta los datos, no pueda leer ni modificar el contenido.
  2. Generación de Números de Secuencia Aleatorios: Asegurarse de que los números de secuencia TCP se generen de forma aleatoria y no predecible, dificultando que el atacante adivine la secuencia.
  3. Monitoreo de Anomalías: Utilizar sistemas de monitoreo que detecten y alerten sobre comportamientos inusuales en las sesiones TCP, como cambios inesperados en los números de secuencia.

UDP Flooding

UDP Flooding es otro tipo de ataque de denegación de servicio en el que el atacante envía una gran cantidad de paquetes UDP a un servidor o a una red, abrumando los recursos y haciendo que los sistemas se vean sobrecargados. Dado que UDP es un protocolo sin conexión, el ataque es difícil de rastrear y bloquear.

Consecuencias:

  • Interrupción del Servicio: Los sistemas afectados pueden experimentar una degradación significativa del rendimiento o quedar completamente inaccesibles.
  • Consumo de Ancho de Banda: El tráfico UDP excesivo puede saturar la red, afectando la comunicación legítima entre los dispositivos.
  • Desgaste de Recursos: El servidor objetivo puede quedarse sin recursos al intentar manejar el gran volumen de paquetes UDP, provocando un fallo del sistema.

Defensa Contra UDP Flooding:

  1. Rate Limiting: Configurar límites de tasa en los routers y firewalls para controlar la cantidad de tráfico UDP que puede pasar a través de la red en un período determinado.
  2. Filtrado de Paquetes UDP: Utilizar firewalls para identificar y bloquear el tráfico UDP no deseado, especialmente de direcciones IP sospechosas o patrones anómalos.
  3. Servicios de Mitigación de DDoS: Implementar servicios especializados que puedan filtrar y dispersar el tráfico UDP malicioso antes de que llegue a la red objetivo.

Ataques de Ampliación/Reflejo (Amplification/Reflection Attacks)

Estos ataques son una forma de DDoS en la que el atacante envía solicitudes a servidores de terceros con la dirección IP de la víctima como origen. Los servidores responden a la víctima con grandes cantidades de datos, abrumando los recursos del objetivo. Ejemplos de protocolos vulnerables a estos ataques incluyen DNS, NTP y SSDP.

Consecuencias:

  • Interrupción Masiva del Servicio: La víctima se ve inundada con respuestas de gran tamaño, lo que puede provocar la caída de la red o del servidor.
  • Saturación de la Red: El ataque consume una gran cantidad de ancho de banda, afectando a otros servicios y usuarios de la red.
  • Dificultad para Rastrear: Debido a que el ataque utiliza servidores legítimos para amplificar el tráfico, es difícil rastrear al atacante original.

Defensa Contra Ataques de Ampliación/Reflejo:

  1. Bloqueo de Tráfico Saliente Malicioso: Configurar firewalls para filtrar y bloquear solicitudes que podrían ser utilizadas para ataques de amplificación.
  2. Configuración Segura de Servidores: Asegurarse de que los servidores DNS, NTP y otros servicios no respondan a solicitudes de direcciones IP falsificadas o no solicitadas.
  3. Implementación de Técnicas BCP 38: Utilizar técnicas recomendadas como BCP 38 para prevenir la falsificación de direcciones IP en los routers y reducir la efectividad de los ataques de amplificación.

Ataques a TCP mediante RST Injection

En un ataque de RST Injection, un atacante intercepta una conexión TCP activa y envía un paquete RST (Reset) falso al servidor o cliente. Este paquete está diseñado para hacer que una de las partes termine la conexión prematuramente, interrumpiendo el flujo de datos.

Consecuencias:

  • Interrupción de la Comunicación: La conexión TCP se cierra abruptamente, lo que puede causar la pérdida de datos o la interrupción de servicios críticos.
  • Desestabilización de Aplicaciones: Las aplicaciones que dependen de conexiones TCP estables pueden fallar o comportarse de manera impredecible.
  • Denegación de Servicio (DoS): Al interrumpir repetidamente las conexiones TCP, un atacante puede llevar a cabo un ataque DoS persistente.

Defensa Contra RST Injection:

Validación de Paquetes RST: Configurar firewalls o sistemas IDS/IPS para validar los paquetes RST antes de permitir que cierren una conexión.

Cifrado de Tráfico TCP: Utilizar SSL/TLS para cifrar las conexiones TCP, haciendo que los paquetes RST falsos sean detectados y rechazados.

Seguridad de la capa de transporte

La seguridad de la red implica proteger los datos contra ataques mientras se encuentran en tránsito en una red. Para lograr este objetivo, se han diseñado muchos protocolos de seguridad en tiempo real. Existen estándares populares para protocolos de seguridad de red en tiempo real, como S/MIME, SSL/TLS, SSH e IPsec. Como se mencionó anteriormente, estos protocolos funcionan en diferentes capas del modelo de red.

En el capítulo anterior, analizamos algunos protocolos populares diseñados para brindar seguridad en la capa de aplicación. En este capítulo, analizaremos el proceso para lograr la seguridad de la red en la capa de transporte y los protocolos de seguridad asociados.

En el caso de las redes basadas en el protocolo TCP/IP, las capas físicas y de enlace de datos se implementan normalmente en el terminal de usuario y en el hardware de la tarjeta de red. Las capas TCP e IP se implementan en el sistema operativo. Todo lo que esté por encima de TCP/IP se implementa como proceso de usuario.

Necesidad de seguridad en la capa de transporte

Analicemos una transacción comercial típica basada en Internet.

Bob visita el sitio web de Alice para vender productos. En un formulario del sitio web, Bob ingresa el tipo de producto y la cantidad que desea, su dirección y los datos de la tarjeta de pago. Bob hace clic en Enviar y espera la entrega de los productos con el importe del precio debitado de su cuenta. Todo esto suena bien, pero en ausencia de seguridad en la red, Bob podría encontrarse con algunas sorpresas.

  • Si las transacciones no se realizan con confidencialidad (cifrado), un atacante podría obtener la información de su tarjeta de pago y, de esa forma, realizar compras a expensas de Bob.
  • Si no se utiliza ninguna medida de integridad de datos, un atacante podría modificar el pedido de Bob en términos de tipo o cantidad de bienes.
  • Por último, si no se utiliza la autenticación del servidor, un servidor podría mostrar el famoso logotipo de Alice, pero el sitio podría ser un sitio malicioso mantenido por un atacante que se hace pasar por Alice. Después de recibir el pedido de Bob, podría tomar el dinero de Bob y huir. O podría llevar a cabo un robo de identidad recopilando el nombre de Bob y los datos de la tarjeta de crédito.

Los esquemas de seguridad de la capa de transporte pueden abordar estos problemas al mejorar la comunicación de red basada en TCP/IP con confidencialidad, integridad de datos, autenticación de servidor y autenticación de cliente.

La seguridad en esta capa se utiliza principalmente para proteger las transacciones web basadas en HTTP en una red. Sin embargo, puede emplearse en cualquier aplicación que se ejecute sobre TCP.

Filosofía del diseño de TLS

Los protocolos de seguridad de la capa de transporte (TLS) funcionan por encima de la capa TCP. El diseño de estos protocolos utiliza interfaces de programación de aplicaciones (API) populares para TCP, denominadas “sockets” para interactuar con la capa TCP.

Las aplicaciones ahora se conectan a la capa de seguridad de transporte en lugar de hacerlo directamente con TCP. La capa de seguridad de transporte proporciona una API simple con sockets, que es similar y análoga a la API de TCP.

En el diagrama anterior, aunque TLS reside técnicamente entre la capa de aplicación y la capa de transporte, desde la perspectiva común es un protocolo de transporte que actúa como capa TCP mejorada con servicios de seguridad.

TLS está diseñado para funcionar sobre TCP, el protocolo confiable de capa 4 (no sobre el protocolo UDP), para que el diseño de TLS sea mucho más simple, ya que no tiene que preocuparse por el “tiempo de espera” y la “retransmisión de datos perdidos”. La capa TCP continúa haciendo eso como siempre, lo que satisface las necesidades de TLS.

¿Por qué TLS es popular?

La razón de la popularidad del uso de la seguridad en la capa de transporte es la simplicidad. El diseño y la implementación de la seguridad en esta capa no requieren ningún cambio en los protocolos TCP/IP que se implementan en un sistema operativo. Solo es necesario diseñar o modificar los procesos y aplicaciones del usuario, lo que resulta menos complejo.

Capa de sockets seguros (SSL)

En esta sección, analizamos la familia de protocolos diseñados para TLS. La familia incluye las versiones 2 y 3 de SSL y el protocolo TLS. SSLv2 ha sido reemplazado por SSLv3, por lo que nos centraremos en SSL v3 y TLS.

Breve historia de SSL

En el año 1995, Netscape desarrolló SSLv2 y lo utilizó en Netscape Navigator 1.1. La versión 1 de SSL nunca se publicó ni se utilizó. Más tarde, Microsoft mejoró SSLv2 e introdujo otro protocolo similar llamado Tecnología de comunicaciones privadas (PCT).

Netscape mejoró sustancialmente SSLv2 en varios aspectos de seguridad e implementó SSLv3 en 1999. Posteriormente, el Grupo de Trabajo de Ingeniería de Internet (IETF) introdujo un protocolo TLS (Transport Layer Security) similar como estándar abierto. El protocolo TLS no es interoperable con SSLv3.

TLS modificó los algoritmos criptográficos para la expansión y autenticación de claves. Además, TLS sugirió el uso de la criptografía abierta Diffie-Hellman (DH) y el Estándar de Firma Digital (DSS) en lugar de la criptografía RSA patentada que se utiliza en SSL. Pero debido a que la patente RSA expiró en 2000, no existían razones sólidas para que los usuarios abandonaran el ampliamente utilizado SSLv3 y adoptaran TLS.

Características destacadas de SSL

Las características más destacadas del protocolo SSL son las siguientes:

  • SSL proporciona seguridad de conexión de red a través de −
    • Confidencialidad − La información se intercambia de forma cifrada.
    • Autenticación : las entidades de comunicación se identifican entre sí mediante el uso de certificados digitales. La autenticación del servidor web es obligatoria, mientras que la del cliente es opcional.
    • Confiabilidad : Mantiene comprobaciones de integridad de los mensajes.
  • SSL está disponible para todas las aplicaciones TCP.
  • Compatible con casi todos los navegadores web.
  • Proporciona facilidad para realizar negocios con nuevas entidades en línea.
  • Desarrollado principalmente para comercio electrónico web.

Arquitectura de SSL

SSL es específico de TCP y no funciona con UDP. SSL proporciona una interfaz de programación de aplicaciones (API) para las aplicaciones. Las bibliotecas y clases SSL de C y Java están disponibles.

El protocolo SSL está diseñado para interactuar entre la aplicación y la capa de transporte como se muestra en la siguiente imagen:

SSL en sí no es un protocolo de una sola capa como se muestra en la imagen; de hecho, se compone de dos subcapas.

  • La subcapa inferior comprende un componente del protocolo SSL denominado Protocolo de registro SSL. Este componente proporciona servicios de integridad y confidencialidad.
  • La subcapa superior consta de tres componentes de protocolo relacionados con SSL y un protocolo de aplicación. El componente de aplicación proporciona el servicio de transferencia de información entre interacciones cliente/servidor. Técnicamente, también puede funcionar sobre la capa SSL. Los tres componentes de protocolo relacionados con SSL son:
    • Protocolo de enlace SSL
    • Cambiar el protocolo de especificación de cifrado
    • Protocolo de Alerta.
  • Estos tres protocolos gestionan todos los intercambios de mensajes SSL y se analizan más adelante en esta sección.

Funciones de los componentes del protocolo SSL

Los cuatro subcomponentes del protocolo SSL manejan varias tareas para la comunicación segura entre la máquina cliente y el servidor.

  • Protocolo de registro
    • La capa de registro formatea los mensajes del protocolo de la capa superior.
    • Fragmenta los datos en bloques manejables (longitud máxima 16 KB). Opcionalmente, comprime los datos.
    • Cifra los datos.
    • Proporciona un encabezado para cada mensaje y un hash (código de autenticación de mensaje (MAC)) al final.
    • Entrega los bloques formateados a la capa TCP para su transmisión.
  • Protocolo de enlace SSL
    • Es la parte más compleja de SSL. Se invoca antes de que se transmitan los datos de la aplicación. Crea sesiones SSL entre el cliente y el servidor.
    • El establecimiento de la sesión implica la autenticación del servidor, la negociación de claves y algoritmos, el establecimiento de claves y la autenticación del cliente (opcional).
    • Una sesión se identifica mediante un conjunto único de parámetros de seguridad criptográfica.
    • Varias conexiones TCP seguras entre un cliente y un servidor pueden compartir la misma sesión.
    • El protocolo de enlace de acciones se desarrolla en cuatro fases, que se analizan en la siguiente sección.
  • Protocolo ChangeCipherSpec
    • La parte más simple del protocolo SSL. Consiste en un único mensaje intercambiado entre dos entidades que se comunican, el cliente y el servidor.
    • A medida que cada entidad envía el mensaje ChangeCipherSpec, cambia su lado de la conexión al estado seguro según lo acordado.
    • Los parámetros de cifrado pendientes de estado se copian en el estado actual.
    • El intercambio de este mensaje indica que todos los intercambios de datos futuros están cifrados y su integridad está protegida.
  • Protocolo de alerta SSL
    • Este protocolo se utiliza para informar errores, como mensajes inesperados, registros MAC incorrectos, negociación de parámetros de seguridad fallida, etc.
    • También se utiliza para otros fines, como notificar el cierre de la conexión TCP, notificar la recepción de un certificado incorrecto o desconocido, etc.

Establecimiento de sesión SSL

Como se mencionó anteriormente, el establecimiento de una sesión SSL consta de cuatro fases, que se gestionan principalmente mediante el protocolo de enlace SSL.

Fase 1 − Establecer capacidades de seguridad.

  • Esta fase comprende el intercambio de dos mensajes: Client_hello y Server_hello .
  • Client_hello contiene una lista de algoritmos criptográficos admitidos por el cliente, en orden decreciente de preferencia.
  • Server_hello contiene la especificación de cifrado seleccionada (CipherSpec) y un nuevo session_id .
  • El CipherSpec contiene campos como −
    • Algoritmo de cifrado (DES, 3DES, RC2 y RC4)
    • Algoritmo MAC (basado en MD5, SHA-1)
    • Algoritmo de clave pública (RSA)
    • Ambos mensajes tienen “nonce” para evitar ataques de repetición.

Fase 2 − Autenticación del servidor e intercambio de claves.

  • El servidor envía el certificado. El software del cliente viene configurado con claves públicas de varias organizaciones “confiables” (CA) para verificar el certificado.
  • El servidor envía el conjunto de cifrado elegido.
  • El servidor puede solicitar el certificado del cliente. Generalmente no se hace.
  • El servidor indica el final de Server_hello .

Fase 3 − Autenticación de clientes e intercambio de claves.

  • El cliente envía el certificado solo si lo solicita el servidor.
  • También envía el Pre-master Secret (PMS) cifrado con la clave pública del servidor.
  • El cliente también envía el mensaje Certificate_verify si envía el certificado para demostrar que tiene la clave privada asociada a este certificado. Básicamente, el cliente firma un hash de los mensajes anteriores.

Fase 4 − Finalizar.

  • El cliente y el servidor se envían mensajes Change_cipher_spec entre sí para hacer que el estado de cifrado pendiente se copie en el estado actual.
  • A partir de ahora, todos los datos estarán encriptados y su integridad protegida.
  • El mensaje “Finalizado” de cada extremo verifica que los procesos de intercambio de claves y autenticación fueron exitosos.

Las cuatro fases que se analizaron anteriormente ocurren durante el establecimiento de la sesión TCP. El establecimiento de la sesión SSL comienza después de TCP SYN/SYNACK y finaliza antes de TCP Fin.

Cómo reanudar una sesión desconectada

  • Es posible reanudar una sesión desconectada (a través de un mensaje de alerta ), si el cliente envía un hello_request al servidor con la información session_id encriptada .
  • A continuación, el servidor determina si el session_id es válido. Si lo es, intercambia ChangeCipherSpec y mensajes terminados con el cliente y se reanudan las comunicaciones seguras.
  • Esto evita tener que volver a calcular los parámetros de cifrado de sesión y ahorra tiempo de procesamiento en el servidor y en el cliente.

Claves de sesión SSL

Hemos visto que durante la Fase 3 del establecimiento de una sesión SSL, el cliente envía un secreto maestro previo al servidor cifrado con la clave pública del servidor. El secreto maestro y varias claves de sesión se generan de la siguiente manera:

  • El secreto maestro se genera (a través de un generador de números pseudoaleatorios) utilizando:
    • El secreto pre-maestro.
    • Dos nonces (RA y RB) intercambiados en los mensajes client_hello y server_hello.
  • De este secreto maestro se derivan entonces seis valores secretos:
    • Clave secreta utilizada con MAC (para datos enviados por el servidor)
    • Clave secreta utilizada con MAC (para datos enviados por el cliente)
    • Clave secreta e IV utilizados para el cifrado (por el servidor)
    • Clave secreta e IV utilizados para el cifrado (por el cliente)

Protocolo TLS

Con el fin de proporcionar un estándar de Internet abierto de SSL, IETF lanzó el protocolo Transport Layer Security (TLS) en enero de 1999. TLS se define como un estándar de Internet propuesto en RFC 5246.

Características destacadas

  • El protocolo TLS tiene los mismos objetivos que SSL.
  • Permite que las aplicaciones cliente/servidor se comuniquen de manera segura mediante la autenticación, evitando escuchas no autorizadas y resistiendo la modificación de mensajes.
  • El protocolo TLS se encuentra por encima de la capa TCP de transporte orientada a conexión confiable en la pila de capas de red.
  • La arquitectura del protocolo TLS es similar a la del protocolo SSLv3. Tiene dos subprotocolos: el protocolo de registro TLS y el protocolo de enlace TLS.
  • Aunque el protocolo SSLv3 y TLS tienen una arquitectura similar, se realizaron varios cambios en la arquitectura y el funcionamiento, particularmente en el protocolo de protocolo de enlace.

Herramientas TLS

CREAR CERTIFICADO AUTOFIRMADO:
# openssl req -x509 -newkey rsa:2048
-keyout key.pem -out cert.pem -nodes
-subj “/CN=example.org/”
CONECTARSE AL SERVICIO TLS USANDO OPENSSL:
# openssl s_client -connect
10.5.23.42:1337
PRUEBA DEL CERTIFICADO Y CIFRAS DEL SERVIDOR TLS:
# sslyze –regular 10.5.23.42:443
PRUEBAS TLS EN LÍNEA:
ssllabs.com, hardenize.com
INICIAR SERVIDOR TLS:
# ncat –ssl -l -p 1337 –ssl-cert
cert.pem –ssl-key key.pem
CONECTARSE AL SERVICIO TLS:
# ncat –ssl 10.5.23.42 1337
MOSTRAR DETALLES DEL CERTIFICADO:
# openssl s_client -connect
10.5.23.42:1337 | openssl x509 -text
PROXY DE TCP A TLS:
# socat TCP-LISTEN:2305,fork,reuseaddr
ssl:example.com:443

Comparación de los protocolos TLS y SSL

Existen ocho diferencias principales entre los protocolos TLS y SSLv3, que son las siguientes:

  • Versión del protocolo : el encabezado del segmento del protocolo TLS lleva el número de versión 3.1 para diferenciarlo del número 3 que lleva el encabezado del segmento del protocolo SSL.
  • Autenticación de mensajes : TLS emplea un código de autenticación de mensajes con clave hash (H-MAC). La ventaja es que H-MAC funciona con cualquier función hash, no solo MD5 o SHA, como lo establece explícitamente el protocolo SSL.
  • Generación de clave de sesión : existen dos diferencias entre los protocolos TLS y SSL para la generación de material de clave.
    • El método de cálculo de los secretos pre-master y master es similar, pero en el protocolo TLS, el cálculo del secreto master utiliza el estándar HMAC y la salida de función pseudoaleatoria (PRF) en lugar de MAC ad-hoc.
    • El algoritmo para calcular las claves de sesión y los valores de inicio (IV) es diferente en el protocolo TLS que en el protocolo SSL.
  • Mensaje de protocolo de alerta −
    • El protocolo TLS admite todos los mensajes utilizados por el protocolo de alerta de SSL, excepto el mensaje de alerta de falta de certificado, que se vuelve redundante. El cliente envía un certificado vacío en caso de que no se requiera la autenticación del cliente.
    • Se incluyen muchos mensajes de alerta adicionales en el protocolo TLS para otras condiciones de error, como record_overflow, decode_error , etc.
  • Conjuntos de cifrado compatibles : SSL admite los conjuntos de cifrado RSA, Diffie-Hellman y Fortezza. El protocolo TLS admite todos los conjuntos excepto Fortezza.
  • Tipos de certificados de cliente : TLS define los tipos de certificados que se solicitarán en un mensaje certificate_request . SSLv3 admite todos ellos. Además, SSL admite otros tipos de certificados, como Fortezza.
  • Verificación de certificado y mensajes finalizados −
    • En SSL, se utiliza un procedimiento de mensajes complejo para el mensaje certificate_verify . Con TLS, la información verificada se incluye en los mensajes de protocolo de enlace, lo que evita este procedimiento complejo.
    • El mensaje terminado se calcula de diferentes maneras en TLS y SSLv3.
  • Relleno de datos : en el protocolo SSL, el relleno que se agrega a los datos del usuario antes del cifrado es la cantidad mínima necesaria para que el tamaño total de los datos sea igual a un múltiplo de la longitud del bloque del cifrado. En TLS, el relleno puede ser cualquier cantidad que dé como resultado un tamaño de datos que sea un múltiplo de la longitud del bloque del cifrado, hasta un máximo de 255 bytes.

Las diferencias anteriores entre los protocolos TLS y SSLv3 se resumen en la siguiente tabla.

Navegación segura: HTTPS

En esta sección, discutiremos el uso del protocolo SSL/TLS para realizar una navegación web segura.

Definición de HTTPS

El protocolo de transferencia de hipertexto (HTTP) se utiliza para la navegación web. La función de HTTPS es similar a la de HTTP. La única diferencia es que HTTPS proporciona una navegación web “segura”. HTTPS significa HTTP sobre SSL. Este protocolo se utiliza para proporcionar una conexión cifrada y autenticada entre el navegador web del cliente y el servidor del sitio web.

La navegación segura a través de HTTPS garantiza que los siguientes contenidos estén encriptados:

  • URL de la página web solicitada.
  • Contenido de la página web proporcionado por el servidor al cliente usuario.
  • Contenido de los formularios rellenados por el usuario.
  • Cookies establecidas en ambas direcciones.

Funcionamiento de HTTPS

El protocolo de aplicación HTTPS suele utilizar uno de los dos protocolos de seguridad de la capa de transporte más conocidos: SSL o TLS. El proceso de navegación segura se describe en los siguientes puntos.

  • Para solicitar una conexión HTTPS a una página web, ingrese https:// seguido de URL en la barra de direcciones del navegador.
  • El navegador web inicia una conexión con el servidor web. El uso de https implica el uso del protocolo SSL.
  • Una aplicación, un navegador en este caso, utiliza el puerto del sistema 443 en lugar del puerto 80 (utilizado en el caso de http).
  • El protocolo SSL pasa por un protocolo de enlace para establecer una sesión segura como se explicó en secciones anteriores.
  • El sitio web envía inicialmente su certificado digital SSL a su navegador. Una vez verificado el certificado, el protocolo de enlace SSL avanza para intercambiar los secretos compartidos para la sesión.
  • Cuando el servidor utiliza un certificado digital SSL de confianza, los usuarios ven un icono de candado en la barra de direcciones del navegador. Cuando se instala un certificado de validación extendida en un sitio web, la barra de direcciones se vuelve verde.
  • Una vez establecida, esta sesión consta de muchas conexiones seguras entre el servidor web y el navegador.

Uso de HTTPS

  • El uso de HTTPS proporciona confidencialidad, autenticación del servidor e integridad de los mensajes al usuario y permite realizar transacciones de comercio electrónico seguras en Internet.
  • Evita que los datos sean interceptados y niega el robo de identidad, que son ataques comunes en HTTP.

Los navegadores y servidores web actuales están equipados con compatibilidad con HTTPS. Sin embargo, el uso de HTTPS en lugar de HTTP requiere más potencia de procesamiento en el extremo del cliente y del servidor para realizar el cifrado y el protocolo de enlace SSL.

Protocolo de Shell Seguro (SSH)

Las características más destacadas de SSH son las siguientes:

  • SSH es un protocolo de red que se ejecuta sobre la capa TCP/IP. Está diseñado para reemplazar a TELNET, que proporcionaba un medio no seguro para iniciar sesión de forma remota.
  • SSH proporciona una comunicación segura entre cliente y servidor y puede utilizarse para tareas como transferencia de archivos y correo electrónico.
  • SSH2 es un protocolo predominante que proporciona una seguridad de comunicación de red mejorada respecto de la versión anterior SSH1.

Definición de SSH

SSH está organizado en tres subprotocolos.

  • Protocolo de capa de transporte : esta parte del protocolo SSH proporciona confidencialidad de datos, autenticación del servidor (host) e integridad de los datos. También puede proporcionar compresión de datos de manera opcional.
    • Autenticación del servidor : las claves de host son asimétricas, como las claves públicas y privadas. Un servidor utiliza una clave pública para demostrar su identidad a un cliente. El cliente verifica que el servidor contactado sea un host “conocido” a partir de la base de datos que mantiene. Una vez que el servidor está autenticado, se generan las claves de sesión.
    • Establecimiento de la clave de sesión : después de la autenticación, el servidor y el cliente acuerdan el cifrado que se utilizará. Las claves de sesión las generan tanto el cliente como el servidor. Las claves de sesión se generan antes de la autenticación del usuario para que los nombres de usuario y las contraseñas se puedan enviar cifrados. Estas claves generalmente se reemplazan a intervalos regulares (por ejemplo, cada hora) durante la sesión y se destruyen inmediatamente después de su uso.
    • Integridad de los datos : SSH utiliza algoritmos de código de autenticación de mensajes (MAC) para comprobar la integridad de los datos. Es una mejora con respecto al CRC de 32 bits que utilizaba SSH1.
  • Protocolo de autenticación de usuario : esta parte de SSH autentica al usuario en el servidor. El servidor verifica que solo los usuarios previstos tengan acceso. Actualmente se utilizan muchos métodos de autenticación, como contraseñas escritas, Kerberos, autenticación de clave pública, etc.
  • Protocolo de conexión : proporciona múltiples canales lógicos a través de una única conexión SSH subyacente.

Servicios SSH

SSH ofrece tres servicios principales que permiten la provisión de muchas soluciones seguras. Estos servicios se describen brevemente a continuación:

  • Secure Command-Shell (inicio de sesión remoto) : permite al usuario editar archivos, ver el contenido de los directorios y acceder a las aplicaciones en el dispositivo conectado. Los administradores de sistemas pueden iniciar, ver y detener de forma remota servicios y procesos, crear cuentas de usuario y cambiar los permisos de archivos y directorios, entre otros. Todas las tareas que se pueden realizar desde el símbolo del sistema de una máquina ahora se pueden realizar de forma segura desde la máquina remota mediante el inicio de sesión remoto seguro.
  • Transferencia segura de archivos : el protocolo de transferencia de archivos SSH (SFTP) está diseñado como una extensión de SSH-2 para la transferencia segura de archivos. En esencia, es un protocolo independiente que se superpone al protocolo Secure Shell para gestionar las transferencias de archivos. SFTP encripta tanto el nombre de usuario y la contraseña como los datos del archivo que se transfieren. Utiliza el mismo puerto que el servidor Secure Shell, es decir, el puerto del sistema n.° 22.
  • Reenvío de puertos (tunelización) : permite proteger los datos de aplicaciones basadas en TCP/IP no seguras. Una vez configurado el reenvío de puertos, Secure Shell redirige el tráfico de un programa (normalmente un cliente) y lo envía a través del túnel cifrado al programa del otro lado (normalmente un servidor). Varias aplicaciones pueden transmitir datos a través de un único canal seguro multiplexado, lo que elimina la necesidad de abrir muchos puertos en un cortafuegos o enrutador.

Beneficios y limitaciones

Los beneficios y limitaciones de emplear la seguridad de las comunicaciones en la capa de transporte son los siguientes:

  • Beneficios
    • La seguridad de la capa de transporte es transparente para las aplicaciones.
    • El servidor está autenticado.
    • Los encabezados de la capa de aplicación están ocultos.
    • Es más detallado que los mecanismos de seguridad de la capa 3 (IPsec), ya que funciona en el nivel de conexión de transporte.
  • Limitaciones
    • Aplicable únicamente a aplicaciones basadas en TCP (no UDP).
    • Los encabezados TCP/IP están en claro.
    • Adecuado para la comunicación directa entre el cliente y el servidor. No es adecuado para aplicaciones seguras que utilicen cadenas de servidores (por ejemplo, correo electrónico).
    • SSL no proporciona no repudio ya que la autenticación del cliente es opcional.
    • Si es necesario, se debe implementar la autenticación del cliente por encima de SSL.

Conclusión:

  • La capa de transporte es la cuarta capa del conjunto TCP/IP que proporciona comunicación de proceso a proceso.
  • La capa de transporte proporciona servicios de comunicación de proceso a proceso, integridad de datos, control de flujo, prevención de congestión, multiplexación y demultiplexación.
  • UDP es un protocolo de capa de transporte que proporciona un servicio sin conexión.
  • TCP y SCTP son protocolos de capa de transporte que proporcionan servicios orientados a la conexión.

En la última década han surgido en Internet una gran cantidad de aplicaciones web. Han aparecido en línea numerosos portales de comercio electrónico y de gobierno electrónico. Estas aplicaciones requieren que la sesión entre el servidor y el cliente sea segura, lo que garantiza la confidencialidad, la autenticación y la integridad de las sesiones.

Una forma de mitigar un posible ataque durante la sesión de un usuario es utilizar un protocolo de comunicación seguro. En este capítulo se analizan dos de estos protocolos de comunicación, Secure Sockets Layer (SSL) y Transport Layer Security (TLS). Ambos protocolos funcionan en la capa de transporte.

Otro protocolo de la capa de transporte, Secure Shell (SSH), diseñado para reemplazar a TELNET, proporciona medios seguros para el inicio de sesión remoto. Es capaz de proporcionar varios servicios, como Secure Command Shell y SFTP.

El uso de la seguridad de la capa de transporte tiene muchas ventajas. Sin embargo, el protocolo de seguridad diseñado en estas capas solo se puede utilizar con TCP. No proporciona seguridad para la comunicación implementada mediante UDP.

En este capítulo, hemos desentrañado los misterios de la Capa 4 de Transporte, cimiento vital para la seguridad en redes. Ahora, armados con conocimiento, avancemos hacia un universo digital más seguro. La ciberseguridad es un viaje constante, y tú estás un paso más cerca de la maestría. ¡Hasta el próximo capítulo!

No te detengas, sigue avanzando

Aquí tienes un propósito para este 2024 que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera! El mundo necesita más hackers…

Universidad Hacking. Todo en Ciberseguridad. Curso Completo

Aprende Hacking Ético y Ciberseguridad sin necesitar conocimientos Previos. Practica Hacking Ético y Ciberseguridad aquí

Calificación: 4,6 de 5 (2.877 calificaciones) 15.284 estudiantes Creado por Alvaro Chirou • 1.800.000+ Enrollments Worldwide

Lo que aprenderás

  • Seguridad informática
  • Hacking Ético en profundidad
  • Redes
  • Programación (Python) (Hacking con Python)
  • Análisis de Malware con laboratorios, practicas y ejecución de Malware para que veas su comportamiento.
  • Cómo reforzar tu Privacidad y Anonimato
  • Uso avanzado de Metasploit
  • Top 10 de Owasp Web, Top 10 de Owasp mobile y Top 10 de Owasp API
  • Seguridad informática para empresas
  • Kali linux de 0 a 100, Veremos su suite de herramientas de hacking y como explotar fallos en sistemas.
  • Termux y como hackear desde el celular
  • Seguridad informática server/web, profundizaremos en WordPress
  • Análisis de trafico en Wireshark
  • Y mucho, pero mucho más

¿Esto que significa?

Hoy más que nunca, se necesitan personas capacitadas en este rubro para trabajar.

Por esa razón cree esta formación profesional para compartirte mis conocimientos y experiencia en la materia y puedas iniciar en este mundo del Hacking Ético y Ciberseguridad.

Te voy a estar acompañando en el proceso de aprendizaje, donde si estas empezando desde 0, sin conocimientos previos, no es un impedimento ya que iniciaremos como si no supieras nada de la materia.

Si sos una persona con conocimientos, podrás iniciar directamente en el nivel más avanzado o en el que tu elijas.

Como en todos mis cursos en udemy, tendrás muchísima practica para que materialices lo que vas aprendiendo.

Empieza a aprender ya mismo!

Aprende con nuestros más de 100 cursos que tenemos disponibles para vos

No solo te enseñamos, tambien te guíamos para que puedas conseguir trabajo como desarrollador y hacker…

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Sobre los autores

Álvaro Chirou

Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes seguirme en mis redes:

Laprovittera Carlos

Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:

¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/como-iniciarse-en-ciberseguridad-y-hacking-en-2024/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.

SIGUE APRENDIENDO GRATIS CON NUESTRAS GUIAS

Cómo Iniciarse en Hacking y Ciberseguridad en 2024

Curso Gratis de Programación

Curso Gratis Linux – Capitulo 1 – Introducción a Linux

Curso Gratis de Redes – Capitulo 1 – Tipos de redes y servicios

Como iniciarse en TRY HACK ME – Complete Beginner #1

OSINT #1 Más de 200 Search Tools

Curso Gratis de Java para Hackers

SIGUE APRENDIENDO GRATIS EN NUESTRO BLOG

Saludos amigos y happy hacking!!!