Vous êtes sur la page 1sur 35

Seguridad (2/4):

Protocolos de
seguridad

Autenticacin (validacin)

1
Tema de seguridad

1.- Secretos: criptografa


2.- Protocolos de seguridad
3.- Aplicaciones y seguridad
4.- Redes y seguridad

2
Clasificacin de problemas de seguridad

Los problemas de seguridad de las redes pueden dividirse de forma


general en cuatro reas interrelacionadas:

1.-El secreto, encargado de mantener la informacin fuera de las


manos de usuarios no autorizados.

2.-La validacin de identificacin, encargada de determinar la


identidad de la persona/computadora con la que se esta
hablando.

3.-El control de integridad, encargado de asegurar que el mensaje


recibido fue el enviado por la otra parte y no un mensaje
manipulado por un tercero.

4.-El no repudio, encargado de asegurar la firma de los mensajes,


de igual forma que se firma en papel una peticin de
compra/venta entre empresas.
3
Validacin de identificacin en redes

La validacin de identificacin, o tambin llamada


autenticacin (que no autentificacin, que es ver si
algo es autntico), es la tcnica mediante la cual un
proceso comprueba que su compaero de comunicacin
es quien se supone que es y no un impostor.
La verificacin de la identidad de un proceso remoto con un
intruso activo malicioso, es sorprendentemente difcil y
requiere protocolos de validacin complejos basados en
criptografa como vamos a ver.
La validacin es el paso previo al establecimiento de una
conexin entre dos entidades, para pactar una clave de
sesin.

4
Modelo general de validacin e intrusos

Un usuario A, quiere establecer una conexin segura


con un segundo usuario, B:
1.- Se validan. Comienza A por enviar un mensaje a B o a un centro de
distribucin de claves (KDC, Key Distribution Centre) fiable
(honesto). Tras ello siguen varios intercambios de mensajes en
diferentes direcciones (o protocolo).
PERO, a medida que se envan estos mensajes, un intruso malicioso, C,
puede interceptarlos, modificarlos o reproducirlos para engaar a A y
a B, o simplemente para estropear sus actividades.

C
A
B
2.- Un protocolo de autenticacin debe impedir que un intruso se meta.
Terminado el protocolo habrn negociado una clave de sesin.
5
Mtodos de autenticacin (identificacin)
Biomdicas, por huellas dactilares, retina
del ojo, ...
Tarjetas inteligentes que guardan
informacin de los certificados de un
usuario
Mtodos clsicos basados en contrasea,
ms frgiles que los anteriores y ms
simples (baratos), basados en:
Comprobacin local o mtodo tradicional
en la propia mquina
Comprobacin en red o mtodo
distribuido, ms utilizado actualmente

Una vez completado el protocolo, ambos A y B estn


seguro que est hablando entre ellos.
Durante el protocolo podran haber intercambiado una
6
clave de sesin.
Modelos de validacin basados en
mtodos distribuidos

clave secreta (privada o simtrica)

clave pblica (asimtrica)

7
Validacin de identificacin de clave secreta

Mtodos:

1. Validacin de identificacin basada en clave


secreta compartida.
2. Establecimiento de una clave compartida:
intercambio de claves Diffie-Hellman (no
permite autenticacin)
3. Validacin de identificacin usando un centro
de distribucin de claves (KDC- Key Distribution
Center).

4. Protocolo de autenticacin Kerberos.


8

Clave secreta
Validacin de identificacin basada en
clave secreta compartida

Supondremos que A y B ya comparten una clave secreta KAB


(acordada o bien telefnicamente o en persona pero, en
cualquier caso, no a travs de la red)
Este protocolo se basa en reto-respuesta:
una parte enva un nmero aleatorio a la otra
La otra parte lo transforma de una manera especial y
devuelve el resultado a la parte primera
Notacin a utilizar:
Ri son los retos, donde el subndice identifica el retador: A o B
Ki son las claves, donde i indica el dueo; Ks es la clave de la
sesin.

Clave secreta. Mtodo 1


