Seguridad de sistemas distribuidos

47
SEGURIDAD DE LOS SISTEMAS DISTRIBUIDOS Iriana Nadia Strycek

Transcript of Seguridad de sistemas distribuidos

Page 1: Seguridad de sistemas distribuidos

SEGURIDAD DE LOS

SISTEMASDISTRIBUIDOS

Iriana Nadia Strycek

Page 2: Seguridad de sistemas distribuidos

INTRODUCCIÓNINTRODUCCIÓNLa computación desde sus inicios ha sufrido muchos cambios, La computación desde sus inicios ha sufrido muchos cambios,

desde los grandes ordenadores que permitían realizar desde los grandes ordenadores que permitían realizar tareas en forma limitada y de uso un tanto exclusivo de tareas en forma limitada y de uso un tanto exclusivo de organizaciones muy selectas, hasta los actuales organizaciones muy selectas, hasta los actuales ordenadores ya sean personales o portátiles que tienen las ordenadores ya sean personales o portátiles que tienen las mismas e incluso mayores capacidades que los primeros y mismas e incluso mayores capacidades que los primeros y que están cada vez más introducidos en el quehacer que están cada vez más introducidos en el quehacer cotidiano de una persona.cotidiano de una persona.

Los mayores cambios se atribuyen principalmente a dos causas, Los mayores cambios se atribuyen principalmente a dos causas, que se dieron desde las décadas de los setenta:que se dieron desde las décadas de los setenta:

El desarrollo de los microprocesadores, que permitieron El desarrollo de los microprocesadores, que permitieron reducir en tamaño y costo a los ordenadores y aumentar en reducir en tamaño y costo a los ordenadores y aumentar en gran medida las capacidades de los mismos y su acceso a gran medida las capacidades de los mismos y su acceso a más personas. más personas.

El desarrollo de las redes de área local y de las El desarrollo de las redes de área local y de las comunicaciones que permitieron conectar ordenadores con comunicaciones que permitieron conectar ordenadores con posibilidad de transferencia de datos a alta velocidad. posibilidad de transferencia de datos a alta velocidad.

Es en este contexto que aparece el concepto de "Sistemas Es en este contexto que aparece el concepto de "Sistemas Distribuidos" que se ha popularizado tanto en la actualidad Distribuidos" que se ha popularizado tanto en la actualidad y que tiene como ámbito de estudio las redes como por y que tiene como ámbito de estudio las redes como por ejemplo: Internet, redes de teléfonos móviles, redes ejemplo: Internet, redes de teléfonos móviles, redes corporativas, redes de empresas, etc.corporativas, redes de empresas, etc.

Page 3: Seguridad de sistemas distribuidos

SISTEMAS SISTEMAS DISTRIBUIDOSDISTRIBUIDOS

Desde el inicio de la era de la computadora moderna Desde el inicio de la era de la computadora moderna (1945), hasta cerca de 1985, solo se conocía la (1945), hasta cerca de 1985, solo se conocía la computación centralizada. computación centralizada.

A partir de la mitad de la década de los ochentas A partir de la mitad de la década de los ochentas aparecen los sistemas distribuidos, en contraste con los aparecen los sistemas distribuidos, en contraste con los sistemas centralizados. Los sistemas distribuidos sistemas centralizados. Los sistemas distribuidos necesitan un software distinto al de los sistemas necesitan un software distinto al de los sistemas centralizados. centralizados.

Los S. O. para sistemas distribuidos han tenido Los S. O. para sistemas distribuidos han tenido importantes desarrollos pero todavía existe un largo importantes desarrollos pero todavía existe un largo camino por recorrer. camino por recorrer. Los usuarios pueden acceder a una gran variedad de Los usuarios pueden acceder a una gran variedad de recursos computacionales: recursos computacionales: De hardware y de software. De hardware y de software. Distribuidos entre un gran número de sistemas Distribuidos entre un gran número de sistemas computacionales conectados.computacionales conectados.

Page 4: Seguridad de sistemas distribuidos

Qué son los Sistemas Qué son los Sistemas Distribuidos?:Distribuidos?:

Son Son sistemas cuyos componentes sistemas cuyos componentes hardware y software, que están en hardware y software, que están en ordenadores conectados en red, se ordenadores conectados en red, se comunican y coordinan sus acciones comunican y coordinan sus acciones mediante el paso de mensajes, para el mediante el paso de mensajes, para el logro de un objetivo. logro de un objetivo.

Se establece la comunicación mediante Se establece la comunicación mediante un protocolo prefijado por un esquema un protocolo prefijado por un esquema “cliente-servidor".“cliente-servidor".

Page 5: Seguridad de sistemas distribuidos

Características de los Características de los Sistemas Distribuidos:Sistemas Distribuidos:

Concurrencia.Concurrencia.

Carencia de reloj global.Carencia de reloj global.

Fallos independientes de los Fallos independientes de los componentes.componentes.

Page 6: Seguridad de sistemas distribuidos

Evolución de los Sistemas Evolución de los Sistemas Distribuidos:Distribuidos:

Procesamiento central (Host).Procesamiento central (Host).

Grupo de ServidoresGrupo de Servidores..

La Computación Cliente – La Computación Cliente – Servidor.Servidor.

Page 7: Seguridad de sistemas distribuidos

Cliente-ServidorCliente-Servidor

Es el sistema donde el cliente es una máquina que Es el sistema donde el cliente es una máquina que solicita un determinado servicio y se denomina solicita un determinado servicio y se denomina servidor a la máquina que lo proporciona. servidor a la máquina que lo proporciona.

