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. AS: A, B, NA 2. SA: 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. AB: 4. BA: {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. AB: 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. AS: A, B, NA 2. SA: {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. 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 B, A B pide a S la clave pública de A 4. BS: Notas Needham y Schroeder con clave pública Encabezado 5. SB: 6. BA: 7. AB: 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. CA 2. AC C, T, n clave sesión TGS, n ticket (C, T) Obtener ticket del server, una vez por sesión cliente-server 3. CT Auth(C) 4. TC clave sesión CS, n ticket (C, T) server, n ticket (C, T) 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 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. AS: 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. SA: 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. AB: M, {A, D(M), t}KS 4. BS: 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. SB: 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.