39
1 Redes de Computadores 13 Formato y Manejo de Datos Prof. Javier Cañas R. Universidad Técnica Federico Santa María Departamento de Informática Javier Cañas R. 2002 2 Temario 1 Introducción 2 Tipos de Datos 3 Compresión de Datos 4 Compresión de Imágenes 5 Seguridad

Temario - inf.utfsm.cllhevia/asignaturas/infoysoc/topicos/... · Generación de Stubs (RPC) Llamar a P Stub del Cliente Stub del Servidor P RPC RPC Compilador de Stub ... • ISO

Embed Size (px)

Citation preview

1

Redes de Computadores 13 Formato y Manejo de Datos

Prof. Javier Cañas R.Universidad Técnica Federico Santa María

Departamento de Informática

Javier Cañas R. 2002 2

Temario

1 Introducción2 Tipos de Datos3 Compresión de Datos4 Compresión de Imágenes5 Seguridad

2

Javier Cañas R. 2002 3

1 Introducción• Los mensajes que circulan en una red transportan

datos.• Si bien los datos dependen de las aplicaciones,

existen transformaciones comunes que se puedenaplicar antes de ser enviados.

• Datos de distintos tipos deben ser codificados deforma tal que sean independientes de plataformasespecíficas.

• Otro aspecto importante es la compresión quepermite optimizar el BW disponible.

• La encriptación de datos provee seguridad.

Javier Cañas R. 2002 4

Formatos de Presentación

• Desde la perspectiva de la red, losprogramas de aplicación se envíanmensajes.

• Desde la perspectiva de las aplicaciones, losmensajes contienen varios tipos de datos:números enteros, flotantes, texto, video,imágenes digitales, etc...

• Para cada tipo de datos, existen formatosestándares.

3

Javier Cañas R. 2002 5

Formatos Estándares

• Video:– MPEG (Moving Pictures Experts Group)

• Imágenes:– JPEG ( Joint Photographics Experts Group)– GIF ( Graphical Interchange Format)

• Documentos Multimedia:– HTML ( HyperText Markup Language)– MIME (Multipurpose Internet Mail Extensions)

• Texto:– ASCII (American Standard Code for Information

Interchange)

Javier Cañas R. 2002 6

Transformación de datos

• Los formatos de presentación involucran latransformación de los datos.

• La transformación involucra la codificación(marshalling) y decodificación(unmarshalling)

• ¿por qué es necesario transformar?– Formatos big-endian y little-endian– Diversos formatos para números flotantes

4

Javier Cañas R. 2002 7

Ejemplo: el número 34.677.374

00000010 00010001 00100010 01111110

2 17 34 126

Big-endian

00000010000100010010001001111110

21734126

Little-endian

Arquitecturas Big-endian:Macintosh, Sun Sparc, MIPS

Arquitecturas Little-endian: Intel 80x86, DEC Station 3100

Javier Cañas R. 2002 8

Lenguajes y Compiladores

• Las aplicaciones se escriben en diversoslenguajes de programación.

• Para un mismo lenguaje existen diversoscompiladores.

• Cada lenguaje usa diversas estrategias paraalmacenar estructuras de datos en memoria.Por ejemplo struct. Esto significa que no esposible intercambiar struct sin hacertransformaciones

5

Javier Cañas R. 2002 9

2 Tipos de Datos• ¿Qué tipos de datos debe soportar un

sistema?– Los tipos de datos se pueden clasificar en tres

niveles• Tipos bases: int, float, char (dificultades con big

y little endian)• Tipos planos: struct y array (dificultades con

rellenos “padding”)• Tipos complejos: Punteros (¿Cómo transmitir un árbol de

búsqueda binaria?)

Javier Cañas R. 2002 10

Codificación de Argumentos

struct

int

array

puntero

Codificador

Estructura de datosde la

aplicación

•Conversión•Empaquetamiento•Linealización

6

Javier Cañas R. 2002 11

Etiquetas (Tags)• ¿Cómo sabe el receptor que tipo de datos contiene

el mensaje que recibe?Existen dos soluciones a este tema:– Con etiquetas (Tags)– Sin etiquetas

• Una etiqueta es una información adicional quecontiene el mensaje que ayuda al receptordecodificarlo.

• Existen varios tipos de etiquetas:– De tipo: int, float, char, etc..– De tamaño– De arquitectura

Javier Cañas R. 2002 12