Los servicios pueden ser: Los servicios pueden ser: Ejecución de un determinado programa. Ejecución de un determinado programa. Acceso a un determinado banco de información. Acceso a un determinado banco de información. Acceso a un dispositivo de hardware. Acceso a un dispositivo de hardware.

Es un elemento primordial, la presencia de un Es un elemento primordial, la presencia de un medio físico de comunicación entre las máquinas, y medio físico de comunicación entre las máquinas, y dependerá de la naturaleza de este medio la dependerá de la naturaleza de este medio la viabilidad del sistema.viabilidad del sistema.

Page 8: Seguridad de sistemas distribuidos

Categorías de Servidores:Categorías de Servidores:

Servidores de archivos.Servidores de archivos. Servidores de Base de Datos.Servidores de Base de Datos. Servidores de Software de Grupo.Servidores de Software de Grupo. Servidores WEB.Servidores WEB. Servidores de correo.Servidores de correo. Servidor de objetos.Servidor de objetos. Servidores de impresiónServidores de impresión..Servidores de aplicación.Servidores de aplicación.

Page 9: Seguridad de sistemas distribuidos

Componentes de Componentes de Software:Software:

Se distinguen tres componentes básicos de Se distinguen tres componentes básicos de software:software:

Presentación:Presentación: Tiene que ver con la Tiene que ver con la presentación al usuario de un conjunto de presentación al usuario de un conjunto de objetos visuales y llevar a cabo el objetos visuales y llevar a cabo el procesamiento de los datos producidos por procesamiento de los datos producidos por el mismo y los devueltos por el servidor. el mismo y los devueltos por el servidor.

Lógica de aplicación:Lógica de aplicación: Esta capa es la Esta capa es la responsable del procesamiento de la responsable del procesamiento de la información que tiene lugar en la información que tiene lugar en la aplicación. aplicación.

Base de datos:Base de datos: Esta compuesta de los Esta compuesta de los archivos que contienen los datos de la archivos que contienen los datos de la aplicación. aplicación.

Page 10: Seguridad de sistemas distribuidos

Arquitecturas Arquitecturas Cliente / Servidor:Cliente / Servidor:

Arquitectura Cliente-Servidor de Dos Capas:Arquitectura Cliente-Servidor de Dos Capas: Consiste en una Consiste en una capa de presentación y lógica de la aplicación; y la otra de la capa de presentación y lógica de la aplicación; y la otra de la base de datos. Normalmente esta arquitectura se utiliza en las base de datos. Normalmente esta arquitectura se utiliza en las siguientes situaciones: siguientes situaciones: Cuando se requiera poco procesamiento de datos en la Cuando se requiera poco procesamiento de datos en la organización. organización. Cuando se tiene una base de datos centralizada en un solo Cuando se tiene una base de datos centralizada en un solo servidor. servidor. Cuando la base de datos es relativamente estática. Cuando la base de datos es relativamente estática. Cuando se requiere un mantenimiento mínimo. Cuando se requiere un mantenimiento mínimo.

Arquitectura Cliente-Servidor de Tres Capas:Arquitectura Cliente-Servidor de Tres Capas: Consiste en una Consiste en una capa de la Presentación, otra capa de la lógica de la aplicación capa de la Presentación, otra capa de la lógica de la aplicación y otra capa de la base de datos. Normalmente esta arquitectura y otra capa de la base de datos. Normalmente esta arquitectura se utiliza en las siguientes situaciones: se utiliza en las siguientes situaciones: Cuando se requiera mucho procesamiento de datos en la Cuando se requiera mucho procesamiento de datos en la aplicación. aplicación. En aplicaciones donde la funcionalidad este en constante En aplicaciones donde la funcionalidad este en constante cambio. cambio. Cuando los procesos no están relativamente muy relacionados Cuando los procesos no están relativamente muy relacionados con los datos. con los datos. Cuando se requiera aislar la tecnología de la base de datos Cuando se requiera aislar la tecnología de la base de datos para que sea fácil de cambiar. para que sea fácil de cambiar. Cuando se requiera separar el código del cliente para que se Cuando se requiera separar el código del cliente para que se facilite el mantenimiento. facilite el mantenimiento.

Page 11: Seguridad de sistemas distribuidos

Clasificación de los sistemas Clasificación de los sistemas cliente servidor:cliente servidor:

Representación distribuida:Representación distribuida:

Page 12: Seguridad de sistemas distribuidos

Representación Representación RemotaRemota::

Page 13: Seguridad de sistemas distribuidos

Lógica Lógica DistribuidaDistribuida::

Page 14: Seguridad de sistemas distribuidos

Gestión Remota de Gestión Remota de DatosDatos::

Page 15: Seguridad de sistemas distribuidos

Base de Datos Base de Datos DistribuidasDistribuidas::

Page 16: Seguridad de sistemas distribuidos

Cliente servidor a tres Cliente servidor a tres nivelesniveles::

Page 17: Seguridad de sistemas distribuidos

Protocolo:Protocolo:

Es un conjunto bien conocido de reglas y Es un conjunto bien conocido de reglas y formatos que se utilizan para la formatos que se utilizan para la comunicación entre procesos que comunicación entre procesos que realizan una determinada tarea. Se realizan una determinada tarea. Se requieren dos partes: requieren dos partes:

Especificación de la secuencia de Especificación de la secuencia de mensajes que se han de intercambiar. mensajes que se han de intercambiar.

Especificación del formato de los datos Especificación del formato de los datos en los mensajes. en los mensajes.

Page 18: Seguridad de sistemas distribuidos

Ejemplos de Protocolos Ejemplos de Protocolos Usados en los Sistemas Usados en los Sistemas

