Upload
zenaida-salto
View
219
Download
0
Embed Size (px)
Citation preview
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 seguridadCanales 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
Cliente
Principal (Usuario) Red
Invocación
Resultado
Principal (Server)
Derechos de acceso
Server
Objeto
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
DoOperation
(wait)
(continuación)
Cliente
Cliente impostor?
GetRequestexecuterequest
SendReplay
Servidor
Servidor impostor?
Request
Message
Replay
Message
Replay
Escucha
Alteración
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
Encriptación
Control accesoServicios 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-1
K({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 secretaEmisor A Receptor
B
1 Adquiere K2 f(K,M){M}K
3 Envía {M}K
1 Adquiere K2 Recibe {M}K
3 f-1(K,{M}K)M
{M}K
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
Emisor AReceptor B
1 Adquiere Ke
2 E(Ke,M){M}Ke
3 Envía {M}Ke
1 Adquiere Ke, Kd
2 Publica Ke
3 Recibe {M}Ke
4 D(Kd,{M}Ke)M{M}Ke
Base de datosClave pública Ke
Ke
Requiere Ke
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 secretaNotació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}K Mensaje M encriptado con clave K
Needham y Schroeder con clave secreta
Encabezado Mensaje Notas1. AS: A, B, NA A pide a S una clave para comunicarse con B.2. SA: {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 Notas3. AB: {KAB, A}KB A envía el “ticket” a B4. BA: {NB}KAB B desencripta el ticket y usa la clave nueva KAB
para encriptar otro testigo NB
5. AB: {NB-1}KAB A demuestra a B que fue el emisor del mensaje previo, retornando una transformación acordada de NB.
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 Notas1. AS: A, B, NA A pide a S la clave pública de B2. SA: {PKB, B}SKS 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 Notas3. AB: {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 4. BS: B, A B pide a S la clave pública de A
Needham y Schroeder con clave pública
Encabezado Mensaje Notas5. SB: {PKA, A}SKS S envía a B la PKA, encriptada usando su clave secreta SKS 6. BA: {NA, NB}PKA B envía a A un par de testigos encriptados con PKA
7. AB: {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 recientemente y no ha sido modificado
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 sistemaKerberos
Servidor S
Cliente C HacerOperación
Base de datos de autenticación
Comienzo de sesión
Servicio de concesión de tickets
Centro de distribución de claves Kerberos
Establecimiento de sesión del servidor
Servicio de autenticació
nA
1. Solicitud de Ticket al TGS
2. Ticket TGS
3. Petición de un ticket de servidor4. Ticket de
servidor 5. Solicitud deservicio
Solicitud encriptada con la clave de sesión
Respuesta encriptada con la clave de sesión
Función de servicio
Paso B
Paso A
Paso C
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. CA C, T,
n
2. ACclave sesión TGS, n
ticket (C, T)
Obtener ticket del server, una vez por sesión cliente-server3. CT Auth(C
)ticket (C, T) server,
n
4. TC clave sesión CS, n
ticket (C, T)
Secuencia de mensajes en Kerberos
Emitir requerimientos al servidor 5. CS
ticket (C, S)Auth(C)
Service request, n
Autenticación del servidor (opcional) 6. SC
Respuesta
n
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
{h}Kpri
M
Firmado
Verificación
E(Kpri, h)
128 bits
H(M) h
M
hH(doc)
D(Kpub ,{h}) {h}Kpri h'
¿h = h '?
M
Documento firmado
Firma digital con clave secreta
Encabezado Mensaje Notas1. AS: 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 Mensaje Notas2. SA: {A, {D(M),t}KS 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 Notas3. AB: M, {A, D(M), t}KS A envía el mensaje original y el certificado en un mensaje a B4. BS: B, {A, D(M), t}KS 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 Mensaje Notas5. SB: {A, D(M), t}KB 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.