Sistemas Distribuidos Seguridad

Anuncio
Sistemas Distribuidos
Seguridad
Seguridad
Introducción
requerimientos, amenazas, ataques
Criptografía
clave privada
clave pública
Autenticación y distribución de claves
Caso de estudio: Kerberos
Firmas digitales
Requerimientos de
seguridad
Canales de comunicación con protección
contra:
escuchas no autorizadas
alteraciones
Verificación de la identidad y/o
autenticidad de:
clientes (por los servidores)
servidores (por los clientes)
autor de un mensaje (por los receptores)
Amenazas y ataques
 Algunas amenazas son obvias. En la mayoría de las
redes locales es fácil construir un programa para
obtener copias de los mensajes transmitidos entre
computadoras.
 Otras amenazas pueden ser mas sutiles: si los
clientes fallan en autenticar un servidor de archivos,
se pueden instalar programas que actúen como los
servidores de archivos auténticos y obtengan copias
de información confidencial.
Amenazas y ataques
 Para protegerse de tales amenazas deben adoptarse
políticas de seguridad, las cuales son implementadas
usando mecanismos de seguridad.
 La distinción entre políticas y mecanismos de
seguridad resulta importante; sin ellas no se puede
decir que el sistema sea seguro.
 Las políticas de seguridad son independientes de
la tecnología usada.
 Los mecanismos de seguridad no aseguran por si
mismos la seguridad del sistema.
Modelo de seguridad
 Objeto (o recurso): Destinado a ser usado por
diferentes clientes, vía invocación remota
Ej: mailbox, sistema de archivos, parte de un
web site comercial
 Principal:
 usuario o proceso que tiene autoridad
(derechos) para realizar acciones
 la identidad del principal es importante
Modelo de seguridad
Derechos de acceso
Objeto
Invocación
Cliente
Resultado
Server
Principal (Usuario)
Red
Principal (Server)
Amenazas
 El principal objetivo de la seguridad es restringir el
acceso a la información y recursos, sólo a aquellos
principales que están autorizados.
 Las amenazas caen en cuatro clases:
 Fugas: adquisición de información por
receptores no autorizados
 Alteración: no autorizada de información
 Robo de recursos: uso sin autorización
 Vandalismo: Interferencia con la operación del
sistema sin ganancia para el autor de la amenaza
Métodos de ataque
Escucha no autorizada
 Definición: Obtención de copias de mensajes sin
tener autoridad.
 Obtención de mensajes:
 directamente de la red o,
 de información almacenada en forma
inadecuada
Métodos de ataque
Enmascaramiento
 Definición: Envío o recepción de mensajes
usando la identidad de otro principal, sin su
autorización
 Mediante:
 obtención y uso de la identidad y password de
otro principal
 usando capacidad de acceso al sistema
después que la autorización para hacerlo ha
expirado
Métodos de ataque
Alteración de mensajes
 Definición: Interceptación de mensajes y
alteración de los mismos antes de pasarlos a los
receptores esperados
 Nota:
 Difícil en Ethernet (aunque se ha hecho)
 Relativamente simple en Internet
Métodos de ataque
Reproducción
 Definición: Almacenamiento de mensajes y envío
de los mismos un tiempo después.
 Por ejemplo: Después que la autorización para
usar un recurso ha sido revocada
 Puede ser usada para robo de recursos y
vandalismo aún cuando los mensajes
reproducidos no puedan ser interpretados por
el autor
Infiltración
 Virus: programa que se autoreproduce y
que (típicamente) infecta otros programas
 Gusano: programa que se autoreproduce y
propaga en forma independiente
 Caballo de Troya: ataque oculto dentro de un
programa benigno
Amenazas en sistemas
cliente-servidor
Cliente
DoOperation
Replay
Servidor
Request
Message
Alteración
(wait)
Replay
(continuación)
Message
Cliente impostor?
Escucha
GetRequest
execute
request
SendReplay
Servidor impostor?
Sistemas cliente-servidor(I)
Requerimientos de seguridad
 Asegurar los canales de comunicación contra
escuchas no autorizadas
 Diseñar clientes y servidores de manera
“desconfiada”:
 los servidores deben ser satisfechos que los
clientes actúen en nombre de los principales
que proclaman ser
 los clientes deben garantizar que los
