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

SET 15

112171 visitas

IPV6

      6323

Autor: Tyako
-[ 0x05 ]--------------------------------------------------------------------
-[ IPV6 ]--------------------------------------------------------------------
-[ by Tyako ]---------------------------------------------------------SET-15-

Hola!

Antes de empezar me gustaria agradecer a Paseante y a los miembros de SET
su hospitalidad conmigo; me ha encantado escribir para SET. Quisiera
aclarar que yo no soy ningun experto, ni profesional, ni nada por el estilo:
solamente estudio, leo y me sacrifico por aprender.

Este articulo pretende ser una introduccion al TCP/IP convencional y una
explicacion de lo que sera en un futuro el IPv6 (o lo que se esta
pretendiendo que sea). 

La mejor manera de moverse bien en Internet (y en cualquier red) es saber
como funciona, asi que intentare hacer una explicacion basica del protocolo
IP actual. Despues pasare a explicar lo que sera (o pretendera ser) el
protocolo IPv6, asi ya tendremos alguna idea de como va a funcionar, y
estaremos mas prevenidos y preparados; para nosotros el futuro ya es
historia, no lo olvideis...

-- IP convencional -----------------------------------------------------

Empecemos por el principio, que es saber como se organiza la estructura de
una red (venga, que comienza el rollo ;-) en el modelo OSI (Open System
Interconnection) tenemos siete niveles distintos:

               * El nivel mas bajo es el FISICO, que se encarga de
                 transferir la informacion desde un emisor a un receptor
                 por un canal determinado, procurando que esta informacion
                 llegue a su destino lo menos alterada posible.

               * Seguidamente tenemos el nivel de ENLACE, que es el pavo
                 que se ocupa de a€adir bits de control de errores,
                 paridad, redundancia y esas cosillas.

               * Despues tenemos el nivel de RED. Este individuo se encarga
                 de dirigir el trafico de la red, ademas de conocerla en si
                 misma para determinar asi el camino mas corto desde el
                 emisor hasta el receptor (si, ya se que Chorifonica tiene
                 algo chungo este nivel :-D); es aqui donde entra el
                 protocolo IP.

               * Despues viene el se€or nivel de TRANSPORTE, que corrige
                 los posibles errores que haya podido tener el nivel de
                 red, ademas de optimizar sus recursos, que es un poco
                 despistadillo el chaval y no se fia un pelo de el... aqui
                 entraria el TCP.

               * Despues viene el pollo del nivel de SESION, que mantiene
                 la conexion y hace los negocios con los parametros
                 pertinentes (longitud, full-duplex...).

               * Ahora llega el nivel de PRESENTACION, que mas que nada
                 a€ade caracteristicas varias, como puede ser una
                 compresion o un cifrado de los datos.

               * Y por fin llega el nivel de APLICACION; con este nivel es
                 con el que mas estamos familiarizados. El pollo este hace
                 posible la ejecucion de comandos relativos a las
                 aplicaciones (sirve por ejemplo para poder coger el correo
                 via smtp, hacer una sesion telnet o alguna cosilla
                 mediante ftp, o incluso para poder navegar por www).

Bien, todo claro? no? pues venga que te espero...

ya? valen pos sigo...

Asi pues os debe haber quedado claro que no debemos mirar al IP como una
unica cosa aislada. Recordemos que un protocolo es una serie de normas. Estas
normas constituyen el protocolo.

TCP es el pavo que se encarga de fraccionar la informacion en forma de
paquetes (debes recordar, lo repetimos no se cuanto ya en SET, que la
conexion no es continua aunque parezca lo contrario. Se forma mediante la
recepcion de miles de paquetitos chiquititos unos detras de otros, miralos
ellos que monos) y los enumera para que en el destino puedan juntarlos y
obtener asi la informacion. Vamos a hacer un esquemita:


    .-------------------------------------------------------------------.
    |               imaginemos que esto es la informacion               |
    `-------------------------------------------------------------------'

               Ahora viene el IP y le dice por donde tiene que ir.
               Me salto los dos niveles anteriores porque son bastante
               obvios.

    .-------------------------------------------------------------------.
    |                                                                   |
    `------------------------------------------------.------------------'
            .--.             servidor  .---. UA      |
            |  |-----------------------|   |---------'
   servidor `-.' Lisboa                `---'
              |                      .---------------.
              |                      |               |
        .-----'-.--------------------|               |
   servidor--Madrid                  | Tu ordenador  |
                                     |               |
                                     `---------------'

              Vale, ahora ya tiene el camino, vamos a cortarlo
              TECEPEEEE, vente paca cai que cortar esto, jodio!
                                                                         no
  .------------. .-----. .--. .------. .---------. .--. .----------. .-. me
  |    65 b    | | 12 b| |1b| | 30 b | |   50 b  | |1b³ |  60 b    | | | ca
  `------------' `-----' `--' `------' `---------' `--' `----------' `-' be
                                                                         lis
                                                                         to

              Valen, ahora que, a enviarlo, pos venga...
              le toca al nivel de sesion y presentacion

    <Sesion>       Eh tu, que va un paquetito de 65 b.
    <Tu ordenador> Valen, mandemelo tio...
    <Presentacion> Espera que lo cifro por si las moscas; entre tu y yo
                   chaval, la clave es xxxx.
    <Tu ordenador> Oky tio! sin problema... Ya lo he pillao.
    <Sesion>       Ya? Pues toma otro de 12 b.
    <Tu ordenador> Vale, que bien, este no esta cifrao, menos curro pa mi.
    <Sesion>       Ya? jo que rapido chaval, debes tener una fibra optica
                   por lo menos! toma uno de 1 b.
    <Tu Ordenador> Ya lo tengo! que va, no te creas, solo soy un Amiga con
                   un modem de 14.4.
    <Sesion>       Vale Transporte, todo Ok! Ya decia yo que no eras de Intel, 
                   bueno, toma otro de 30 b.
    <Presentacion> Basta de charla ya no!? yastabien! espera pavo que te lo
                   comprimo a ver si te callas!
    <Tu ordenador> Jo, como se ha puesto... Ya lo tengo pesao!
    
    Mientras tanto en algun lugar oscuro de tu procesador, el nivel de 
    transporte cuida de que ningun paquete llegue duplicado, que no tenga 
    errores y encima va cortando en cachitos la informacion que viene y la
    que se va...


Bueno, esto se asemeja un poquito a la realidad, pero es solo para que
cojais la idea.

Hasta aqui las siete capas OSI (aunque en algunos casos son nueve, pero no
quisiera liaros ahora con eso).

Lo que importa: el IPv4 actual. Todos los ordenadores conectados a una red
deben tener una identificacion frente a esta, y frente a todos los demas
ordenadores conectados. El protocolo IPv4 utiliza 32 bits en bloques de 4
bytes. Eso que significa? que hay 4 bloques, a 1 byte por bloque, lo que
quiere decir que cada bloque tiene una cifra entre 0 y 255. Hay mucha gente
que se hace un taco con esto, aunque es bien sencillo. Voy a explicarlo con
mas claridad:

  cada ordenador conectado a la red tiene un DNI de 32 bits. Por ejemplo

                    11010101110010110011001001110100

  Los dividimos en 4 bloques, o sea que nos quedan 8 bits en cada bloque:

                   11010101.11001011.00110010.01110100

  Y esto nos da un numerillo decimal por cada bloque; por supuesto podria
  coger una calculadora y traducir los numeros de arriba a decimal, pero
  no tengo ganas de ponerme a buscar la calcu... en fin... ahi va:

                              195.170.23.12

  Esta direccion identifica a UNA SOLA maquina conectada a la red. Aunque
  esto no pasa al reves. Una maquina con distintos nodos debe tener tantas
  direcciones IP como nodos tenga.

  Algun lumbreras clasifico las direcciones IP en cuatro clases (A,B,C,D).

      * En las redes de clase A el primer byte puede llegar desde 0 hasta
        127.

      * Las clases B desde 128 hasta 191.

      * Las clases C desde 192 hasta 223.

      * Aun no he visto ninguna de clase D... no preguntes :)

  Bien, veamos ahora que hace cada clase.

      * Si la red es de clase A se tienen 128 subredes y pueden
        tener 16777216 maquinas conectadas como maximo
        (los 24 bits que restan hacen 2 elevado a 24=16777216 posibles
        direcciones).

      * Si la red es de clase B permite 16384 subredes y 65536 maquinas
        conectadas (16 bits restantes: 2 elevado a 16=65536).

      * Si la red es de clase C las pueden tener hasta 2097152 subredes
        y 256 maquinas con una direccion.

  Vale, hasta aqui el IPv4. Cual es el problema? Internet esta creciendo de
  forma exponencial, y ya se van acabando las direcciones, tanto de red
  como de maquina, asi que los chicos de IETF (Intersne Enjiniring Tasc
  Fors) se han puesto a currarse un nuevo protocolo llamad IPng (next
  generation) o IPv6 (ya veras lo que nos vamos a reir). Ahora yo me
  pregunto šQue ha pasado con el IPv5?, por favor si alguien lo sabe que me
  conteste, en serio...

  Bien, hemos quedado que a falta de direcciones IPv4, se curra la pe€a un
  nuevo protocolo, IPv6 para poder direccionar a tropocientosmilymas
  ordenadores, pero no nos olvidemos de la red que hay ya (IPv4), asi que
  ademas de desarrollar un nuevo protocolo, este debera ser compatible con
  el antiguo IPv4 (je! como el Gindous 3.1 y el 95 ;).


-- IP version 6 (lo que sera, o se espera que sea) ---------------------

  Ademas de la falta de direcciones del IPv4 se a€aden dos problemas mas
  que obligan a cambiar el protocolo actual:

    * Internet utiliza routers que dirigen el trafico de la red a partir de
      unas tablas de redireccionamiento. Al haber mas y mas direcciones IP,
      estas tablas van creciendo mas y mas y maas y maaaasss, hasta que...
      PIIIM! se acabo...

    * El otro inconveniente es que IPv4 no permite establecer importancia
      a los datos enviados (aqui queria yo llegar a parar, a ver que excusa
      ponen para esto). A ver, dicen que esto es necesario por ejemplo en
      aplicaciones de video y audio, asi, los de video y audio tendran un
      flujo continuo de datos, mientras que las news o el e-mail tendra un
      nivel de importancia menor. (ahora me pregunto yo... que pasaria si
      yo, que tengo mucha pasta, voy al encargadillo de alli de Internet y
      le digo que mi empresa necesita un flujo de datos continuo, que si le
      podria hacer un arreglillo, que si un jamon, que si no lo hundo, que
      mis datos son muy importantes, le como la olla, paqui palla... Esto
      seria algo discriminatorio para con los demas internautas, no? Ya
      esta el asqueroso poder haciendo de las suyas de un fenomeno
      extraordinario como es Internet).

  Pasemos al tema tecnico:

    Lo que destaca mas de este protocolo es que pasa de tener una direccion
  de 32 bits (4 bytes) a tener una de 128 bits (16 bytes). es decir que 2
  elevado a 128 da un total de... 3.401 x 10^38, que viene a ser algo asi
  como un 3 seguido de 38 ceros (unas cuantas mas que el IPv4). Ahora viene
  lo interesante: los paquetes contienen unas cabeceras donde se encuentra
  la informacion de control para su viaje (jur jur jur! esto se calienta).
  Se han a€adido mejoras en la confidencialidad (jajajajja, que risa) y
  autentificacion; los datos estan encriptados y no existen extensiones que
  permitan identificar al usuario (AJAJJJAJJAJJAJAJAAIU, permitidme que
  dude un poco eso).

  Lo interesante:

    Las cabeceras suplementarias son (esto son las cosas con las que
                                      podremos jugar):

    * cabecera de fragmentacion:

                utilizada por el emisor para mandar paquetes de un
              tama€o superior al que se puede enviar (creo que se van a
              poner aun mas de moda los nukes).

    * cabecera de encaminamiento:

                aqui el emisor establece una lista de nodos intermedios que
              debe seguir el paquete hasta llegar a su destino.

    * cabecera de autentificacion:

                que sirve para asegurar la integridad de los paquetes
                (desde luego mi paquete si que sigue integro ;)

    * cabecera de confidencialidad:

                que encripta los datos para protegerlos.

    Vale, todo esto no serviria de nada si este nuevo protocolo no
    mantuviera una compatibilidad con el anterior, asi que la manera de
    expresar las direcciones IP debe ser parecida; veamos como se lo han
    montado:

        * una de las maneras podria ser representar ocho bloques de 2 bytes
          cada uno (quedamos que era una direccion de 16 bytes=128 bits).
          Esto se haria asin:

                1523h:4AF7h:567Ah:B543h:A45Eh:4444h:12ACh:D634h

          esta es la que mas se esta utilizando. Id preparando lapiz y
          papel para apuntarlas! yo me se unas cuantas de memoria, pero de
          esta manera no se va a acordar ni su padre.

        * la segunda manera es sustituir por "::" los ceros consecutivos,
          asi que la direccion 1234h:0:0:0:0:0:0:122Fh se podria escribir
          como 1234h::122Fh. Eso ya me empieza a gustar...

        * la tercera manera (que practicamente ya les tiene convencidos) es
          la REALMENTE compatible con IPv4. Seria poner seis bloques de 16
          bits y cuatro bloques de 8 bits (IPv4). aver, mas o menos seria
          asi:

                             h:h:h:h:h:h:d.d.d.d

                    o algo asi:

                            0:0:0:0:0:4AF7:195.170.23.12

                    o lo que es lo mismo

                                ::4AF7:195.170.23.12


    Bien, ahora asi, como tema de reflexion: šOs imaginais a telefonica
    poniendose al dia en esta cuestion? JAJJJJAAJAJAJ, me descojono solo de
    pensar la que pueden llegar a montar (por cierto, un saludo chicos!).
    IPv6 sera una presa facil al principio; petara mas que una escopeta de
    feria.

    Que os parece? divertido, no? sacad vuestras propias conclusiones, pero
    yo creo que este protocolo es una muestra mas de como el poder y el
    dinero son aliados; el poder ha visto dinero en Internet y aqui lo
    teneis; la utopia de cualquiera al que le guste la informatica tirada
    por los suelos. Una muestra mas de fascismo indirecto. En fin... que le
    vamos a hacer; uno de mis dos sue€os con respecto a la informatica
    seria montar una red que se auto-expandiera (como es el caso de
    Internet o Fido). El otro es hacer un Sistema Operativo... Igual soy
    poco realista, pero hay que intentarlo. Mi madre suele decir "No sue€es
    tu vida, vive tus sue€os", y aqui me encuentro escribiendo en una
    revista de hackers... Yo no me considero hacker, ni siquiera pienso que
    se, por que en realidad no se nada, al igual que todos nosotros, no
    sabemos nada... per hay que intentarlo...

Bien, espero que mi debut en SET haya sido satisfactorio para todos.
Lamento la peque€a clase de etica :))

Un saludo!

Tyako Hatsumaru