Validacin de identificacin basada en clave
secreta compartida: protocolo
1
Quiero algo de B A
2
RB ERES A?
3
A KAB(RB) B
4
RA
ERES B?
5
KAB (RA)
Ri son nmeros aleatorios grandes lanzados desde cada extremo como
reto.
El paso 4 y 5 es para que A se asegure que le contesta B. Tras esta
identificacin, A puede indicar una Ks para la sesin.
Este protocolo funciona, pero se puede simplificar el nmero de mensajes.
DESTACAR, que con el mensaje 2 y 3 se podra tratar de10explotar por
fuerza bruta la clave.
Clave secreta. Mtodo 1
Validacin de identificacin basada en clave
secreta compartida: simplificacin

1
A, RA
2
A RB, KAB(RA) B
3
KAB(RB)

Pero si B acepta varias sesiones simultneamente ...

11

Clave secreta. Mtodo 1


Validacin de identificacin basada en
clave secreta compartida: fallo
Un intruso C puede burlar este protocolo por
un ataque por reflexin, si es posible abrir
al mismo tiempo varias sesiones con B.
Por ejemplo, B es un banco y acepta muchas
conexiones simultneas de los diferentes
cajeros

El ataque comienza cuando C indica que es A


y enva RC.
B responde, como de costumbre, con su propio
reto, RB pero C no conoce KAB(RB)!
12

Clave secreta. Mtodo 1


Validacin de identificacin basada en clave
secreta compartida: ataque por reflexin
1
A, RC
2 Primera sesin
RB, KAB(RC)
3
C A, RB B
4 Segunda sesin
RB2, KAB(RB)
5
KAB(RB)
Primera sesin
establecida

C puede abrir una segunda sesin con el mensaje 3,


proporcionando como reto el RB tomado del mensaje 2.

B lo cifra y enva de regreso KAB(RB) en el mensaje 4. Ahora C tiene toda


la informacin y aborta la segunda sesin.
B ahora est convencido de que C es A. 13

Clave secreta. Mtodo 1


Validacin de identificacin basada en clave secreta
compartida: solucin al ataque por reflexin

Tres reglas generales que frecuentemente son de


ayuda son las siguientes:
1. Hacer que el iniciador demuestre quin es antes de que lo
tenga que hacer el respondedor. B regala informacin valiosa
antes de que C d cualquier prueba de su identidad.
2. Hacer que el iniciador y el respondedor usen diferentes claves
para comprobacin, incluso si esto significa tener dos claves
compartidas, KAB y KAB.
3. Hacer que el iniciador y el respondedor tomen sus retos de
diferentes conjuntos y por tanto no se puedan repetir los
retos, por ejemplo, el iniciador usa nmeros pares y el
respondedor nmeros nones.

En este caso, la simplificacin ha sido una vulnerabilidad, porque con el


primer esquema no pasaba esta situacin.

14

Clave secreta. Mtodo 1


Establecimiento de una clave compartida:
intercambio de claves Diffie-Hellman (1976)
Hasta ahora hemos supuesto que A y B comparten una clave secreta.
Y si no es as?
Existe una manera de que completos desconocidos establezcan una
clave secreta a plena luz del da (aunque C est registrando cada
mensaje).
El protocolo de intercambio de claves Diffie-Hellman:

Este algoritmo se puede considerar tambin como de clave pblica,


pero no permite autenticacin.
RSA se bas en este algoritmo

A y B tienen que acordar dos nmeros primos grandes (n, g), que deben
cumplir ciertas condiciones [RFC 2631]. Estos nmeros pueden ser
pblicos
Cualquiera puede escoger (n, g) y decrselo al otro abiertamente

A escoge un nmero grande x, y lo mantiene en secreto, de la misma


15
manera, B escoge un nmero secreto grande y
Clave secreta.
secreta Mtodo 2
Establecimiento de una clave compartida:
intercambio de claves Diffie-Hellman: protocolo
A selecciona x B selecciona y
1
n, g, g x mod n

A gy mod n B
2

(gy mod n)x mod n Se calcula (gx mod n)y mod n

gxy mod n gxy mod n


1.-A inicia el protocolo enviando a B un mensaje que contiene (n, g, gx mod n)
2.-B responde con gy mod n

