Title: ADMINISTRACIN DE LLAVES CRIPTOGRFICAS
1ADMINISTRACIÓN DE LLAVES CRIPTOGRÁFICAS
- Thierry de Saint Pierre
- Gerente Comercial
- eBusiness Technology
2Administración de llaves criptográficas
- Problema
- El problema que se plantea en una red de
computadores es segurizar las comunicaciones
entre usuario y servidor o entre servidor y
servidor. - Las soluciones que hemos visto para segurizar las
comunicaciones utilizan llaves de encriptamiento.
- En el caso de los algoritmos simétricos alguien
tiene que distribuir las llaves secretas que van
a ser utilizadas. - En el caso de algoritmos asimétricos es
necesario que alguien certifique la validez de
las llaves públicas. - Solución
- Para resolver este problema se define un centro
de administración y distribución de llaves.
3Tipos de llaves criptográficas
- Se definen tres tipos de llaves
- Llaves de sesiónson utilizadas en una sesión
unicamente y permiten encriptar y decriptar los
mensajes que se envían los partners. - Llaves de sistema llaves utilizadas entre los
servidores o entre un servidor y un cliente para
definir un canal seguro , encriptando la
información. - Llaves maestras (o de servidor) llaves
utilizadas para encriptar las otras llaves
almacenadas dentro del servidor.
4Modelo de distribución de llaves
- KDC Key Distribution Center
- Consideremos el caso en que un usuario U requiere
comunicarse con un servidor H. - El requerimiento es aceptado por un servidor
árbitro (KDC) A que genera una llave de sesión
Ks. - Ks es enviado al usuario y al servidor H vía un
canal segurizado. - El canal segurizado utiliza dos llaves
- Ku para el canal entre el servidor A y el usuario
U. - Kh para al canal entre el servidor A y el
servidor H. - El centro de distribución de llaves (KDC) puede
ser manejado por un sólo servidor (centralizado)
o por un grupo de servidores (distribuido).
5Diagrama
Servidor A
Ks
E/D
E/D
Ku
Kh
Ku
Kh
Usuario U
Servidor H
Ks
E/D
E/D
6KDC para alg. de encriptamiento simétricos
- Caso de un KDC centralizado
- Cada usuario o servidor comparte un canal
segurizado (vía una llave secreta) con el KDC. - A quiere comunicar con B
- A envía al KDC
- IdA identificador de A
- RA requerimiento de A
- El KDC le responde con un criptograma
- Llave Kab que va a ser utilizada en la
comunicación entre A y B. - IdA , RA
- EKb(Kab,IdA) mensaje encriptado con la llave Kb
que comparten B y KDC. - EKa(Kab,IdA,RA, EKb(Kab,IdA) )
7KDC simétricos (2)
- A decripta el criptograma , chequea que el nombre
y el requerimiento son los suyos. - Envía a B el mensaje EKb(Kab,IdA) .
- B decripta el mensaje y recupera la llave Kab.
- A esta altura A y B comparten la llave secreta
Kab. - B inicia un proceso de autentificación para
evitar la posibilidad que el criptograma haya
sido sustituido - B envía a A un número aleatorio N encriptado con
Kab - A lo decripta , calcula Ft(N) , donde Ft es una
función previamente definida, que depende del
tiempo. Ft(N) es encriptado con Kab y despachado
a B. - B compara este valor y autentifica a A.
8Diagrama KDC simétricos
IdA , RA
KDC
E Ka (Kab, IdA, RA, EKb(Kab,IdA))
Ekb(Kab,IdA)
A
B
EKab(N)
EKab(Ft(N))
9KDC distribuidos
- Distribución total
- Cada Servidor de la red es un KDC, luego debe
manejar llaves de comunicación con los otros
servidores de la red. Si hay n servidores cada
servidor deberá almacenar n-1 llaves. El número
total de llaves en la red es de n (n-1). - Distribución jerárquica
- Los servidores se dividen en tres categorías
- KDC globales
- KDC regionales
- KDC locales
- Si alguna entidad requiere un canal seguro ,
envía un requerimiento de llave al servidor de
nivel superior. Un usuario se dirige al KDC
local, un KDC local se dirige a un KDC regional,
un KDC regional se dirige a un KDC global.
10KDC para alg. de encriptamiento asimétricos
- No es necesario un canal seguro para transmitir
una llave pública, en cambio se plantea el
problema de autenticidad de la llave pública. - Solución
- KD Key Directory. Servidor que contiene el
repertorio de llaves y es responsable del
mantenimiento, actualización y distribución de
las llaves. - Toda entidad que recibe una llave debe tener
algún método para comprobar la autenticidad de la
llave. - Solución 1
- Supongamos que A quiere comunicarse con B
- A envía el requerimiento RA a KD con una
estampilla de tiempo T. - KD responde entregando la llave pública KpB de B
autentificada vía encriptamiento con la llave
privada KsKd de KD - A chequea la autenticidad con KpKd que es
publicamente conocida.
11KDC asimétricos (2)
- A recupera la llave Kb y para autentificar B le
envía un número aleatorio N1 encriptado con KpB. - De la misma forma B envía un requerimiento de
llave pública de A a KD y recibe cómo respuesta
KpA. - B genera un número aleatorio N2 y envía a A los
números aleatorios N1 y N2 encriptados con KpA. - A responde a B encriptando N2 con KpB.
- A (resp. B) compara el número N1 (resp. N2)
decriptado que recibe con el que había generado y
si coinciden valida el interlocutor B (resp. A). - Otra solución
- KD no distibuye las llaves, en cambio verifica la
autenticidad de las llaves usadas por los
interlocutores y envía al otro interlocutor el
resultado de la autentificación.
12Diagrama de KDC asimétricos
(4) RB , T
(1) RA, , T
(5) E Kskd (Kpa, RB, T)
(2) E Kskd (Kpb, RA, T)
(3) Ekpb(IdA, N1)
(6) EKpa(N1,N2)
(7) EKpb(N2)
13Comparación de las soluciones
- En ambas soluciones con esquemas simétricos o
asimétricos se necesita de un Centro de
Administración de llaves que conserve las llaves
secretas (caso simétrico) o autentifique las
llaves públicas (caso asimétrico). - Estos dos problemas son equivalentes y se basan
en la conservación de la llave maestra secreta
del KDC. - En el caso simétrico esta llave es utilizada para
encriptar las llaves secretas de todos los
interlocutores. - En el caso asimétrico es la llave que permite
autentificar los mensajes que envía el KDC.
14Gestión de las llaves criptográficas
- Dos tipos de llaves a almacenar
- primarias llaves utilizadas para encriptar
datos. - maestras llaves utilizadas para encriptar otras
llaves. - Una llave maestra es generada con un algoritmo
aleatorio. - Una llave maestra debe ser almacenada de forma
que no se pueda recuperar pero que exista un
algoritmo para chequear la autenticidad de la
llave - Se genera un mensaje aleatorio M.
- Se almacena en la BD el par (criptograma EKh(M) ,
M). - Para autentificar una llave K como la llave
maestra se lee M , se calcula EK(M) y esto debe
coincidir con EKh(M)
15Administración de llaves usando DES
- Llave maestra del servidor Hay una sola llave en
cada servidor y es almacenada en claro. - Llave maestra usario Hay una sola llave para
cada usuario y es almacenada en claro terminal o
cliente. - Todas las otras llaves son almacenadas como
criptogramas. - La generación de llaves maestras es realizada con
verdaderos generadores aleatorios. - La generación de otras llaves es realizada con
generadores seudo-aleatorios.
16Protección criptográfica usando DES
- Protección criptográfica de la transmisión entre
un servidor y un terminal usuario. - Sean Kh y Ku las llaves del servidor y del
terminal usuario. Y sea Ks una llave de sesión. - Llamemos Eh(Ks) EKh(Ks) y Eu(Ks) EKu(Ks) .
- Se definen las instrucciones siguientes
- RHMK Eh(Ks), Eh(Ku) Eu(Ks). Este criptograma
es almacenado en el terminal usuario. - ENCH M, Eh(Ks) EKs(M) Es(M) permite que el
servidor encripte el mensaje. - DECT Es(M), Eu(Ks) M permite decriptar el
mensaje por el usuario. - ENCT M, Eu(Ks) Es(M)permite encriptar los
datos a partir del terminal usuario.
17RMHK
Eh(Ks)
Eh(Ku)
Kh
DES Decrip.
DES Decrip.
DES Encrip.
Eu(Ks)
18Ejercicio
- Realizar los diagramas de
- ENCH
- DECT
- ENCT
19Llaves de transacción
- Llaves de transacción son generadas solo para una
transacción . - Estas llaves son generadas separadamente en cada
extremo y no son transmitidas. - Para generar estas llaves de transacción se
utilizan los datos que posee el usuario (código
de tarjeta magnética) y los registros del
terminal lector que es actualizado después de
cada transacción. - Ejemplo SMARTCARD.