SET 39 Call For Papers

¿Eres un hacker? Si deseas pasar a formar parte de la historia del hacking hispano, colabora con la próxima edición de SET 39 enviándonos un artículo. No esperes más, esta es tu oportunidad de demostrar lo que sabes. Ayúdanos a construir una revista de hackers para hackers. SET Staff

Introduccion a las buenas maneras

      2384

Autor: Paseante
 oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo
 A   05    - INTRODUCCION A LAS BUENAS MANERAS -                         A
 A                                                                       A
 oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo


Hay que darle la importancia que se merece a las buenas maneras y de eso
vamos a tratar aqui, no se puede llegar a un sitio y pegar voces esperando
que asi nos entiendan mejor, hay que conocer las normas de relacion y
comunicacion que tienen esos extra€os, lo que consideran educado y lo que
no, hay que conocer  El Protocolo.
[Si sera importante que hasta la Casa Real tiene un Jefe de Protocolo]
Y este conocimiento sera especialmente util para seguir alguno de los
articulos que se publiquen aqui ya que por los mails recibidos parece que
hay en marcha varios articulos sobre protocolos pero no sobre aquellos mas
comunes como no llamar foca a la anfitriona sino sobre protocolos que
solo se utilizan en zonas monta€osas de Afganistan e islas desiertas del
Pacifico.

Sirva pues el presente engendro como iniciacion al protocolo a todos aquellos
que se sientan incapaces de seguir otros articulos por carecer de las mas
elementales normas educativas.
Empezaremos con el OSI como no y acabaremos no se sabe donde y posiblemente
como el rosario de la aurora.
Para aquellos que consideren su capacidad mental muy superior a lo explicado
en este articulo, mis humildes disculpas, el mundo contiene personas que
no poseen vuestro saber y que demandan explicaciones claras.


Un par de aclaraciones antes del principio:

Estandar, utilizaremos mucho este termino. Basicamente un grupo de pavos se
reunen un largo fin de semana en una ciudad a gastos pagados, se ponen
ciegos a langostinos y escuchan atentamente como el representante USA
acompa€ado de varios matones de la CIA explica porque el metodo que se
utiliza en los EE.UU es el mas adecuado para implantarse a nivel mundial.
Tras recordar quien paga el marisco propone a votacion la propuesta que
resulta aprobada por unanimidad ya que los asistentes tienen prisa por
largarse unos al teatro y otros de furcias. Tenemos un estandar.


Ahora mismo no me acuerdo de la segunda aclaracion que queria hacer. :-?


El ISO hizo el OSI, que hizo el OSI?
************************************

International Organization for Standardization , por vagueria llamado ISO.
Open Systems Interconnection , tambien por desgana abreviado como OSI.
Y ahora que semos cultos pasemos a desenmascarar a los culpables.


Alla a mediados de los 70, cuando el gato Isidoro no tenia u€as, las
empresas que se dedicaban al cacharreo comenzaron a darse cuenta de que
sus clientes mostraban un gran interes por conectar sus peque€os ordenadores
para que pudiesen hablarse los unos a otros tal y como ya hacian desde hace
tiempo esas grandes empresas.
Ehhh!. Podemos ganar dinero con esto?.
Asi que comenzaron a dise€ar protocolos y redes, para abreviar entenderemos
como red la parte con la que puedes tropezar (cables, tarjetas..) y como
protocolo la parte que te pone la zancadilla.
Originariamente la mision de todo esto era que el ordenador A pudiese mandar
informacion al ordenador B (y viceversa) si ademas la informacion llegaba
completa era un exito y si el ordenador que la recibia era capaz de
entenderla se entraba en la ciencia-ficcion. Pero como los tarugos de clientes
y los mentecatos de ingenieros nunca estaban contentos comenzaron a complicar
la historia a€adiendo "busqueda de caminos optimos", "encriptaciones",
"autentificacion", "comprobacion de datos" y otras chorradas responsables
de engordar los paquetitos sin aportar ni un bit mas de informacion.
Como era de esperar cada compa€ia decidio que ELLOS tenian la solucion al
problema de la conectividad y opto por crear sistemas que hablasen entre
ellos pero no ajuntasen al resto (no te quiero le decia un Dec a un Apple),
en el intento de arrimar el ascua a su sardina hubo un momento de cordura
cuando los (ir)responsables de las compa€ias se dieron cuenta de que
podrian pescar mas sardinas si cambiaban el cebo, el mar estaba *repleto*
de sardinas!