servidores sean quienes dicen ser
Sistemas cliente-servidor(II)
 Asegurarse que la comunicación es fresca
 para evitar la reproducción de mensajes
 Imponer políticas de seguridad
 políticas a nivel de compañía/nacional/legal
 control de acceso
 auditorías
Implementación de políticas
de seguridad
Políticas de seguridad
Control acceso
Encriptación
Servicios autenticación y distribución
de claves
Criptografía
 Encriptación
 se aplican reglas para transformar texto plano
en texto cifrado
 definida con una función F y una clave K
 un mensaje M encriptado con K se nota:
FK(M) = {M}K
 Desencriptación
 se usa una función inversa: F-1K({M}K)=M
 Puede ser simétrica (basada en clave secreta
conocida por ambas partes)
 o asimétrica (basada en clave pública)
Clave secreta
 La encriptación y desencriptación usan la
misma clave secreta
 La clave debe ser secreta:
 para prevenir escuchas no autorizadas
 para prevenir enmascaramiento
 Las funciones de encriptación y esencriptación
no necesitan ser secretas puesto que los
resultados dependen de cuales la clave
Clave secreta
Comunicación segura con encriptación de
clave secreta
Emisor A
Receptor B
1 Adquiere K
2 f(K,M){M}K
3 Envía {M}K
{M}K
1 Adquiere K
2 Recibe {M}K
3 f-1(K,{M}K)M
Algoritmo DES
 Data Encryption Standard (DES)
 desarrollado por IBM en 1977
 adoptado en USA como un estándar para
aplicaciones gubernamentales y comerciales
 Función de encriptación:
 mapea texto plano de 64 bits en 64 bits de
texto encriptado
 usa una clave de 56 bits
 se rompe en 255 intentos (hecho en 1997)
 se implementa en hardware VLSI
Clave pública
 El problema de clave privada: cómo proteger la
clave?
 Cada principal tiene 2 claves: pública y privada
 La clave pública del receptor la usa el emisor
 El receptor usa clave privada para desencriptar
Pública
Privada
Algoritmos de encriptación
asimétricos
 Todos dependen del uso de funciones trap-door
Una trap-door
provee una vía
secreta en una
habitación: para
salir es obvio, pero
si quiere entrar,
debe conocer esta
entrada secreta
Clave pública
Requiere Ke
Emisor A
Base de datos
Clave pública
1 Adquiere Ke
2 E(Ke,M){M}Ke
3 Envía {M}Ke
Ke
{M}Ke
Receptor B
Ke
1
2
3
4
Adquiere Ke, Kd
Publica Ke
Recibe {M}Ke
D(Kd,{M}Ke)M
RSA
 Creado por Rivest, Shamir y Adelman en 1978
 Basado en el problema de factorización (trap-door)
 Información privada:
 p, primo grande (>10200)
 q, primo grande (>10200)
 (n)=(p-1)(q-1)
 d, entero primo con (n)
 Información pública:
 n=p*q
 e, inverso de d módulo (n)
RSA
RSA: pasado, presente y
futuro
 En 1978:
 Se pensó que la factorización de números
primos >10200 tomaría 4 billones de años
 En el 2000:
 Computadoras más rápidas, mejores métodos
 Números con 155 dígitos decimales (=500
bits) han sido factorizados
 Claves de 512 bits son inseguras!
 En el futuro?:
 Se recomiendan claves con 230 dígitos(768
bits)
 Usar 2048 bits en algunos casos (ej.: defensa)
Comparación de
performance
 En hard RSA es unas 1000 veces más lento que
que DSE
 DSE
1 Gbit/seg (clave 56 bits)
 RSA
1 Mbit/seg (clave 512 bits)
 En soft RSA es unas 100 veces más lento que
que DSE
 DSE
1Mbit/seg
 RSA
10 Kbit/seg
 Por tanto, cuando sea seguro use clave secreta!
 O usar algoritmos híbridos
Autenticación
 Definición:
 protocolo para asegurar la autenticidad del
transmisor
 Protocolo con clave secreta (Needham-Schroeder 78’)
 basado en un servidor de claves seguro que emite
claves secretas
 implementado en Kerberos
 Protocolo con clave pública (Needham-Schroeder 78’)
 no requiere un servidor de claves seguro
 usado en comercio electrónico
Needham y Schroeder con
clave secreta
Notación:
 A Nombre del principal que inicia la
comunicación
 B Nombre del principal, socio de A en la
