4 CHAPTER FOUR: RESEARCH METHODOLOGY
4.12 Reflexivity and the Data Analysis Process:
En secciones precedentes se presentaron algunas problemáticas existentes en cuanto a la seguridad en sistemas multi-agente distribuidos, así mismo se señalaron mecanismos para resolver dichas problemáticas, sin embargo ninguna solución práctica fue descrita. En esta sección se presentarán dos soluciones prácticas: JADE-S y S-MIME (aplicada dentro del contexto de sistemas multi-agente).
2.2.3.1 S-MIME
En [19] se propuso S-MIME como un complemento para la especificación de mensajes FIPA para proveer un mecanismo seguro de intercambio de mensajes que garantiza: autenticación, integridad y confidencialidad. A continuación se describe dicha propuesta.
6 Técnica que permite adjuntar a un mensaje un código generado a partir del mismo con el cual se puede verificar la integridad de dicho mensaje. La técnica garantiza que el código obtenido no puede ser obtenido de ningún otro mensaje, además garantiza que el mensaje no puede ser obtenido a partir del código.
MIME (Multiporpouse Internet Mail Extensions, extensiones multipropósito para
correo en Internet) es una tecnología bastante utilizada y probada en el ambiente de correo electrónico para la gestión de mensajes con diferentes partes (binarias y textuales) y que además haciendo uso de codificación base-64 garantiza la portabilidad de los mensajes. S- MIME es una extensión que añade seguridad a la tecnología MIME.
El estándar FIPA para el protocolo de transporte de mensajes entre agentes sobre HTTP (MTP) [12], que es uno de los más utilizados actualmente, está basado en la
tecnología MIME, por lo cual es factible utilizar S-MIME para adoptar las características de seguridad del mismo.
Dicho estándar incluye una sección envolvente (envelope) y una sección de
contenido basada en ACL. Para poder utilizar S-MIME en conjunto con las especificaciones FIPA sobre HTTP es necesario redefinir la estructura de los mensajes (ver figura 2.7) para hacerlos compatibles con la especificación PKCS7 de S-MIME.
Estructura del mensaje HTTP Partes MIME Envolvente Mensaje ACL Estructura del mensaje HTTP Partes MIME Envolvente Mensaje ACL Estructura del mensaje HTTP Partes MIME Envolvente S-MIME Codificación Base-64 Objetos CMS Parámetros Mensaje ACL cifrado
Figura 2.7 Diferencias entre estructuras del mensaje FIPA y FIPA/S-MIME
La redefinición del mensaje no cambia la especificación de los mismos sino que solamente envuelve al mensaje ACL en claro dentro de una definición S-MIME que reensambla la sección multi-parte de la estructura original. La nueva sección S-MIME utiliza CMS (Cryptographic Message Syntax, sintaxis de mensaje cifrado) para la
definición de los componentes de seguridad utilizados y hace uso de codificación base-64 para garantizar la transmisión correcta del mensaje de extremo a extremo.
S-MIME [s mime 1] ofrece cuatro tipos fundamentales de contenido para mecanismos de seguridad:
1. Datos firmados. 2. Datos en envolvente. 3. Datos firmados en claro.
4. Datos firmados y en envolvente.
En la propuesta reportada se utilizó el último tipo de contenido para proveer comunicación segura entre plataformas.
Tomando en cuenta las modificaciones al mensaje, es necesario describir el proceso que el ACC tendría que realizar para procesar un mensaje recibido y aquel necesario para generar un mensaje a enviar.
Para procesar un mensaje recibido, primero el ACC recibe el mensaje proveniente de otra plataforma. El mensaje contiene partes MIME [26] y una parte S-MIME, el ACC separa el mensaje en sus partes y las pasa a los parsers y procesadores adecuados. La parte
S-MIME es procesada para separar los objetos CMS que contiene; con dichos objetos se descifra (utilizando una llave simétrica previamente acordada entre las plataformas o una llave privada de la plataforma) la llave de cifrado del contenido. Una vez obtenida la llave de cifrado del contenido, este se descifra y se obtiene el mensaje ACL original que es enviado a su destinatario final a través del MTS de la plataforma.
Para generar un mensaje, primero debe obtenerse una llave de cifrado para el contenido, esta llave es generada aleatoriamente; la llave generada debe ser cifrada con la llave pública (o una llave simétrica previamente acordada) de cada destinatario; el contenido (el mensaje ACL) debe ser cifrado utilizando la llave aleatoria generada; se deben incluir tanto el mensaje cifrado como la llave cifrada e información adicional sobre los destinatarios en el envolvente del mensaje; se codifica el envolvente en Base-64; por último se envía el mensaje a la plataforma destino [19].
Esta propuesta es un buen ejemplo de seguridad Inter-Plataforma, sus características la hacen adecuada para mantener la seguridad de la información durante su transmisión e inclusive hasta llegar a su destino final (plataforma, no agente) asegurando integridad, privacidad e integridad de la información.
Al hacer uso de S-MIME su aplicación en el contexto de sistemas multi-agente se vuelve más factible gracias a la compatibilidad con las especificaciones FIPA, las cuales son las más usadas actualmente.
S-MIME está enfocada a resolver problemas de seguridad relativos a la transmisión de mensajes sin embargo no toma en cuenta aspectos fundamentales como la autenticación sino que confía en que los mecanismos criptográficos garantizan que solo la entidad adecuada podrá hacer uso de la información.
Un punto que podría verse como una desventaja de S-MIME es que no define un mecanismo para el intercambio de llaves sino que depende de una infraestructura extra para resolver la distribución de llaves. Esta desventaja puede ser utilizada a favor de S-MIME ya que permite un alto grado de flexibilidad al elegir el mecanismo de intercambio.
2.2.3.2 Jade-S
JADE-S [23] es una extensión de la tecnología Jade que integra un modelo de cadenas de delegación para control de acceso con mecanismos de seguridad para asegurar integridad, confidencialidad y no repudio.
Es importante recalcar que JADE-S es tan solo una extensión de la plataforma Jade [17] por lo que no puede ser utilizado con otras plataformas (como Zeus, entre otras). La plataforma Jade está más allá del ámbito de esta sección por lo cual no se discutirá su arquitectura ni su funcionamiento. Para el objetivo de esta sección bastará con indicar que Jade es una infraestructura para la creación e implementación de sistemas multi-agente, es decir, de plataformas junto con contenedores y agentes del sistema.
El modelo de delegación de permisos utilizado en JADE-S combina los mejores aspectos la gestión de acceso mediante listas de control y de la gestión mediante el uso de certificados y autenticación. El concepto principal del modelo son los certificados de delegación. Los cuales son otorgados por entidades principales a otras entidades a las cuales se les delegará alguna tarea. Dichos certificados están firmados por la entidad que delega los permisos y contiene la lista de permisos (que no pueden ser otros que los que la misma entidad posee) que son delegados a la nueva entidad y además contiene tiempos específicos durante los cuales el certificado es considerado válido. Así mismo, una entidad que ha recibido un certificado de delegación puede a su vez generar certificados de delegación para otras entidades (si el certificado que posee lo permite) [23].
En este modelo cada entidad principal es responsable por la seguridad de sus propios recursos y cada una de ellas puede jugar uno de dos roles, el de controlador (poseedor) de un recurso o el de solicitador de dicho recurso. Es responsabilidad de cada entidad generar los certificados de delegación para hacer uso de sus recursos.
JADE-S hace uso de la tecnología SPKI (Simple Public Key Infraestructura,
infraestructura simple de llave pública) para la generación y gestión de los certificados utilizados, esta tecnología tiene la ventaja de trabajar a nivel de llaves, es decir, que la autenticación se lleva a cabo con respecto a las llaves pública y privada de las entidades y no con respecto al nombre de la entidad. Esto beneficia al modelo ya que los nombres de las entidades no son un elemento univoco y no se establece directamente un enlace entre un nombre y una entidad o un rol.
La plataforma JADE integra un modelo de seguridad a nivel transporte (TLS
Transport Layer Security, seguridad de nivel transporte) para garantizar la seguridad en la
comunicación Intra-Plataforma. Sin embargo no garantiza la integridad ni el no repudio. Tomando en cuenta que la arquitectura de JADE-S dota a cada entidad de un par de llaves (pública y privada), estas dos características pueden ser obtenidas a partir de un mecanismo
de firma electrónica basaba en la llave privada de cada elemento [23] como se muestra en la figura 2.8.
Figura 2.8 Modelo de delegación de permisos de JADE-S.
En resumen podemos apreciar que JADE-S es una herramienta más completa que S- MIME ya que no solo se orienta a resolver las problemáticas de seguridad Inter-Plataforma sino que también lidia con los problemas de seguridad Intra-Plataforma. No obstante, JADE-S es una herramienta que puede ser utilizada solo en conjunto con la infraestructura provista por Jade de la cual tiene muchas dependencias.
JADE-S garantiza privacidad, autenticación, control de acceso, autorización, integridad, privacidad y no repudio en la comunicación Inter e Intra-Plataforma, además es independiente del protocolo de transporte de mensajes lo cual la hace una herramienta atractiva para proveer seguridad en sistemas multia-gentes.
Una desventaja más de JADE-S es que no existe una versión actualizada para la versión actual de la plataforma Jade que es la 3.4 [17].