Solución sin Etiquetas (Untagged)

• ¿Como sabe el receptor en este caso?Porque se programa para que así sea. Porejemplo un RPC que tenga como argumentosdos enteros y un flotante, no hay necesidadde explicar nada

• Falla al enviar arreglos variables. En estecaso es necesario incorporar una etiquetaque indique el largo del arreglo

7

Javier Cañas R. 2002 13

Stubs

• Un Stub (colilla) es código que permiteempaquetar y desempaquetar argumentos enuna forma estándar. Se usan principalmenteen protocolos RPC.

• Los Stubs pueden ser compilados ointerpretados.

• Si los Stubs son compilados, losprocedimientos se pueden adaptar a lasaplicaciones. Si utiliza un compilador lageneración del stub es eficiente.

Javier Cañas R. 2002 14

Generación de Stubs (RPC)

Llamar a P

Stub delCliente

Stub delServidor

P

RPC RPC

Compilador de Stub

Descripción dela interfaz de P

argumentos

código

especificaciones

mensaje

8

Javier Cañas R. 2002 15

XDR (External Data Representation)

• XDR es el formato de datos que se utiliza enSunRPC. Soporta tipos de datos de C, perosin punteros.

• Usa etiquetas (tags) sólo para el largo dearreglos y los stubs son compilados

• Un entero en XDR se representa encomplemento 2 con 32 bits en formato bigendian. Al igual que el lenguaje C soportaenteros con y sin signo

Javier Cañas R. 2002 16

Arreglos y Estructuras en XDR

• Primero se especifica el número de elementos delarreglo mediante un entero de 4B sin signo, seguidopor los elementos del tipo apropiado.

• Los componentes de una estructura se codifican enel mismo orden de su declaración. Al igual que losarreglos, el tamaño de cada elemento componentese representa en múltiplos de 4 Bytes. Estructurasmás pequeñas son rellenadas con ceros

• La excepción son los char (caracteres) que secodifican uno por byte

9

Javier Cañas R. 2002 17

Ejemplo: estructura en XDR#define MAXNOMBRE 256;

#define MAXLISTA 100;

struct item {

int cuenta;

char nombre[MAXNOMBRE];

int lista[MAXLISTA];

};

3 7

cuenta nombre

c a r m o n a

3 219

lista385 1847

Javier Cañas R. 2002 18

3 Compresión de Datos

• Muchas aplicaciones requieren enviar másdatos en un período de tiempo que lo puedesoportar el ancho de banda. Por ejemplo unflujo de 10Mbps de video en un link que sólodispone de 1Mbps.

• Estas aplicaciones requieren de dosprocesos: compresión y descompresión.

• En forma simple, compresión significaremover datos redundantes de lainformación

10

Javier Cañas R. 2002 19

Códigos de Huffman• Si se requiere enviar un bloque de datos cuyos

símbolos son letras: A, B,....Z, si todos los símbolostienen la misma probabilidad de ocurrencia, serequiere de 5 bits para cada símbolo.

• Si la E ocurre el 50% de las veces, es mejor utilizarmenos bits para la E que los demás símbolos.

• Conociendo la probabilidad relativa de cada símbolose puede asignar un número de bits que minimice eltotal de bits transmitidos.

• Esta es la idea central de los Códigos de Huffman

Javier Cañas R. 2002 20

Compresión con pérdida y sin pérdida

• La compresión sin pérdida asegura que losdatos recuperados del procesodecompresión/descompresión esexactamente los datos originales. Ejemplo:programas ejecutables, archivos de texto,datos numéricos, etc...

• La compresión con pérdida puede removerinformación imposible de recuperar. Ej.imágenes, video, audio.

11

Javier Cañas R. 2002 21

¿Cuándo Comprimir?

• El proceso de compresión y descompresióninvolucra tiempo. ¿vale la pena hacerlo?

• Sea BWdato el Ancho de banda promedio alcual se alimenta el compresor y eldescompresor.

• BWlink es el Ancho de banda de la red paradatos sin compresión

• rd es la razón de compresión promedio

Javier Cañas R. 2002 22

Transmisión de x bytes

• La compresión es benéfica cuando:

• Lo cual es equivalente a:linklinkdato BWx

BWrdx

BWx <

×+

linkrdrd

dato BWBW ×> −1

Por ejemplo, si rd=2, para que la compresión tenga