comunicación
 KA Clave secreta de A (password)
 KB Clave secreta de B (password)
 KAB Clave secreta para comunicarse A y B
 NA Testigo generado por A (es un entero, por ej.
generado leyendo el clock del sistema en el
momento del envío del mensaje)
 {M} Mensaje M encriptado con clave K
Needham y Schroeder con
clave secreta
Encabezado
Mensaje
1. AS:
A, B, NA
2. SA:
Notas
A pide a S una
clave para
comunicarse con B.
{NA, B, KAB,
S retorna un
{KAB, A}KB}KA mensaje encriptado
con KA conteniendo
una nueva clave
KAB y un “ticket”
encriptado con KB
Needham y Schroeder con
clave secreta
Encabezado
Mensaje
3. AB:
4. BA:
{KAB, A}KB A envía el “ticket” a B
{NB}KAB
B desencripta el ticket y
usa la clave nueva KAB
para encriptar otro
testigo NB
{NB-1}KAB A demuestra a B que fue
el emisor del mensaje
previo, retornando una
transformación acordada
de NB.
5. AB:
Notas
Needham y Schroeder con
clave secreta - Debilidades
 El mensaje 3 podría no ser “fresco” y
 un viejo valor de KAB podría estar comprometido
en su almacenamiento en A
 Kerberos trata esta debilidad añadiendo al
mensaje 3 un timestamp ({KAB, A,t}KB ) o un
testigo.
Needham y Schroeder con
clave pública
 Las claves públicas deben distribuirse
mediante un servidor de distribución de claves
seguro para evitar la intrusión por impostores.
 Notación adicional:
 PKA clave pública de A
 PKB clave pública de B
 PKS clave pública del servidor
 SKS clave secreta del servidor
Needham y Schroeder con
clave pública
Encabezado
Mensaje
Notas
1. AS:
A, B, NA
2. SA:
{PKB, B}SKS
A pide a S la
clave pública de B
S envía a A la clave
pública de B,
encriptada usando
su clave secreta.
A puede
desencriptarlo
usando PKS.
Needham y Schroeder con
clave pública
Encabezado
Mensaje
3. AB:
{NA, A}PKB A envía un mensaje a B
conteniendo un testigo
encriptado con PKB. Sólo
B puede desencriptarlo,
para obtener el nombre
de A
B, A
B pide a S la clave
pública de A
4. BS:
Notas
Needham y Schroeder con
clave pública
Encabezado
5. SB:
6. BA:
7. AB:
Mensaje
Notas
{PKA, A}SKS S envía a B la PKA,
encriptada usando su
clave secreta SKS
{NA, NB}PKA B envía a A un par de
testigos encriptados con
PKA
{NB}PKB
A envía a B el testigo,
probando “frescura” y
que “habla” con A.
Needham y Schroeder con
clave pública - Debilidades
 A y B deben creer que las claves públicas que
reciben de S son “frescas”
 No hay protección contra la reproducción de
mensajes viejos.
 Esto puede remediarse añadiendo timestamp
a los mensajes 2 y 5
Caso de estudio: Kerberos
 Basado en el protocolo de
de Needham-Schroeder con
clave secreta
 Desarrollado en el MIT
(1988) y usado en AFS, NFS
de Unix, RPC de Sun y
Windows 2000
Kerberos - Objetos de
seguridad
 Ticket:
 Registro que el cliente incluye en un mensaje
y que permite al servidor verificar su identidad
 Está cifrado con clave del servidor e incluye
entre otros:
 identidad del cliente, clave para la sesión,
plazo de expiración
 Autenticador:
 Registro que el cliente incluye en un mensaje
y
que asegura que el mismo se ha generado
Kerberos - Objetos de
seguridad
 Autenticador(continuación):
 Puede usarse una sóla vez. Contiene el
nombre
del cliente, un timestamp y está encriptado
con la clave de sesión apropiada
 Clave para la sesión:
 Clave secreta generada aleatoriamente por
Kerberos y enviada al cliente para usarse en la
comunicación con un servidor particular
 el encriptado no es obligatorio
Arquitectura del sistema
Kerberos
Centro de distribución de claves Kerberos
Base de datos
Servicio de de autenticación Servicio de
Paso A
1. Solicitud de
Ticket al TGS
autenticación
A
concesión
de tickets
2. Ticket
TGS
Paso B
Comienzo
de sesión
Cliente
C
Establecimiento de
sesión del servidor
3. Petición de un
ticket de servidor
4. Ticket de
Paso C
servidor
5. Solicitud de
servicio
HacerOperación Solicitud encriptada con la clave de sesión
Respuesta encriptada con la clave de sesión
Función
de servicio
Servidor
S
Kerberos
 Notación:
 A nombre del servidor de autenticación (AS)
 T nombre del servidor de concesión de tickets