A y B comparten una clave secreta: gxy mod n


Intrusos: C conoce (n, g), pero le falta (x, y)
gxy mod n: no se conoce un algoritmo prctico para calcular
esto cuando n es un nmero primo muy grande.
16

Clave secreta.
secreta Mtodo 2
17

Clave secreta.
secreta Mtodo 2
Establecimiento de una clave compartida: intercambio de claves Diffie-
Hellman: ataque de brigada de cubetas o ataque de alguien en medio

Ataque: Cuando B recibe (n, g, gx mod n), no sabe si es A o C quien se la


ha enviado
A selecciona x C selecciona z B selecciona y
1
x
n, g, g mod n 2
z
3 n, g, g mod n
z
A g mod n 4
C B
y
g mod n

gzx mod n gxz mod n gzy mod n


gyz mod n

Cada mensaje que A y/o B enva durante la sesin cifrada es capturado por C,
almacenado, modificado y pasado (opcionalmente) a B y/o A.
C ve todo y puede modificar los mensajes, mientras A y B estn pensando
equivocadamente que tienen un canal seguro entre ambos.

Solucin: utilizar un KDC, centro de distribucin de claves.18


Clave secreta. Mtodo 2
TACACS+ y RADIUS
TACACS+ (Terminal Access Controller Access Control System-
RFC1492) y RADIUS (Remote Authentication Dial In User
Service- RFC2138) son ejemplos de centros de
distribucin de claves o tambin conocidos como
servidores de control de acceso.

TACACS+ y RADIUS son protocolos para descentralizar el


control del acceso, de forma que cualquier servicio en
red que requiera validar, autorizar o auditar a un usuario
lo puede hacer como cliente de los servidores TACACS+
y/o RADIUS.

Estos servidores se utilizan generalmente como apoyo a los


routers de servidor de acceso remoto, por ejemplo la
gestin de usuarios que conectan desde el exterior a la
Universidad por RDSI o POTS (RTB).
19

Clave secreta. Mtodo 3


Validacin de identificacin usando un
centro de distribucin de claves (KDC)

En Diffie-Hellman no hay garantas por el ataque de alguien


en medio, efectuado por un extrao o intruso.
Otro inconveniente, es que para hablarle a n personas de
esta manera se requeran n claves (una verdadera carga)

Un enfoque diferente es introducir un centro de distribucin


de claves fiables (KDC- Key Distribution Center)
Cada usuario tiene una sola clave compartida con el KDC
La validacin de identificacin y la administracin de claves de
sesin ahora pasan a travs del KDC.
El protocolo de validacin e identificacin ms simple
conocido es la rana de boca amplia.
20

Clave secreta. Mtodo 3


Validacin de identificacin usando un KDC:
la rana de boca amplia
1
A, KA(B,KS)

A KDC B
2
KB(A,KS)

1.- A escoge una clave de sesin, KS e indica al KDC que desea


hablar con B usando KS. Este mensaje se cifra con la clave
secreta que comparte A slo con el KDC, KA
2.- KDC descifra este mensaje, extrayendo la identidad de B y la clave de
sesin. Construye un mensaje nuevo cifrado con KB (compartido entre
KDC y B) que contiene la identidad de A y la clave de sesin y se lo
enva a B
Ahora, A y B pueden hablar y saben adems la clave a utilizar.
Para la validacin de identificacin, como las claves con el KDC son
secretas, nadie ms habra sido capaz de cifrarlo con la clave secreta de
otro A diferencia de Diffie Hellman, aqu si existe autenticacin
21 por ambas
partes.
Clave secreta. Mtodo 3
Validacin de identificacin usando un KDC:
ataque por repeticin
Ataque: un intruso C puede copiar el mensaje 2 (de KDC a B) y todos los
mensajes que le siguen y reproducirlos de nuevo para B, con lo cual B
creer estar hablando con A. Pero C no sabe Ks repite sin saber lo que
dice, pero interfiere en B e incluso podra generar denegacin de
servicio (DoS).