Distribuidos:Distribuidos: IP: Protocolo de Internet.

TCP: Protocolo de Control de Transmisión.

HTTP: Protocolo de Transferencia de Hipertexto.

SMTP: Protocolo de Transferencia de Correo Simple.

POP3: Protocolo de Oficina de Correo.

Page 19: Seguridad de sistemas distribuidos

Conceptos de HardwareConceptos de Hardware::

Todos los sistemas distribuidos constan de Todos los sistemas distribuidos constan de varias cpu, organizadas de diversas formas, varias cpu, organizadas de diversas formas, existen diversos esquemas de clasificación existen diversos esquemas de clasificación para los sistemas de cómputos con varias para los sistemas de cómputos con varias cpu: cpu:

Uno de los más conocidos es la “Taxonomía Uno de los más conocidos es la “Taxonomía de Flynn”: Considera como características de Flynn”: Considera como características esenciales el número de flujo de esenciales el número de flujo de instrucciones y el número de flujos de datos. instrucciones y el número de flujos de datos.

Page 20: Seguridad de sistemas distribuidos

La clasificación incluye equipos: La clasificación incluye equipos: SISD, SIMD, MISDSISD, SIMD, MISD y y MIMD.MIMD.

MIMDMIMD (Multiple Instruction Multiple Data: un grupo de (Multiple Instruction Multiple Data: un grupo de computadoras independientes, cada una con su computadoras independientes, cada una con su propio contador del programa, programa y datos): propio contador del programa, programa y datos): Todos los sistemas distribuidos son de este tipoTodos los sistemas distribuidos son de este tipo

Un avance sobre la clasificación de Flynn incluye la Un avance sobre la clasificación de Flynn incluye la división de las computadoras MIMD en dos grupos: división de las computadoras MIMD en dos grupos:

Multiprocesadores:Multiprocesadores: poseen memoria compartida: poseen memoria compartida: Los distintos procesadores comparten el mismo Los distintos procesadores comparten el mismo espacio de direcciones virtuales. espacio de direcciones virtuales.

Multicomputadoras:Multicomputadoras: no poseen memoria no poseen memoria compartida: Ej.: grupo de PC conectadas mediante compartida: Ej.: grupo de PC conectadas mediante una red. una red.

Page 21: Seguridad de sistemas distribuidos

Cada una de las categorías indicadas se puede clasificar según la Cada una de las categorías indicadas se puede clasificar según la arquitectura de la red de interconexión en: arquitectura de la red de interconexión en:

Esquema de bus:Esquema de bus: Existe una sola red, bus, cable u otro medio Existe una sola red, bus, cable u otro medio que conecta todas las máquinas. que conecta todas las máquinas.

Esquema con conmutador:Esquema con conmutador: No existe una sola columna No existe una sola columna vertebral de conexión: Hay múltiples conexiones y varios vertebral de conexión: Hay múltiples conexiones y varios patrones de conexionado.patrones de conexionado.

Otro aspecto de la clasificación considera el acoplamiento entre los Otro aspecto de la clasificación considera el acoplamiento entre los

equipos: equipos:

Sistemas fuertemente acoplados:Sistemas fuertemente acoplados: El retraso al enviar un El retraso al enviar un mensaje de una computadora a otra es corto y la tasa de mensaje de una computadora a otra es corto y la tasa de transmisión es alta. Generalmente se los utiliza como sistemas transmisión es alta. Generalmente se los utiliza como sistemas paralelos. paralelos.

Sistemas débilmente acoplados:Sistemas débilmente acoplados: El retraso de los mensajes El retraso de los mensajes entre las máquinas es grande y la tasa de transmisión es baja. entre las máquinas es grande y la tasa de transmisión es baja. Generalmente se los utiliza como sistemas distribuidos. Generalmente se los utiliza como sistemas distribuidos.

““Generalmente los multiprocesadores están más Generalmente los multiprocesadores están más fuertemente acoplados que las multicomputadoras”.fuertemente acoplados que las multicomputadoras”.

Page 22: Seguridad de sistemas distribuidos

Middleware:Middleware:

El software distribuido requerido para facilitar las El software distribuido requerido para facilitar las interacciones cliente-servidor se denomina interacciones cliente-servidor se denomina middleware. El acceso transparente a servicios y middleware. El acceso transparente a servicios y recursos no locales distribuidos a través de una red se recursos no locales distribuidos a través de una red se provee a través del middleware, que sirve como marco provee a través del middleware, que sirve como marco para la comunicación entre las porciones cliente y para la comunicación entre las porciones cliente y servidor de un sistema.servidor de un sistema.

El middleware define: el API que usan los clientes para El middleware define: el API que usan los clientes para pedir un servicio a un servidor, la transmisión física de pedir un servicio a un servidor, la transmisión física de la petición vía red, y la devolución de resultados desde la petición vía red, y la devolución de resultados desde el servidor al cliente. el servidor al cliente.

El middleware fundamental o genérico es la base de los El middleware fundamental o genérico es la base de los sistemas cliente-servidor.sistemas cliente-servidor.

El protocolo de comunicaciones más usado por el El protocolo de comunicaciones más usado por el middlware, tanto genérico como específico, es TCP/IP.middlware, tanto genérico como específico, es TCP/IP.

Page 23: Seguridad de sistemas distribuidos

Factores que Han Afectado el Factores que Han Afectado el Desarrollo de los Sistemas Desarrollo de los Sistemas

Distribuidos:Distribuidos: Avances Tecnológicos. Avances Tecnológicos. Nuevos requerimientos. Nuevos requerimientos. Globalización. Globalización. Aspectos Externos (Culturales, Aspectos Externos (Culturales,

Políticos, Económicos). Políticos, Económicos). Integración.Integración.

