25
Agenda Introducci´on Protocolos Criptogr´ aficos Juan Manuel Garc´ ıa Garc´ ıa 20 de octubre de 2010 Juan Manuel Garc´ ıa Garc´ ıa Protocolos Criptogr´ aficos

Capítulo 9: Protocolos criptográficos

Embed Size (px)

Citation preview

Page 1: Capítulo 9: Protocolos criptográficos

AgendaIntroduccion

Protocolos Criptograficos

Juan Manuel Garcıa Garcıa

20 de octubre de 2010

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 2: Capítulo 9: Protocolos criptográficos

AgendaIntroduccion

Parte I: Protocolos basados en cifrado simetricoParte II: Protocolos basados en clave publica

Parte I

Protocolo de Needham-Schroeder

Protocolo de Denning-Saco

Protocolo de Otway-Rees

Protocolo KerberosProtocolo Kerberos simpleKerberos V

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 3: Capítulo 9: Protocolos criptográficos

AgendaIntroduccion

Parte I: Protocolos basados en cifrado simetricoParte II: Protocolos basados en clave publica

Parte II

Protocolo Needham-Schroeder de clave publica

Protocolos basados en clave publica con firma digitalProtocolo de autenticacion X.509

Claves publicas implıcitamente certificadasClaves publicas basadas en identidad de GuntherClaves publicas auto-certificadas de Girault

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 4: Capítulo 9: Protocolos criptográficos

AgendaIntroduccion

DefinicionesNotacion

Definiciones

◮ Protocolo: Un algoritmo multipartita, definido por unasecuencia precisa de pasos que especifican las accionesrequeridas por dos o mas entidades para lograr un objetivodeterminado.

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 5: Capítulo 9: Protocolos criptográficos

AgendaIntroduccion

DefinicionesNotacion

Definiciones

◮ Protocolo de autenticacion: El objetivo es proveer a unaentidad algun grado de certeza concerniente a la identidad deotra entidad con la cual pretende comunicarse.

◮ Protocolo de establecimiento de claves: El objetivo esestablecer una clave criptografica compartida.

◮ Protocolo de establecimiento de clave autenticada: Suobjetivo es establecer una clave compartida con una entidadcuya identidad ha sido (o puede ser) corroborada.

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 6: Capítulo 9: Protocolos criptográficos

AgendaIntroduccion

DefinicionesNotacion

Definiciones

◮ Establecimiento de clave: Protocolo donde una clavecriptografica se vuelve disponible para dos o mas entidades.

◮ Transporte de clave: Es un protocolo de establecimiento declave donde una entidad genera una clave y la transfiere demanera segura a otra.

◮ Acuerdo de clave: Protocolo de establecimiento de clavedonde una clave es derivada por dos o mas entidades comouna funcion de la informacion proporcionada por, o asociadacon, cada una de ellas.

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 7: Capítulo 9: Protocolos criptográficos

AgendaIntroduccion

DefinicionesNotacion

Definiciones

◮ Servidor de confianza: Muchos protocolos de establecimientode clave involucran una entidad centralizada o de confianza.Esta entidad es referida por una variedad de nombresdependiendo de su rol en el protocolo, incluyendo:

◮ tercero de confianza◮ servidor de confianza◮ servidor de autenticacion◮ centro de distribucion de claves (KDC)◮ autoridad certificadora (CA)

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 8: Capítulo 9: Protocolos criptográficos

AgendaIntroduccion

DefinicionesNotacion

Notacion

La siguiente es la notacion utilizada para especificar protocolos deautenticacion:A Principal A en una maquina.B Principal B en otra maquina.S Servidor de autenticacion.Kas Clave secreta compartida por A y S .Kbs Clave secreta compartida por B y S .Kab Clave de sesion compartida por A y B.Ka Clave publica de A en un criptosistema de clave publica.K−1

a Clave privada de A en un criptosistema de clave publica.A → B : M A envıa el mensaje M a B.{M}K Mensaje M encriptado con la clave K .Na Numero aleatorio (nonce) generado por A.Nb Numero aleatorio (nonce) generado por B.Ts Marca de tiempo de la maquina en que reside S .

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 9: Capítulo 9: Protocolos criptográficos

Protocolo de Needham-SchroederProtocolo de Denning-Saco

Protocolo de Otway-ReesProtocolo Kerberos

Parte I

Protocolos basados en cifrado simetrico

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 10: Capítulo 9: Protocolos criptográficos

Protocolo de Needham-SchroederProtocolo de Denning-Saco

Protocolo de Otway-ReesProtocolo Kerberos

Protocolo de Needham-Schroeder

1. A → S : A, B, Na

2. S → A : {Na, B, Kab, {A, Kab}Kbs}Kas

3. A → B : {A, Kab}Kbs