Soluciones posibles:
1.- incluir una marca de tiempo en cada mensaje de forma que pueda descartar
mensajes obsoletos, pero los relojes nunca estn perfectamente sincronizados
en toda una red
2.- incluir un nmero de mensaje nico (llamado nnico), de forma que cada
parte entonces tiene que recordar todos los nnicos y rechazar cualquier
mensaje que contenga un nnico previamente usado

Comentarios:
Si una mquina se cae y pierde la lista de nnicos, es vulnerable a un ataque
por repeticin.
Las marcas de tiempo y los nnicos pueden combinarse para limitar el tiempo
que pueden recordarse los nnicos, pero el protocolo se volver ms
22
complicado.
Clave secreta. Mtodo 3
Validacin de identificacin usando un KDC: protocolo de
Needham-Schroeder (1/2)
Mejora: se basa en usar un protocolo multisentido de reto-
respuesta, en vez de una nica transaccin.
1
RA, A, B
2 KDC
KA(RA,B,K S,KB (A,Ks))

A B

1.- A indica al KDC que quiere hablar con B, incluyendo un nmero aleatorio grande, RA,
como nnico.
2.- KDC devuelve el mensaje 2 con
RA para asegurar a A que el mensaje 2 es reciente, y no una repeticin
La identidad de B, por si a C se le ocurre reemplazar a B del mensaje 1 por su propia
identidad adems de que cifre un billete al final del mensaje 2 con KC en lugar de KB y
sabotee a A (haciendo creer a A que habla con B, cuando en realidad lo hace con C)
una clave de sesin 23
un billete para que puede re-enviarse a B (identificando a A y la clave de sesin Ks)
Clave secreta. Mtodo 3
Validacin de identificacin usando un KDC: protocolo de
Needham-Schroeder (2/2)
1
RA, A, B
2 KDC
KA(RA,B,K S,KB (A,Ks))
3
A KB(A,K S),KS(RA2 ) B
4
KS(RA2 -1), R B
5
KS(RB-1)

3.- A ahora enva el billete a B, junto con un nuevo nmero aleatorio, RA2, cifrado
con la clave de la sesin, KS.
4.- B devuelve KS(RA2-1) para demostrar a A que est hablando con el
verdadero B. El envo de regreso de KS(RA2) no habra funcionado,
puesto que C lo podra haber robado del mensaje 3.
Al hacer que cada parte genere un reto y responda a otro, en nuestro caso (-1), se elimina la
posibilidad de un ataque por repeticin.
5.- A est convencido de que est hablando con B, y de que no se pudieron haber
usado repeticiones hasta el momento. El propsito del mensaje 5 es convencer
24
a B de que realmente est hablando con A, y de que tampoco se han usado
repeticiones aqu.
Clave secreta. Mtodo 3
Validacin de identificacin usando un KDC: ataque
del protocolo de Needham-Schroeder
1
RA, A, B
2 KDC
KA(RA,B,KS,KB (A,Ks))
3
A KB(A,KS),KS(RA2) B
4
KS(RA2-1), RB
5
KS(RB-1)
Debilidad:
Si C llega a obtener una clave de sesin vieja KS en texto normal,
puede iniciar una nueva sesin con B repitiendo el mensaje 3
correspondiente a la clave obtenida con KS(Rc) y convencerlo de
que es A con KB(A,KS), que lo guard C copiado de un mensaje 3 antiguo,
completando el protocolo sin problema con los mensajes 4 y 5, y
suplantando la identidad de A.

Solucin:
Otway y Rees publicaron un protocolo que resuelve el problema, haciendo que B
hable con el KDC. 25

Clave secreta.
secreta Mtodo 3
Validacin de identificacin usando un KDC: protocolo de Otway y Rees

1
A, B, R, KA(A, B, R, RA)

2
A A, KA(A,B,R,RA) B
B, KB(A,B,R,RB)
KDC
4 3
KA(RA,KS) KB(RB,KS)

1.- A comienza por generar un par de nmeros aleatorios: R, que se usar


como identificador comn, y RA, que A usar para retar a B.