Page 24: Seguridad de sistemas distribuidos
Page 25: Seguridad de sistemas distribuidos

Ventajas y Desventajas de Ventajas y Desventajas de los Sistemas Distribuidoslos Sistemas Distribuidos

Ventajas:Ventajas: Procesadores más poderosos y a menos costos.Procesadores más poderosos y a menos costos. Desarrollo de Estaciones con más capacidades. Desarrollo de Estaciones con más capacidades. Avances en la Tecnología de Comunicaciones. Avances en la Tecnología de Comunicaciones. Disponibilidad de elementos de Comunicación. Disponibilidad de elementos de Comunicación. Compatición de Recursos. Compatición de Recursos. Eficiencia y Flexibilidad. Eficiencia y Flexibilidad. Respuesta Rápida. Respuesta Rápida. Ejecución Concurrente de procesos (En varias Ejecución Concurrente de procesos (En varias

computadoras).computadoras). Disponibilidad y Confiabilidad. Disponibilidad y Confiabilidad. Sistema poco propenso a fallas (Si un componente falla no Sistema poco propenso a fallas (Si un componente falla no

afecta a la disponibilidad del sistema). afecta a la disponibilidad del sistema). Mayores servicios que elevan la funcionalidad (Monitoreo, Mayores servicios que elevan la funcionalidad (Monitoreo,

Telecontrol, Correo Eléctrico, Etc.). Telecontrol, Correo Eléctrico, Etc.). Inclusión rápida de nuevos recursos. Inclusión rápida de nuevos recursos.

Page 26: Seguridad de sistemas distribuidos

Desventajas:Desventajas: Requerimientos de mayores controles Requerimientos de mayores controles

de procesamiento.de procesamiento. Velocidad de propagación de Velocidad de propagación de

información (Muy lenta a veces).información (Muy lenta a veces). Servicios de replicación de datos y Servicios de replicación de datos y

servicios con posibilidades de fallas.servicios con posibilidades de fallas. Mayores controles de acceso y Mayores controles de acceso y

proceso (Commit).proceso (Commit). Administración más compleja.Administración más compleja. Costos.Costos.

Page 27: Seguridad de sistemas distribuidos

Evolución de las Necesidades Evolución de las Necesidades de Seguridad:de Seguridad:

1965-75 1975-89 1990-99 Actualmente1965-75 1975-89 1990-99 Actualmente

Page 28: Seguridad de sistemas distribuidos

Amenazas y AtaquesAmenazas y Ataques

Las amenazas de seguridad se dividen en tres clases:Las amenazas de seguridad se dividen en tres clases: FugaFuga:: la adquisición de información por receptores no autorizados. la adquisición de información por receptores no autorizados. Alteración:Alteración: la modificación no autorizada de información. la modificación no autorizada de información. VandalismoVandalismo:: interferencia en el modo de operación adecuado de un interferencia en el modo de operación adecuado de un

sistema, sin ganancia para el responsable.sistema, sin ganancia para el responsable.

Los métodos de ataque pueden clasificarse en función del modo en que Los métodos de ataque pueden clasificarse en función del modo en que se abusa del canal:se abusa del canal:

FisgarFisgar : :obtener copias sin autorización.obtener copias sin autorización. Suplantar:Suplantar: enviar o recibir mensajes utilizando la identidad de otro enviar o recibir mensajes utilizando la identidad de otro

sin su autorización. sin su autorización. Alterar mensajes:Alterar mensajes: interceptar mensajes y alterar sus contenidos interceptar mensajes y alterar sus contenidos

antes de pasarlos al receptor. antes de pasarlos al receptor. Reenviar:Reenviar: almacenar mensajes interceptados y enviarlos más tarde. almacenar mensajes interceptados y enviarlos más tarde. Denegación de servicio:Denegación de servicio: desbordar un canal o recurso para desbordar un canal o recurso para

impedir que otros accedan a él.impedir que otros accedan a él.

Page 29: Seguridad de sistemas distribuidos

Diseño de Sistemas Diseño de Sistemas Seguros:Seguros:

Debemos diferenciar las tareas específicas de un diseñador de sistemas Debemos diferenciar las tareas específicas de un diseñador de sistemas seguros y de un programador. seguros y de un programador. El objetivo del El objetivo del diseñadordiseñador es excluir es excluir todos los posibles ataques y agujeros.todos los posibles ataques y agujeros. La situación es análoga a la del La situación es análoga a la del programadorprogramador cuyo principal objetivo es excluir todos los errores de su cuyo principal objetivo es excluir todos los errores de su programa. programa.

Para demostrar la validez de los mecanismos de seguridad, empleados en Para demostrar la validez de los mecanismos de seguridad, empleados en un sistema, los diseñadores deben construir, en primer lugar, una lista un sistema, los diseñadores deben construir, en primer lugar, una lista de amenazas yde amenazas y probar que cada una de ellas se puede prevenir probar que cada una de ellas se puede prevenir mediante los mecanismos empleados como por ej. mediante los mecanismos empleados como por ej. Un histórico de Un histórico de seguridadseguridad contendrá una secuencia de registros fechados de las contendrá una secuencia de registros fechados de las acciones de los usuarios. Como mínimo, los registros incluirán la acciones de los usuarios. Como mínimo, los registros incluirán la identidad del principal, la operación realizada), la identidad del objeto identidad del principal, la operación realizada), la identidad del objeto sobre el que se opera y la fecha y hora.sobre el que se opera y la fecha y hora.

  El diseño de sistemas seguros es un ejercicio de balance entre los costos El diseño de sistemas seguros es un ejercicio de balance entre los costos y las amenazas ya que:y las amenazas ya que:

Su uso acarrea un costo (en esfuerzo computacional y uso de la red). Su uso acarrea un costo (en esfuerzo computacional y uso de la red). Los costos deben compensar la amenaza.Los costos deben compensar la amenaza.

Unas especificaciones de medidas de seguridad inapropiadas podrían Unas especificaciones de medidas de seguridad inapropiadas podrían impedir a los usuarios legítimos el realizar ciertas acciones necesarias.impedir a los usuarios legítimos el realizar ciertas acciones necesarias.

Page 30: Seguridad de sistemas distribuidos

Criptografía:Criptografía:La encriptación es el proceso de codificación de un mensaje de La encriptación es el proceso de codificación de un mensaje de

forma que queden ocultos sus contenidos.forma que queden ocultos sus contenidos.

La criptografía moderna incluye algunos algoritmos seguros de La criptografía moderna incluye algunos algoritmos seguros de encriptación y desencriptación de mensajes.encriptación y desencriptación de mensajes.

Todos ellos se basan en el uso de ciertos secretos llamados claves.Todos ellos se basan en el uso de ciertos secretos llamados claves.

Una clave criptográfica es un parámetro empleado en un algoritmo Una clave criptográfica es un parámetro empleado en un algoritmo de encriptación de manera que no sea reversible sin el de encriptación de manera que no sea reversible sin el conocimiento de una clave.conocimiento de una clave.

Hay dos clases principales de algoritmos de encriptación de uso Hay dos clases principales de algoritmos de encriptación de uso general:general:

La primera emplea claves secretas compartidas.La primera emplea claves secretas compartidas. La segunda emplea La segunda emplea pares de claves pública / privada.pares de claves pública / privada.

Page 31: Seguridad de sistemas distribuidos

Notación CriptográficaNotación Criptográfica KA: Clave secreta de Alice.KA: Clave secreta de Alice. KB: Clave secreta de Bob.KB: Clave secreta de Bob. KAB: Clave secreta compartida por Alice y KAB: Clave secreta compartida por Alice y

Bob.Bob. KApriv: Clave privada de Alice (solo KApriv: Clave privada de Alice (solo

conocida por Alice).conocida por Alice). KApub: Clave pública de Alice (publicada KApub: Clave pública de Alice (publicada

por Alice para lectura de cualquiera).por Alice para lectura de cualquiera). {M} k: Mensaje M encriptado con la clave {M} k: Mensaje M encriptado con la clave

K.K. {M} k: Mensaje M firmado con la clave K.{M} k: Mensaje M firmado con la clave K.

Page 32: Seguridad de sistemas distribuidos

Usos de la CriptografíaUsos de la CriptografíaLa criptografía juega tres papeles principales en la La criptografía juega tres papeles principales en la

implementación de los sistemas seguros:implementación de los sistemas seguros:

Secreto e integridadSecreto e integridad:: se emplea para mantener el secreto y la se emplea para mantener el secreto y la integridad de la información dondequiera que pueda estar integridad de la información dondequiera que pueda estar expuesta a ataques potenciales.expuesta a ataques potenciales.

Autenticación:Autenticación: La criptografía se emplea como base para los La criptografía se emplea como base para los mecanismos para autenticar la comunicación entre pares de mecanismos para autenticar la comunicación entre pares de principales.principales.

Un principal que desencripta un mensaje con éxito empleando Un principal que desencripta un mensaje con éxito empleando una clave particular puede presuponer que el mensaje es una clave particular puede presuponer que el mensaje es auténtico si contiene una suma de chequeo correcta o, si se auténtico si contiene una suma de chequeo correcta o, si se emplea el modo de encriptación de encadenamiento de bloques.emplea el modo de encriptación de encadenamiento de bloques.

Firmas digitalesFirmas digitales:: Ésta emula el papel de las firmas Ésta emula el papel de las firmas convencionales, verificando a una tercera parte que un mensaje o convencionales, verificando a una tercera parte que un mensaje o un documento es una copia inalterada producida por el firmante.un documento es una copia inalterada producida por el firmante.

Page 33: Seguridad de sistemas distribuidos

Otros usosOtros usos

Certificados: Certificados: es un documento que contiene una es un documento que contiene una sentencia (generalmente corta) firmada por un sentencia (generalmente corta) firmada por un principal. Estos pueden emplearse para establecer la principal. Estos pueden emplearse para establecer la autenticidad de muchos tipos de enunciados.autenticidad de muchos tipos de enunciados.

Control de Acceso: Control de Acceso: Los servidores reciben mensajes con Los servidores reciben mensajes con peticiones de la forma <op, principal, recurso>, donde op peticiones de la forma <op, principal, recurso>, donde op es la operación solicitada, principal es una identidad o un es la operación solicitada, principal es una identidad o un conjunto de credenciales del principal que realiza la petición conjunto de credenciales del principal que realiza la petición y recurso identifica el recurso sobre el que se aplica la y recurso identifica el recurso sobre el que se aplica la operación. El servidor debe, en primer lugar, comprobar la operación. El servidor debe, en primer lugar, comprobar la autenticidad del mensaje de petición y las credenciales del autenticidad del mensaje de petición y las credenciales del principal y después aplicar el control de acceso, rehusando principal y después aplicar el control de acceso, rehusando cualquier petición para la cual el principal solicitante no cualquier petición para la cual el principal solicitante no tenga los derechos de acceso pertinentes para realizar la tenga los derechos de acceso pertinentes para realizar la operación requerida sobre el recurso especificado.operación requerida sobre el recurso especificado.