sentido, BWdato > 2 ×BWlink

12

Javier Cañas R. 2002 23

Compresión Sin Pérdida

• Se describen tres algoritmos decompresión sin pérdida:– RLE (Run Length Encoding)– DPCM (Differential Pulse Code

Modulation)– Métodos basados en diccionarios

Javier Cañas R. 2002 24

RLE• Se reemplazan ocurrencias consecutivas de

un mismo símbolo por una copia del símbolomás una cuenta del número de veces queocurre

• Por ejemplo: AAABBCDDDDD se codificacomo: 3A2B1C5D

• RLE se aplica a imágenes digitalescomparando pixeles adyacentes ycodificando sólo cambios.

• RLE se utiliza en transmisión de FAX eimágenes. Es posible lograr relaciones de 8:1

13

Javier Cañas R. 2002 25

DPCM• La idea es sacar un símbolo de referencia y

posteriormente, por cada símbolo de datosacar sólo la diferencia entre el símboloactual y el símbolo de referencia. Por ejemplosi A es el símbolo de referencia, lacodificación del string: AAABBCDDDDD es:A00011233333

• Cuando la diferencia es pequeña serequieren pocos bits. Si la diferencia llega aser muy grande se saca una nuevareferencia. En imágenes trabaja mejor queRLE

Javier Cañas R. 2002 26

Método basado en Diccionarios• Dentro de estos métodos, el más conocido es

el llamado Lempel-Ziv (LZ).• La idea es construir un diccionario (tabla) de

strings de largo variable que se esperaencontrar en los datos. Reemplazar los datospor el índice a la tabla.

• Por ejemplo si el diccionario tiene 25000palabras, se requiere 15 bits para codificar elíndice.

• Por ejemplo si se quiere codificar el stringinformática se requieren 15 bits en vez de 77

14

Javier Cañas R. 2002 27

4 Compresión de Imágenes• Las imágenes digitales son utilizadas

extensivamente.• ISO definió un formato estándar llamado JPEG (Joint

Photograhics Experts Group)• JPEG, al igual que GIF y MPEG no son sólo

algoritmos de compresión sino que definen formatosde representación de datos al igual que XDR

• JPEG contiene tres fases:– TDC (Transformada Discreta de Coseno)– Cuantización– Codificación

Javier Cañas R. 2002 28

Compresión JPEG

TDC cuantización codificaciónJPEG

Las tres fases se alimentanen bloques

de 8 x 8 por vez

15

Javier Cañas R. 2002 29

JPEG: Fase TCD• Se puede pensar en que una imagen es una

señal en un dominio espacial. La TCDtransforma esta señal en una señalequivalente en un dominio espacial defrecuencia

• En este sentido, la TCD es muy similar a laFFT.

• La TCD toma una matriz de 8 x 8 valores depixeles y genera una matriz de salida de 8 x8 coeficientes.

Javier Cañas R. 2002 30

JPEG: Fase TCD• Se puede pensar en una señal bidimensional

x-y de 64 puntos (8 x 8). Esta señal sedescompone en 64 “frecuencias espaciales”.

• Intuitivamente se puede pensar en un pixelcomo una función en x. Si este valor cambialentamente con x, tiene una baja frecuenciaespacial y si cambia abruptamente, tiene unaalta frecuencia espacial.

• Las bajas frecuencias corresponden a laparte gruesa de una imagen y las altasfrecuencias a los detalles

16

Javier Cañas R. 2002 31

La Transformada TCD y su inversa

( ) ( )

+

∑−

=∑−

=

+=

N

iπyN

x

N

y N

iπxpixel(x,y)C(i)C(j)

NTCD(i,j)

2

12cos

1

0

1

0 2

12cos

2

1

( ) ( )

01,,02

