670 likes | 957 Views
Universidad de Oviedo Departamento de Informática. Tesis Doctoral SAHARA: ARQUITECTURA DE SEGURIDAD INTEGRAL PARA SISTEMAS DE AGENTES MÓVILES BASADO EN JAVA. __________________________________ Jesús Arturo Pérez Díaz Director: Dr. Juan Manuel Cueva Lovelle. Tesis Doctoral Objetivos Generales.
E N D
Universidad de Oviedo Departamento deInformática Tesis DoctoralSAHARA: ARQUITECTURA DE SEGURIDAD INTEGRAL PARA SISTEMAS DE AGENTES MÓVILES BASADO EN JAVA __________________________________ Jesús Arturo Pérez Díaz Director: Dr. Juan Manuel Cueva Lovelle
TesisDoctoralObjetivos Generales • Crear una arquitectura de seguridad integral para los sistemas de agentes móviles que ofrezca un entorno de ejecución seguro en todo sistema que la implemente, garantizando: • Protección total del servidor contra cualquier ataque. • Protección total en la transmisión de agentes. • Protección de los agentes móviles. • Que la arquitectura sea modular, escalable y versátil para que pueda ser integrada con sistemas existentes. • Que sea factible su implementación y conserve un rendimiento adecuado.
I.- Introducción II.-Estado del arte III.- Requerimientos de los Sistemas Móvilesactuales IV.- Arquitectura de Seguridad Integral V.- Implementación del Prototipo VI.- Evaluación y ámbitos VII.- Conclusiones y Líneas de Invest. Tesis DoctoralOrganización de la presentación • Partes de la presentación:
TesisDoctoralContenido • Objetivos y Organización. • Parte II: Estado del arte. • Parte III: Requerimientos de un Sistema de Agentes Móviles y la necesidad de una arquitectura de seguridad. Parte IV: Arquitectura de Seguridad Integral. • Parte V: Implementación del Prototipo. • Parte VI: Evaluación y Ámbitos de la Aplicación. • Parte VII: Conclusiones y Líneas de Investigación Futuras. • Parte I: Introducción.
I-IntroducciónDefinición de Agente Móvil • Un Agente Móvil es un programa que puede detener su ejecución, trasladarse a otro ordenador en una red (Internet), y entonces reanudar su ejecución en el nuevo ordenador. Un agente actua autonomamente en nombre de alguien y es tan inteligente como sea programado. • Una definición más técnica : “Un agente móvil es un objeto especial que tiene un estado de datos(otros objetos no agentes, estructuras de datos), un estado de código (las clases del agente) y un estado de ejecución (un puntero al proceso que ejecuta el agente) y que es capaz de migrar a otros sitios conservando sus estados.
I-Introducción Agentes Móviles Agentes móviles • Datos y código móviles. • Interacción local entre los objetos. • Autonomía y versatilidad.
I-IntroducciónEl por qué de los agentes móviles Se ejecutan en plataformas heterogéneas Reducen el tráfico de las redes Son autónomos Evolución de Internet 10000000 9000000 N 8000000 u 7000000 m H Son tolerables a fallos 6000000 b o e s 5000000 r t 4000000 s 3000000 o 2000000 f 1000000 0 1969 abr- nov- oct- jul- 91 abr- oct- ene- abr- oct- ene- oct- ene- ene- Implementan tareas paralelas Son tan inteligentes como sean programados 71 86 90 92 92 93 93 93 94 94 95 96
I-IntroducciónEl para qué de los agentes móviles Comercio electrónico Monitorización Búsqueda y filtrado Recolección de datos Distribución masiva de información Supercomputadora virtual
I-IntroducciónRetos a vencer por la tecnología • La portabilidad es una necesidad para que los agentes móviles sean capaces de moverse en redes heterogéneas. • La seguridad es importante porque el servidor debe mantener efectivamente el control de un programa externo de efecto desconocido. • La interoperabilidad es necesaria para que los agentes de un sistema puedan interactuar e intercambiar información con los de otro sistema o bien con objetos de otras tecnologías (CORBA).
TesisDoctoralContenido • Objetivos y Organización. • Parte I: Introducción. • Parte III: Requerimientos de un Sistema de Agentes Móviles y la necesidad de una arquitectura de seguridad. • Parte IV: Arquitectura de Seguridad Integral. • Parte V: Implementación del Prototipo. • Parte VI: Evaluación y Ámbitos de la Aplicación. • Parte VII: Conclusiones y Líneas de Investigación Futuras. • Parte II: Estado del arte.
II-Estado del Arte Ara - Seguridad • El esquema de seguridad no define un modelo autenticación. • La seguridad esta basada en asignaciones que son vectores de permisos de accesos que un lugar impone a un agente cuando éste entra. • Los lugares imponen una asignación local a cada agente para limitar el acceso a sus recursos basada en buena fé. • Una asignación global pone límites sobre todas las acciones de un agente durante de su ciclo de vida y pueden ser compartidas entre un grupo de ellos. • En la siguiente version la transmisión entre servidores se realizara con SSL.
II-Estado del ArteD’Agents - Seguridad • La autenticación en D'Agents está basada en PGP. • Los recursos son divididos en directos e indirectos. • Existen listas de acceso para restringir el acceso a cada recurso indirecto que son supervisadas mediante agentes que actuan como gestores permitiendo un acceso cualitativo y genérico. • Existe una lista de acceso para cada propietario. • La seguridad de los recursos directos del sistema es mantenida usando un interprete seguro. • La implementación actual no cuenta con una versión segura para todos los comandos.
II-Estado del Arte Java • Portabilidad mediante la máquina virtual • Lenguaje orientado a objetos • Serialización de objetos, RMI y componentes. • Multihilo y Multitarea. • Cargado de clases dinámico • Seguridad mediante el security manager • El interprete tiene un desempeño aceptable • Actualmente es ubicuo y aceptado.
II-Estado del Arte Aglets - Arquitectura La capa de transporte es la responsable del envío de un agente a su destino en forma de un flujo de bytes que contiene definiciones de clases.
II-Estado del Arte Aglets - Seguridad • No cuenta con ningún mecanismo de autenticación. • Se definen 2 grupos de aglets, los confiables (locales) y los no confiables(remotos). • Se utiliza una base de datos de políticas de seguridad en donde se definen los privilegios de cada grupo. • Dentro de cada categoría (confiables y no confiables) de seguridad se da soporte a los siguientes recursos: FileSystem (Sistema de Archivos), Network (Red), Property (Propiedades) y Others (otros). • Consta de una interfaz agletSecurityManager que le permite realizar verificaciones.
II-Estado del ArteMASIF Gestión del Agente. Envío del Agente. Nombres de Agentes y sistemas de Agentes. Tipos de sistemas de Agentes y sintaxis de la Localización.
Accede a través ORB Implementación MAF Cliente MAF 0 0 ..* ..* Interfaz MAFAgentSystem Interfaz MAFFinder Name create_agent ( ) void register_agent( ) MAFFinder get_MAFFinder ( ) void register_place( ) ....( ) ... ( ) II-Estado del ArteEstructura de la MASIF
TesisDoctoralContenido • Objetivos y Organización. • Parte I: Introducción. • Parte II: Estado del arte. • Parte IV: Arquitectura de Seguridad Integral. • Parte V: Implementación del Prototipo. • Parte VI: Evaluación y Ámbitos de la Aplicación. • Parte VII: Conclusiones y Líneas de Investigación Futuras. • Parte III: Requerimientos de Sistema de Agentes Móviles y la necesidad de una arquitectura de seguridad.
III-Requerimientos de un SAM y la Necesidad de SeguridadPlataforma de Desarrollo • Lenguaje de Programación: • Portable: para lograr una ejecución idéntica en distintos sistemas. • Orientación a objetos. • Persistencia: para poder conservar el estados de datos del Agente. • Servicios básicos • Creación y Reanudación de agentes. • Envío. • Localización. • Comunicación.
III-Requerimientos de un SAM y la Necesidad de Seguridad Seguridad e Interoperabilidad • Seguridad: • Protección del servidor de agentes (host) frente a ataques de agentes o de otros servidores malvados. • Protección de la transmisión de la información frente a terceras partes. • Protección de los agentes frente a servidores malvados. • Interoperabilidad • Navegación por sistemas diferentes logrando interactuar con agentes de otros sistemas. • Se logra mediante la definición de un modelo estándar o usando la especificación de la MASIF. • Debe mantener los aspectos de seguridad de todos los sistemas.
III-Requerimientos de un SAM y la Necesidad de Seguridad Entornos Integrados de Desarrollo • Integración con el WEB • Integración con los navegadores. • Búsquedas concurrentes con criterios de selección mas apropiados. • Introducción de Agentes Móviles en Applets. • Interfaz gráfica para facilitar tareas usuario. • Servicio de monitorización. • Páginas Amarillas. • Entornos visuales de desarrollo. • Depuradores. • Gestor y encaminamiento de excepciones.
III-Requerimientos de un SAM y la Necesidad de SeguridadFalsificación y Acceso Ilegal • Servidores y/o agentes simulan proceder de una autoridad diferente a la verdadera para lograr acceder a un sistema. • Acceso ilegal a información o recursos debido a los entornos de ejecución inseguros causados por los esquemas inadecuados de asignación de privilegios. • Confiables (locales) - todos los permisos. • No confiables (remotos) - subconjunto. • Inflexible.
III-Requerimientos de un SAM y la Necesidad de Seguridad Caballo de Troya y Agotamiento de Recursos • Un agente de un usuario legítimo realiza algo diferente que lo que el sistema de agentes esperaba que hiciera. • El consumo excesivo de recursos por un agente que produce que el sistema no pueda satisfacer más peticiones por carencia de recursos. • Ej: memoria, disco. • Ej: conexiones de red. • El control del consumo debe hacerse • Por agente y por autoridad.
III-Requerimientos de un SAM y la Necesidad de Seguridad Espionaje o Sustitución de información • Consiste en obtener información del agente mediante un programa (monitor de comunicación) que no altera el agente. • Una variante del ataque anterior es la interceptación y sustitución de mensajes que hace uso de un monitor inteligente capaz de distinguir los mensajes para interceptarlos y sustituirlos.
III-Requerimientos de un SAM y la Necesidad de Seguridad Lavado de Cerebro y Réplicas • Alteración aviesa del código que modifica el comportamiento del agente. • Alteración de los datos(varían con el recorrido) modificando los valores obtenidos por el agente en beneficio del atacante.
TesisDoctoralContenido • Objetivos y Organización. • Parte I: Introducción. • Parte II: Estado del arte. • Parte III: Requerimientos de un Sistema de Agentes Móviles y la necesidad de una arquitectura de seguridad. • Parte V: Implementación del Prototipo. • Parte VI: Evaluación y Ámbitos de la Aplicación. • Parte VII: Conclusiones y Líneas de Investigación Futuras.. • Parte IV:Arquitectura de Seguridad Integral.
IV-Arquitectura de Seguridad Integral Objetivos particulares(1) Protección del Servidor • Autentificar las autoridades de servidores y agentes. • Otorgar privilegios de forma individual a los agentes móviles de cada autoridad local y remota. • Especificación de permisos al nivel de recursos, indicando incluso el tipo de acceso. • Poder imponer asignaciones a cada autoridad o sistema remoto para controlar el consumo de recursos de los agentes provenientes de sistemas remotos. • Definir una política de cumplimiento de privilegios robusta que garantice que los agentes no podrán acceder a los recursos no autorizados. • Que los agentes compartan ficheros en tiempo de ejecución.
IV-Arquitectura de Seguridad Integral Objetivos particulares(2) Proteccióndel Agente y su transmisión • Proteger el código del agente mediante firmas digitales y crear una técnica de encriptación que sea fácil de implementar para proteger los datos del agente móvil. • Proteger la transmisión de los agentes y su información de un servidor a otro. Inteligenciadel Sistema y Factibilidad • Proveer al servidor de agentes de un gestor inteligente para que modifique las políticas de seguridad en tiempo de ejecución cuando tenga escasez de recursos. • Crear una arquitectura que sea 100% factible de implementar.
IV-Arquitectura de Seguridad Integral Autoridades y Regiones • Se consideran sólo dos autoridades: el propietario del sistema y los propietarios/usuarios de los agentes. REGION 1 REGION 2 Sistema de Sistema de Sistema de Sistema de Agentes 1 Agentes 2 Agentes 1 Agentes 2 Migración con Migración sin Migración sin Encriptación encriptación encriptación L1 L2 L1 L2 Sistema Sistema de Diversos Lugares de Diversos Lugares Agentes N Agentes N L3 L4 L3 L4
IV-Arquitectura de Seguridad Integral Restricciones de Acceso y Repositorio de Llaves Altas de Usuarios 1. Arthur, Password 2. Arthur KeyStoreManager KeyGenerator DBPreferences 4. Arthur, Password 3. Clave privada Clave Privada Clave pública Certificado de Clave Pública Política de Seguridad KeyStore Autoridad Password Clave Certificados Privada De Clave Pública Oviedo3 ******** iQA/AwUBN2 aJ7KEQKfSACfcSTzv UXLv+NlTJu Arthur ******** xtknPbVKA2UNJkWM nMRJjdLitGrO 0kuyOUU Clave privada Certifiacado KeyStoreManager Clave Pública Export
IV-Arquitectura de Seguridad Integral Envío, Firmado y Recepción Añade al fichero Obtiene clases envío KeyStore Agente en Ejecución Comprime Fichero Clave privada Envía fichero Lo firma Política de Seguridad Sistema Remoto Estado persistente Verificación de la Firma Dominio de Protección Asignación de Permisos Continua su ejecución Recupera estado Pers. Certificado de clave publica KeyStore Agente recuperado
PRIVADA CA CA CA PUBLICA Origen Entidad certificadora Destino IV-Arquitectura de Seguridad Integral Proceso de Autenticación
IV-Arquitectura de Seguridad Integral Permisos y Asignaciones • Permisos para el control cualitativo de acceso a recursos: • Sistema de Ficheros. • Acceso a la Red. • Pantalla. • Permisos de seguridad. • Otros privilegios. • Asignaciones para el control cuantitativo de la cantidad de recursos consumida: • int disco • int hijos • int memoria • int mensajes • boolean duplicar • .... // otros
IV-Arquitectura de Seguridad Integral Fichero de políticas de Seguridad Dominio de Protección Permisos grant [SignedBy ”autoridad"] [, CodeBase "URL"] { permission nombre_del_permiso [ ”nombre del recurso" ] , [, ”modo de acceso"]; permission ... }; grant codeBase "file:\\\\C:\\Millenium\\Users\\renato" { permission java.awt.AWTPermission "accessEventQueue"; }; grant signedby ”Oviedo_3"{ permission java.io.FilePermission "C:\\Millenium\\Users\\Test" , "read,write"; };
IV-Arquitectura de Seguridad Integral Asignación de Permisos Agente Móvil Sistema Autoridad desconocida Otras autoridades Acceso Completo Acceso Denegado Dominio1 DominioN Dominio2 Sistema de Seguridad y Política de seguridad Recursos del Sistema
IV-Arquitectura de Seguridad Integral Preferencias y Asignaciones(1) El agente solicita recursos (Objeto Preferencias) El servidor consulta DBResourcesFree para ver la cantidad de recursos disponibles para dicha autoridad. El servidor concede las preferencias requeridas, o bien si no puede, los recursos disponibles asignados a su autoridad DBResourcesFree Asignación de la autoridad
IV-Arquitectura de Seguridad Integral Preferencias y Asignaciones(2) Número de Hijos y Clones Creados Número de Mensajes Cantidad de Memoria y Disco // otros Preferencias Agente 1 Consumo de recursos Fin Agente Consumo de recursos Preferencias Agente 2 Preferencias Agente 3 Asignaciones Libres Asignaciones Agente 1 Recursos consumidos Asignaciones Libres Asignaciones Agente 2 Asignaciones Agente 3 Asignaciones totales para la autoridad
IV-Arquitectura de Seguridad Integral Control Global sobre Recursos
IV-Arquitectura de Seguridad Integral Política de Seguridad Versátil Sistema de Agentes en Ejecución: Incluye permiso en el fichero de políticas Agente C Share con Autoridad A refresh Dominio A Permisos +Nuevo permiso Arquitectura Segura e Inteligente en escasez de recursos Dominio B Permisos - Antiguo permiso Dominio C Permisos - Antiguo permiso
IV-Arquitectura de Seguridad Integral Protección de la Transmisión ClientHello ServerHello Certificate ServerKeyExchange CertificateRequest ServerHelloDone Certificate ClientKeyExchange CertificateVerify [ChangeCipherSpec] CLIENTE Finished SERVIDOR [ChangeCipherSpec] Finished Datos SSL logra la autenticación de servidores y protege la transmisión
IV-Arquitectura de Seguridad Integral Protección de los Datos del Agente • Navegación en redes seguras. • Encriptación de datos mediante mapas de bits y puertas XOR: 10 Aleatorio => 1010 binario 3 dato => 0011 binario 10 XOR 3 => 1001 binario 10 XOR (10 XOR 3) => 0011 binario
IV-Arquitectura de Seguridad Integral Protección de los Datos del Agente Área de Datos del Agente Móvil Datos a Proteger ID Host CW CRC <128 bits > <128 bits > <128 bits > ....... <128 bits > <128 bits > <128 bits > 01010001 100100.. 001010.. 010100.. 01010101 01010.. 110011.. 11001001.. 00010.. 11010.. 01010.. 00010.. 010001.. 010101.. 10111001.. 00111.. 01010.. 00111.. 11010.. 110011.. 010001.. XOR 01001001 11010000 00111001 00010010 01010001 00000011 00011000 01000000 00111001 00010010 01010001 01100000 11000000 01000000 11100100 10010000 10100010 01010110 001010011
TesisDoctoralContenido • Objetivos y Organización. • Parte I: Introducción. • Parte II: Estado del arte. • Parte III: Requerimientos de un Sistema de Agentes Móviles y la necesidad de una arquitectura de seguridad. • Parte IV: Arquitectura de Seguridad Integral. • Parte VI: Evaluación y Ámbitos de la Aplicación. • Parte VII: Conclusiones y Líneas de Investigación Futuras. • Parte V: Implementación del Prototipo.
V-Implementación del prototipo El Sistema de Agentes MILENIO
V-Implementación del prototipo Identificador y migración del Agente FechaHoraDeCreaciónDelAgente + Servidor + DirecciónIP Función de conversión de N a M bits. Un message digest con algoritmo SHA. Serialización para trasmitir el estado de datos. Compresión mediante ficheros Jar Programación concurrente para atender todas las necesidades del agente. Introspección para decidir las clases que se transmiten con el agente.
V-Implementación del prototipo Carga, Autenticación y Asignación