2.- Cuando B recibe este mensaje, construye un mensaje nuevo a partir de la parte cifrada del
mensaje de A con KA, y uno anlogo propio con KB. Ambas partes cifradas, identifican:
A, B, el identificador comn R y un reto RA o RB respectivamente.
3 y 4.- KDC comprueba que R de ambas partes es igual. Los R podran no serlo porque C
alter el R del mensaje 1 y reemplaz parte del mensaje 2. Si los 2 R son iguales, el KDC
se convence de que el mensaje de solicitud de B es vlido, y genera una clave de sesin.
Cada mensaje contiene un nmero aleatorio del receptor como prueba de que el KDC, y
no C, gener el mensaje.
26

Clave secreta.
secreta Mtodo 3
Autenticacin con Kerberos
Servicio de autenticacin (validacin de identificacin)
desarrollado en el Massachusetts Institute of Technology (MIT)

Perro de tres cabezas y cola de serpiente segn


mitologa griega, guardin de la entrada del
Templo de Hades (Infierno).
27

Clave secreta.
secreta Mtodo 4
Protocolo de autenticacin Kerberos

Kerberos es un KDC diseado por el MIT para autenticar la


identidad (autenticar) de los usuarios de una red digital
insegura, as como para distribuir las claves secretas de
sesin transitorias que permitan a los usuarios de la red
establecer comunicaciones seguras. En ocasiones estas claves
de sesin transitorias pueden ser de un solo uso (OTP, One
Time Password).
Est basado en una variacin de Needham-Schroeder, con la
condicin que requiere relojes bien sincronizados.
Kerberos
acta como un rbitro en quien los usuarios confan
utiliza con cada usuario una clave secreta diferente,
intercambiada con Kerberos a travs de un canal seguro. El
conocimiento de dicha clave se utiliza como prueba de identidad
del usuario.
La autenticacin se produce entre cliente-servidor y servidor-
cliente.
En estas condiciones como Kerberos conoce las claves secretas
de todos los usuarios, puede demostrar a cualquiera de ellos
la autenticidad de la identidad de otro. 28

Clave secreta.
secreta Mtodo 4
Protocolo de autenticacin Kerberos: protocolo (1/2)
1
RA, A, B
2 Kerberos
Ka(K,L, RA,B)
A Kb(K,L,A)

A y B no comparten ninguna clave secreta, excepto con el servidor de claves


Kerberos Ka y Kb. [A y B pueden ser usuarios, usuario-servicio,...]

1.- A solicita a Kerberos una credencial para conectarse con B y una clave
de sesin, a travs de un mensaje con un valor aleatorio RA y los
identificadores en la red de comunicacin de A y B.
2.- Kerberos genera una clave de sesin aleatoria K y define el perodo de
validez L de la credencial, cifrando a continuacin los valores K, L, RA y
B con la clave secreta Ka, junto con la credencial para B, cifrando K, L y
A con la clave secreta Kb
A verifica que el valor aleatorio RA corresponde con el que l previamente envi y guarda L
como referencia. A calcula el autentificador para B, cifrando su identidad
29 A y un sello temporal
Ta para sincronizacin, con la clave de sesin K K(A,Ta)
Clave secreta.
secreta Mtodo 4
Protocolo de autenticacin Kerberos: protocolo
(2/2)
1
RA, A, B
2 Kerberos
Ka(K,L, RA,B)
A Kb(K,L,A)
3
Kb(K,L,A)
K(A,Ta)
K(A,Ta) B
4

K(Ta+1)