1)(

2

12cos

2

121

0

1

0cos),()()(

2

1),(

>==

++∑−

=∑−

==

xsisinoxsixC

N

iy

N

ixN

i

N

jjiTCDjCiC

Nyxpixel

ππ

Javier Cañas R. 2002 32

Observación

• El primer coeficiente de frecuencia se ubicaen la posición (0,0) de la matriz de salida.Este coeficiente se denomina Coeficiente DC.Representa una medida del promedio de losdemás valores

• Los 63 elementos restantes se denominancoeficientes AC

• Los componentes de alta frecuencia vandejando de ser importantes en la calidadglobal de la imagen

17

Javier Cañas R. 2002 33

JPEG: Fase de Cuantización• La segunda fase es donde la compresión presenta

pérdidas. La transformada TCD no pierdeinformación ya que solo transforma.

• La idea en forma simple es la siguiente:Supongamos que queremos comprimir númerosenteros menores que 100: 45, 68, 8 y 21. Sidecidimos truncar al múltiplo más cercano de 10 essuficiente considerar: 4, 6, 0, 2. En vez de 7 bits pararepresentar cada número ahora se requieren sólo 4.

• JPEG utiliza cuantización para cada uno de los 64coeficientes de la TCD a través de una Tabla

Javier Cañas R. 2002 34

Ecuaciones de Cuantización

),(Cuantum),(izadoValorCuant),(5.05.0

)(teroRedondeoEn

)),(

),((teroRedondeoEn),(izadoValorCuant

jijijiTCDoxsixoxsix

x

jiCuantumjiTCDji

×=

<−≥+

=

=

18

Javier Cañas R. 2002 35

Tabla de Cuantización

=

3129272523211917

2927252321191715

2725232119171513

2523211917151311

232119171513119

21191715131197

1917151311975

171513119753

Cuantum

Javier Cañas R. 2002 36

Ejemplo

• Supongamos que el coeficiente del cosenodiscreto vale 26 para TCD(1,2). Usando latabla de cuantización se tiene que:

35.0926 =

+

Durante la descompresión este valor se restaura a

27

19

Javier Cañas R. 2002 37

JPEG: Fase de Codificación• Una compresión adicional se logra en la fase de

codificación en la cual se compactan los coeficientes.• Esta compresión adicional no tiene pérdida.• Se comienza con el coeficiente DC (0,0) y siguiendo

un orden en zigzag, se aplica una codificación RLE alos coeficientes que son cero. Los coeficientesindividuales se codifican usando un código deHuffman.

• Gran parte de la información del bloque de 8x8 estácontenida en el coeficiente DC. Como el cambio eslento de bloque en bloque, cada coeficiente DC secodifica acorde a la diferencia con el previo, es decirse usa codificación DPCM

Javier Cañas R. 2002 38

Recorrido de los coeficientes defrecuencia cuantizados

20

Javier Cañas R. 2002 39

5 Seguridad

• Hemos visto que los datos sufrentransformaciones de presentación ycompresión. Una tercera transformación es laencriptación.

• La encriptación es utilizada cuando los datosque viajan por la red pueden ser leídos porpersonas no autorizadas por ejemplo ennúmero de una trajea de crédito en unatransacción de comercio electrónico.

Javier Cañas R. 2002 40

Aspectos adicionales de Seguridad

• Además de la encriptación, es necesarioincluir otros servicios:– autenticación: verificar la identidad de un

participante remoto– integridad de mensajes: tener la seguridad que

el mensaje no ha sido alterado

21

Javier Cañas R. 2002 41

Taxonomía de Sistemas de Seguridad

• Seguridad:– Algoritmos de Encriptación:

• Clave Secreta (DES)• Clave Pública (RSA)

– Servicios de Seguridad• Privacidad• Autenticación• Integridad de Mensajes

Javier Cañas R. 2002 42

Criptografía con Claves Secretas(Encriptación Simétrica)

22

Javier Cañas R. 2002 43

Criptografía con Claves Públicas(Encriptación Asimétrica)

Javier Cañas R. 2002 44

Fundamentos de Criptografía Simétrica

• El Algoritmo de encriptación es conocido.Sólo la llave es secreta.

• Un buen algoritmo está protegido de ataquesque buscan deducir la llave a partir delcontenido del texto cifrado.

• Por ejemplo, el Algoritmo DES haceprácticamente imposible encontrar la llave apartir del texto cifrado.

23

Javier Cañas R. 2002 45

Algoritmo DES (Data Encryption Standard)

• DES encripta bloques de 64bits de textoplano usando una llave de 64 bits.Actualmente se usan 56b y el último Byte seusa como bits de paridad.

• DES tiene 3 fases:– Se permutan los 64 bits del bloque– Se aplica 16 veces una misma operación usando

la clave. Esta operación es una selección– Al resultado se aplica la operación inversa a la

permutación original

Javier Cañas R. 2002 46

Algoritmo DES

Permutacióninicial P

op1

op2

op16Permutaciónfinal P-1

Llave de56bits

¿Para qué sirvenlas permutaciones?

24

Javier Cañas R. 2002 47

Selección• En cada operación de selección, el bloque de

64 bits es separado en dos mitades de 32bits. Además 48 diferentes bits sonseleccionados de la llave de 56 bits.

• Sea Li y Ri las mitades izquierda y derechadel bloque de 64 bits en la fase i y sea Ki los48 bits de la llave de 56bits en la fase i.

• Las tres partes se combinan acorde a lasiguiente regla:Li = Ri-1

Ri = Li-1 ⊕ F(Ri-1, Ki) (⊕ es el OR exclusivo)

Javier Cañas R. 2002 48

Discusión• ¿Es seguro DES?

– No hay ninguna prueba matemática• ¿Como quebrar DES?

– Examinar exhaustivamente todas las posiblesclaves (hay 256). En promedio se necesita 255, osea, 3.6 ×××× 1016 claves

– En una máquina de 200MIPS puede tomar 4000años

25

Javier Cañas R. 2002 49

Fundamentos de Encriptación

• Cualquier sistema mantiene datos sensibles para laorganización.

• A través de las redes viaja esta información. Esposible entonces accesar o interceptar informaciónsensible.

• Para proteger información sensible se necesitanmecanismos de protección.

Javier Cañas R. 2002 50

Mecanismos de Mecanismos de EncriptaciónEncriptación• El mecanismo básico trabaja de la siguiente

manera:– La información (texto) es encriptada desde su

forma legible (texto claro) a una forma interna(texto cifrado). El texto cifrado no es posible deentender.

– El texto cifrado se puede almacenar en archivossin protección de lectura o transmitido sobrecanales inseguros

– Para leer el texto cifrado se necesita desencriptarla información para volverla a transformar en textoclaro.

26

Javier Cañas R. 2002 51

Propiedades de la Propiedades de la EncriptaciónEncriptación• Sea:

– E: algoritmo general de encriptación– D: algoritmo general de desencriptación– k: clave de encriptación– m: mensaje

• Se debe cumplir que:– Dk(Ek(m)) = m– Ek y Dk se calculen en forma eficiente– La seguridad debe depender de k y no de los algoritmos E y

D

Javier Cañas R. 2002 52

Encriptación Encriptación DESDES

• Una forma posible es el estándar DES (DataEncryption Standard)

• ¿Cómo distribuir la clave k?– Una solución posible es la utilización de claves

públicas y claves privadas.– Cada usuario tiene dos claves una pública y una

privada. Ambos se pueden comunicar conociendosólo la clave pública del otro

27

Javier Cañas R. 2002 53

Algoritmo RSA (Algoritmo RSA (RivestRivest, , Shamir Shamir y y AdlemanAdleman):):ejemplo de Algoritmo de claves públicasejemplo de Algoritmo de claves públicas

• Clave pública: <E,n>• Clave privada: <D,n>• E,D,n: enteros positivos• cada mensaje se representa como un entero entre 0

y n-1 (mensajes largos de descomponen enmensajes cortos . Cada uno se representa por unentero)

• Se definen E y D como:– E(m) = mE mod n = C

– D(C) = CD mod n = m

Javier Cañas R. 2002 54

Propiedades del Algoritmo RSAPropiedades del Algoritmo RSA• Sea:

– E: Llave pública para codificar– D: Llave privada para decodificar– m: mensaje

• Se debe cumplir que:1) D (E (m)) = m2) E y D se calculan en forma fácil3) Si se publica E, no hay forma de calcular D4) E(D(m))=m