Page 34: Seguridad de sistemas distribuidos

Credenciales: Credenciales: Las credenciales son un conjunto Las credenciales son un conjunto de evidencias presentadas por un principal de evidencias presentadas por un principal cuando pide acceso a un recurso. cuando pide acceso a un recurso.

Cortafuegos: Cortafuegos: Con ellos se protege una intranet, Con ellos se protege una intranet, se realizan acciones de filtrado en las se realizan acciones de filtrado en las comunicaciones entrantes y salientes.comunicaciones entrantes y salientes.

Los cortafuegos producen un entorno de Los cortafuegos producen un entorno de

comunicación local en el que se intercepta toda comunicación local en el que se intercepta toda comunicación externa. Los mensajes se reenvían comunicación externa. Los mensajes se reenvían al recipiente local final sólo para las al recipiente local final sólo para las comunicaciones que estén autorizadas comunicaciones que estén autorizadas explícitamente. explícitamente.

Los cortafuegos no son particularmente útiles contra Los cortafuegos no son particularmente útiles contra ataques de denegación de serviciosataques de denegación de servicios,, basado en la basado en la suplantación de direcciones IP. suplantación de direcciones IP.

Page 35: Seguridad de sistemas distribuidos

Algoritmos de Clave Secreta Algoritmos de Clave Secreta (Simétricos):(Simétricos):

TEATEA::Tiny Encryption AlgorithmTiny Encryption Algorithm (TEA, (TEA, pequeño algoritmo de encriptación), pequeño algoritmo de encriptación), se ha escogido por la simplicidad de se ha escogido por la simplicidad de su diseño e implementación:su diseño e implementación: Emplea vueltas de sumas enteras, XOR Emplea vueltas de sumas enteras, XOR

y desplazamientos lógicos de bits, para y desplazamientos lógicos de bits, para obtener la difusión y confusión de los obtener la difusión y confusión de los patrones de bits en el texto en claro. patrones de bits en el texto en claro.

Page 36: Seguridad de sistemas distribuidos

  Función de encriptación de TEA:Función de encriptación de TEA:

Void encripta (unsigned long k [ ], unsigned Void encripta (unsigned long k [ ], unsigned long texto [ ]{long texto [ ]{

unsigned long y = texto [0], z = texto unsigned long y = texto [0], z = texto [1];[1];

unsigned long delta = 0x 9e3779v9, unsigned long delta = 0x 9e3779v9, suma = 0; int n;suma = 0; int n;

for ( n = 0 ; n < 32; n ++){for ( n = 0 ; n < 32; n ++){suma + = delta;suma + = delta;y + = (( z << 4) + k [0]) ^ ( z + suma) ^ (( z y + = (( z << 4) + k [0]) ^ ( z + suma) ^ (( z >> 5) + ( k [1]);>> 5) + ( k [1]);z + = (( y << 4) + k [2]) ^ (y + suma ) ^ (( y z + = (( y << 4) + k [2]) ^ (y + suma ) ^ (( y >> 5 ) + (k [3]);>> 5 ) + (k [3]);

}} texto [0] = y; texto [1] = z; texto [0] = y; texto [1] = z; }}

Page 37: Seguridad de sistemas distribuidos

  Función de desencriptación de TEA:Función de desencriptación de TEA:  Void encripta (unsigned long k [ ], unsigned Void encripta (unsigned long k [ ], unsigned

long texto [ ]{long texto [ ]{ unsigned long y = texto [0], z = texto [1];unsigned long y = texto [0], z = texto [1]; unsigned long delta = 0x 9e3779v9, suma unsigned long delta = 0x 9e3779v9, suma

= 0; int n;= 0; int n; for ( n = 0 ; n < 32; n ++){for ( n = 0 ; n < 32; n ++){

suma + = delta;suma + = delta;y + = (( z << 4) + k [2]) ^ ( z + suma) ^ (( z y + = (( z << 4) + k [2]) ^ ( z + suma) ^ (( z >> 5) + ( k [3]);>> 5) + ( k [3]);z + = (( y << 4) + k [0]) ^ (y + suma ) ^ (( y z + = (( y << 4) + k [0]) ^ (y + suma ) ^ (( y >> 5 ) + (k [1]);>> 5 ) + (k [1]);

}} texto [0] = y; texto [1] = z; texto [0] = y; texto [1] = z; }}

Page 38: Seguridad de sistemas distribuidos

DES:DES: El Estandar de Encriptación de Datos El Estandar de Encriptación de Datos (Data Encryption Standar)(Data Encryption Standar), usado para , usado para aplicaciones gubernamentales y de negocios. aplicaciones gubernamentales y de negocios. HHa sido un estándar nacional de los EE.UU. a sido un estándar nacional de los EE.UU. aunque su interés es histórico dado que sus aunque su interés es histórico dado que sus claves declaves de 56 56 bits son demasiado reducidas bits son demasiado reducidas para resistir un ataque por fuerza bruta con el para resistir un ataque por fuerza bruta con el hardware actual.hardware actual.

IDEA: IDEA: El Algoritmo de Encriptación de Datos El Algoritmo de Encriptación de Datos Internacional Internacional (International Data Encription (International Data Encription Algorithm,Algorithm, IDEA) se desarrolló a comienzos de IDEA) se desarrolló a comienzos de los años noventa como sucesor de DES.los años noventa como sucesor de DES. Emplea una clave deEmplea una clave de 128 128 bits y es, bits y es, probablemente, el algoritmo de encriptación probablemente, el algoritmo de encriptación simétrico de bloques más efectivo.simétrico de bloques más efectivo.

Page 39: Seguridad de sistemas distribuidos

Algoritmos de Clave Pública Algoritmos de Clave Pública (Asimétricos):(Asimétricos):

Hasta la fecha sólo se han desarrollado unos pocos esquemas Hasta la fecha sólo se han desarrollado unos pocos esquemas prácticos de clave pública. prácticos de clave pública.

Un principal que desee participar en una comunicación segura Un principal que desee participar en una comunicación segura con otros confecciona un par de claves con otros confecciona un par de claves Ke, y KdKe, y Kd y guarda en y guarda en secreto la clave de desencriptación secreto la clave de desencriptación Kd.Kd. La clave de La clave de encriptación encriptación Ke Ke puede publicarse para cualquiera que desee puede publicarse para cualquiera que desee comunicar.comunicar.

D ( Ke E ( Ke, M ) ) D ( Ke E ( Ke, M ) ) = = M M

El algoritmo RSA es ciertamente el algoritmo de clave pública El algoritmo RSA es ciertamente el algoritmo de clave pública más conocido que lo describiremos a continuación:más conocido que lo describiremos a continuación:RSA:RSA: (Rivest, Snamir y Adelman) (Rivest, Snamir y Adelman) el diseño para el encriptador el diseño para el encriptador de clave pública, se basa en el uso del producto de dos de clave pública, se basa en el uso del producto de dos números primos muy grandes, la determinación de los números primos muy grandes, la determinación de los factores primos de números tan grandes es factores primos de números tan grandes es computacionalmente imposible de calcular.computacionalmente imposible de calcular.

Page 40: Seguridad de sistemas distribuidos

Bosquejo del método RSA:Bosquejo del método RSA:

Para encontrar las claves Para encontrar las claves e, d:e, d:

1.1. Elíjanse dos números primos grandes, Elíjanse dos números primos grandes, PP y y QQ (mayores que10^100), y (mayores que10^100), y fórmesefórmese

N = PN = P x x QQZ = (P-Z = (P- 1) 1) x x (Q-(Q- 1) 1)

2.2. Para Para dd elíjase cualquier número primo con relación a Z (esto es, que elíjase cualquier número primo con relación a Z (esto es, que dd no tenga factores en común con Z).no tenga factores en común con Z).

Ilústreme los cálculos correspondientes empleando valores pequeños de Ilústreme los cálculos correspondientes empleando valores pequeños de PP y y QQP = 13 . Q = 17 → N = 221 . Z = 192P = 13 . Q = 17 → N = 221 . Z = 192d = 5d = 5

3.3. Para encontrar Para encontrar ee resuélvase la ecuación: resuélvase la ecuación: ee x x dd = = 1 1 mod Zmod Z    Esto es, Esto es, ee x x dd es el número más pequeño divisible por es el número más pequeño divisible por dd en la serie Z en la serie Z + 1, + 1, 2Z 2Z + + 1, 1,

3Z +3Z + 1, 1,  Para encriptar el texto en claro se divide en bloques iguales de longitud Para encriptar el texto en claro se divide en bloques iguales de longitud kk bits bits

donde 2 ^ kdonde 2 ^ k < N < N (el valor numérico de un bloque es siempre menor que (el valor numérico de un bloque es siempre menor que N;N; en en aplicaciones prácticas, aplicaciones prácticas, kk está generalmente en el rango de está generalmente en el rango de 512 512 a a 1.024). 1.024).

La función de encriptación de un bloque de texto en claro La función de encriptación de un bloque de texto en claro MM es: es:E' ( e, N, M ) = M E' ( e, N, M ) = M ^̂ee mod N mod NPara desencriptar un bloque de texto encriptado c para producir el bloque de texto Para desencriptar un bloque de texto encriptado c para producir el bloque de texto

en claro original es:en claro original es:D' ( d, N, c)D' ( d, N, c) = = c c^̂ d mod N d mod NS e probó que S e probó que E'E' y y D'D' son inversas mutuas (esto es, que son inversas mutuas (esto es, que E' ( D' (x) )E' ( D' (x) ) = = D' ( E' (x) ) D' ( E' (x) ) = = x x

)) para cualquier valor para cualquier valor PP en el rango 0 ≤ en el rango 0 ≤ P P ≤≤ N N..

Page 41: Seguridad de sistemas distribuidos

Algoritmos de Curvas ElípticasAlgoritmos de Curvas Elípticas: :

Un algoritmo puede generar pares de claves Un algoritmo puede generar pares de claves pública / privada basándose en las propiedades pública / privada basándose en las propiedades de las curvas elípticas. de las curvas elípticas.

Las claves de derivan de una rama diferente de Las claves de derivan de una rama diferente de las matemáticas, y a diferencia de RSA su las matemáticas, y a diferencia de RSA su seguridad no depende de la dificultad de la seguridad no depende de la dificultad de la factorización de números grandes. factorización de números grandes.

Las claves cortas son seguras, y los requisitos de Las claves cortas son seguras, y los requisitos de procesamiento para la encriptación y la procesamiento para la encriptación y la desencriptación son menores.desencriptación son menores.

Page 42: Seguridad de sistemas distribuidos

Firmas Digitales:Firmas Digitales:Una firma digital robusta es un requisito esencial Una firma digital robusta es un requisito esencial

para los sistemas seguros.para los sistemas seguros.

Las firmas manuscritas necesitan verificar que éste Las firmas manuscritas necesitan verificar que éste es:es:

Auténtico:Auténtico: convence al receptor de que el convence al receptor de que el firmante firmó deliberadamente el documento y firmante firmó deliberadamente el documento y que la firma no ha sido alterado por nadie.que la firma no ha sido alterado por nadie.

Infalsificable:Infalsificable: aporta la prueba de que el firmante aporta la prueba de que el firmante firmó el documento.firmó el documento.

No repudiable:No repudiable: el firmante no puede negar de el firmante no puede negar de forma creíble que el documento fue por él.forma creíble que el documento fue por él.

Page 43: Seguridad de sistemas distribuidos

Firmas Digitales Con Claves Firmas Digitales Con Claves Públicas: Públicas:

La criptografía de clave pública se La criptografía de clave pública se adapta particularmente bien a la adapta particularmente bien a la generación de firmas digitales dado que generación de firmas digitales dado que es relativamente simple y no requiere es relativamente simple y no requiere ninguna comunicación entre el ninguna comunicación entre el destinatario de un documento firmado y destinatario de un documento firmado y el firmante.el firmante.

Page 44: Seguridad de sistemas distribuidos

  Firmas Digitales Con Claves Secretas, Mac: Firmas Digitales Con Claves Secretas, Mac:

No hay ninguna razón técnica por la que un algoritmo de No hay ninguna razón técnica por la que un algoritmo de encriptación de clave secreta no pueda usarse para encriptar encriptación de clave secreta no pueda usarse para encriptar una firma digital, pero existen algunos problemas:una firma digital, pero existen algunos problemas:

1.1. El firmante debe conseguir que el verificador reciba la clave El firmante debe conseguir que el verificador reciba la clave secreta empleada para firmar de modo seguro.secreta empleada para firmar de modo seguro.

2.2. Debe ser necesario poder verificar una firma en varios contextos Debe ser necesario poder verificar una firma en varios contextos diferentes y en momentos diferentes.diferentes y en momentos diferentes.

3.3. El descubrimiento de una clave secreta empleada para una firma El descubrimiento de una clave secreta empleada para una firma es poco deseable puesto que debilita la seguridad de las firmas es poco deseable puesto que debilita la seguridad de las firmas realizadas con ellas, podrían falsificarse una firma por alguien realizadas con ellas, podrían falsificarse una firma por alguien que posea la clave y que no sea su propietario.que posea la clave y que no sea su propietario.

Existe una excepción cuando se utiliza un canal seguro para Existe una excepción cuando se utiliza un canal seguro para transmitir los mensajes desencriptados pero subsiste la transmitir los mensajes desencriptados pero subsiste la necesidad de verificar la autenticidad de los mensajes. Estas necesidad de verificar la autenticidad de los mensajes. Estas firmas se denominan firmas se denominan códigos de autenticidad de mensajes códigos de autenticidad de mensajes (MAC)(MAC) para reflejar su objetivo más limitado: autentican la para reflejar su objetivo más limitado: autentican la comunicación entre pares de principales basándose en un comunicación entre pares de principales basándose en un secreto compartido.secreto compartido.

Page 45: Seguridad de sistemas distribuidos

Kerberos:Kerberos:Kerberos es una forma eliminar la necesidad de Kerberos es una forma eliminar la necesidad de

aquellos protocolos que permiten métodos de aquellos protocolos que permiten métodos de autenticación inseguros, y de esta forma mejorar la autenticación inseguros, y de esta forma mejorar la seguridad general de la red. seguridad general de la red.

Kerberos es un protocolo de seguridad creado por MIT Kerberos es un protocolo de seguridad creado por MIT que usa una criptografía de claves simétricas para que usa una criptografía de claves simétricas para validar usuarios con los servicios de red evitando validar usuarios con los servicios de red evitando así tener que enviar contraseñas a través de la red: así tener que enviar contraseñas a través de la red:

Al validar los usuarios para los servicios de la Al validar los usuarios para los servicios de la red red por medio de Kerberos, se frustran los por medio de Kerberos, se frustran los intentos de intentos de usuarios no autorizados que intentan usuarios no autorizados que intentan interceptar interceptar contraseñas en la red. contraseñas en la red.

Page 46: Seguridad de sistemas distribuidos

Conclusiones:Conclusiones: Los ataques a la seguridad son partes de la realidad de los sistemas Los ataques a la seguridad son partes de la realidad de los sistemas

distribuidos. Es esencial proteger los canales e interfaces de distribuidos. Es esencial proteger los canales e interfaces de comunicaciones de cualquier sistema que trate con información comunicaciones de cualquier sistema que trate con información que sea susceptible de ser atacada. que sea susceptible de ser atacada.

Los sistemas distribuidos abarcan una cantidad de aspectos Los sistemas distribuidos abarcan una cantidad de aspectos considerables, por lo cual su desarrollo implica mucha considerables, por lo cual su desarrollo implica mucha complejidad. complejidad.

Existen ciertos aspectos que requieren extremo cuidado al Existen ciertos aspectos que requieren extremo cuidado al desarrollarse e implantarse como el manejo de fallos, el control desarrollarse e implantarse como el manejo de fallos, el control de la concurrencia, etc. de la concurrencia, etc.

Existen muchos temas de investigación relacionados con los Existen muchos temas de investigación relacionados con los sistemas distribuidos.sistemas distribuidos.

Se nota también que muchas tecnologías están en constante Se nota también que muchas tecnologías están en constante desarrollo y maduración, lo cual implica un minucioso estudio desarrollo y maduración, lo cual implica un minucioso estudio previo de muchos factores antes de apostar por alguna tecnología previo de muchos factores antes de apostar por alguna tecnología en especial.en especial.

Page 47: Seguridad de sistemas distribuidos

MUCHAS GRACIAS