Criptografía
Capitulo 8
Protocolos

Los protocolos son los mecanismo mediante los cuales dos o mas maquinas se ponen de acuerdo en la forma de transmitirse y de compartir información.

Dado que fabricantes hay muchos y programadores también, cada uno de ellos quiere utilizar sus propios medios y formas de comunicación, con esto es obvio que podríamos tener cientos miles de formas de comunicarse los ordenadores entre si, esto es inviable, complicado y muy caro.

Los protocolos en realidad son programas que realizan de forma totalmente transparente la comunicación entre ordenadores, digamos que se ponen de acuerdo en como hablar entre ellos.

La pregunta seria ¿Que tiene que ver la seguridad con los protocolos?, pues mucho, pues a través de dichos protocolos están los llamados agujeros de conexión y a través de dichos agujeros accedo al sistema propio del ordenador y realizo todas las operaciones que quiero aunque no este autorizado para ello.

Tipos de protocolos hay muchos, cientos de ellos, pero están, por así decirlos, los protocolos estándar, que son en realidad los mas usados, entre ellos están el IPX, Netbui y TCP/IP, este ultimo (TCP/IP) es el utilizado en Internet para la conexión.

Todos los protocolos identifican a la maquina, o sea que digamos que le da un nombre, una dirección o una forma de identificarla dentro de la red, de no ser así, si nosotros mandamos algún fichero, mensaje o dato a otro ordenador, como sabemos que ordenador es y lo mas importante es como los demás ordenadores conectados no reciban la información que yo le mando a uno en concreto.


TCP / IP

Este protocolo es el utilizado para la conexión a Internet vía teléfono o RDSi, además de ser el mas usado.

Este protocolo asigna una dirección en forma de numero parecida a esto 194.122.132.123 aunque en la actualidad se han aumentado los números en 3 o 6 mas o sea 194.122.132.123.124.143 esta serie de números identifica a la computadora dentro de todas las que hay en la red.

Cuando hacemos referencia a TCP IP lo hacemos a dos protocolos de Internet, por un lado TCP o Protocolo de Control de Transmisión e IP o Protocolo de Internet, ambos son muchos protocolos agrupados dentro de ellos.

Mediante dichos protocolos se efectúan varios servicios, entre ellos:

Correo Electrónico (EMAIL)

Transmisión de ficheros (FTP)

Distribución de noticias (NEWS)

Acceso a Internet (WWW)

Estructura

El modelo de comunicaciones de OSI define 7 capas. En cambio, TCP/IP utiliza 4.
Dichas capas son:

* Aplicación

* Transporte

* Red

* Enlace

Algunos prefieren llamar capa Internet a la capa de red y capa de acceso a la red a la capa de enlace. La correspondencia entre las capas de TCP/IP y las capas OSI es la siguiente:

la capa de aplicación de TCP/IP corresponde a las capas de aplicación, presentación y sesión de las capas OSI, la capa de transporte de TCP/IP corresponde a la capa de transporte de OSI; la capa red de TCP/IP corresponde a la capa de red y también se intersecta con la capa de enlace de OSI, por último, la capa enlace de TCP/IP corresponde a las capas de enlace y física de OSI.

Supóngase que un usuario desea visitar la página http://www.netscape.com/home.html y así se lo indica a Netscape (que corre en la capa de aplicación). Netscape le pedirá a la capa de transporte que cree una conexión de punto a punto con el servidor de Web en la computadora www.netscape.com, la que utilizará para solicitar y recibir la página home.html.A su vez, la capa de transporte utilizará los servicios de la capa de red (que se encarga principalmente de enviar y recibir paquetes de información como se verá más adelante). A su vez, la capa de red utilizará los servicios de la capa de enlace, que se encarga de enviar a través de la red local o un ruteador la información de una computadora a otra. Cada capa tiene funciones bien especificadas que permiten que el proceso completo se lleve a cabo.


