Unidad IX

CAPA DE PRESENTACIÓN

A diferencia de las cinco capas inferiores, que solamente se ocupan del movimiento ordenado de bits desde el extremo fuente al extremo destinatario, la capa de presentación se encarga de la preservación del significado de la información transportada. Cada ordenador puede tener su propia forma de representación interna de los datos, por lo que es necesario tener acuerdos y conversiones para poder asegurar el entendimiento entre ordenadores diferentes. Estos datos, a menudo toman la forma de estructuras de datos complejas. El trabajo de la capa de presentación consiste en codificar los datos estructurados del formato interno utilizado en la máquina transmisora, a un flujo de bits adecuado para la transmisión y, después, decodificarlos para representarlos en el formato del extremo destinatario.


Diseño de aspectos de la capa de presentación

La capa de presentación tiene cuatro funciones principales:

1. - Ofrecer a los usuarios una manera de ejecutar las primitivas del servicio de sesión.
2. - Proporcionar una manera de especificar estructuras de datos complejas.
3. - Administrar el conjunto de estructuras de datos que se requieren normalmente.
4. - Transformar los datos entre formas internas y externas.


Representación de datos

Es una realidad que los diferentes ordenadores tiene diferentes representaciones internas para los datos. Todos los grandes ordenadores IBM utilizan el EBCDIC como código de caracteres, mientras que prácticamente todos los demás ordenadores emplean el ASCII para el mismo propósito. La mayoría de los microordenadores utilizan una aritmética de complemento a dos, sobre enteros representados por 16 y 32 bits.


Compresión de datos

La compresión de datos está muy relacionada con la representación de datos. Una manera de transmitir un entero de 32, consiste simple y sencillamente en codificarlos como cuatro octetos, representados de alguna forma y transmitirlos. Sin embargo, se sabe que el 95% de los enteros transmitios se encuentran entre 0 y 250, por lo que podría ser más conveniente transmitir estos enteros en un solo octeto sin signo, y emplear el código 255 para indicar que le sigue un verdadero entero de 32 bits.


Seguridad y confidencialidad en las redes

La protección de datos ante la curiosidad de ciertos usuarios no viene a ser el único aspecto relacionado con la seguridad en la conexión entre redes. Uno podría imaginarse, por lo menos cuatro servicios de seguridad:

1. - Proteger los datos para que no pedan ser leídos por personas que no tiene autorización ara hacerlo.
2. - Impedir que las personas sin autorización inserten o borren mensajes.
3. - Verificar al emisor de cada uno de los mensajes.
4. - Hacer posible que los usuarios transmitan electrónicamente documentos firmados.


Notacion de sintaxis abstracta 1 (ASN.1)

Las reglas para codificar estructuras de datos ASN.1, a un flujo de bits para su transmisión, están dadas en la Norma Internacional 8825. El formato del flujo de bits es llamado sintaxis de transferencia.


Estructuras de datos

Cada aplicación tiene cierta colección de estructuras de datos que son importantes para su funcionamiento, las cuales deben transmitirse a través de la red. La capa de aplicación contiene muchas aplicaciones distintas, cada una de las cuales cuenta con una gran variedad de estructuras complejas que son transmitidas como APDU (Unidades de datos del protocolo de aplicación). Cuando una aplicación quiere transmitir una estructura de datos (es decir una APDU), puede pasar la estructura de datos a la capa de presentación, junto con el nombre en ASN.1 de la estructura de datos.

En el otro extremo de la conexión, la capa de presentación receptora mira la entidad ASN.1 de la estructura de datos.

Utilizar la solución ASN.1 no es la única posibilidad; otra de ellas consiste en pedirles a todas las máquinas que estén conscientes del formato interno que utiliza cada una de ellas en la red.

En el momento en que una aplicación desea transmitir una estructura de datos podría pasar punteros a dos objetos de la capa de presentación. El primero de ellos apunta a la definición formal del tipo de datos en ANS.1, mientras que el segundo apunta a la misma APDU. En el extremo receptor se construye entonces una estructura de datos, semánticamente equivalente, y se pasa a la capa de aplicación.


Sintaxis abstracta

A la descripción ASN.1 del tipo de datos se le conoce como sintaxis abstracta (porque no implica una representación específica.

En la siguiente figura se muestra la lista de los tipos primitivos de la ASN.1. Los nombres de estos tipos son palabras reservadas.

Tipo primitivo Significado
INTEGER Entero de longitud arbitraria
BOLEAN VERDADERO O FALSO
BIT STRING Lista de 0 o más bits
OCTEC STRING Lista de 0 o más octetos
ANY Unión de todos los tipos
NULL Ningún tipo en absoluto
OBJECT IDENTIFIER Nombre del objeto (por ejemplo una biblioteca)

ASN.1 permite que cualquier tipo de dato o campo tenga una etiqueta que lo identifique. Cuatro son los tipos de etiquetas permitidas: UNIVERSAL, APPLICATION, PRIVATE, y específica del contexto. ASN.1 proporciona una manera de suprimir la información del tipo, cuando se envían tipos o campos etiquetados. Para llegar a suprimir esta información, la persona que está escribiendo la sintaxis abstracta puede añadir la palabra reservada IMPLICIT después de la etiqueta.


Sintaxis de transferencia

El principio conductor, detrás de la sintaxis de transferencia de ASN.1, es que cada valor transmitido, tanto los primitivos como los construidos, consiste en principio de cuatro campos:

1. El identificador (tipo o etiqueta).
2. La longitud del campo de datos, en octetos.
3. El campo de datos.
4. La bandera de fin de contenido, si se desconoce la longitud de los datos.

Los 3 primeros campos siempre están presentes, mientras que el último es opcional.


Tecnicas de compresion de datos

Los datos que se transmiten por un canal pueden verse como una secuencia de símbolos, S1,S2,….., SN. Se supone que estos símbolos se extrajeron de algún conjunto de símbolos(posiblemente un conjunto infinito). Ejemplos de estos conjuntos de símbolos, así como de algunos de sus miembros son los que a continuación se presentan:

1. Conjunto de bits: 0, 1.
2. Conjunto de dígitos decimales: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
3. Conjunto de letras: A, B, C,….., X, Y, Z.
4. Conjunto de palabras en inglés: anserine, blebby, coypu, dibble, ennead,…..
5. Conjunto de paises: Argentina, Belgica, China, Dahomey, Egipto,….

La compresión de datos puede obtenerse de tres maneras. Estas tres maneras, respectivamente, están basadas en:

1. La finitud del conjunto de símbolos.
2. Las frecuencias relativas de utilización de los símbolos.
3. El contexto en el que aparece un símbolo.

Ahora, examinaremos cada una de ellas independientemente.


Codificación de un conjunto finito de símbolos igualmente probables

En muchas aplicaciones, los mensajes se extraen de un conjunto finito y se expresan en ASCII. En un proyecto de automatización de biblioteca, por ejemplo, los títulos de la colección de la biblioteca podrían considerarse apropiadamente como un conjunto finito de símbolos. Suponga que cada día una lista completa de libros pedidos se enviara a cada oficina de la biblioteca, de forma que todos sabrían qué libros son los más solicitados y donde. La transmisión diaria podría consistir en el número de oficina, seguido por la lista de todos los títulos pedidos en ese día.

El título de un libro típico es de 20 caracteres. Expresado en ASCII, tal título necesita 140 bits. Ninguna biblioteca en el mundo tiene nada cercano a 2 títulos (la biblioteca del congreso tiene alrededor de 2 títulos). Simplemente dando a cada libro un número de secuencia, se puede reducir el número de bits necesarios de 140 a 26 o aún menos. Sin embargo, el receptor debe tener la lista de libros numerados aunque ésta sólo se ha de transmitir una vez y puede hacerse enviando una cinta magnética.


Codificación dependiente de la frecuencia

En casi todos los textos, algunos símbolos aparecen con mayor frecuencia que otros. En los textos en inglés, por ejemplo, la letra "E" ocurre 100 veces más que la letra "Q", y la palabra "THE" ocurre 10 veces más que la palabra "BE". Esta observación sugiere un esquema de codificación en la que, a los símbolos comunes se les asignen códigos largos.

Como un ejemplo, considérese el dilema de una brillante, pero pobre, joven bióloga, que acaba justo de dividir el código genético del camello salvaje Bactriano. Ella desea enviar un telegrama a su madre(como regalo de cumpleaños), dándole la secuencia de bases en el DNA del camello (adenosina, citosina, guanina y tiamina), pero no puede permitirse el lujo de enviar 2 bits por base. Afortunadamente, ella nota que la probabilidad de ocurrencia de las bases es de 0.50, 0.30, 0.15, 0.05, respectivamente. Al codificarlas como 0,10,110 y 111 (en lugar de 00, 01, 10 y 11), el símbolo promedio ahora requiere de 1.7 bits solamente (en lugar de 2.0). Desafortunadamente, no hay forma de poder alcanzar la codificación mínima teórica con símbolos codificados independientemente, porque muchos de ellos necesitan un número fraccionario de bits.

Sin embargo, un algoritmo desarrollado por Huffman (1952), puede utilizarse para producir una aproximación razonable al límite teórico. El algoritmo, ahora conocido como codificación de Huffman, es el que se describe a continuación.

1. Escribir todos los símbolos, junto con la probabilidad asociada a cada uno de ellos. A medida que el algoritmo se lleva a cabo, se construye un árbol binario, con estos símbolos como nodos terminales. Al inicio, todos los nodos están sin marca alguna.

2. Encontrar los dos nodos más pequeños y marcarlos. Añadir un nuevo nodo, con arcos trazados hacia cada uno de los nodos previamente marcados. Calcular la probabilidad del nuevo nodo como la suma de las probabilidades de los dos nodos a los que está conectado.

3. Repetir el paso 2 hasta que se hayan marcado todos los nodos, con excepción de uno. La probabilidad del nodo que ésta sin marcar será siempre de 1.0.

4. La codificación para cada símbolo puede ahora determinarse trazando una trayectoria que va del símbolo sin marca a dicho símbolo, registrando la secuencia de las ramas tomadas a izquierda y derecha. El código es precisamente la trayectoria, con la izquierda = 0 y la derecha = 1 (o viceversa).

La codificación aritmética representa a cada símbolo como una porción de la recta de números reales entre 0 y 1. La codificación de una secuencia de símbolos en definitiva resulta en la selección de una parte (normalmente muy pequeña) de los reales y en la transmisión de un número de dicha parte.


Codificación dependiente del contexto

El método supone, que la probabilidad de aparición de una "T" siguiendo directamente a una "Q", es casi cuatro veces mayor que la probabilidad de aparición de una "U", siguiendo a una "Q". Con la ayuda de un esquema más sofisticado se podría determinar la probabilidad condicional de cada símbolo, para cada uno de los posibles predecesores. Para el caso de que los símbolos sean letras, esto nos conduce a tener 26 tablas, una para la distribución posterior a una "B", etcétera.

La desventaja de este método de probabilidad condicional es el gran número de tablas que se necesitan. Si hay k símbolos, por ejemplo, las tablas correspondientes deberán tener k entradas.

Un método relacionado con éste, llamado de codificación de series largas puede utilizarse para codificar cadenas largas de bits que contengan predominantemente ceros.

Cada símbolo de k bits indica el número de bits con valor 0 que se presentaron entre bits consecutivos de valor 1. Para el manejo de series largas de ceros, el símbolo que está compuesto de todos los bits con valor 1. Para el manejo de series largas de ceros, el símbolo que está compuesto de todos los bits con valor 1 significa que la distancia verdadera es 2 - 1, más el valor del siguiente símbolo (o símbolos). Por ejemplo, la siguiente cadena de bits.

00010000010000001000000000000001000000100010000000110100000101

consta de las series de longitudes 3, 5, 6, 14, 6, 3, 7, 0, 1, 5 y 1. Esta se codificaría por medio de símbolos de 3 bits, de la siguiente manera:

011 101 110 111 111 000 110 011 111 000 000 001 101 001

para así obtener un ahorro del 34%.


CRIPTOGRAFIA TRADICIONAL

Históricamente hay cuatro clases de individuos han utilizado y han contribuido, de una manera importante, en el arte de la criptografía: los militares, los cuerpos diplomáticos, las personas que llevan un diario, los enamorados.

Los mensajes que se tienen que poner en clave conocidos como texto en claro, se transforman mediante una función que esta parametrisada mediante una clave . la salida del proceso de puesta en clave , conocido como texto cifrado o criptograma, es entonces transmitida, muy frecuentemente por medio de una mensajero o por radio.

Se supone que el enemigo, o sea el intruso, escucha y copia cuidadosamente el texto cifrado completado. Sin embargo, a diferencia del receptor asignado, el intruso no conoce la clave y , por lo tanto, no puede descifrar con facilidad dicho texto en algunas ocasiones el intruso no solo escucha la comunicación que se hace a través del canal (intruso pasivo), si no también puede registrar los mensajes y repetirlos posteriormente, incluir sus propios mensajes, o bien , modificar los mensajes originales antes de que llegue al receptor(caso de u intruso activa). Al arte de quebrar el cifrado se le conoce como criptoanalisis. Al arte de inventar cifras(criptografía) y desbaratarlas(criptoanalisis) se le conoce colectivamente, como criptografía.

Una regla fundamental en criptorafía es que, uno debe suponer que el criptoanalista conoce el método general utilizdo par el cifrado.

Históricamente los métodos descifrados han sido divididos en dos categorías: cifradores de sustitución(incluyendo los codigos) y cifradores de transpocision.


Cifradores de sustitución

En un cifrador de sustitución, cada letra o grupo de letras es substituye por otra letra o grupo de letras para disfrazarla. El cifrado más antiguo que se conoce es el cifrado de CESAR, atribuido a Julio Cesar.

En este método, a se representa por D, b se representa por E, c se representa por F,.... , y z se representa por C. Los textos claros se representan con letras minúsculas, mientras que los textos cifrados utilizaran letras mayúsculas. En el texto los dos tipos se representan por medio de letras itálicas.

Cifrado Vigenere consiste de una matriz cuadrada que contiene 26 alfabeto de cesar. El primer renglón, llamado A, es ABCD... XYZ. El siguiente renglón, llamado renglón B es BCD...YZA . Finalmente, el ultimo renglón llamado renglón Z es ZABCD...WXY.

Los cifradores de substitución no siempre necesitan trabajar con una letra a la vez. Por ejemplo, el cifrador Porta utiliza una matriz de 26*26, al igual que el cifrador Vigenere. El texto en claro se codifica con dos caracteres al mismo tiempo; el primer carácter indica un renglón, y el segundo una columna. La pareja de números o letras que se encuentran en una intersección representa el valor puesto en clave.


Cifradores de transposición

Los cifradores de substitución y los códigos preservan el orden de los símbolos del texto en claro, pero los disfrazan. A diferencia de éstos, los cifradores de transposición, reordenan las letras pero no las disfrazan.


La norma de cifrado de datos

Aunque la criptografia moderna utiliza las mismas ideas básicas de la criptografía tradicional, es decir, los conceptos de transposición y substitución, su criptografía es diferente. Los criptógrafos , tradicionalmente, han utilizado algoritmos muy sencillos y han confiado en claves muy largas para su seguridad. En la actualidad, lo contrario resulta cierto: el objetivo es el de hacer un algoritmo de cifrado tan complicado e intrincado que, incluso si el criptoanalista adquiere grandes cantidades de texto cifrado de su propia elección, no tenga ninguna posibilidad de obtener de él nada con sentido.

La disponibilidad de tener un hardware rápido y económico ha estimulado a muchos otros usuarios para que adopten la Norma de cifrado de datos (DES).


Cifrador de flujo

Otra manera de lograr que el criptoanalisis de la DES sea más difícil, es la de hacerla funcionar como si fuera un cifrador de flujo, en lugar de que opere como un cifrador de bloque, como se ha descrito hasta ahora. Cuando se utiliza como un cifrado de flujo, tanto el transmisor como el receptor operan sus circuitos integrados DES en modo de cifrado (es decir, opuesto al descifrado).


Controversia sobre la DES

Varios científicos de los ordenadores han proclamado que los 56 bits representan un tamaño muy pequeño para una clave, haciendo que sea fácilmente atacada aplicando la fuerza bruta.

Otra cosa que a molestado a numerosos científicos es el rechazo de IBM para hacer públicas las razones por las cuales se escogieron para el cifrador unas cajas-S especificas.


El problema de la distribución de la clave

Otro problema con la DES es que, para que el receptor descifre los mensajes, necesita utilizar la misma clave que el transmisor empleó para ponerlos en clave.

Como consecuencia de esto, surge el problema sobre la manera segura de distribuir las claves secretas.

Por supuesto, el mismo intercambio de claves deberá cifrarse, y hacerlo mediante una clave que no esté todavía comprometida.


Protección de claves

Aunque el hecho de esconder la clave para que no esté al alcance de los intrusos es importante, también lo es hacerlo para uno mismo.


Autentificación

En sistemas orientados a conexión, la autentificación puede realizarse en el momento en que se establece una sesión.

El planteamiento tradicional consiste en hacer que el usuario compruebe su identidad, mediante la presentación de una contraseña. Este método no solamente expone al usuario a una intersección pasiva, sino que también puede exigirle al ordenador que autentifica(por ejemplo, el banco) mantener una lista interna de contraseñas, lo cual, en sí mismo, viene a ser un problema potencial de seguridad. Mediante el empleo de la clave pública criptográfica, es posible efectuar la autentificación de una manera fiable, sin necesidad de almacenar ninguna contraseña.


Firmas digitales con criptografía convencional

Sin embargo, una vez que nos hayamos resignado a tener una autoridad central que lo conozca todo, como si fuera el hermano mayor, tanto el secreto como la firma digital pueden obtenerse mediante la criptografía convencional.


Ejemplos de la capa de presentacion

En esta sección se examinarán los ejemplos que se han venido utilizando normalmente, con objeto de ver cómo tratan los aspectos de la capa de presentación.


Capa de presentación en redes públicas

Las redes publicas que realizan la capa de sesión, también incluyen la capa de presentación. Después de todo, la mayor parte del trabajo que hace la capa de presentación es precisamente ofrecer los servicios de sesión disponibles a los usuarios de la capa de aplicación.

Otra característica de la capa de presentación (aunque no llegue a ser formalmente un servicio), es el uso de la ASN.1.

El protocolo de presentación es sorprendentemente sencillo, dado que la mayoría de las primitivas de servicio de presentación simplemente causan la invocación de las primitivas de sesión correspondientes.


Capa de presentación en ARPANET

ARPANET no tiene capa de presentación. No existe ninguna forma de propósito general, para pasar estructuras de datos arbitrarios entre máquinas incompatibles. ARPANET, naturalmente, tiene una gran variedad de máquinas, por lo que el problema en realidad si existe.

La solución que se utiliza es la de hacer que cada aplicación defina sus propias normas. Por lo tanto, el protocolo de transferencia de archivos especifica que la longitud del campo deberá estar constituida por enteros de 32 bits en complemento a dos y que todas las aplicaciones deberán utilizar este formato en el cable, independientemente de lo que utilicen de manera interna.

Capa de presentación en MAP y TOP

MAP y TOP soportan las funciones básicas de la capa de presentación del modelo OSI, relativas al establecimiento de conexiones y administración de múltiples contextos. Las primitivas asociadas con la conmutación de contextos, en los limiten de las actividades, no están soportadas, porque el concepto general de actividad tampoco se encuentra soportado por la capa de sesión.

La utilización de ASN.1 es obligatorio. Los documentos MAP Y TOP contienen referencias a varias sintaxis abstractas para la transferencia de archivos, transferencia de mensajes, administración de redes y servicios de directorio que deben ser soportados por todas las realizaciones de MAP y TOP. Las sintaxis de transferencia para estas sintaxis abstractas también se especifican.


Capa de presentación en USENET

Al igual que ARPANET, USENET no tiene una solución general ante el problema de tener máquinas incompatibles.

Cada aplicación deberá resolver su propio problema; sin embargo, dado que sólo hay dos aplicaciones, el correo y las noticias, y estas dos están estrechamente relacionadas, la solución no es demasiado difícil.

Como en el caso de ARPANET, cada aplicación tiene un conocimiento dentro de sí de los formatos externos necesarios, y sólo lleva a cabo todas las conversiones internamente, antes de ofrecer cualquier mensaje para su transmisión.



©Uriarte Ramírez José Rodolfo

©Arredondo Hernandez Edy Paul