3.- B descifra la credencial con su clave secreta Kb, recuperando de esta forma K,
L y la identidad A y con ello utiliza K para descifrar el autentificador y recuperar
los valores identidad de A y Ta, comprobando que las identidades de la credencial
y el autentificador coinciden, y que el sello Ta es vlido y se encuentra en los
lmites de L.
4- Si las comprobaciones son satisfactorias, B se convence de la autenticidad de la
identidad de A, y en tal caso, B enva a A la conformidad con K(Ta+1)
Por su parte A descifra la conformidad con la clave de sesin K y verifica que el
valor recuperado es Ta+1, lo cual asegura a A que la clave de sesin K ha sido
30
correctamente recibida por el usuario B
Clave secreta.
secreta Mtodo 4
Protocolo de autenticacin Kerberos: comentarios
(1/2)
1.-El propsito del sello temporal Ta y del perodo de validez L es
doble
A pueda utilizar la credencial para realizar sucesivas
autentificaciones ante B durante el perodo de validez de la clave
sin necesidad de que intervenga Kerberos
permite prevenir un posible ataque activo al protocolo
consistente en el almacenamiento de las claves para su posterior
reutilizacin. Esto se consigue puesto que una clave no se acepta
como vlida si su sello temporal no se encuentra dentro de los
lmites del perodo de validez de la misma.
2.- Kerberos viene en la mayora de distribuciones UNIX y/o Linux,
utilizado en procesos como login, rlogin o NFS (Network File
System) y las versiones ms utilizadas son v4 y v5
3.- es centralizado y no distribuido en una red, lo cual si falla ...o
si se ve comprometido, se compromete toda la red, adems las
claves almacenadas son privadas y no pblicas. En versin 4
y/o 5 incorpora servidores secundarios.

31

Clave secreta.
secreta Mtodo 4
Protocolo de autenticacin Kerberos: comentarios
(2/2)

4.- requiere la kerberizacin (modificacin) de


todas las aplicaciones, as como de la
sincronizacin de todas las mquinas
5.- cuando un usuario est ms de 8 horas (por
defecto) delante de una estacin de trabajo
kerberizada, debe identificarse otra vez
6.- en ningn momento los passwords viajan
por la red ni son guardados en memoria (slo
las credenciales)
7.- Cabe destacar del protocolo visto, que
realmente se distinguen dos partes, por una
lado la autenticacin y por otro la gestin de
tickets para los diferentes servicios

32

Clave secreta.
secreta Mtodo 4
Autenticacin con Kerberos: ejemplo de
login
Escenario: usuario A a travs de login requiere de
las credenciales necesarias para acceder a otros
servicios
Pasos:
1.- al teclear el nombre, el login kerberizado
enva el nombre al servidor Kerberos solicitando
un ticket
2.- si el usuario es conocido, le manda un mensaje
cifrado, donde utilizar su contrasea
(password) para descifrarlo. De esta forma la
contrasea nunca viaja por la red
3.- de dicho mensaje extrae el ticket para realizar
la peticin de servicio
33

Clave secreta.
secreta Mtodo 4
Validacin de identificacin de clave pblica
Supongamos que A y B ya conocen las claves pblicas del otro EB() y EA()
respectivamente y quieren establecer una sesin utilizando
criptografa de clave secreta (por ser ms rpida)
El intercambio inicial tiene como objetivo validar la identificacin de ambos
utilizando sus claves pblicas para comunicarse y utilizando las claves privadas
para descifrar y tras ello acordar una clave de sesin secreta compartida
1
EB(A,RA)
2
A EA(RA,RB,KS) B
3
KS(RB)

Un intruso C no tiene manera de conocer RA para replicar, pero


dependiendo de cmo se intercambien las claves pblicas, podra haber
problemas... 34

Clave publica
Validacin de identificacin de clave pblica
(debilidades): ataque de brigada de cubetas
Supongamos que A y B no conocen la clave pblica del otro, por lo que
bastara simplemente A enviar a B su clave pblica en el primer
mensaje y pedir a B que devuelva la suya en el siguiente. El
problema de este enfoque es que est sujeto a un ataque de brigada
de cubetas o alguien en medio.
C puede capturar el mensaje de A a B y devolver su propia clave a A,
que pensar que tiene una clave para hablar con B cuando, de
hecho, tiene una clave para hablar con C. Ahora C puede leer todos
los mensajes cifrados con lo que A piensa es la clave pblica de B

Solucin: El intercambio inicial de claves pblicas puede evitarse almacenando


todas las claves pblicas en una base de datos pblica. As, A y B pueden
obtener la clave pblica del otro de la base de datos.
PERO, sin embargo, C an puede poner en prctica el ataque de brigada de
cubetas interceptando las solicitudes a la base de datos y enviando respuestas
simuladas que contengan su propia clave.

Certificados digitales gestionados por una autoridad de certificacin


35

Clave publica