28

Javier Cañas R. 2002 55

Algoritmo RSAAlgoritmo RSA

• ¿Cómo se obtiene D y E?– Hay que obtener p y q: números enteros, primos y

muy grandes– Se calcula n= p x q– Se elige E <n tal que E y (p-1)x(q-1) son primos

relativos (no tienen factores comunes mayoresque 1)

– Se calcula D tal que E x D mod ((p-1)x(q-1))=1– La Llave pública es <E,n>– La Llave privada es <D,n>

Javier Cañas R. 2002 56

Codificación RSACodificación RSA

• Dado un texto, se separa en grupo de caracteres detamaño fijo y se transforman a números enteros.

• Por ejemplo:

abra cadabra ABRA CADABRA Abra Cadabra

X1 X2 X3

Xi es entero tal que Xi < n-1. Desde xidebe ser posible volver al string

29

Javier Cañas R. 2002 57

Codificación RSACodificación RSA• Codificar:

xiE mod n = yi

• Decodificar:yi

D mod n = xi

• Ejemplo:– Sea p=2 y q=5 (p y q son primos)– Sea n=10– (p-1)x(q-1)=4– E < n y 4 deben ser primos relativos. Elijo E=3– Cálculo de D: E x D mod ((p-1)x(q-1))=1

Javier Cañas R. 2002 58