Asi que acudieron al ISO y le dijeron alla por comienzos de los 80.
"Oye nos hemos metido en un jaleo del carajo, no puedes sacarte algo de
la chistera para que tengamos una guia a la hora de dise€ar las redes"

Y en 1.984 (de que me suena el a€o?) llego el caballero blanco, el OSI.

Por supuesto siguen existiendo esos modelos de redes propietarios y otros
estandares "de facto" como los de Internet pero el OSI se convirtio en el
punto de referencia de todos asi que para los que no hayan tenido el placer
de conocerlo hasta ahora...

Mover informacion de un ordenador a otro, eso es lo que hemos dicho que
(fuera parafernalias) debe hacer una red y el protocolo se encarga de los
detalles 'triviales' (como llevarla y hacer que se entienda). Para esto el
OSI divide la tarea en siete 'layers' llamados

Layer 1 - Layer 2 - Layer 3 - Layer 4 - Layer 5 - Layer 6 y Layer ? si!! 7

Y aqui lo traducimos por:

Capa 1 - Capa 2 - Capa 3 - Capa 4 - Capa 5 - Capa 6 y Capa 7.


Capa 1 o Capa de Aplicacion:

Al ser la ultima no da servicio a ninguna otra capa OSI sino a los programas
de usuario (fuera ya del modelo OSI), chequea si hay recursos suficientes
para establecer la conexion y como se van a comprobar los datos.

Capa 2 o Capa de Presentacion:

Se encarga de que lo que envia la capa 1 de nuestro sistema se entienda por
la capa 1 del _otro_ sistema (XDR o similares).

Capa 3 o Capa de Sesion:

Establece, controla y finaliza el dialogo que mantiene la capa anterior y
se ocupa del intercambio de datos entre las capas de presentacion.

Capa 4 o Capa de Transporte:

Comienza ya el trabajo sucio, determinar la fiabilidad del medio de
transporte, control de flujo..

Capa 5 o Capa de Red

Proporciona conectividad y establecimiento de ruta entre los dos sistemas,
routing y similares.    

Capa 6 o Capa de Enlace

Topologia de la red, direcciones fisicas, notificacion de errores..

Capa 7 o Capa Fisica

Detalles como voltaje, distancias de transmision, tiempos.. son suyos.


Ahora que hemos visto un poco por encima de que va cada cosa, digamos:

- Cuanto mas alto es el numero de capa menos lo entiende un ser humano
- Cuanto mas bajo es el numero de capa menos lo entiende el ordenador
- La capa central, la 4, no la entiende nadie.  ;-D

Cada capa intenta comunicarse con su capa amiga del otro bicho pero OSI
especifica que Norrlll!, asi que tenemos que

Aplicacion pasa los datos a Presentacion, esta los mete en un formato
no-propietario y se los pasa a Sesion para que negocie los detalles,
Sesion cede el paquete a Transporte y a partir de aqui entre Transporte,
Red, Enlace y Fisica le pegan un meneo que ya no reconoce al paquete ni
su madre.

Pero Aplicacion lo que quiere es que su capa amiga del otro lado lea los
datos que le envia. Como se hace?

Una vez que hemos atravesado todas las capas y deformado el paquete este
completamente mareado llega de mala manera al destino, alli lo recoge
Fisica que dice "esto trae mi nombre, paca bicho" al leer el nombre quita
la etiqueta de la direccion y se lo pasa a Enlace que reconoce la escritura
de su amigo Enlace en el otro ordenador, se queda la carta y le pasa el
muermo a Red que lo primero que ve es un mensaje de su compa€era Red
destinada en Ceuta, arranca el mensaje y se deshace del paquete dandoselo a
Transporte, que se acaba de despertar de la siesta todo mosca, coge el
paquete y de una patada lo manda a Sesion que lee las instrucciones de su
primo Sesion exiliado en una subnet lejana, se queda con ellas para archivo
y le pasa la pelota a Presentacion que reconoce la escritura de su colegui
diciendole que espera haber dado formato a su mayor comodidad, Presentacion
quita el polvo que ha cogido el paquete por el camino y completamente limpio
y reluciente se lo entrega a Aplicacion que comprueba que efectivamente es
el paquete que su suegra Aplicacion ha prometido enviarle y ya satisfecha
se lo pasa al programa para que el usuario pueda borrarlo a su entera
satisfaccion.