4. B → A : {Nb}Kab

5. A → B : {Nb − 1}Kab

Si la clave de sesion Kab es comprometida y el mensaje en el paso3 es grabado entonces se puede logra una impostura de A.

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 11: Capítulo 9: Protocolos criptográficos

Protocolo de Needham-SchroederProtocolo de Denning-Saco

Protocolo de Otway-ReesProtocolo Kerberos

Protocolo de Denning-Sacco

Para superar las vulnerabilidades del protocolo deNeedham-Schroeder, se incluyen marcas de tiempo en los mensajesencriptados.

1. A → S : A, B

2. S → A : {B, Kab, Ts , {A, Kab, Ts}Kbs}Kas

3. A → B : {A, Kab, Ts}Kbs

A y B pueden verificar que sus mensajes no son replicacioneschecando que:

L − Ts ≤ δt1 + δt2

donde L es el tiempo del reloj local, δt1 es la discrepancia normalentre el reloj del servidor y el reloj local, y δt2 el retraso normal decomunicacion en la red.

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 12: Capítulo 9: Protocolos criptográficos

Protocolo de Needham-SchroederProtocolo de Denning-Saco

Protocolo de Otway-ReesProtocolo Kerberos

Protocolo de Otway-Rees

Proporciona autenticacion temporal sin la necesidad de relojessincronizados.

1. A → B : M, A, B, {M, A, Na, B}Kas

2. B → S : M, A, B, {M, A, Na, B}Kas, {M, A, B, Nb}Kbs

3. S → B : M, {Na, Kab}Kas, {Nb, Kab}Kbs

4. B → A : M, {Na, Kab}Kas

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 13: Capítulo 9: Protocolos criptográficos

Protocolo de Needham-SchroederProtocolo de Denning-Saco

Protocolo de Otway-ReesProtocolo Kerberos

Protocolo Kerberos simpleKerberos V

Protocolo Kerberos simple

La siguiente es una version simplificada de Kerberos:

1. A → S : A, B

2. S → A : {Kab, Ticketab}Kas, donde

Ticketab = {B, A, addr , Ts , L, Kab}Kbs

3. A → B : Authab, Ticketab, donde Authab = {A, addr , Ta}Kab

4. B → A : {Ta + 1}Kab

donde addr es la direccion IP de la maquina de A y L un tiempo devida del ticket.

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 14: Capítulo 9: Protocolos criptográficos

Protocolo de Needham-SchroederProtocolo de Denning-Saco

Protocolo de Otway-ReesProtocolo Kerberos

Protocolo Kerberos simpleKerberos V

Protocolo Kerberos V

En el protocolo, K denota al servidor de autenticacion Kerberos, G

es el servidor expendedor de boletos, N es un numero aleatorio, yC y S son cliente y servidor, respectivamente.

1. C → K : C , G , N

2. K → C : {Kcg , N}Kc, Ticketcg

3. C → G : Authcg , Ticketcg

4. G → C : {Kcs , N}Kcg, Ticketcs

5. C → S : Authcs , Ticketcs

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 15: Capítulo 9: Protocolos criptográficos

Protocolo de Needham-SchroederProtocolo de Denning-Saco

Protocolo de Otway-ReesProtocolo Kerberos

Protocolo Kerberos simpleKerberos V

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 16: Capítulo 9: Protocolos criptográficos

Protocolo Needham-Schroeder de clave publicaProtocolos basados en clave publica con firma digital

Claves publicas implıcitamente certificadas

Parte II

Protocolos basados en clave publica

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 17: Capítulo 9: Protocolos criptográficos

Protocolo Needham-Schroeder de clave publicaProtocolos basados en clave publica con firma digital

Claves publicas implıcitamente certificadas

Protocolo de Needham-Schroeder de clave publica

1. A → B : {N1, A}Kb

2. B → A : {N1, N2}Ka

3. A → B : {N2}Kb

La clave de sesion puede ser calculada como f (N1, N2) utilizandouna funcion no-reversible apropiada.

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 18: Capítulo 9: Protocolos criptográficos

Protocolo Needham-Schroeder de clave publicaProtocolos basados en clave publica con firma digital

Claves publicas implıcitamente certificadasProtocolo de autenticacion X.509

Protocolo de autenticacion X.509

Notacion:

◮ {y}kXsignifica aplicar cifrado con la clave publica kX a los

datos y .

◮ {y}k−1X

significa firmar los datos y con la clave privada k−1X .

◮ NA y NB son numeros usados por unica vez (para detectarreuso e impostura).

◮ certX es un certificado que vincula a X con una clave publicakX utilizable para cifrado y firma digital.

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 19: Capítulo 9: Protocolos criptográficos

Protocolo Needham-Schroeder de clave publicaProtocolos basados en clave publica con firma digital

