2. Agenda
Introducci´on
Parte I: Protocolos basados en cifrado sim´etrico
Parte II: Protocolos basados en clave p´ublica
Parte I
Protocolo de Needham-Schroeder
Protocolo de Denning-Saco
Protocolo de Otway-Rees
Protocolo Kerberos
Protocolo Kerberos simple
Kerberos V
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
3. Agenda
Introducci´on
Parte I: Protocolos basados en cifrado sim´etrico
Parte II: Protocolos basados en clave p´ublica
Parte II
Protocolo Needham-Schroeder de clave p´ublica
Protocolos basados en clave p´ublica con firma digital
Protocolo de autenticaci´on X.509
Claves p´ublicas impl´ıcitamente certificadas
Claves p´ublicas basadas en identidad de G¨unther
Claves p´ublicas auto-certificadas de Girault
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
4. Agenda
Introducci´on
Definiciones
Notaci´on
Definiciones
◮ Protocolo: Un algoritmo multipartita, definido por una
secuencia precisa de pasos que especifican las acciones
requeridas por dos o m´as entidades para lograr un objetivo
determinado.
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
5. Agenda
Introducci´on
Definiciones
Notaci´on
Definiciones
◮ Protocolo de autenticaci´on: El objetivo es proveer a una
entidad algun grado de certeza concerniente a la identidad de
otra entidad con la cual pretende comunicarse.
◮ Protocolo de establecimiento de claves: El objetivo es
establecer una clave criptogr´afica compartida.
◮ Protocolo de establecimiento de clave autenticada: Su
objetivo es establecer una clave compartida con una entidad
cuya identidad ha sido (o puede ser) corroborada.
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
6. Agenda
Introducci´on
Definiciones
Notaci´on
Definiciones
◮ Establecimiento de clave: Protocolo donde una clave
criptogr´afica se vuelve disponible para dos o m´as entidades.
◮ Transporte de clave: Es un protocolo de establecimiento de
clave donde una entidad genera una clave y la transfiere de
manera segura a otra.
◮ Acuerdo de clave: Protocolo de establecimiento de clave
donde una clave es derivada por dos o m´as entidades como
una funci´on de la informaci´on proporcionada por, o asociada
con, cada una de ellas.
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
7. Agenda
Introducci´on
Definiciones
Notaci´on
Definiciones
◮ Servidor de confianza: Muchos protocolos de establecimiento
de clave involucran una entidad centralizada o de confianza.
Esta entidad es referida por una variedad de nombres
dependiendo de su rol en el protocolo, incluyendo:
◮ tercero de confianza
◮ servidor de confianza
◮ servidor de autenticaci´on
◮ centro de distribuci´on de claves (KDC)
◮ autoridad certificadora (CA)
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
8. Agenda
Introducci´on
Definiciones
Notaci´on
Notaci´on
La siguiente es la notaci´on utilizada para especificar protocolos de
autenticaci´on:
A Principal A en una m´aquina.
B Principal B en otra m´aquina.
S Servidor de autenticaci´on.
Kas Clave secreta compartida por A y S.
Kbs Clave secreta compartida por B y S.
Kab Clave de sesi´on compartida por A y B.
Ka Clave p´ublica de A en un criptosistema de clave p´ublica.
K−1
a Clave privada de A en un criptosistema de clave p´ublica.
A → B : M A env´ıa el mensaje M a B.
{M}K Mensaje M encriptado con la clave K.
Na N´umero aleatorio (nonce) generado por A.
Nb N´umero aleatorio (nonce) generado por B.
Ts Marca de tiempo de la m´aquina en que reside S.
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
9. Protocolo de Needham-Schroeder
Protocolo de Denning-Saco
Protocolo de Otway-Rees
Protocolo Kerberos
Parte I
Protocolos basados en cifrado sim´etrico
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
10. Protocolo de Needham-Schroeder
Protocolo de Denning-Saco
Protocolo de Otway-Rees
Protocolo 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 sesi´on Kab es comprometida y el mensaje en el paso
3 es grabado entonces se puede logra una impostura de A.
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
11. Protocolo de Needham-Schroeder
Protocolo de Denning-Saco
Protocolo de Otway-Rees
Protocolo Kerberos
Protocolo de Denning-Sacco
Para superar las vulnerabilidades del protocolo de
Needham-Schroeder, se incluyen marcas de tiempo en los mensajes
encriptados.
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 replicaciones
checando que:
L − Ts ≤ δt1 + δt2
donde L es el tiempo del reloj local, δt1 es la discrepancia normal
entre el reloj del servidor y el reloj local, y δt2 el retraso normal de
comunicaci´on en la red.
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
12. Protocolo de Needham-Schroeder
Protocolo de Denning-Saco
Protocolo de Otway-Rees
Protocolo Kerberos
Protocolo de Otway-Rees
Proporciona autenticaci´on temporal sin la necesidad de relojes
sincronizados.
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 Criptogr´aficos
13. Protocolo de Needham-Schroeder
Protocolo de Denning-Saco
Protocolo de Otway-Rees
Protocolo Kerberos
Protocolo Kerberos simple
Kerberos V
Protocolo Kerberos simple
La siguiente es una versi´on 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 direcci´on IP de la m´aquina de A y L un tiempo de
vida del ticket.
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
14. Protocolo de Needham-Schroeder
Protocolo de Denning-Saco
Protocolo de Otway-Rees
Protocolo Kerberos
Protocolo Kerberos simple
Kerberos V
Protocolo Kerberos V
En el protocolo, K denota al servidor de autenticaci´on Kerberos, G
es el servidor expendedor de boletos, N es un n´umero aleatorio, y
C 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 Criptogr´aficos
15. Protocolo de Needham-Schroeder
Protocolo de Denning-Saco
Protocolo de Otway-Rees
Protocolo Kerberos
Protocolo Kerberos simple
Kerberos V
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
16. Protocolo Needham-Schroeder de clave p´ublica
Protocolos basados en clave p´ublica con firma digital
Claves p´ublicas impl´ıcitamente certificadas
Parte II
Protocolos basados en clave p´ublica
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
17. Protocolo Needham-Schroeder de clave p´ublica
Protocolos basados en clave p´ublica con firma digital
Claves p´ublicas impl´ıcitamente certificadas
Protocolo de Needham-Schroeder de clave p´ublica
1. A → B : {N1, A}Kb
2. B → A : {N1, N2}Ka
3. A → B : {N2}Kb
La clave de sesi´on puede ser calculada como f (N1, N2) utilizando
una funci´on no-reversible apropiada.
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
18. Protocolo Needham-Schroeder de clave p´ublica
Protocolos basados en clave p´ublica con firma digital
Claves p´ublicas impl´ıcitamente certificadas
Protocolo de autenticaci´on X.509
Protocolo de autenticaci´on X.509
Notaci´on:
◮ {y}kX
significa aplicar cifrado con la clave p´ublica kX a los
datos y.
◮ {y}k−1
X
significa firmar los datos y con la clave privada k−1
X .
◮ NA y NB son n´umeros usados por ´unica vez (para detectar
reuso e impostura).
◮ certX es un certificado que vincula a X con una clave p´ublica
kX utilizable para cifrado y firma digital.
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
19. Protocolo Needham-Schroeder de clave p´ublica
Protocolos basados en clave p´ublica con firma digital
Claves p´ublicas impl´ıcitamente certificadas
Protocolo de autenticaci´on X.509
Protocolo de autenticaci´on 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−1
A
2. B → A : certB, DB, {DB}k−1
B
3. A → B : (NB, B), {NB, B}k−1
A
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
20. Protocolo Needham-Schroeder de clave p´ublica
Protocolos basados en clave p´ublica con firma digital
Claves p´ublicas impl´ıcitamente certificadas
Protocolo de autenticaci´on X.509
Protocolo de autenticaci´on X.509
◮ Autenticaci´on de dos pasos: Se omite el paso 3, pero se
verifican los timestamps TA y TB.
◮ Autenticaci´on de tres pasos: Se realiza el paso 3, y B verifica
que la firma del mensaje sea correcta. Los timestamps TA y
TB no se verifican, por lo que pueden ponerse en ceros.
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
21. Protocolo Needham-Schroeder de clave p´ublica
Protocolos basados en clave p´ublica con firma digital
Claves p´ublicas impl´ıcitamente certificadas
Claves p´ublicas basadas en identidad de G¨unther
Claves p´ublicas auto-certificadas de Girault
Claves de G¨unther
Un tercero de confianza T crea una clave p´ublica de Diffie-Hellman
impl´ıcitamente certificada para A, y transfiere a A la
correspondiente clave p´ublica. Para hacer esto T hace lo siguiente:
1. T selecciona un primo p apropiado, fijo y p´ublico, y un
generador α de Z∗
p. T selecciona un entero aleatorio t, con
1 ≤ t ≤ p − 2 y gcd(t, p − 1) = 1, como su clave privada y
publica su clave p´ublica u = αt m´od p, junto con α,p.
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
22. Protocolo Needham-Schroeder de clave p´ublica
Protocolos basados en clave p´ublica con firma digital
Claves p´ublicas impl´ıcitamente certificadas
Claves p´ublicas basadas en identidad de G¨unther
Claves p´ublicas auto-certificadas de Girault
Claves de G¨unther
2. T asigna a cada entidad A un nombre distinguido o cadena
identificadora IA y un entero aleatorio kA con
gcd(kA, p − 1) = 1. T entonces calcula PA = αk m´od p.
3. Utilizando una funci´on de hash apropiada h, T resuelve la
siguiente ecuaci´on para a (reiniciando con una nueva kA si
a = 0):
h(IA) = t · PA + kA · a (m´od p − 1).
4. T transmite de manera segura a A el par (r, s) = (PA, a), la
cual es la firma ElGamal de T sobre IA.
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
23. Protocolo Needham-Schroeder de clave p´ublica
Protocolos basados en clave p´ublica con firma digital
Claves p´ublicas impl´ıcitamente certificadas
Claves p´ublicas basadas en identidad de G¨unther
Claves p´ublicas auto-certificadas de Girault
Claves de G¨unther
5. Cualquier otra entidad puede entonces reconstruir la clave
p´ublica de A, Pα
A (= αkAa) completamente a partir de
informaci´on publicamente disponible (α, IA, u, PA, p)
calculando:
Pα
A = αh(IA)
· u−Pa
m´od p.
(Obs´ervese que αh(IA) = uPA · Pa
A).
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
24. Protocolo Needham-Schroeder de clave p´ublica
Protocolos basados en clave p´ublica con firma digital
Claves p´ublicas impl´ıcitamente certificadas
Claves p´ublicas basadas en identidad de G¨unther
Claves p´ublicas auto-certificadas de Girault
Claves de Girault
Un tercero de confianza T crea una clave p´ublica de Diffie-Hellman
impl´ıcitamente certificada, p´ublicamente recuperable, para una
entidad 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 m´aximo
en Z∗
n y enteros adecuados e y d como par de claves (p´ublica
y privada) RSA para n.
2. T asigna un nombre distinguido o cadena identificadora IA a
cada entidad A.
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos
25. Protocolo Needham-Schroeder de clave p´ublica
Protocolos basados en clave p´ublica con firma digital
Claves p´ublicas impl´ıcitamente certificadas
Claves p´ublicas basadas en identidad de G¨unther
Claves p´ublicas auto-certificadas de Girault
Claves de Girault
3. La entidad A elige una clave privada a, y proporciona la clave
p´ublica αa m´od n a T.
4. T calcula los datos p´ublicos de reconstrucci´on de la clave de
A como
PA = (αa
− IA)d
m´od n.
(Entonces (Pe
A + IA) m´od n = αa m´od n.)
Juan Manuel Garc´ıa Garc´ıa Protocolos Criptogr´aficos