(TGS)
 C nombre del cliente
 n un testigo
 t timestamp
 t1 tiempo de comienzo de la validez del ticket
 t2 tiempo de finalización de validez del ticket
 Un ticket Kerberos para que un cliente C acceda a
S: {C, S, t1, t2, KCS}KS{ticket(C,S)}KS
Secuencia de mensajes en
Kerberos
Claves de encriptación usado en el esquema:
KC clave privada de C (Password de usuario)
KT clave privada de T
KCT clave de sesión de TGS
KS clave privada del servidor
KCS clave de sesión
Secuencia de mensajes en
Kerberos
 Obtener una clave de sesión, una vez por login de sesión
1. CA
2. AC
C, T, n
clave sesión TGS, n
ticket (C, T)
 Obtener ticket del server, una vez por sesión cliente-server
3. CT
Auth(C)
4. TC
clave sesión CS, n
ticket (C, T)
server, n
ticket (C, T)
Secuencia de mensajes en
Kerberos
 Emitir requerimientos al servidor
5. CS
Auth(C)
ticket (C, S)
Service request, n
 Autenticación del servidor
(opcional)
6. SC
n
Respuesta
Firmas digitales
 Por qué?
 mismo finalidad que una firma escrita en un
documento en papel
 auténticas, difíciles de falsificar e irrefutables
 Cómo funcionan?
 cuentan con funciones seguras que comprimen
el mensaje en el llamado digest (resumen=D(M))
 el emisor encripta el digest y lo añade al
mensaje como una firma digital
 el receptor verifica la firma
 generalmente se usa criptografía de clave
pública, aunque es posible usar clave privada
Firma digital con clave
pública
 Claves
 El emisor envía Kpub y Kpri; Kpub se hace
pública
 Envío del mensaje firmado M
 el emisor envía una función digest acordada
y segura, h, para calcular el resumen h(M)
 h(M) es encriptada con Kpri para producir la
firma: S = {h(M)}Kpri; se envía M y S
 Verificación del mensaje firmado
 la firma S es desencriptada usando Kpub, se
calcula h(M), y se compara con la firma
desencriptada
Firma digital con clave
pública
Documento
firmado
M
H(M)
Firmado
h
E(K pri, h) {h}Kpri
M
128 bits
{h}Kpri
D(Kpub ,{h})
h'
Verificación M
¿h = h '?
H(doc)
h
Firma digital con clave
secreta
Encabezado
1. AS:
Mensaje
Notas
A, {D(M)}KA
A calcula D(M), el
digest del mensaje
y lo encripta con
KA y lo envía al
server de
autenticación
Firma digital con clave
secreta
Encabezado
2. SA:
Mensaje
{A, {D(M),t}KS
Notas
El server hace un
firmado y certificación
del fechado de la firma
de A en el documento,
arma un texto
compuesto por el
nombre de A, D(M) y
un timestamp t, lo
encripta con KS y lo
envía a A.
Firma digital con clave
secreta
Encabezado
Mensaje
3. AB:
M, {A, D(M), t}KS
4. BS:
B, {A, D(M), t}KS
Notas
A envía el mensaje
original y el
certificado en un
mensaje a B
B guarda una copia
del mensaje y el
certificado y envía
éste al server de
autenticación para
desencriptarlo
Firma digital con clave
secreta
Encabezado
5. SB:
Mensaje
{A, D(M), t}KB
Notas
El server desencripta
el certificado, usa KB
para encriptar el texto
plano resultante y lo
envía a B y éste lo
desencripta.
Firma digital con clave
secreta
 A partir de 5, B tiene M, puede recalcular D(M)
y compararlo con lo recibido del server. Si
coinciden, B puede confiar que el mensaje es el
producido originalmente por A y que A no será
repudiado pues:
 S (B confía en S) verificó la firma de A en 2
 sería difícil para A reclamar que su firma fue
falsificada, B tiene una copia de un certificado
que puede chequearse con S. A no puede
reclamar que B falsificó el certificado ya que
B no conoce KS.
Descargar