Claves publicas implıcitamente certificadasProtocolo de autenticacion X.509

Protocolo de autenticacion X.509

Protocolo:Sean DA = (TA, NA, B, data∗1, {k1}

kB) y

DB = (TB , NB , A, data∗2, {k2}∗

kA).

1. A → B : certA, DA, {DA}k−1A

2. B → A : certB , DB , {DB}k−1B

3. A → B : (NB , B), {NB , B}k−1A

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 20: Capítulo 9: Protocolos criptográficos

Protocolo Needham-Schroeder de clave publicaProtocolos basados en clave publica con firma digital

Claves publicas implıcitamente certificadasProtocolo de autenticacion X.509

Protocolo de autenticacion X.509

◮ Autenticacion de dos pasos: Se omite el paso 3, pero severifican los timestamps TA y TB .

◮ Autenticacion de tres pasos: Se realiza el paso 3, y B verificaque la firma del mensaje sea correcta. Los timestamps TA yTB no se verifican, por lo que pueden ponerse en ceros.

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 21: Capítulo 9: Protocolos criptográficos

Protocolo Needham-Schroeder de clave publicaProtocolos basados en clave publica con firma digital

Claves publicas implıcitamente certificadas

Claves publicas basadas en identidad de GuntherClaves publicas auto-certificadas de Girault

Claves de Gunther

Un tercero de confianza T crea una clave publica de Diffie-Hellmanimplıcitamente certificada para A, y transfiere a A lacorrespondiente clave publica. Para hacer esto T hace lo siguiente:

1. T selecciona un primo p apropiado, fijo y publico, y ungenerador α de Z

p. T selecciona un entero aleatorio t, con1 ≤ t ≤ p − 2 y gcd(t, p − 1) = 1, como su clave privada ypublica su clave publica u = αt mod p, junto con α,p.

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 22: Capítulo 9: Protocolos criptográficos

Protocolo Needham-Schroeder de clave publicaProtocolos basados en clave publica con firma digital

Claves publicas implıcitamente certificadas

Claves publicas basadas en identidad de GuntherClaves publicas auto-certificadas de Girault

Claves de Gunther

2. T asigna a cada entidad A un nombre distinguido o cadenaidentificadora IA y un entero aleatorio kA congcd(kA, p − 1) = 1. T entonces calcula PA = αk mod p.

3. Utilizando una funcion de hash apropiada h, T resuelve lasiguiente ecuacion para a (reiniciando con una nueva kA sia = 0):

h(IA) = t · PA + kA · a (mod p − 1).

4. T transmite de manera segura a A el par (r , s) = (PA, a), lacual es la firma ElGamal de T sobre IA.

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 23: Capítulo 9: Protocolos criptográficos

Protocolo Needham-Schroeder de clave publicaProtocolos basados en clave publica con firma digital

Claves publicas implıcitamente certificadas

Claves publicas basadas en identidad de GuntherClaves publicas auto-certificadas de Girault

Claves de Gunther

5. Cualquier otra entidad puede entonces reconstruir la clavepublica de A, Pα

A (= αkAa) completamente a partir deinformacion publicamente disponible (α, IA, u, PA, p)calculando:

A = αh(IA) · u−Pa mod p.

(Observese que αh(IA) = uPA · PaA).

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 24: Capítulo 9: Protocolos criptográficos

Protocolo Needham-Schroeder de clave publicaProtocolos basados en clave publica con firma digital

Claves publicas implıcitamente certificadas

Claves publicas basadas en identidad de GuntherClaves publicas auto-certificadas de Girault

Claves de Girault

Un tercero de confianza T crea una clave publica de Diffie-Hellmanimplıcitamente certificada, publicamente recuperable, para unaentidad A. Para hacer esto, T hace lo siguiente:

1. El servidor de confianza T selecciona primos secretos p y q

para un entero RSA n = pq, un elemento α de orden maximoen Z

n y enteros adecuados e y d como par de claves (publicay privada) RSA para n.

2. T asigna un nombre distinguido o cadena identificadora IA acada entidad A.

Juan Manuel Garcıa Garcıa Protocolos Criptograficos

Page 25: Capítulo 9: Protocolos criptográficos

Protocolo Needham-Schroeder de clave publicaProtocolos basados en clave publica con firma digital

Claves publicas implıcitamente certificadas

Claves publicas basadas en identidad de GuntherClaves publicas auto-certificadas de Girault

Claves de Girault

3. La entidad A elige una clave privada a, y proporciona la clavepublica αa mod n a T .

4. T calcula los datos publicos de reconstruccion de la clave deA como

PA = (αa − IA)d mod n.

(Entonces (PeA + IA) mod n = αa mod n.)

Juan Manuel Garcıa Garcıa Protocolos Criptograficos