Estoooo.. y no seria mas facil que Aplicacion mandase directamente el
paquete a Aplicacion en el otro ordenador y evitarse 12 capas??
NO, no querras mandar al paro a 6 honradas capas?

El petardo de arriba resumido:

- Comunicacion entre capas hacia abajo, cuando ya no se puede bajar mas
entonces se larga el paquete que es recogido por el destino (si hay suerte)
y que hace el proceso inverso, pasarlo desde la ultima capa a la primera.

Este es el modelo OSI en el que se basan muchos desarrollos de red aunque
no todos implementen las siete capas si suelen dar equivalencias
(sease, nuestro ripitoff!(tm) equivale a la capa 2 y 3 del OSI)


Antes de continuar recordemos a quien podemos expresar nuestras mas
sinceras felicitaciones por facilitarnos la vida: ISO, IEEE, ANSI, EIA, ITU-T.

Bien hemos dicho ya un par de veces que enviamos informacion a otro
ordenador pero no hemos hablado de como trata OSI las direcciones y no se
puede entregar un paquete si no se conoce el destinatario.

Dos diferencias basicas:

En la capa de Red utilizamos direcciones "logicas o virtuales"
En la capa de Enlace utilizamos direcciones "fisicas o hardware"

Las direcciones logicas suelen pertenecer a estructuras jerarquicas en las
cuales se llega al destinatario por sucesivas eliminaciones.
Las direcciones fisicas operan en cambio en un llamado "espacio plano" donde
cada conexion se identifica por una direccion que les pertenece en
exclusividad (como a nosotros nos 'pertenece' nuestro numero de DNI).

Es hora pues de comenzar a preguntarse como encontrar el camino a casa
del destinatario. OSI Routing, the movie.

Explicaremos el desarrollo de DEC para su Phase V DECnet (IS-IS) capaz de
rular tanto CNLP (Connectionless Network Protocol) como IP en su version
de Integrated IS-IS (tambien llamada Dual IS-IS). Brevemente se vera el
ES-IS y aquel que quiera podra acordarse de la familia del tipejo/s que
se dedica a inventar esta ensalada de siglas. Culpable?. El ISO como casi
siempre.
(ISO 10589) IS-IS
(ISO 9542). ES-IS

Un par de conceptos del fabuloso mundo OSI:

ES significa end system o sea un punto y final.
IS significa intermediate system o sea un estorbo en mitad del camino.
Area significa un grupo de host-redes- lo que sea especificado como area
por el inepto que lo administra. Es decir, area significa area.
Dominio significa un grupo de areas conectadas, un dominio de rutado alcanza
a cubrir a todos los ES que tiene por ahi dentro. Si no alcanza es su rollo.

IS-IS, si ya sabeis OSPF teneis algo ganado si no pues seguro que teneis
el coco mas sano y estable.
IS-IS comparte con OSPF (Open Shortest Path First) las capacidades de
jerarquia de rutados, division de path, autentificacion, tipo de servicio
y otras bobadas semejantes.
OSPF = Vete por el atajo.

IS-IS esta metido en alguna parte de la Capa 2 del OSI (Enlace) y es capaz
de distinguir entre routers que comunican diversas partes del area y routers
que dan acceso a otras areas, 'tesnicamente avlando'
Level 1 routing - ISs que saben encontrar a otros ISs de su area.
Level 2 routing - ISs con mas alcances que saben encontrar a sus colegas
                  de otras areas. (Otros ISs de nivel 2)

Aqui tenemos a un ES que esta tan feliz en su cueva y que pegando el oido
a la pared ha conseguido escuchar donde vive el IS mas cercano, cuando
se entera de que enviar paquetes es gratis agarra y prepara uno con ropa
de abrigo para su sobrino ES que vive a la orilla del rio, pega una
etiqueta en la que escribe trabajosamente "Enviar a mi sobrino, el que
vive a la orilla del rio" y se lo larga al IS que se encuentra con 3
opciones:

Opcion 1 - El rio y el sobrino estan en la misma subred que el tio
Respuesta del IS - Manda el paquete y avisa al despistado pariente de que
puede enviar el paquete por ruta directa.

Opcion 2 - El sobrino y el rio estan en la misma area pero en distinta subred.
Respuesta del IS - El IS consulta su chuleta y vuelve a chutar la pelota.

Opcion 3 - El rio ese esta mas lejos quel copon y el sobrino tambien.
Respuesta del IS - El IS de nivel 1 pasa el muerto al IS de nivel 2 que
busca al IS de nivel 2 encargado del area de destino, cuando el paquete
alcanza ese IS 2 es pasado a ISs de nivel 1 que lo entregan en la puerta.
Por el camino algun IS desaprensivo ha mangado el abrigo bueno.


El tema de encontrar el mejor camino se basa en determinar el camino mas
corto..... (momentos de reflexion).... Y eso se hace asignando una
distancia a cada enlace (no mayor de 64 para un enlace simple) y sumando
todos los enlaces que hay que hacer para llegar a destino (mo mayor de 1024)
Como de costumbre para el que no tenga suficiente con lo anterior puede
complicar la historia a€adiendo modificaciones a las distancias, asi:

- Puede a€adir "retraso", un enlace con igual distancia pero con un mayor
valor de retraso es descartado en favor de otro.

- Puede a€adir "guita", si el enlace cuesta mas dinero entonces hay que usarlo
menos, a€adiendole valor "guita" a su coste en distancia se le hace ser
descartado en favor de otros enlaces mayores en distancia pero sin costes
extra.

- Puede a€adir "error", si un enlace es igual o menos largo pero a la hora
de calcular distancias hay que sumarle penalizacion por poca fiabilidad este
enlace sera menos usado que otro mas largo pero mas seguro.

Rico, rico.


Pero si queremos mandarle un paquete al IS tendremos que saber lo que
este esta esperando escuchar. Verdad?. Pues el IS quiere escuchar:

IS-IS hello packets - (ISHs)
Link state packets - (LSPs)
Sequence number packets - (SNPs)

Y no solo eso sino que cada uno de ellos tiene que venir en la forma en que
el IS lo espera (las reglas del protocolo, no pretendereis que saludar al
Rey sea decirle "Que tal Juanqui Monarqui?")

Como esto es un texto introductorio y se me da mal el dibujo no haremos aqui
graficos de paquetitos pero decir que los tres comparten una misma cabecera
(8 bytes) aluego una segunda parte diferente para cada paquete pero con
un formato fijo y por ultimo una tercera parte diferente por paquete y de
longitud variable. Va bene?.

Pues el minimo comun denominador (sease la cabecera comun de los IS-packets)

Identificador de protocolo  - Identifica el protocolo ISS, constante
Longitud de Cabecera - La longitud siempre es de 8 bytes, se incluye por??
Version - Actualmente la 1
ID lenght - Longitud de la parte ID de un NSAP (Network Service Access Point)
(sippe ya se que no lo hemos explicado lo del NSAP, quiza antes de acabar
el articulo meta algo)
Packet-Type - Aqui decimos si es ISH, LSP o SNP
Version - Por si no nos habiamos enterado.
Reserved - Ignorado?. Igual a 0
Maximum Area Address - Numero de direcciones permitidas en ese area.

Despues de esto, el caos.

Integrated IS-IS, sois masocas?, venis por mas?. Pues toma!

Para incluir mas soporte a protocolos de capa de Red que el triste CNLP se
dise€o el susodicho Integrated IS-IS (I-IS-IS) cuyos paquetitos hacen lo
mismo que el simple IS-IS pero incluyen info sobre:

- Si las direcciones de red pueden ser alcanzadas desde otros protocolos.
- Que ISs entienden que protocolos
- Informacion variada para protocolos de entendimiento retardado

El IDRP lo dejamos pal verano que ahora hace mucho frio. Seguimos
(Esto no se acabara nunca????. Jaja, soy tu peor pesadilla!)

ES-IS, la mejor manera de que ES e IS se hagan amigos y descubran las
peliculas que les gustan.

Si queremos que ESs e ISs se conozcan utilizamos un proceso llamado
"configuracion", cada x tiempo ES manda un mensaje ESH que dice:
"Estoy aqui, aqui solito" y se lo manda a todos los IS de la red, estos
a su vez mandan mensajes ISH a todos los ES de la red diciendo:
"pensando en ti, rompiendome la cabecita".

ES-IS distingue entre tres diferentes tipos de subredes (un conde no es igual
a un duque)

- Subredes de punto a punto. Algo que xplicar?
- Subredes de Vocerio. Un solo mensaje se transmite a todos los nodos,
tambien conocido como Broadcast.
- Subredes de Topologia General. Como X-25.

Despues de todo lo dicho me sorprenderia mucho que alguien tuviese dudas
sobre el modelo de routing OSI, estoy convencido de que mi xplicacion ha sido
lo suficientemente didactica para que nadie se haya enterado de nada. :->


Protocolos del OSI, asi en plan rapido OSI ofrece soporte en capa de Red a:

CLNP (ISO 8473) Connectionless Network Protocol
CONS (ISO 8208) Connection-Oriented Network Service
Si os leeis los ISO 8878 y 8881 pues mas y mejor. (un "par" de horas nomas)

CNLP , protocolo no-orientado a conexion que lleva indicaciones, un IP
       pero en ignorado.

CONS , Un invento pa mover datos, a cada capa de transporte le damos
      seis juguetes. 1 pa establecer conexion y 1 pa cortarla. Los otros
      4 para enviar los datos usando las primitivas (request, indication,
      response 'n confirmation)


El NSAP, que no se olvide el NSAP!!. Pues como ha salido por ahi arriba
y en algun lugar hay que explicarlo..hmm.hmm..hmmm.
Los SAP son los puntos donde cada capa le da el recado a la siguiente.
El NSAP asi en simple es la frontera donde Transporte y Red se pasan los 
encargos, cada entidad "transportista" (lease capa) tiene un NSAP que posee
una direccion individual en la maravillosa red OSI, los ES tambien tienen
sus NSAPS pero en el caso de haber varios cada uno tiene una direccion para
el solito.
Estas direcciones del NSAP son del tipo "jerarquico" algo de lo que ya se
hablo antes, una direccion NSAP es algo como:

    IDP - DSP
 AFI-IDI

IDP: Initial Domain Part ==> AFI: Authority 'n Format Identifier
                         ==> IDI: Initial Domain Identifier
DSP: Domain Specific Part

El DSP tambien puede ir subdividido pero pasaremos de este tema que es
por demas aburrido.

De vuelta a la capa de Transporte donde se cuece todo este bacalao se
soportan tanto el inutil CLNP como el pesado CONS y se les ofrece cinco
protocolos de transporte de los cuales solo 1 trabaja con CLNP (y CONS), los
demas son exclusivos para CONS.
Son TP0, TP1, TP2, TP3 y lo habeis adivinado..TP4 (el dual)

TP0 es capaz de desmontar el paquete en trozos y volverlos a juntar
TP1 amasamas sabe corregir errores de una manera basica
TP2 coge un circuito virtual y te hace virguerias, tambien desmonta paquetes.
TP3 ?? Pues facil TP3=TP2+TP1
TP4, pues a lo TCP. Sease TP3+medidas de fiabilidad del transporte.

Venga vamos por el final!!

Capa de Sesion, como vimos en la intro determina una serie de cosas es decir
a quien le toca hablar, para ello controla los datos que le pasa la pandilla
de Fisica, Enlace, Red y Transporte (vaya cuarteto) y negocia con la otra
parte, la posesion de un "token" da derecho hablar y si no lo tenemos se
puede pedir. Puede darse prioridad a ESs concretos para que tengan mas
derecho al token.

Capa Presentacion, pues nada mas que a€adir simplemente repetir lo expuesto
de que convierte los datos a formato independiente de la plataforma.

Capa Aplicacion... Lo finale.

Proporciona ASEs (utiles para jugar a las cartas) usease Application Service
Elements que permiten la comunicacion entre las aplicaciones y otras capas
mas inferiores. Los ASEs mas mejores que podemos encontrar son:

AS de Picas o ACSE  (Association Control Service Element)

Asocia nombres de aplicaciones con otras en preparacion del dialogo
aplicacion-aplicacion.

AS de Corazones o ROSE  (Remote Operations Service Element)

Un mecanismo de peticion-respuesta de manera remota. Ver RPC/NFS en SET 11

AS de Diamante o RTSE   (Reliable Transfer Service Element)

Sirve de interprete a la hora de explicarle a Sesion que es lo que
queremos hacer.

Y que aplicaciones OSI son esas?. Pues digamos

CMIP (Common Management Information Protocol)
DS (Directory Services)
FTAM (File Transfer, Access and Management)

Que aunque parezca extra€o sirven para lo que indica su nombre.

Espero que despues de esta vision general de OSI podais enfrentaros con
soltura a nuevos e ignotos protocolos que deben aparecer proximamente en
vuestras pantallas.

Eso es todo amigos.