Introducción de servicios de seguridad en un sistema de Audioconferencia implementado con Java Media Framework *

Please download to get full document.

View again

All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
 3
 
  Introducción de servicios de seguridad en un sistema de Audioconferencia implementado con Java Media Framework * Mengual, L., Arozarena, S., Bobadilla, J., Setién, J., Yágüez, J. Dpto. de Lenguajes y sistemas
Related documents
Share
Transcript
Introducción de servicios de seguridad en un sistema de Audioconferencia implementado con Java Media Framework * Mengual, L., Arozarena, S., Bobadilla, J., Setién, J., Yágüez, J. Dpto. de Lenguajes y sistemas Informáticos e Ingeniería del Software Facultad de Informática (UPM Boadilla del Monte, Madrid lmengual, arozamena, jsetien, ABSTRACT In this paper we present a practical solution for a real time AudioConference integrated system that has been developed with Java Media Framework, an API developed by Sun. Our application provides users with a real time secure transport system for high quality audio that runs on any platform and operating system. Our solution is based on the encryption of the audio signal PCM codification. This information is then encapsulated in RTP protocol packages using the facilities provided by JMF. Thus new Codecs have been implemented and dynamically registered in which security mechanisms have been added. The encryption mechanism that has been used is based on the Blowfish algorithm from the Cryptix security library. The key distribution system among participants entities uses an automatic implementation infrastructure for security protocols. Dynamic election of the key distribution protocol to be implemented at any time is the main goal of this infrastructure. Therefore each participant entity has to be extended with a common implementation that is able to interpret, in an automatic way, any security protocol specification. Keywords: security protocols, formal specification, Java Media Framework, Real Time Protocol (RTP), Blowfish, Cryptix. RESUMEN En este artículo presentamos una solución práctica de sistema integrado de Audioconferencia en tiempo real realizado con Java Media Framework [1], una Interface de Programación de Aplicaciones, API (Application Programming Interface), desarrollada por Sun. En nuestra aplicación proporcionamos un sistema seguro de transporte en tiempo real de audio de alta calidad adaptado a cualquier plataforma software y cualquier sistema operativo. Nuestra solución consiste en cifrar la codificación PCM (Pulse Code Modulation) de la señal de audio y encapsularla en paquetes del protocolo RTP [2] (Real Time Transport Protocol) utilizando las facilidades proporcionadas por JMF. En concreto, la implementación y registro dinámico de nuevos Codecs a los que hemos incorporado mecanismos de seguridad. Nuestro sistema de cifrado se apoya en el algoritmo Blowfish [3] de la librería de seguridad Cryptix [4]. El sistema de distribución de claves entre las entidades participantes se basa en una infraestructura de implementación automática de protocolos de seguridad. El objetivo de esta infraestructura es poder elegir dinámicamente el protocolo de distribución de claves a implementar en cada momento. Para ello, cada entidad esta dotada de un código único capaz de interpretar de forma automática la especificación de cualquier protocolo de seguridad.. Palabras claves: Protocolos de seguridad, especificación formal, Java Media Framework, Real Time Protocol (RTP), Blowfish, Cryptix. * Este trabajo esta realizado en el marco del Proyecto CICYT de Investigación Sistema Abierto de Presentación Digital Multimedia en Tiempo Real (TIC C03-02) 1 INTRODUCCIÓN Las aplicaciones tradicionales con requerimientos de tiempo real han venido utilizando redes de conmutación de circuitos, las cuales transmiten a velocidad constante con retardos cortos. Las llamadas en telefonía, así como la Videoconferencia a baja velocidad (utilizando la Red Digital de Servicios Integrados, RDSI) son ejemplos típicos de este tipo de comunicaciones [5]. Las redes de paquetes (redes IP) se desarrollaron fundamentalmente para el transporte de datos que no tenían especiales requisitos de temporización. Los avances en los algoritmos de compresión, las mejoras en la potencia de cálculo de los sistemas informáticos, el aumento en la capacidad del procesamiento de los paquetes en los nodos, la introducción de nuevas tecnologías de transmisión, así como el incremento y abaratamiento del ancho de banda disponible están haciendo posible las aplicaciones en tiempo real a través de las redes IP. La utilización las redes IP por las aplicaciones en tiempo real aporta una serie de funcionalidades adicionales, como, por ejemplo, la transmisión multidestino que no son fácilmente implementables en redes de conmutación de circuitos. La transmisión de paquetes en tiempo real debe de solventar las dificultades inherentes a las redes de paquetes [6, 7, 8, 9], entre ellas: el retardo y pérdida de paquetes, la entrega desordenada y aparición de paquetes duplicados, etc. Real Time Transport Protocol (RTP) es un protocolo basado en redes IP que permite enviar y recibir flujos de audio o de video en tiempo real (encapsulados en paquetes RTP) por una red de propósito general. RTP fue diseñado principalmente para su uso con transmisiones multidestino aunque también puede ser utilizado eficientemente con transmisiones punto a punto. RTP proporciona la solución al problema planteado de intentar transmitir y recibir un flujos de datos multimedia sobre una red de propósito general asíncrona. Incluye sellos de tiempo en los paquetes enviados para poder reproducirlos en el orden correcto, así como para permitir al nivel de aplicación la sincronización de varios flujos de datos como por ejemplo audio y video. RTP añade también un número de secuencia a los paquetes enviados para poder reensamblarlos en el mismo orden en el que fueron enviados. En una sesión multimedia, cada flujo de datos será enviado en su propia sesión RTP, siendo realizando la sincronización de ambos flujos de datos el nivel de aplicación. RTP está íntimamente ligado al protocolo RTCP (RTP Control Protocol) [10], que permite monitorizar la calidad de servicio observado por el receptor así como almacenar la información de los participantes en las distintas sesiones que están establecidas. RTCP ofrece información también de identificación del origen de la comunicación y resincronización en una sesión RTP ya existente. Una sesión RTP es una asociación entre un grupo de participantes comunicados vía RTP. Supóngase que la sesión RTP fuera una Audioconferencia, como es el caso que planteamos en este artículo. El moderador de la reunión deberá obtener una dirección IP multidestino, junto con un par de puertos UDP consecutivos que identificarán a la sesión RTP. El primer número de puerto (par) es para el flujo de datos de audio RTP y el otro puerto (impar) es para el protocolo de control RTCP. Tanto la dirección como los números de puertos se distribuyen (mediante procedimientos ajenos a RTP) entre los participantes. Una vez que la sesión RTP se ha establecido, cada participante podrá transmitir bloques de información de audio con una duración preestablecida en el campo de carga útil del paquete RTP, el cual será encapsulado en datagramas UDP y posteriormente en paquetes IP. La cabecera de un paquete RTP especifica el tipo de codificación de audio utilizada, un número de secuencia, un sello de tiempo etc. Estas informaciones serán útiles cuando se pierdan o desordenen paquetes, o para recuperar el reloj del codificador. En el caso de una aplicación audiovisual. Cada una de las fuentes de datos (audio y video) se transmiten en sesiones RTP distintas. Las sesiones de audio y video se consideran de forma completamente individual, excepto que su asociación se identifica mediante un único nombre, el cual es incorporado en los correspondientes paquetes RTCP. Este mecanismo permite la reproducción sincronizada de las secuencias de audio y video. La problemática de la seguridad en las comunicaciones por Internet [11, 12, 13] (comercio electrónico, sistemas de facturación, acceso a información bancaria, pago de recibos municipales, declaraciones fiscales, etc) se ha extendido a las comunicaciones en tiempo real. La necesidad de proteger los contenidos multimedia distribuidos por Internet hace necesario cifrar los flujos de audio y video transportados por paquetes RTP. Todo ello se ha de realizar con el objetivo que el flujo resultante permita su transmisión y posterior reproducción en tiempo real. Es por lo tanto imprescindible elegir un lugar adecuado en la introducción del motor de cifrado en el código de nuestra aplicación multimedia, así como elegir un algoritmo lo suficientemente rápido para permitir las comunicaciones en tiempo real. Java Media Framework (JMF) es una plataforma abierta para desarrollar Aplicaciones Multimedia en Java independientemente de los sistemas operativos y equipos hardware involucrados. Java Media Framework (JMF) es una Interface de Programación de Aplicaciones versátil (Application Programming Interface, API) que permite: La reproducción de ficheros multimedia (formatos, AVI, MPEG, QuikTime, AVI, WAV, MIDI..) 2 Reproducción y transmisión de audio y video en tiempo real a través de Internet (utilizando el protocolo RTP/RTCP) Captura de audio y video del hardware disponible y almacenamiento en el formato deseado Difusión a un grupo de usuarios de señales de video/audio El desarrollo realizado en código JAVA garantiza la portabilidad entre distintas plataformas de desarrollo, la simplicidad del mantenimiento debido a la utilización de un código común a todas la plataformas y, finalmente, la facilidad en la actualización incorporando nuevos drivers, y características multimedia. Apoyándonos en Java Media Framework hemos desarrollado una aplicación de Audioconferencia íntegramente realizada sobre Java de tal forma que permitirá su ejecución en cualquier entorno en el que se tenga instalado una versión del intérprete de Java. Al desarrollar la aplicación íntegramente en Java, el software resultante se hace independiente de hardware sobre el que se está ejecutando, así como del sistema operativo que está instalado en el sistema informático. Otra de las ventajas de utilizar el API de JMF para Java es la facilidad que proporciona JMF para la inclusión de nuevos codecs. El incluir un nuevo codec de Audio o Video no implica rediseñar toda la aplicación, sino simplemente registrarlo de forma dinámica en el sistema. De esta forma se gana en modularidad y eficiencia, reduciendo los costes al realizar posteriores versiones. Nuestra solución consiste precisamente en la implementación de un Codec que incluye un motor de cifrado basado en el algoritmo Blowfish lo suficientemente rápido para proporcionar una transmisión en tiempo real del flujo de audio. 2 ESTRUCTURA GENERAL DE LA APLICACIÓN El objetivo de nuestra aplicación es el desarrollo de una Audiconferencia de alta calidad dotada de servicios de seguridad, de tal forma que los usuarios del sistema no tengan que preocuparse del sistema operativo ni del hardware instalado (ver Fig. 1). Nuestra implementación permite la distribución de audio de alta calidad sin comprimir con codificación PCM (Pulse Code Modulation) (W=22Khz, Bits/muestra=16-bits) a todos los miembros de un grupo a través de una Red IP, que puede ser, por ejemplo, una Red Corporativa con tecnología de transmisión Frame-Relay, Internet, etc. El ancho de banda necesario para la aplicación propuesta es considerable ya que mandamos el audio sin comprimir y por consiguiente con la máxima calidad. Teniendo en cuenta que la frecuencia de Nyquist necesaria en nuestro caso es de 44KHz, para señales en estéreo se tiene un ancho de banda de: W = 44 Khz( muestras / seg) 16( bits / muestra) 2canales = 1, 4Mbps altavoces PAQUETES RTP CIFRADOS altavoces RED IP (Red corporativa, Internet..) micrófono altavoces micrófono PAQUETES RTP CIFRADOS micrófono Fig. 1: Arquitectura de la aplicación de Audioconferencia segura Los requisitos para la transmisión en tiempo real hacen que la señal codificada se vaya fragmentando en paquetes RTP que se envían a la red encapsulados en datagramas UDP y posteriormente en paquetes IP. El API de Java Media Framework nos proporciona todas las clases y métodos necesarios para el establecimiento de sesiones RTP así como la posibilidad de modificar de acuerdo a los requisitos de las aplicaciones los contenidos de estos paquetes. La incorporación de servicios de seguridad implica cifrar los fragmentos de la señal codificada PCM antes de su incorporación al paquete RTP. Esta circunstancia plantea varios problemas a resolver: un primer problema radica en la elección de un algoritmo de cifrado lo suficientemente rápido para garantizar las comunicaciones en tiempo real. Otro 3 problema radica en elegir el lugar dentro de la jerarquía de clases de JMF donde situar el motor de cifrado., Finalmente, una última problemática y, por supuesto no trivial, es la distribución de la clave de sesión entre los usuarios del grupo. Respecto a las anteriores interrogantes nuestra alternativa ha consistido, en primer lugar, en seleccionar el algoritmo Blowfish como el responsable del motor de cifrado. Blowfish es un algoritmo simétrico que cifra los datos en bloques de 64 bits de longitud y utiliza una clave de longitud variable desde 32 a 448 bits. Blowfish fue diseñado en 1993 por Bruce Schneier [3] como un algoritmo rápido de libre uso y como alternativa a los algoritmos de cifrado existentes hasta entonces como DES (Data Encryption Estándar) o IDEA (International Data Encyption Algorithm). Blowfish es un poco más rápido que DES y mucho más que IDEA. El algoritmo Blowfish aunque tiene una fase inicial compleja antes de comenzar el cifrado es un algoritmo muy eficiente. El algoritmo Blowfish es muy adecuado para el cifrado de ficheros o flujos continuos de datos, así como para la generación aleatoria de bits, cifrado de paquetes o para implementar funciones hash. El lugar donde decidimos incluir el motor de cifrado fue en las clases denominadas SecurePcmPaketizer y SecurePcmDepaketizer que son una implementación de la interfaz Codec dentro de la jerarquía de clases e interfaces de JMF a medida de nuestra aplicación. JMF dispone de la facilidad de incorporar dinámicamente Codec realizados por los usuarios a la medida de sus necesidades. La implementación de un Codec es en general compleja. Nuestra aportación en este terreno fue la incorporación de mecanismos de cifrado a Codec disponibles PCMpaketize, PCMDepacketizer e integrarlos a nuestra aplicación. Finalmente, respecto al sistema de distribución de claves nuestra propuesta es que los usuarios participantes del sistema de Audioconferencia obtengan una clave de sesión para cifrar sus contenidos antes de que se inicie la sesión RTP. Cualquier usuario que quiera participar en el sistema deberá ejecutar un protocolo de seguridad en el que intervenga el usuario en cuestión (entidad iniciadora o cliente), el moderador del sistema (o entidad servidora) y una tercera entidad (Autoridad de Certificación). El objetivo del protocolo de seguridad será distribuir una clave de sesión entre las entidades de forma segura. En nuestro sistema, la definición del protocolo de seguridad se podrá distribuir dinámicamente entre las entidades participantes por medio de una especificación formal. Todas las entidades disponen de un código capaz de interpretar cualquier especificación formal de un protocolo. Cabe señalar asimismo que, evidentemente, nuestra implementación también es válida para comunicaciones punto a punto entre dos usuarios (ver Fig. 2). Todas las consideraciones realizadas para un sistema de Audiconferencia son en este caso igualmente aplicables. De hecho, en ente caso, se simplifica la problemática de distribución de claves de sesión al haber únicamente dos entidades. altavoces altavoces RED IP (Red corporativa, Internet..) micrófono PAQUETES RTP CIFRADOS micrófono Fig. 2: Arquitectura de una aplicación de Audio segura punto a punto 3 SISTEMA DE DISTRIBUCIÓN DE CLAVES La infraestructura desarrollada para la distribución de claves entre las entidades del sistema de Audioconferencia consiste en un código común implantado en todas las entidades y denominado Elemento Lógico de Implementación (ELI). Este código común es capaz de implementar dinámica y automáticamente distintos protocolos de seguridad dentro de la arquitectura TCP/IP a partir de una especificación formal de dichos protocolos. Por lo tanto las entidades disponen de un sólo código independiente del protocolo de seguridad específico. Tradicionalmente, la implementación de un protocolo de seguridad (como cualquier protocolo de comunicaciones) implicaba la implementación de un código específico en cada una de las entidades participantes ([14, 15, 16]). En el Elemento Lógico de Implementación se ha desarrollado una infraestructura en el que las entidades implicadas tienen las funcionalidades necesarias para interpretar cualquier protocolo [17]. 4 Para comprender la innovación que supone la interpretación automática de una especificación formal vamos a comparar esta idea con la concepción habitual de implementación de protocolos. Tradicionalmente la implementación de un protocolo se ha realizado generando un código independiente en cada una de las entidades participantes De esta forma se cumplen las funcionalidades, en general distintas, asociadas a cada entidad para ese protocolo. Por consiguiente, con este esquema, si se tuviera que implementar otro protocolo distinto se necesitaría un nuevo código, que además debería ser distinto para cada entidad (ver Fig. 3). La infraestructura software desarrollada en el Elemento Lógico de Implementación (ELI) permite que con un mismo código de interpretación de protocolos localizado en cada entidad participante implementar cualquier protocolo de seguridad. Cada una de las entidades deberá saber cuál es su comportamiento en función de la especificación formal del protocolo. En la Fig. 4 se describe esta idea. ESPECIFICACIÓN MESSAGES 1:A- C:peticion 2:C- A:Ka(Ks), Kb(Ks) 3:A- B:Kb(Ks) Cada protocolo, distinta implementación Dado el protocolo, distinta implementación para cada entidad componer(m1) enviar(dir(c), m1) recibir(dir(c), m2) analizar(m2) componer(m3) enviar(dir(b), m3) recibir(dir(a), m1) analizar(m1) componer(m2) enviar(dir(a), m2) recibir(dir(a), m3) analizar(m3) CÓDIGO DE CLIENTE CÓDIGO DE SERVIDOR DE CLAVES CÓDIGO DE SERVIDOR Fig. 3: Proceso tradicional de implementación de protocolos de seguridad ESPECIFICACIÓN MESSAGES 1:A - C:peticion 2:C- A:Ka(Ks), Kb(Ks) 3:A- B:Kb(Ks) Una única im plementación, válida para todos los protocolos y todas las entidades Para cada mensaje M Si YoSoy(emisor(M )) com poner(m ) enviar(receptor(m ), M ) Si YoSoy(recptor(M )) recibir(emisor(m ), M ) analizar(m) CÓDIGO DE CLIENTE CÓDIGO DE SERVIDOR DE CLAVES CÓDIGO DE SERVIDOR Fig. 4: Interpretación automática de protocolos de seguridad La estructura de la aplicación creada por el Elemento Lógico de Implementación se compone de tres entidades: Cliente o entidad A, Servidor o entidad B y Centro de autenticación o entidad C. En la Fig. 5 se describe la estructura de la aplicación desarrollada por el Elemento Lógico de Implementación. Nuestro sistema de implementación de protocolos de seguridad consta de dos fases: En una primera fase por iniciativa de una de las entidades tiene lugar la distribución de la especificación formal del protocolo de seguridad a implementar. 5 Una tercera entidad, el centro de autenticación es el encargado de distribuir de forma segura la especificación elegida a las entidades participantes. En una segunda fase tiene lugar propiamente la interpretación y, por consiguiente, implementación del protocolo de seguridad. Cada una de las tres entidades participantes dispone de un único código común de interpretación de protocolos que realiza dos funciones esenciales: distribución de especificaciones formales e implementación de protocolos de seguridad. El Centro de autenticación es el responsable de la distribución de la especificación de un protocolo de seguridad a las entidades cliente y servidor de acuerdo a los servicios de seguridad requeridos. Cada una de las entidades participantes será capaz, a partir de la obten
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks