martes, 13 de octubre de 2020

Redes: Proceso de carga de un S.O. en un servidor de red

 Asignatura: Redes

Curso: 6° Informática

Profesora: Evangelina Rivero - email: evange_rivero@hotmail.com


Realizar proceso de carga de un sistema operativo en un servidor de red

Actividades:

1) ¿Qué es un sistema de red?

2) ¿Qué herramientas incorpora?

3) ¿Qué formas presentan?

4) ¿Qué características tiene un sistema operativo de red?

5) Ver vídeo de instalación de un sistema operativo de red. Realizar un tutorial escrito de los pasos que se deben realizar.

Este sistema esta definido como un tipo de software que opera en la red, proporcionando una gran variedad de servicios al usuario de la misma, también almacenando y recuperando todos los archivos, sea así administrando la red de seguridad de archivos y recursos.

Este tipo de sistema operativo se ejecuta en un servidor y servicios en los clientes. Ademas de incorporar herramientas propias de un S.O, como son por ejemplo:

  • Herramientas para manejo de ficheros y directorios.

Incluyendo otras para el uso:

  • Gestión y mantenimiento de la red.
  • Herramientas destinadas a correo electrónico.
  • Envió de mensajes
  • Copia de ficheros entre nodos
  • Ejecución de aplicaciones contenidas en otras maquinas.
  • Compartición de recursos hardware.

Este sistema operativo también mantiene a dos o mas equipos unidos a través de algún medio de comunicación, con el objetivo de compartir recursos (hardware y software). Este coordina la interacción entre los recursos de la red y los equipos de la red, siendo de forma centralizada mediante un ordenador principal.

Estos tipos de sistemas operativos de red básicamente se presentan de dos formas o maneras, pueden ser:

  • Añadido al sistema operativo del equipo
  • Integrarse con el en el proceso de la instalación.

La gestión centralizada de recursos y equipos de la red se realiza por un servidor con sistema operativo en red. Las siguientes características de un sistema operativo de red, son:

  • Conecta todos los equipos y recursos de la red.
  • Coordina todos los equipos y recursos de la red.
  • Optimiza la utilización de los recursos.
  • La figura del administrador de red, es para gestionar la infraestructura de la red, que no esta presente en grupos de trabajo.
  • Proporciona seguridad controlando el acceso a los datos y recursos.

Se dice que existen muchos sistemas operativos capaces de gestionar una red dependiente de las arquitecturas de las maquinas que se utilicen, siendo los mas comunes:

  • Noell

  • Lantastic
  • Windows 3.11 para trabajo en grupo
  • Unix

  • Linux

  • Windows 95

  • Windows NT
  • OS/2

Teniendo en cuenta que cada sistema operativo de red ofrece una forma o manera diferente de manejar o usar la red, así como también cada uno utiliza diferente protocolos para la comunicación. Su principal función de estos sistemas de red es ofrecer un mecanismo de transferencia de archivos de una maquina a otra conectada de manera física o no.

En el siguiente vídeo le mostraremos un historial donde se carga el sistema operativo windows server y linux, desde la aplicación de vmware.


INFORMAR DE ESTE ANUNCIO

Sistema Operativo III: Seguridad de la Información

 Asignatura: Sistema Operativo III

Curso: 6° Informática

Profesora: Evangelina Rivero - email: evange_rivero@hotmail.com

Seguridad de la información


Actividades: 

1) ¿Cuáles son los mecanismos más utilizados? ¿Cómo se dividen los mecanismos?

2) Nombrar y describir los mecanismos de seguridad de las redes inalámbricas.

3) ¿Cuáles son los mecanismos de seguridad que se encuentran dentro de los 3 grupos? Nombrarlos y describir: Firewall, Detección de intrusos, Gestión de claves, Criptología.

4) Mirar los vídeos y hacer una lista con los mecanismos de protección.

La seguridad en redes, es la protección a toda la infraestructura de computadoras y también de toda la información contenida. Existen algunos estánderes, protocolos, métodos, reglas y herramientas para 
 que el riesgo sea mínimo en la infraestructura e información.
Los mecanismos de seguridad son utilizados como protocolos que facilitan la prestación de servicios de seguridad. Se consideran "ladrillos" que protegen las comunicaciones de los usuarios frene a distintos riesgos.
Mecanismos
Se dividen en 3 grupos de mecanismos, los cuales son:
1.Prevención:Evitan desviaciones respecto a la política de seguridad.
2.Detención:Detectan intentos de violación de la seguridad del sistema.
3.Recuperación: se aplica cuando se detecta una violacion para que regrese a su funcion normal
                   a)De identificación:sirve para comprobar que la entidad es quien dice ser.
                   b)De control de acceso: determinar quién puede ingresar o no al sistema
                   c)De separación:mecanismos que permitan separar los objetos dentro de cada nivel.se dividen en: separación física, temporal, lógica, criptográfica y fragmentación.
                   d)De seguridad de las comunicaciones: La protección de la información cuando viaja por la red es especialmente importante. Clásicamente se utilizan protocolos seguros

MECANISMOS DE SEGURIDAD PARA REDES INALAMBRICAS (WLAN.)

SSID (Identificador de Servicio): es una contraseña simple. Cada uno de los clientes deben tener configurado el SSID para acceder a la red inalámbrica.

Filtrado de direcciones MAC. Se definen tablas que contienen las direcciones MAC de los clientes que accesarán a la red.

WEP (Privacidad Equivalente a Cable): es un esquema de encriptación que protege los flujos de datos y puntos de acceso de los clientes

El IEEE : sirve para dar controlar los accesos a los dispositivos inalámbricos clientes, Access point y servidores. Este método emplea llaves dinámicas y requiere de autentificación por ambas partes. Requiere de un servidor que administre los servicios de de autentificación de usuarios entrantes.

El WPA añade una mayor capacidad de encriptación así como métodos de identificación de usuarios.

Configuración del Router: incorporan una configuración predeterminada introducida por su fabricante, esta información puede ser encontrada en los manuales del fabricante, incluso también en el sitio del fabricante y foros de discusión.

Cambio de las claves de instalaciónReemplace esta contraseña por una que solo usted conozca

Antivirus, Firewall, Anti-spyware:pueden ayudar a proteger nuestra red inalámbrica al detectar programas espías que intenten alojarse en nuestro ordenador.

acceso de ordenadores específicos:Es importante restringir el acceso a ordenadores específicamente, ya sea por dirección IP, MAC.

Desconectar la red inalámbrica:Si la red inalámbrica no va a ser utilizada, desconecte los dispositivos de la electricidad, dejándolos completamente sin acceso.

Bloquear acceso de administración vía Wi-Fi: Deshabilitando esta opción sólo podremos administrar nuestro Access Point mediante una red LAN o local, pero estaríamos un poco más seguros de su seguridad.

Puntos de acceso público “Hot spots”lugares públicos como bares, hoteles, aeropuertos, cafeterías los cuales permiten el acceso a Internet mediante las redes inalámbricas a los clientes.

Actualización de Sistema OperativoInstalando los últimos Parches, Services Pack, Módulos, etc, lo que permiten corregir fallas de seguridad.cada router tiene una configuracion distinta. Para obtener más información sobre su configuración podemos referirnos al manual de instrucción del equipo o consultar además el sitio de fabricante.

Algunos mecanismos de protección que se encuentran dentro de los tres grupos son:

Vulnerar Para Proteger

Los intrusos utilizan diversas técnicas para quebrar los sistemas de seguridad de una red. Básicamente buscan los puntos débiles del sistema para poder colarse en ella. El trabajo de los Administradores y Testers no difiere mucho de esto. En lo que sí se diferencia, y por completo, es en los objetivos: mientras que un intruso penetra en las redes para distintos fines (investigación, daño, robo, etc.) un administrador lo hace para poder mejorar los sistemas de seguridad. Al conjunto de técnicas que se utilizan para evaluar y probar la seguridad de una red se lo conoce como Penetration Testing, uno de los recursos más poderosos con los que se cuenta hoy para generar barreras cada vez más eficaces.

El software y el Hardware utilizados son una parte importante, pero no la única. A ella se agrega lo que se denomina "políticas de seguridad internas" que cada organización (y usuario) debe generar e implementar.

FIREWALL

Un Firewall es un sistema (o conjunto de ellos) ubicado entre dos redes y que ejerce la una política de seguridad establecida. Es el mecanismo encargado de proteger una red confiable de una que no lo es (por ejemplo Internet).  solo sirve de defensa perimetral de las redes y no defiende ataques provenientes del interior. Las politicas que debe de considerar firewall son:

  • ¿Qué se debe proteger?. Se deberían proteger todos los elementos de la red interna (hardware, software, datos, etc.).
  • ¿De quién protegerse?. De cualquier intento de acceso no autorizado desde el exterior y contra ciertos ataques desde el interior que puedan preverse y prevenir.
  • ¿Cómo protegerse?. Esta es la pregunta más difícil y está orientada a establecer el nivel de monitorización, control y respuesta deseado en la organización.
  • ¿Cuánto costará?. Estimando en función de lo que se desea proteger se debe decidir cuanto es conveniente invertir.

Access Control Lists (ACL)

permiten definir permisos a usuarios y grupos concretos. También podrán definirse otras características como limitaciones de anchos de banda y horarios.


Wrappers

controla el acceso a un segundo programa. El Wrapper literalmente cubre la identidad de este segundo programa, obteniendo con esto un más alto nivel de seguridad y han llegado a formar parte de herramientas de seguridad debido a:
  • la seguridad lógica esta concentrada en un solo programa, los Wrappers son fáciles y simples de validar.
  • el programa protegido se mantiene como una entidad separada, éste puede ser actualizado sin necesidad de cambiar el Wrapper.
  • los Wrappers llaman al programa protegido mediante llamadas estándar al sistema, se puede usar un solo Wrapper para controlar el acceso a diversos programas que se necesiten proteger.
  • Permite un control de accesos exhaustivo de los servicios de comunicaciones, además de buena capacidad de Logs y auditorias de peticiones a dichos servicios, ya sean autorizados o no.
permiten también ejecutar comandos en el propio sistema operativo, en función de la resolución de la petición. Con lo mencionado hasta aquí, puede pensarse que los Wrappers son Firewall ya que muchos de los servicios brindados son los mismos o causan los mismos efectos: u sando Wrappers, se puede controlar el acceso a cada máquina y los servicios accedidos.

Detección de Intrusos en Tiempo Real

la integridad de un sistema se puede corromper de varias formas y la forma de evitar esto es con la instalación de sistemas de Detección de Intrusos en Tiempo Real, quienes:
  • Inspeccionan el tráfico de la red buscando posibles ataques.
  • Controlan el registro de los servidores para detectar acciones sospechosas
  • Controlan el ingreso de cada nuevo archivo al sistema
  • Controlan el núcleo del Sistema Operativo para detectar posibles infiltraciones en él
  • Avisan al administrador de cualquiera de las acciones mencionadas. 


Call Back

Este procedimiento es utilizado para verificar la autenticidad de una llamada vía modem. si un intruso desea hacerse pasar por el usuario, la llamada se devolverá al usuario legal y no al del intruso, siendo este desconectado.

Sistemas Anti-Sniffers
se basan en verificar el estado de la placa de red, para detectar el modo en el cual está actuando (recordar que un Sniffer la coloca en Modo Promiscuo), y el tráfico de datos en ella.

Gestion de Claves "Seguras"

- Normas de Elección de Claves: Se debe tener en cuenta los siguientes consejos:
  1. No utilizar contraseñas que sean palabras, o nombres
  2. No usar contraseñas completamente numéricas
  3. Elegir una contraseña que mezcle caracteres alfabéticos y numéricos.
  4. Deben ser largas, de 8 caracteres o más.
  5. Tener contraseñas diferentes en máquinas diferentes.
  6. Deben ser fáciles de recordar para no verse obligado a escribirlas.

- Normas para Proteger una Clave: La protección de la contraseña recae tanto sobre el administrador del sistema como sobre el usuario. Al comprometer una cuenta se puede estar comprometiendo todo el sistema. los pasos a seguir para prteger una clave son:

  1. No permitir ninguna cuenta sin contraseña.
  2. No mantener las contraseñas por defecto del sistema.
  3. Nunca compartir con nadie la contraseña.
  4. No escribir la contraseña en ningún sitio.
  5. No teclear la contraseña si hay alguien mirando.
  6. No enviar la contraseña por correo electrónico ni mencionarla en una conversación.
  7. No mantener una contraseña indefinidamente. Cambiarla regularmente.

Seguridad en Protocolos y Servicios

todos los protocolos tienen su debilidad ya sea en su implementación o en su uso. se ofrecerán las potenciales puertas de entrada como fuentes de ataques que ni siquiera tienen por qué proporcionar acceso a la máquina (como las DoS por ejemplo).


Criptología *

Los Mecanismos de Seguridad se apoyan principalmente en técnicas criptográficas.La mayoría de ellos son, por tanto,Mecanismos Criptográficos.La Criptografía es la base de apoyo de los servicios de seguridad, pero no más. La palabra Criptografía proviene etimológicamente del griego Kruiptoz (Kriptos-Oculto) y Grajein (Grafo-Escritura) y significa "arte de escribir con clave secreta o de un modo enigmático", Es decir que la Criptografía es la ciencia que consiste en transformar un mensaje inteligible en otro que no lo es (mediante claves que sólo el emisor y el destinatario conocen), para después devolverlo a su forma original, sin que nadie que vea el mensaje cifrado sea capaz de entenderlo. El mensaje cifrado recibe el nombre Criptograma


- Criptoanálisis: Es el arte de estudiar los mensajes ilegibles, encriptados, para transformarlos en legibles sin conocer la clave, auque el método de cifrado empleado siempre es conocido.

- Criptosistema :"Un Criptosistema se define como la quíntupla (m,C,K,E,D) , donde:

  • m representa el conjunto de todos los mensajes sin cifrar que pueden ser enviados.
  • C Representa el conjunto de todos los posibles mensajes cifrados
  • K representa el conjunto de claves que se pueden emplear en el Criptosistema.
  • E es el conjunto de transformaciones de cifrado que se aplica a cada elemento de m para obtener un elemento de C . Existe una transformación diferente Ek para cada valor posible de la clave K.
  • D es el conjunto de transformaciones de descifrado, análogo a E .

- Algoritmos Simétricos Modernos (Llave Privada): consisten en ocultar la relación entre el texto plano, el texto cifrado y la clave (Confusión); y repartir la influencia de cada bit del mensaje original lo más posible entre el mensaje cifrado (Difusión).estos son: redes de feistel, DES (Data Encryption Standard), DES multiple, IDEA (International Data Encription Algorithm), BlowFish, RC5 y  CAST (de los autores Carlslile, Adams y Safoord Taveres).

- Algoritmos Asimétricos (Llave Privada-Pública): no se basa en una única clave sino en un par de ellas: una conocida (Pública) y otra Privada. Actualmente existen muchos algoritmos de este tipo pero han demostrado ser poco utilizables en la práctica ya sea por la longitud de las clave, la longitud del texto encriptado generado o su velocidad de cifrado extremadamente largos. estos son: RSA y Curvas elípticas

- Autentificación: Interesa comprobar la autentificación de:

  1. Un Mensaje mediante una firma de forma de poder asegurar que no es una falsificación. A este mecanismo se lo conoce como Firma Digital
  2. Un Usuario mediante una contraseña secreta.
  3. Presencia de un dispositivo válido en el sistema, por ejemplo una llave electrónica.


- PGP (Pretty Good Privacy): "Seguridad Bastante Buena". Es personal. Es privado. Y no es de interés para nadie más que no sea usted. Actualmente PGP es la herramienta más popular y fiable para mantener la seguridad y privacidad en las comunicaciones tanto para pequeños usuarios como para grandes empresas. Funcionamiento de PGP: 
  1. Anillos de Claves: Un anillo es una colección de claves almacenadas en un archivo. Cada usuario tiene dos anillos, uno para las claves públicas y otro para las claves privadas.
  2. Codificación de Mensajes: PGP cifra primero el mensaje empleando un algoritmo simétrico con una clave generada aleatoriamente (clave de sesión) y posteriormente codifica la clave haciendo uso de la llave pública del destinatario.
  3. Decodificación de Mensajes: PGP simplemente busca en la cabecera las claves públicas con las que está codificado, pide una contraseña para abrir el anillo de claves privadas y comprueba si se tiene una clave que permita decodificar el mensaje.
  4. Compresión de Archivos: PGP generalmente comprime el texto plano antes de encriptar el mensaje (y lo descomprime después de desencriptarlo) para disminuir el tiempo de cifrado, de transmisión y fortalecer la seguridad del cifrado ante el criptoanálisis que explotan las redundancias del texto plano.
  5. Algoritmos Utilizados por PGP:  pueden ser IDEA, CAST y TDES y los asimétricos RSA y ElGamal. 

- Esteganografía: Consiste en ocultar en el interior de información aparentemente inocua, otro tipo de información (cifrada o no). El texto se envía como texto plano, pero entremezclado con mucha cantidad de "basura" que sirve de camuflaje al mensaje enviado. pueden ir ocultos en archivos de sonido o imagenes


Inversión
Todos pueden acceder a las herramientas que necesitan y los costos (la inversión que cada uno debe realizar) va de acuerdo con el tamaño y potencialidades de la herramienta; debido a esto, la implementación de mecanismos de seguridad se da prácticamente en todos los niveles: empresas grandes, medianas, chicas y usuarios finales. Como los intrusos mejoran sus armas y metodologías de penetración de forma incesante, el recambio y la revisión constantes en los mecanismos de seguridad se convierten en imprescindibles. Y éste es un verdadero punto crítico. "Es prioritario saber los riesgos que una nueva tecnología trae aparejados".

 

Vídeo de YouTube


Vídeo de YouTube


Vídeo de YouTube




PRESENTACIÓN

Mecanismos de protección

Programación III: Python programas sencillos

 Asignatura: Programación III

Curso: 6° Informática

Profesora: Evangelina Rivero - email: evange_rivero@hotmail.com

Python: programas sencillos

Actividades

1) Continuamos con Python. Vemos el siguiente vídeo: https://www.youtube.com/watch?v=sTVScJ7hp88 y tratamos de realizar los ejercicios. Copiamos la codificación en la carpeta.

2) Realizar los siguientes ejercicios

a) Escribe un programa que pregunte al usuario por el número de horas trabajadas y el coste por hora. Después debe mostrar por pantalla la paga que le corresponde.

b)Escribir un programa que pida al usuario su peso (en kg) y estatura (en metros), calcule el índice de masa corporal y lo almacene en una variable, e imprima por pantalla la frase Tu índice de masa corporal es <imc> donde <imc> es el índice de masa corporal calculado redondeado con dos decimales.

c) Una juguetería tiene mucho éxito en dos de sus productos: payasos y muñecas. Suele hacer venta por correo y la empresa de logística les cobra por peso de cada paquete así que deben calcular el peso de los payasos y muñecas que saldrán en cada paquete a demanda. Cada payaso pesa 112 g y cada muñeca 75 g. Escribir un programa que lea el número de payasos y muñecas vendidos en el último pedido y calcule el peso total del paquete que será enviado.


Soluciones:

a)

horas = float(input("Introduce tus horas de trabajo: "))
coste = float(input("Introduce lo que cobras por hora: "))
paga = round(horas * coste, 3)
print("Tu paga es " + str(paga))

b)
weight = input("¿Cuál es tu peso en kg? ")
height = input("¿Cuál es tu estatura en metros?")
bmi = round(float(weight)/float(height)**2,2)
print("Tu índice de masa corporal es " + str(bmi))

c)
peso_payaso = 112
peso_muñeca = 75
payasos = int(input("Introduce el número de payasos a enviar: "))
muñecas = int(input("Introduce el número de muñecas a enviar: "))
peso_total = peso_payaso * payasos + peso_muñeca * muñecas
print("El peso total del paquete es " + str(peso_total))

Hardware III: Protocolos de transmisión

 Asignatura: Hardware III

Curso: 6° Informática

Profesor: Evangelina Rivero - email: evange_rivero@hotmail.com


Protocolo de control de trasmisión TCP/UDP

Actividades:

1) Ver el siguiente víeo https://www.youtube.com/watch?v=JQDCL17sARA&feature=emb_logo

2) ¿Qué es el protocolo TCP y cómo funciona? Características

3) ¿Cómo se establece la conexión entre el cliente y el servidor?

4) ¿Qué es el protocolo UDP y cómo funciona?

5) Diferentes protocolos, nombrarlos y describirlos



TCP y UDP son dos protocolos fundamentales para las comunicaciones a través de Internet, ya que estos dos protocolos se sitúan en la capa de transporte del modelo TCP/IP, y es la primera capa donde origen y destino se comunican directamente, ya que las capas inferiores (capa de red y capa de acceso al medio) no realizan esta función. Hoy en RedesZone os vamos a explicar las principales características del protocolo TCP y del protocolo UDP, cuándo se utiliza cada uno, diferencias y usos principales.

Protocolo TCP: ¿qué es y cómo funciona?

El protocolo TCP (Protocolo de Control de Transmisión) es uno de los protocolos fundamentales en Internet, nos permite que las aplicaciones puedan comunicarse con garantías independientemente de las capas inferiores del modelo TCP/IP. Esto significa que los routers (capa de red en el modelo TCP/IP) solamente tienen que enviar los segmentos (unidad de medida en TCP), sin preocuparse si van a llegar esos datos correctamente o no. TCP da soporte a múltiples protocolos de la capa de aplicación, como, por ejemplo, HTTP (web), HTTPS (web segura), POP3 (correo entrante) y SMTP (correo saliente) así como sus versiones seguras utilizando TLS. También se utiliza TCP en protocolos tan importantes como FTP, FTPES y SFTP para transferir archivos desde un origen a un destino, e incluso el protocolo SSH para administrar equipos de forma local y remota de manera segura utiliza el protocolo TCP.

Principales características

Debido a que TCP sirve a una gran cantidad de protocolos de la capa de aplicación, es fundamental que los datos (segmentos) lleguen correctamente al destinatario, sin errores, y, en orden. Si en la transmisión de los segmentos, se corrompiesen o perdiesen, automáticamente el protocolo TCP inicia la retransmisión, sin intervención de la capa de aplicación. De esta manera, se garantiza que los datos llegan al destinatario sin errores, ya que este protocolo se encarga de solucionar cualquier tipo de problema.

El MSS (Maximum Segment Size) es el tamaño máximo en bytes que TCP puede recibir en un solo segmento, es similar al MTU, pero el MSS es a nivel de capa de transporte. Con el fin de obtener el mejor rendimiento, el MSS debe ser lo suficientemente pequeño para evitar fragmentación IP. El MSS se anuncia normalmente en cada lado del canal de comunicación, a través de la propia cabecera de TCP. Normalmente el tamaño del MSS es el MTU (1500 bytes normalmente) menos la cabecera de TCP (que tiene longitud variable de al menos 20 bytes) menos la cabecera IP (que tiene longitud variable de al menos 20 bytes). MSS = MTU (1.500 bytes) – 20 bytes cabecera TCP – 20 bytes cabecera IP

TCP tiene un mecanismo complejo de control de errores, se utiliza una técnica de ventana deslizante para que todos los segmentos lleguen correctamente. Esta característica utiliza diferentes métodos para detectar posibles errores que se produzcan:

  • Checksum
  • Numeración de todos los segmentos para llevar correctamente el control
  • Confirmaciones ACK selectivas, aunque también permite «acumular» segmentos para que con un úncio ACK se confirmen varios.
  • Temporizadores: si pasa mucho tiempo, automáticamente TCP retransmite el segmento que se ha «perdido».
  • Se descartan los segmentos duplicados: en caso de que llegue un segmento duplicado (porque uno ha tardado más de lo normal y se ha vuelto a enviar) lo elimina.

Por supuesto, si TCP detecta un error, iniciará la retransmisión automáticamente sin que la capa de aplicación tenga que hacer absolutamente nada.

Otra característica muy importante la información que viaja desde un origen hasta un destino, es que los datos lleguen en orden, es decir, en el mismo orden que fueron emitidos, ya que el protocolo IP es un protocolo best-effort, hace todo lo que puede para que los paquetes lleguen en orden y correctos, pero no es confiable ya que no garantiza nada. TCP dispone de una ventana deslizante en el emisor y en el receptor, de tal forma que, si recibimos un segmento que no está en orden, automáticamente «esperará» hasta que llegue el segmento que falta, o sino, pedirá una retransmisión únicamente del segmento que falte. Con cada segmento recibido por el receptor, se enviará un ACK indicando al emisor que todo está llegando correctamente, no obstante, en la vida real las implementaciones de TCP permiten que se envíe un ACK para confirmar la recepción de varios segmentos simultáneamente, con el objetivo de no saturar la red de tantas confirmaciones.

El protocolo TCP permite realizar control de flujo, es decir, es capaz de mitigar la posible saturación de la red o del host remoto. En el caso de que un equipo esté transmitiendo a una velocidad de 500Mbps, y el equipo de destino solamente pueda recibir información a 100Mbps, el protocolo TCP se adapta dinámicamente. De esta forma, el protocolo TCP siempre intentará aprovechar al máximo el ancho de banda disponible entre origen y destino. El funcionamiento de la esta ventana deslizante es complejo, pero funciona básicamente en que el receptor tiene una ventana TCP disponible con una cantidad de bytes que puede almacenar en un buffer, el emisor podrá enviar datos hasta llenar esta cantidad. Para que el emisor envíe más datos, es necesario que el receptor le envíe un ACK indicando que todo está correcto y que procede a «subirlo» a capa de aplicación.

TCP también dispone de control de congestión, esto nos permite que no se pierdan paquetes en Internet porque haya congestión en los routers. Si el router no es capaz de procesar o reenviar paquetes al ritmo que los recibe, el propio router los descartará y se perderá, ya que su buffer se llenará. No debemos confundir control de flujo (que hemos explicado anteriormente) con el control de congestión. La ventana de congestión (es complementaria a la ventana de recepción) es lo que se utiliza para gestionar el control de congestión en TCP. En una situación de no congestión, la ventaja de congestión es igual que la ventana de recepción, si se produce congestión, el tamaño de la ventaja de congestión se va reduciendo, y si desaparece, va aumentando. El número máximo de bytes que puede enviar el emisor es el mínimo de ambos tamaños de ventana (si la ventana de congestión son 1500 bytes, y la ventana de recepción son 2000 bytes, entonces se envían 1500 bytes, el menor).

Con el fin de evitar la congestión, y que podamos exprimir al máximo el ancho de banda disponible entre origen y destino, hay un total de tres fases. La fase de arranque lento (slow start) se encarga de hacer crecer exponencialmente (así que realmente no se puede considerar arranque lento) la ventana de congestión, posteriormente la fase de evitación de congestión que se encarga de que crezca la ventana de congestión linealmente, y, finalmente, la fase constante donde la ventana de recepción es la misma que la ventana de congestión.

Actualmente TCP dispone de diferentes algoritmos para gestionar de manera eficiente la congestión, los primeros fueron TCP Tahoe y Reno, aunque también tenemos otros como TCP Vegas, pero, a lo largo de los años, con las nuevas redes de datos TCP/IP, han aparecido otros algoritmos que son más eficientes. Por ejemplo, tenemos TCP BRR que nos permite enviar información lo más rápidamente posible, ya que es mucho más eficiente que el protocolo TCP original (tendremos mayor velocidad). También tenemos TCP Cubic el cual es el control de congestión que utilizan los sistemas operativos Linux y Unix.

Por último, otra característica interesante de TCP es que nos permite multiplexar datos, de esta forma, podremos recibir información de diferentes hosts simultáneamente. También nos permite Full-Dúplex, ya que podremos enviar y recibir datos simultáneamente por el mismo canal de comunicación.

Establecimiento de la conexión entre cliente y servidor, y desconexión en TCP

La principal característica del protocolo TCP es que es un protocolo orientado a conexión, para poder establecer una conexión entre cliente y servidor, es totalmente necesario establecer una conexión previa con dicho servidor.

Esta conexión previa se denomina 3-way handshake, y consiste básicamente en que el cliente (el que inicia la conexión) envía un mensaje SYN al servidor (el que recibe la conexión). Posteriormente, el servidor le enviará un mensaje de tipo SYN-ACK, indicando que puede empezar a enviar información, finalmente, el cliente envía un ACK indicando que lo ha recibido correctamente, y ya se empieza a enviar toda la información entre cliente y servidor de manera bidireccional. Un detalle muy importante de TCP es que, genera números de secuencia por cada lado, ayudando que no se puedan establecer conexiones falsas entre ellos, aunque si el atacante está «en el medio», entonces sí se podría realizar un ataque MitM de tipo ARP Spoofing o similares, pero no a través de Internet.

Una de las vulnerabilidades de TCP radica en el envío de una gran cantidad de segmentos TCP SYN, con el objetivo de «saturar» de conexiones al receptor. Algunas posibles soluciones para mitigar este ataque de denegación de servicio son:

  • Limitar el número de conexiones, ya sean conexiones globales o por IP.
  • Aceptar solamente conexiones a direcciones IP confiables.
  • Retrasar la asignación de recursos usando «cookies», o también denominado como SYN Cookies.

Para finalizar la conexión, el que quiere finalizar la conexión envía un mensaje FIN, y el host que lo recibe enviará un mensaje ACK junto con otro mensaje FIN, de tal forma que, el equipo que ha iniciado la finalización de la conexión, le envíe un último ACK y se cerrará el socket abierto. Un detalle importante es que podemos tener una conexión «medio abierta», si un host finaliza la conexión y el otro no, el lado que ha finalizado la conexión no podrá enviar más datos, pero el que no la ha cerrado sí podrá seguir enviando información.

Cabecera de TCP

TCP añade 20 bytes de cabecera en cada segmento como mínimo, ya que tenemos un campo de «opcionales». En esta cabecera TCP encontraremos el puerto de origen y puerto de destino de la conexión (socket), también encontraremos el número de secuencia, número de ACK, y los diferentes FLAGS de TCP como SYN, ACK, RST, FIN, URG y otros. En esta cabecera también tenemos una parte muy importante para el funcionamiento de la ventana deslizante, y es que tendremos un campo de 16 bits que indica el tamaño de la ventana de recepción que os hemos explicado antes.

Los puertos (Source Port y Destination Port) son fundamentales para el buen funcionamiento de TCP. TCP usa estos números de puertos para identificar un socket, es decir, una aplicación que emite datos o que recibe datos. Los puertos TCP van desde el 0 hasta el 65535, pero tenemos tres tipos de puertos diferentes:

  • Puertos conocidos: del 0 al 1023. Estos puertos están reservados por la IANA para determinadas aplicaciones, como servidor HTTP, FTP, SSH, y muchos otros puertos bien conocidos.
  • Puertos registrados: de 1024 al 49151. Estos puertos están reservados para aplicaciones concretas, como sistemas gestores de bases de datos, BitTorrent, y muchas otras aplicaciones.
  • Puertos privados: de 49152 a 65535. Estos puertos no están reservados por ninguna aplicación, y puedes usarlos libremente sin que afecte a ningún otro protocolo.

Protocolo UDP: ¿qué es y cómo funciona?

El protocolo UDP (Protocolo de Datagramas de usuario) es uno de los protocolos fundamentales en Internet, nos permite que las aplicaciones puedan comunicarse con garantías independientemente de las capas inferiores del modelo TCP/IP. Esto significa que los routers (capa de red en el modelo TCP/IP) solamente tienen que enviar los datagramas (unidad de medida en UDP). UDP da soporte a múltiples protocolos de la capa de aplicación, como los populares DNS e incluso el protocolo DHCP para obtener (y proporcionar) direccionamiento IP automáticamente.

Principales características

El protocolo UDP permite el envío de datagramas sin necesidad de establecer previamente una conexión, tan solo es necesario tener abierto un socket en el destino para que acepte los datagramas del origen. UDP es un protocolo no orientado a conexión, es decir, no ocurre como en TCP donde hay una fase de establecimiento de la conexión, aquí directamente se envían sin establecimiento previo «aviso».

Este protocolo no proporciona ningún tipo de control de flujo, si un equipo es más rápido que otro y envía información, es muy posible que se pierda información debido a que colapsará al más lento, y tendremos que proceder al reenvío de la información. Un detalle importante es que la gestión de reenvío de los datagramas la realiza la capa de transporte, ya que UDP es muy simple y no dispone de mecanismos de control de reenvío de datagramas por haberse perdido.

UDP tampoco proporciona ningún tipo de control de congestión, si hay congestión en la red, se podrían perder paquetes, y, lógicamente no se va a encargar de reenviarlos como sí ocurre con TCP. Por tanto, UDP al no disponer de control de congestión, control de flujo ni control de errores, se podría decir que UDP es un protocolo no fiable. Además, tampoco proporciona orden en los datagramas enviados, ni información si un datagrama ha llegado correctamente, ya que no hay confirmación ni de entrega ni de recepción. Cualquier tipo de garantías para la transmisión de la información deben ser implementadas en capas superiores.

Este protocolo se utiliza principalmente en DHCP y DNS donde es más importante la rapidez que la fiabilidad. UDP es muy utilizado en tareas de control de transmisiones de audio y vídeo a través de una red. UDP sólo añade multiplexado de aplicación y suma de verificación de la cabecera y la carga útil.

Cabecera de UDP

UDP añade 8 bytes de cabecera en cada datagrama. En esta cabecera UDP encontraremos el puerto de origen y puerto de destino de la conexión (socket), la longitud del datagrama y el checksum de dicho datagrama para comprobar que no tiene errores ni la cabecera ni los datos del datagrama. Los puertos (Source Port y Destination Port) son fundamentales para el buen funcionamiento de UDP. UDP usa estos números de puertos para identificar un socket, es decir, una aplicación que emite datos o que recibe datos.

TCP vs UDP en los diferentes protocolos VPN

OpenVPN

OpenVPN es un protocolo para crear redes privadas virtuales que nos permiten asegurar la comunicación punto a punto, ya que todo el tráfico del túnel va cifrado y autenticado. En RedesZone tenéis un completo tutorial sobre cómo configurar un servidor OpenVPN y conectarnos a él fácilmente.

OpenVPN Seguro

OpenVPN nos permite utilizar tanto el protocolo TCP como UDP para el túnel de datos, tal y como habéis visto, TCP y UDP son muy diferentes, y siempre es recomendable utilizar TCP ya que dispone de control de flujo, control de congestión, control de errores y muchas otras características que hacen que una conexión sea fiable. Si vais a usar OpenVPN, de manera predeterminada se utiliza UDP, esto es debido a que, si hay algún tipo de problema, los protocolos de la capa de aplicación como HTTP (el cual utiliza TCP por debajo) se encargarán de realizar las retransmisiones si fueran necesario, por lo que la conexión sí sería fiable (control de flujo, congestión, errores etc) aunque el túnel cifrado punto a punto utilice UDP.

Un aspecto muy importante es que un servidor OpenVPN con UDP, será capaz de aceptar más conexiones entrantes simultáneamente si utilizas UDP que si usas TCP, además, también tendremos un mayor ancho de banda ya que no se le añade una «carga» adicional, debido a que UDP es mucho más «liviano».

WireGuard

WireGuard es un nuevo protocolo de VPN que utiliza una criptografía completamente renovada y simple, ya que únicamente utiliza los algoritmos de cifrado simétrico, asimétrico y de hashing más seguros y eficientes que existen actualmente. En RedesZone ya hemos hablado en detalle y os hemos enseñado cómo configurar WireGuard para conectarnos de forma segura a nuestro hogar.

WireGuard hace uso de únicamente el protocolo de la capa de transporte UDP, esta decisión es porque UDP es mucho más rápido que TCP, tanto en el establecimiento de la conexión como posteriormente en la comunicación ya que su cabecera es mucho más pequeña. Uno de los puntos fuertes de WireGuard, es que nos permite realizar «roaming VPN» de manera fácil y muy rápida, esto significa que si estamos conectado a nuestro Wi-Fi y tenemos un túnel VPN establecido, si pasamos a la red 4G, este túnel VPN re-negocia muy rápidamente sin que casi te enteres. Si en lugar de usar UDP, usara TCP, este roaming VPN sería más lento, ya que habría que establecer previamente la comunicación TCP y posteriormente TLS.

TCP vs UDP en la web

Actualmente cuando navegamos por diferentes webs, hacemos uso del protocolo TCP, ya que HTTP y HTTPS utilizan TCP por debajo. Si hacemos uso de HTTP, el puerto por defecto es TCP 80, en caso de hacer uso de HTTPS, el puerto por defecto es TCP 443. Al usar TLS 1.2 o TLS 1.3, por debajo hacemos uso siempre del protocolo TCP.

HTTP sobre QUIC

Una de las novedades de HTTP/3 es el uso de QUIC, un nuevo protocolo de comunicación que se está empezando a utilizar ampliamente, el cual funciona por encima de UDP en lugar de TCP, para proporcionar una mayor velocidad. QUIC se encargará de proporcionar la conectividad desde el cliente hasta el servidor web, y lo hará usando TLS 1.2 o TLS 1.3, ya que lógicamente, también tenemos soporte para estos protocolos de comunicación seguros.

Aplicaciones I - Planillas de Cálculo

  Asignatura: Aplicaciones I Curso: 4° Informática Profesora: Evangelina Rivero - e-mail:evange_rivero@hotmail.com Tema: Planillas de Cálcul...