Upload
nguyenkiet
View
212
Download
0
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/