540 likes | 807 Views
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
E N D
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 Objeto Derechos de acceso 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 reproducidosno 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 Replay Cliente Servidor Request DoOperation Alteración GetRequest Message execute (wait) request Replay SendReplay (continuación) Message Cliente impostor? Escucha 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 secretaspuesto 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 1 Adquiere K 2 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 Requiere Ke Base de datos Clave pública Receptor B Emisor A Ke Ke 1 Adquiere Ke, Kd 2 Publica Ke 3 Recibe {M}Ke 4 D(Kd,{M}Ke)M 1 Adquiere Ke 2 E(Ke,M){M}Ke 3 Envía {M}Ke {M}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: 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}K Mensaje M encriptado con clave K
Needham y Schroeder con clave secreta Encabezado Mensaje Notas 1. 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 Notas 3. AB: {KAB, A}KB A envía el “ticket” a B 4. 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 Notas 1. AS: A, B, NA A pide a S la clave pública de B 2. 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 Notas 3. 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 Notas 5. 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 Centro de distribución de claves Kerberos Base de datos de autenticación Paso A Servicio de autenticación A Servicio de concesión de tickets 1. Solicitud de Ticket al TGS 2. Ticket TGS Paso B 3. Petición de un ticket de servidor Comienzo de sesión Paso C 4. Ticket de servidor 5. Solicitud de servicio Establecimiento de sesión del servidor Función de servicio Cliente C Servidor S HacerOperación Solicitud encriptada con la clave de sesión Respuesta encriptada con la clave de sesión
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 clave sesión TGS, n ticket (C, T) 2. AC • Obtener ticket del server, una vez por sesión cliente-server 3. CT Auth(C) ticket (C, T) server, n clave sesión CS, n ticket (C, T) 4. TC
Secuencia de mensajes en Kerberos • Emitir requerimientos al servidor 5. CS Auth(C) ticket (C, S) 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 falsificare irrefutables • Cómo funcionan? cuentan con funciones seguras que comprimen el mensaje en el llamado digest (resumen=D(M)) el emisor encripta el digesty 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} H(M) h E(K , h) Kpri Firmado pri M 128 bits {h} h' Kpri D(K ,{h}) pub Verificación M ¿h = h '? h H(doc)
Firma digital con clave secreta Encabezado Mensaje Notas 1. 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