Codificación RSACodificación RSA– Cálculo de D: E x D mod ((p-1)x(q-1))=1– O sea, E x D mod 4 = 1, E x D= 4 k +1– E x D= 4k +1. ¿Existe k?– 3 x D= 4k +1. D= (4k+1)/3. Si k=2, D=3. Si k=5, D=7– 21 mod 4=1 ¡Funciona!

– Sea x=2 el número a encriptar. 2E=23=8 mod 10=8,y=8

– Ahora desencriptaremos. 8D=87=2097152 mod 10=2– ¡Funciona!

30

Javier Cañas R. 2002 59

¿Cómo se eligen las claves?¿Cómo se eligen las claves?• La seguridad depende del número de bits:

– Netscape y Explorer usan RSA con 48 bits– mejor seguridad se obtiene con 128 y 1024 bits, pero el

cálculo se vuelve muy difícil• ¿Se puede quebrar RSA?

– En 1977 se lanzó el reto de quebrar un string de 129 dígitos(430 bits)

– Se pensaba que era inviolable ya que los algoritmos defactorización de grandes números estimaban 40 cuadrillonesde años de computación para quebrarlo

Javier Cañas R. 2002 60

¿¿Se puede quebrar RSA?Se puede quebrar RSA?– En abril de 1994, sólo 17 años mas tarde, cuatro científicos

reportaron que habían quebrado el código. El mensajeencriptado era:THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE

– Se utilizó un método de factorización que requería 5000MIPS-año. Se dividió el problema en pequeñas partes quese distribuyeron por correo electrónico a todo el mundo. Enla práctica no se requieren 5000 MIPS-año ya que las clavesno siempre se eligen de manera óptima

31

Javier Cañas R. 2002 61

Observaciones• La premisa de RSA es que factorizar

números grandes es computacionalmenteuna tarea compleja.

• Si se puede factorizar n, se obtiene p y q ypor lo tanto D.

• Previendo mayor capacidad computacional,se están usando llaves de 768 y 1024 bits

• El estándar RSA es el RFC2473

Javier Cañas R. 2002 62

AutenticaciónAutenticación• Antes que dos participantes establezcan un canal

seguro (usando DES o RSA) deben estar segurosque la otra parte es efectivamente quien dice ser.Este es el problema de la autenticación.

• Ejemplo un servidor de archivo recibe la orden deeliminar un determinado archivo de su dueño. ¿Esefectivamente el dueño del archivo?

• Veremos tres protocolos de autenticación:– Handshake de Tres Saltos– Tercera Parte Confiable– Autenticación de Llave Pública

32

Javier Cañas R. 2002 63

Handshake de tres Saltos

• Lo más simple es pensar en dos partes comocliente y servidor que comparten una llavesecreta.

• El Cliente y el Servidor se autentifican cadauno usando un handshake de tres saltos.

• Sea E(m,k) la encriptación del mensaje musando la llave k.

• Sea D(m,k) la desencriptación del mensaje musando la llave k

Javier Cañas R. 2002 64

Handshake de Tres Saltos

Cliente ServidorId-Cliente, E(x, CHK)

E(x+1, SHK), E(y, SHK)

E(y+1, CHK)

E(SK, SHK)

33

Javier Cañas R. 2002 65

Algoritmo Handshake de Tres Saltos

1) El Cliente elige un número aleatorio x, lo encriptacon su llave secreta CHK (CHK es la llave dehandshake del Cliente

2) El cliente envía E(x, CHK) junto con una

identificación de cliente (Id-Cliente)

3) El Servidor usa la Llave que el piensa corresponde alCliente (SHK) y desencripta el número aleatorio. Lesuma 1 y lo vuelve a enviar al cliente. Tambiéngenera un número aleatorio y que lo encripta conSHK

Javier Cañas R. 2002 66

Algoritmo Handshake de Tres Saltos

4) El Cliente verifica si el número encriptadocorresponde a x+1. Si es asi, ya tiene autentificado alservidor

5) El Cliente desencripta y usando SHK, le suma 1 y lodevuelve al servidor

6) después del tercer mensaje, ya están ambosautentificados.

7) En el cuarto mensaje, el servidor le envía una Llavede sesión (SK) encriptada con SHK que usanposteriormente para intercambiar datos

34

Javier Cañas R. 2002 67

Protocolo de Tercera Parte Confiable

• El escenario más probable es que ninguna de lasdos partes sepa algo de la otra. En este caso unatercera parte puede ser de utilidad. La tercera partees un Servidor de Autenticación

• Se presenta el protocolo Kerberos, basado enTCP/IP y desarrollado en el MIT.

• Los dos participantes se llamarán A y B. El servidorde autenticación se llamará S.

• Kerberos asume que A y B en forma independientecomparten una clave secreta con S

Javier Cañas R. 2002 68

Kerberos• Sean KA y KB las llaves que A y B respectivamente

comparten con S.• Sea E(m,K) el mensaje m encriptado con la llave K• Inicialmente A envía a S un mensaje que identifica a

A y a B.• El servidor genera un valor de tiempo T (similar al

número aleatorio x) un tiempo de vida L y una llaveK. T y L permiten establecer una validez temporal aK. Si el tiempo expira A y B deben recurrirnuevamente a S a solicitar una nueva llave.

35

Javier Cañas R. 2002 69

...Kerberos• S responde a A con un mensaje que contiene dos

partes.– La primera encripta T, L y K junto con la identificación de B

usando la Llave KA

– La segunda encripta T, L y K junto con la identificación de Ausando la Llave KB

• Cuando A recibe el mensaje sólo puede desencriptarla primera parte pero no la segunda. Le pasa lasegunda parte intacta a B junto con A y T encriptadocon la nueva Llave K.

• Finalmente B desencripta la parte que A le envíaintacta y recupera T, K y A

Javier Cañas R. 2002 70

...Kerberos• B usa K para desencriptar la primera parte del

mensaje que le llega desde A y verifica si hayconsistencia con los valores de A y K

• B envía a A usando K el valor T+1• A y B pueden ahora comunicarse tranquilos usando

K que asegura su privacidad• La siguiente diapositiva muestra el protocolo en

diagrama de líneas de tiempo

36

Javier Cañas R. 2002 71

Kerberos

S B

E((A,T), K)

A, B

E((T,L,K,B), KA),

E(T+1, K)

A

E((T,L,K,A), KB)E((T,L,K,A), KB)

Javier Cañas R. 2002 72

Autenticación de Llave Pública• Este protocolo usa un sistema de criptografía

de clave pública, por ejemplo RSA.• Ambas partes sólo necesitan conocer las

claves públicas del otro.• El participante A encripta un número aleatorio

x usando la clave pública de B.• B demuestra ser quien es desencriptando x

con su clave secreta y enviando x encriptadocon la clave pública de A.

• De la misma forma A se puede autenticarante B

37

Javier Cañas R. 2002 73

Autenticación con Claves Públicas

A BE(x, KBpublico)

x

Javier Cañas R. 2002 74

Observación¿Cómo obtener las claves públicas?

Una solución sería publicar las llaves en algúnboletín electrónicoNo funciona: A podría poner su clave públicacomo clave pública de B y decir que ella es B

¿Qué hacer?• Pedir las Llaves a una autoridad certificadora• Mediante un mecanismo externo garantizar que la

Llave que se pone en la autoridad certificadora (AC)sea de quien dice ser

• Puede existir una jerarquía de autoridadescertificadoras

38

Javier Cañas R. 2002 75

Links a URL relacionados• Recursos MPEG

www.mpeg.orgwww.cselt.it/mpeg

• Tutorial JPEGhttp://dynamo.ecn.purdue.edu/~ace/jpeg-

tut/jpegtut1.html• Tutorial HTML

www.dtp-aus.com/htmlstrt.html• Diversos Algoritmos de Encriptación

www.geocities.com/ResearchTriangle/4806/fyp.html

Javier Cañas R. 2002 76

...Links a URL relacionados

• Data Compression Reference Centerhttp://www.rasip.fer.hr/research/compress/

39

FIN

Formato y Manejo de Datos