Capa de Enlace
La capa de enlace está implementada en el device driver del sistema operativo y en la tarjeta de interfaz que conecta a la computadora con la red. Esta capa tiene a su cargo los detalles de la comunicación en la parte física (hardware) así como garantizar la confiabilidad de ésta. La capa de red le entrega a la capa de enlace paquetes de información llamados datagramas. Cada datagrama contiene el número IP (o dirección IP, el cual es un número de 32 bits) de su destino. La capa de enlace tiene las funciones principales siguientes:

* Convertir los datagramas en tramas ( frames). Esto se debe a que las tarjetas de red requieren que la información que éstas envíen esté encapsulada en forma de tramas.

* Convertir el número IP del destinatario en su dirección física. Cuando una computadora desea enviar una trama de una computadora a otra es necesario que conozca la dirección física de la computadora destinatario (cada tarjeta de red tiene una dirección única, a la que llamaremos dirección física); esto se debe a que a ese nivel, las direcciones IP no son significativas. La traducción de número IP a dirección física se realiza mediante el Protocolo de Resolución de

* Direcciones ( ARP – Address Resolution Protocol). Mediante ARP se evita que las capas superiores requieran conocer direcciones físicas. Enviar la información a esta computadora, utilizando el protocolo que la red local especifique o los protocolos SLIP( Serial Line Internet Protocol, Protocolo Internet de Línea Serial), CSLIP( Compressed SLIP, SLIP Comprimido) o PPP ( Point to Point Protocol, Protocolo de Punto a Punto) si se trata de una línea telefónica.

* Y convertir de regreso las tramas recibidas en datagramas para entregarlas a la capa de enlace en el lado del receptor.

Capa de Red

Esta capa es el corazón de Internet. Su función principal es la entrega de paquetes (llamados datagramas) de una computadora fuente a otra destino. Implementa algoritmos para ruteo, para evitar congestionamientos y para interconexión de redes ( puertas y ruteadores). Los servicios que provee son no orientados a conexión.

Toda la información que se transmite a través de Internet son datagramas IP. Esta capa no es confiable, es decir, no se encarga de verificar que un datagrama haya sido recibido o de volverlo a mandar en caso de existir algún error.

El protocolo central de esta capa es el IP y realiza las siguientes tareas:

* Recibe de la capa de transporte la información a enviar (en paquetes llamados segmentos) que incluyen la dirección IP del destinatario.

* Encapsula dichos segmentos en datagramas.

* Determina cuál es la ruta que debe seguirse para entregar cada datagrama. IP sólo es capaz de entregar paquetes a computadoras físicamente conectadas en la misma red local. Así, si se desea enviar un datagrama a otra red, será necesario que IP determine cuál es el ruteador o gateway al que deberá enviarle la información. Una vez determinada la dirección de la siguiente computadora a contactar, le entrega a la capa de enlace el datagrama (que incluye la dirección
IP de destino).


* Cuando la computara recibe un datagrama, verifica si está destinado para ella. Si es así, lo reensambla en segmentos y lo pasa a la capa de transporte. Si no está destinado para ella, realiza nuevamente la operación descrita en el punto anterior.

Otro protocolo importante de esta capa es el Protocolo de Mensajes de Control de Internet ( ICMP Internet Control Message Protocol) que se encarga de realizar las siguientes funciones:

* Control de flujo.
* Detección de errores en las rutas que siguen los datagramas.
* Verificación de que una computadora esté conectada y su capa de red funcionando correctamente.


Capa de Transporte

La función principal de esta capa es permitir la comunicación directa del remitente a los destinatarios. Consta de dos protocolos: TCP, cuya función principal es permitir comunicación libre de errores tipo orientada a conexión; y UDP ( User Datagram Protocol, Protocolo de Datagramas de Usuario), cuya función principal es permitir el uso directo de datagramas IP. Las funciones de TCP son, principalmente:

* Dividir la información que recibe de la capa de aplicación en segmentos que pasarán a la capa de red.

* Al enviar un segmento inicializa un reloj, en espera de una contraseña (indicando que el mensaje se recibió); si el reloj expira antes que esta última se reciba, reenvía el segmento suponiendo que el segmento se ha perdido.

* Cuando TCP recibe un mensaje, envía al remitente una contraseña confirmando la recepción.

* Implementa algoritmos para verificar que la información recibida fue la misma que la enviada; en caso de que el segmento llegue dañado a su destino, se indica al remitente del hecho y este último lo reenvía. Puesto que IP no garantiza el orden de llegada de los segmentos que envía, TCP debe reordenarlos si es necesario.

* Implementa algoritmos de control de flujo.

* Da la impresión a una aplicación de tener una línea directa en ambos sentidos ( full duplex) a través de la cual se realiza la comunicación.

TCP otorga a la capa de aplicación una comunicación libre de errores punto a punto (de fuente a destino) que aparenta ser orientada a conexión (aun cuando siempre se implemente mediante servicios no orientados a conexión); a esta conexión se le conoce como conexión TCP.

TCP define un nivel de direccionamiento, llamado puerto, que permite distinguir entre diferentes conexiones que se estén realizando simultáneamente. Cada puerto es identificado con un número de 16 bits. Su uso es claramente ejemplificado por el modelo cliente-servidor. Para que el cliente pueda conectarse con el servidor, es necesario que el primero sepa dónde encontrar al segundo; para resolver este problema, varios números de puertos están reservados para algunas aplicaciones (correo electrónico, telnet, FTP, web, etc.)

Los números de puerto son asignados por IANA ( Internet Assigned Number Authority, Autoridad Asignadora de Números en Internet).

Esta agencia reserva números a los servicios que puede ofrecer un servidor.

El número de puerto del servicio FTP es el 21, el de telnet es 23, el de Web es el 80. En general, los números de puerto entre 1 y 255 los asigna la IANA. Un cliente de Web sabe que para conectarse con un servidor (también de Web), debe establecer una conexión TCP al puerto 80 de la máquina en cuestión.

Capa de Aplicación

La capa de aplicación, como su nombre lo dice, es donde se encuentran las aplicaciones utilizadas por el usuario. Algunas aplicaciones son tan comunes que se decidió estandarizarlas, entre ellas se encuentran acceso remoto (telnet y rlogin), transferencia de archivos (FTP), correo electrónico (SMTP), Web (HTTP), etc.


Direcciones IP

El número IP o dirección IP es una dirección empleada, principalmente, para distinguir de manera única a una computadora en Internet.

Los números IP constan de 32 bits, normalmente expresados con cuatro números decimales separados por puntos, representación conocida como notación de punto decimal. Cada uno de estos números representa un byte del número IP; por ejemplo: el número IP en notación punto decimal 255.97.58.1, representa al número IP 11111111 01100001 00111010 0000001 en notación binaria. Un número IP está compuesto de 3 partes: un identificador del tipo de clase, número de la red local y número de computadora dentro de la red local.

Tipo de Clase
El tipo de clase permite identificar cuántos bits se utilizarán para el número de red local y cuántos para identificar a la computadora. Si la dirección empieza con un cero, entonces se trata de una dirección de clase tipo A, que reserva 7 bits para el número de red y 24 para el de computadora; si inicia con los primeros dos bits igual a 10, entonces se trata de una dirección de clase B, con 14 y 16 bits, respectivamente, para número de red y de computadora; y finalmente, si inicia con los tres primeros bits igual a 110, se trata de una red tipo C que reserva 21 bits para el número de red y 8 para el de computadora.

Red Clase A

7 bits 24 bits

0 identificador de red identificador de computadora

Red Clase B
14 bits 16 bits
10 identificador de red identificador de computadora

Red Clase C
21 bits 8 bits
110 identificador de red identificador de computadora


La clase A es para redes que pueden tener hasta 16,777,214 computadoras; las redes de clase B pueden tener hasta 65,534 computadoras y las redes de clase C tienen menos de 254 computadoras. Todo número IP debe pertenecer a alguna de estas clases. El rango de los números IP que pertenecen a cada clase es:

Clase A 0.0.0.0 – 127.255.255.255
Clase B 128.0.0.0 – 191.255.255.255
Clase C 192.0.0.0 – 255.255.255.255

Número de Red Local
Cada red local debe tener un número diferente al del resto de las redes conectadas a Internet; para garantizar que así sea, su asignación está a cargo del Centro de Información de la Red Internet ( Internet Network Information Center), conocido como InterNIC.

Número de Computadora en la Red Local
Cada computadora debe tener un número único dentro de la red local, tarea de la que se encarga el administrador de la misma. Dependiendo del tipo de clase, el número será de 8, 16 ó 24 bits. Ninguna computadora podrá utilizar el número cero (todos los bits apagados), ni el último número (todos los bits prendidos). Esto se debe a que el número cero está reservado para identificar a la red como un conjunto. El último número es utilizado para identificar a todas las computadoras de una red.

La dirección 129.97.0.0, es una dirección tipo B, con 16 bits para número de computadora en la red local. Puesto que estos 16 bits están todos en cero, esta dirección representa a la red completa. En cambio, 129.97.0.1 identifica a la computadora número 1 de la red 129.97.0.0. La dirección 204.191.103.131 identifica a la computadora 131 de la red 204.191.103.0 que es clase C.

Subredes

Una vez que una organización ha obtenido una dirección (tipo A, B o C), puede a su vez particionarla como mejor le convenga. La partición se realizará para adaptarla a la topología de las diversas redes locales que compongan la red de la organización. Cada una de estas redes locales que conforman una red conectada a Internet se le conoce como subred.

La parte del número IP que correspondería al identificador de computadora en la red local se utiliza para identificar a la subred y la computadora dentro de esta subred. En el datagrama IP una bandera indica si la red local está formada por subredes y de esta manera el software correspondiente sabe cómo proceder. Para esto es necesario saber cuántos bits del número de computadora son utilizados para identificar a una subred y cuántos son designados para el identificador de la computadora en si. Supóngase, por ejemplo, que se tiene una red local tipo C, y por lo tanto el identificador de computadora en la red local consta de 8 bits, que a su vez se dividirá en un identificador de subred y un identificador local de computadora en la subred.

El identificador local de subred puede constar desde 2 hasta 6 bits. Si se deciden utilizar n bits para el identificador de la subred, se podrán definir hasta 2n-2 redes (esto se debe a que ni la subred 0, ni la que tiene todos los bits prendidos son direcciones de subred válidas). Los bits restantes se utilizarán en la misma forma en que ya se definió antes para el número de computadora en la red local.

Si tenemos la red local (tipo C) 203.191.105.0, y deseamos dividirla en dos subredes, deberemos utilizar 2 bits para el identificador de la subred. Así, tendremos las direcciones de subredes 203.191.105.64, y 204.191.105.128 (204.191.105.0 y 204.191.105.192 son direcciones de subred inválidas).

Cada una de estas redes puede a su vez tener de 1 hasta 62 computadoras (la dirección con todos ceros es de nuevo el identificador de la subred, y la que tiene todos unos es la que identifica a todas las computadoras en la subred).

Cuando se configura una computadora conectada a Internet, se utiliza la máscara de subred( subnet mask), que es un número de 32 bits en los cuales se indica con unos la parte que corresponde al identificador de la red y de la subred, y con ceros la parte que corresponde al identificador de la computadora en la subred.

En nuestro caso, puesto que sólo 6 bits son utilizados para el identificador de computadora en la subred, la máscara de subred será: 11111111 11111111 11111111 11000000, que en notación de punto decimal corresponde a 255.255.255.192.

 

1