Monografias.com > Computación > Redes
Descargar Imprimir Comentar Ver trabajos relacionados

Tecnicas para la actualizacion de implementaciones de protocolos y mecanismos criptograficos para Tinyos



    Resumen

    Actualmente existe un incremento del numero de
    aplicaciones de las WSN y con ello surgen teorias e
    implementaciones de esquemas de seguridad para este tipo de
    redes. Este trabajo analiza dichas implementaciones y
    consecuentemente ofrece un conjunto de tecnicas que permiten su
    actualizacion o adaptacion descendente en las versiones del
    sistema operativo para sensores TinyOS.

    Abstract At present there is an increase in the
    number of WSN applications, which leads to the making of new
    theories and implementations of security schemes for this kind of
    networks. This paper analyzes these implementations and
    accordingly offers techniques that allow its update or descending
    adaptation on the versions of the operating system for sensors
    TinyOS.

    Palabras claves: redes inalambricas de sensores,
    seguridad, implementaciones, actualizacion de
    implementaciones

    Keywords: wireless sensor network, security,
    implementations, implementations update

    1.
    Introduccion

    Despues de iniciadas a finales de los años 90,
    las Redes Inalambricas de Sensores (WSN) han
    evolucionado hasta convertirse en una solucion tecnologica
    viable, implementada por diversas organizaciones. De modo
    general, este tipo de redes encuentra aplicacion en escenarios
    con problemas de monitorizacion, rastreo y control
    (monitorizacion ambiental e industrial, rastreo de posicion[1],
    control de la carga electrica en areas residenciales, etc).
    Dentro de las WSN se han realizado varias investigaciones con el
    objetivo de proporcionales servicios de seguridad. A pesar del
    reto que esto significa debido a las caracteristicas naturales de
    este tipo de redes (limitaciones de los recursos del hardware de
    los nodos y comunicacion inalambrica entre estos) estas
    investigaciones han dado lugar a varios protocolos de seguridad,
    entre los que podemos encontrar: Sistemas de Distribucion de
    Claves, Criptografia de Clave Publica y Sistemas de Deteccion de
    Intrusos, entre otros. No obstante, pocos de estos protocolos han
    sido llevado a la practica y algunas de esas implementaciones no
    funcionan sobre las versiones mas recientes de los sistemas
    operativos para sensores. Ademas, no se dispone de una
    documentacion que facilite el uso o actualizacion de estos
    protocolos.

    El proposito de este trabajo es, en primer lugar,
    documentar las implementaciones de Protocolos y Mecanismos de
    Seguridad
    (PMS) existentes para el sistema operativo para
    sensores TinyOS [2]. Por tanto, se estudiara a cabalidad, desde
    las generalidades hasta los detalles de cada aplicacion
    disponible que implemente un PMS para TinyOS. Dicha documentacion
    sera usada con el fin de crear un conjunto de tecnicas
    recomendadas
    para a la hora diseñar o actualizar
    estos protocolos. El segundo proposito de este trabajo es validar
    la utilidad de estas tecnicas recomendadas en la
    actualizacion de uno de una de las aplicaciones estudiadas. Por
    consiguiente, se muestran los detalles de las modificaciones
    realizadas al protocolo y los resultados en la puesta en practica
    de su actualizacion. Finalmente se hace una comparacion de los
    resultados obtenidos.

    2.
    Antecedentes

    En la presente seccion abordaremos algunos trabajos
    previos de los que veremos sus objetivos, resultados y relacion
    con este trabajo. Estos y otros como [3], [4], [5] y [6]
    evidencian la importancia del desarrollo e implementacion de
    mecanismos criptograficos sobre estas redes. Posteriormente en
    las Conclusiones (Seccion 5 en la pagina 16) se compararan
    nuestros resultados con los obtenidos en trabajos
    anteriores.

    Wireless Sensor Network Security: A
    Survey [7]

    Este trabajo fue realizado en el año 2006 por
    John P. Walters, Zhengqiang Liang, Weisong Shi y Vipin Chaudhary
    de la Universidad Estatal de Wayne, en el se hace un analisis
    profundo de los cuatro asuntos de mayor importancia en el tema de
    la seguridad en redes de sensores. Primeramente se analizaron los
    obstaculos con los que nos encontramos cuando pretendemos
    implementar seguridad para estas redes, es decir, limitacion de
    recursos y comunicacion de manera insegura, entre otros. Luego se
    estudiaron los requisitos de seguridad que seria necesario
    satisfacer, se mostraron los ataques mas comunes sobre este tipo
    de redes y finalmente se brindan medidas de defensa contra estos
    ataques.

    El estudio de este trabajo nos permitio identificar los
    ataques y medidas de seguridad de mayor importancia en las WSN.
    Luego, partiendo de esto, enfocar las implementaciones que dan
    soporte a estas medidas de seguridad. Estas implementaciones
    seran descritas en la seccion 4.2 en la pagina siguiente y en la
    seccion 4.4 en la pagina 14 se estudiara una de las que tiene
    como objetivo la distribucion de claves.

    Analysis of Security Threats, Requirements,
    Technologies and Standards in Wireless Sensor Networks [8]
    En
    el año 2009 Javier Lopez, Rodrigo Roman y Cristina Alcaraz
    de la Universidad de Malaga en España, publicaron este
    articulo que tiene como objetivo primario evidenciar la relacion
    entre el contexto de la aplicacion para la WSN, sus
    requerimientos y mecanismos de seguridad empleados. Ademas, se
    analizan algunos estandares de seguridad que tienen en cuenta
    esta relacion.

    Este trabajo presenta inicialmente de forma clara y
    amena conceptos fundamentales acerca de los sensores, las redes
    de sensores, amenazas y tecnologias de seguridad. A pesar de no
    ser este su tema esencial, nos sirvio para fomentar una base
    sobre el tema de la seguridad en estas redes. Posteriormente en
    la parte de este trabajo dedicada a la actualizacion de una
    aplicacion que implementa seguridad sobre una red, se tiene en
    cuenta el aporte de este trabajo.

    Implementaciones de algoritmos de seguridad En la
    actualidad existen varias implementaciones libres de algoritmos
    de seguridad, estas han estado motivadas por las amenazas
    demostradas en trabajos como los mencionados anteriormente.
    Varios de estos han sido sido llevados a la practica con
    resultados positivos [9] [10] y otros han servido de base al
    desarrollo de investigaciones posteriores. El cuadro 1 enumera y
    referencia cronologicamente las implementaciones de mecanismos de
    seguridad analizadas en este trabajo. Estas implementaciones son
    tratadas en detalles en la seccion 4.2 en la pagina
    siguiente.

    Cuadro 1. Implementaciones de
    mecanismos de seguridad

    Año

    Nombre

    Objetivo

    Version de TinyOS

    Referencia

    2005

    2005 2007

    2010

    2010

    2010

    2010

    TinyKeyMan

    TinyECC AES Triviun MMH
    Poly

    Distribucion simetrica de
    claves

    Distribucion publica de
    claves

    Cifrado por bloques

    Cifrado continuo

    Funcion Hash (Autenticidad) Funcion
    Hash (Autenticidad)

    1.x

    1.1.11

    2.x

    2.x

    2.x

    2.x

    [9]

    [10] [11]

    [11] [12] [11] [13] [11] [14]

    3. Descripcion
    del problema

    Se pretende compilar las implementaciones
    existentes de los protocolos de seguridad para TinyOS, de tal
    forma que se disponga de una documentacion que permita el uso de
    dichas implementaciones.

    Ademas, se estudia y proporciona un conjunto de
    "tecnicas recomendadas" que permitan actualizar aquellas
    implementaciones que no funcionen en la version mas reciente del
    sistema operativo para sensores TinyOS. Estas "tecnicas
    recomendadas" se utilizaran en la actualizacion de alguna
    implementacion, o en la creacion de una nueva implementacion de
    algun mecanismo especialmente importante que no haya sido
    implementado.

    4. Detalles de la
    propuesta

    En la presente seccion se abordaran los detalles de
    nuestra propuesta; comenzando por la tecnologia utilizada para la
    simulacion y modificacion de las implementaciones. Luego se
    describen brevemente las implementaciones compiladas, enfatizando
    en sus objetivos y funcionamiento. Posteriormente se expone un
    conjunto de tecnicas recomendadas para actualizar una
    implementacion y luego, estas tecnicas son usadas en la
    actualizacion de uno de los PMS descritos en la seccion 4.2.
    Finalmente se realiza un analisis comparativo de los resultados
    del trabajo con otros similares.

    4.1. Tecnologia Utilizada

    Teniendo en cuenta los objetivos propuestos abordados en
    la introduccion y la formulacion del problema; se hicieron
    necesarias herramientas para trabajar sobre el codigo de las
    implementaciones de PMS desarrolladas para TinyOS.

    TinyOS es probablemente el sistema operativo para
    sensores mas usado en la actualidad. Este sigue un modelo de
    programacion orientado a eventos y es escrito completamente en
    lenguaje nesC [15]. Dicho lenguaje es una extension del lenguaje
    C [16] que incorpora su sintaxis y permite ademas la
    Programacion Orientada a Componentes [17].

    Debido a que el manejo del lenguaje nesC fue fundamental
    para desarrollar este trabajo, la tecnologia seleccionada tuvo
    dos objetivos principales; en primer lugar la edicion y
    depuracion del codigo nesC de las implementaciones de PMS y en
    segundo lugar la simulacion de estas implementaciones. Por
    consiguiente, se usaron editores de codigo nesC que permitieran
    ademas la depuracion y se utilizo un simulador de TinyOS para
    Microsoft Windows. Cada una de estas herramientas es descrita a
    continuacion.

    4.1.1. Edicion y depuracion de codigo nesC NESCDT
    [18] es un plugin para la plataforma Eclipse SDK que permite la
    edicion de codigo nesC. Realiza completacion automatica de codigo
    y resalto de la sintaxis. Ademas identifica graficamente tipos de
    archivos (interfaces, componentes y modulos) de un proyecto en
    nesC.

    Otro editor usado fue Yeti 2 [19]. Este cuenta con las
    mismas ventajas de NESCDT, ademas de otras como: validacion en
    tiempo real, navegacion por medio de vinculos a traves de
    declaraciones, creacion de grafico de componentes, depuraracion y
    compilacion 1 . La figura 1 en la
    pagina siguiente muestra un ejemplo de la edicion de un codigo en
    nesC sobre Yeti 2.

    4.1.2. Simulador de TinyOS para Windows
    Normalmente la simulacion de TinyOS se hace sobre el sistema
    operativo Linux. Los desarrolladores de este simulador
    distribuyen paquetes RPM que instalan las herramientas necesarias
    para la simulacion. Ademas distribuyen paquetes para un simulador
    de Linux sobre Windows conocido como CygWin [21].

    Para la simulacion de las implementaciones de PMS se
    usaron los Paquetes de TinyOS para CygWin disponibles en
    [22]. Fueron instaladas conjuntamente las versiones 1.1.15 y
    2.0.2 de TinyOS. La figura 2 en la pagina siguiente muestra la
    compilacion paralela de dos aplicaciones para versiones distintas
    de TinyOS.

    4.2. Implementaciones Existentes de Protocolos y
    Mecanismos de Seguridad

    Asuntos como la Autenticacion y la
    Administracion de Claves son criticos dentro de la
    seguridad en una red de sensores. Debido a las restricciones de
    hardware de sus nodos no es possible el uso de

    Monografias.com

    Figura 1. Edicion de codigo nesC
    sobre Yeti 2

    Monografias.com

    Figura 2. Versiones 1.1.15 y 2.0.2
    de TinyOS instaladas conjuntamente

    Los esquemas tradicionales de seguridad como la
    Criptografia de Clave Publica (PKC) o un Centro de
    Distribucion de Claves
    (KDC). Debido a esto han surgido
    varias propuestas que intentan proveer esquemas de seguridad para
    este tipo especial de redes, aunque no todas han sido llevadas a
    la practica, se dispone actualmente de varias implementaciones
    basadas en estos esquemas.

    A continuacion analizaremos algunas de las
    implementaciones disponibles en la actualidad de PMS para redes
    de sensores. De cada una de estas veremos sus objetivos y version
    de TinyOS para la que fue diseñada, describiremos su
    funcionamiento y en caso de ser necesario, se expondra la
    estructura de la implementacion con sus componentes e
    interfaces.

    4.2.1. Algoritmos de cifrado y autenticidad para
    TinyOS

    Sylvain Pelissier del Ecole Polytechnique Federale
    de Lausanne
    ha desarrollado varias implementaciones de
    algoritmos criptograficos para TinyOS 2.x. Como resultado de esto
    ha obtenido las interfaces descritas a continuacion y los
    componentes que las implementan, ademas para cada una de estas la
    autora proporciona aplicaciones de ejemplo [11].

    AES Esta interfaz implementa una version del
    Algoritmo de Cifrado Estandar [23] para la codificacion
    por bloques, esta define los siguientes comandos: encrypt para
    cifrar un bloque de texto plano, decrypt descifra un bloque de
    texto (criptograma) y keyExpansion calcula la clave extendida por
    medio de un algoritmo de planificacion; dicha clave extendida
    depende de la secreta conocida por el cliente y es utilizada para
    el cifrado y descifrado de los bloques.

    Para el uso correcto de esta interfaz debe inicialmente
    contarse con una clave secreta. Esta pudiera obtenerse de los
    mecanismos descritos en las secciones 4.2.2 y 4.2.3 y partiendo
    de ella debe generarse la clave extendida mediante el comando
    keyExpansion, luego usar esta en la codificacion y decodificacion
    de los bloques con los comandos correspondientes. La figura 3
    muestra el diagrama de componentes basico de una aplicacion que
    usa la interfaz AES, y la figura 4 muestra el resultado de la
    codificacion de 2 bloques de 16 bytes cada
    uno.

    Monografias.com

    Figura 3. Diagrama de componentes
    de una aplicacion que usa AES

    Monografias.com

    Figura 4. Resultado de la
    codificacion con AES

    Trivium Esta interfaz proporciona comandos para
    el cifrado continuo basandose en el metodo Trivium [12]. Dicha
    interfaz cuenta con tres comandos: gen keystream para generar
    bytes aleatorios que seran usados conjuntamente con el texto
    plano o el criptograma como entrada de una funcion XOR [24], el
    segundo comando se nombra key init y es usado para la
    inicializacion de la clave y del Vector de
    Inicializacion
    (IV) [12], el tercer comando se nombra
    process bytes y se usa para el cifrado y descifrado de los
    mensajes.

    Junto a la implementacion se proporcionan dos
    aplicaciones que ejemplifican el uso de esta interfaz: una de
    ellas para un procesador de 8 bits y otra para uno de 16 bits. En
    cada caso debe contarse con una clave secreta del cliente y un
    IV. Cada aplicacion simula un trasmisor y un receptor, para esto
    define estados en los que realiza cada funcion. La clave secreta
    y el IV se usan para la inicializacion de estos estados por medio
    del comando key init. Este seria el primer paso, le sigue, la
    codificacion y decodificacion del mensaje con el comando que
    corresponde. En la figura 5 se muestra los resultados de la
    codificacion/decodificacion de un mensaje con Trivium.

    Message: Hello world

    Encryption (hexadecimal): ec 5d 00 01 19
    04 ef 50 98 e1 da 73

    Message decryted: Hello world

    Figura 5. Resultado de la
    codificacion con Trivium

    MMH y Poly Estas interfaces implementan funciones
    hash universales para proporcionar autenticidad a los mensajes.
    MMH es una Funcion Multimodular y Multilineal [13],
    mientras que Poly se basa en el modelo descrito por Ted Krovetz y
    Phillip Rogaway en [14]. Estas interfaces deben usarse
    conjuntamente con un mecanismo de cifrado como los proporcionados
    por AES o Trivium, un ejemplo de esto se muestra en la figura
    6.

    Monografias.com

    Figura 6. Diagrama de componentes
    de una aplicacion que usa Trivium conjuntamente con
    MMH

    Ambas interfaces solo disponen del comando
    hash por medio del cual se obtiene un numero entero de
    32 bits que representa el codigo de autenticidad del
    mensaje, este es calculado en funcion del mensaje y la clave del
    cliente. En la figura 7 se muestra el resultado de la aplicacion
    de la funcion de autenticacion de la interfaz MMH conjuntamente
    con Trivium.

    Monografias.com

    Figura 7. De izquierda a derecha:
    Resultado de la aplicacion de MMH y Poly con Trivium

    Puede notarse que no existen diferencias en cuanto a los
    resultados de cada funcion de autenticidad, pero si se realiza un
    analisis de complejidad a las correspondientes implementaciones
    se observa que Poly presenta mayor complejidad computacional que
    MMH lo cual debe ser considerado en las WSN.

    4.2.2. Distribucion de clave
    simetrica

    En la Criptografia de Clave Simetrica el tema
    de mayor importancia es el Establecimiento de Claves
    [23] cuyo objetivo es hacer disponible una clave secreta
    compartida para dos o mas partes interesadas en cifrar su
    comunicacion. Seguidamente veremos una propuesta de los
    investigadores Donggang Liu y Peng Ning, ambos de la Universidad
    Estatal de Carolina del Norte en los Estados Unidos. Estos
    implementaron una aplicacion para la version 1.x de TinyOS
    nombrada TinyKeyMan.

    TinyKeyMan es un mecanismo criptografico para el
    establecimiento de claves simetricas en una WSN. Este mecanismo
    implementa el Esquema Polinomico de Predistribucion de Claves
    Basado en Depositos
    , un Esquema Aleatorio de Asignacion
    de Subconjuntos
    y un Esquema Matricial de
    Predistribucion de Claves
    [9]. Segun los autores, estos
    esquemas garantizan una alta probabilidad de establecimiento de
    claves, tolerancia de captura de nodos y baja carga computacional
    y de comunicacion.

    El diagrama de la figura 8 corresponde a una aplicacion
    sobre TinyKeyMan. En este se muestra la relacion entre el
    componente principal de la aplicacion (Simulation) y los
    componentes de TinyKeyMan. Desde este componente principal se
    utiliza el comando SecretAssign de la interfaz SetupServer para
    obtener una Parte Polinomica [25] en funcion del ID del
    nodo solicitante.

    Monografias.com

    Figura 8. Diagramas de componentes
    de una aplicacion sobre TinyKeyMan

    Una vez que el nodo haya obtenido su parte polinomica
    puede establecer una clave compartida con otro nodo (conocido su
    ID) mediante el comando establish key de la interfaz Sensor. Esta
    interfaz define ademas el evento keyEstablished para notificar
    que se ha acordado una clave con el nodo especificado y pasar
    dicha clave al nodo solicitante como parametro del evento. Para
    establecer una clave compartida entre dos nodos, estos deben
    hacer llamadas semejantes a establish key. En la figura 9 se
    muestra un ejemplo del establecimiento de una clave compartida
    entre el nodo 0 (ID=0) y el nodo 1 (ID=1), donde la constante TOS
    LOCAL ADDRESS contiene el ID del nodo.

    Despues que la aplicacion recibe el evento
    keyEstablished notificando que ya se acordo la clave compartida
    con su vecino puede comenzar la transmision de mensajes cifrados
    con esta clave. En la figura 10 en la pagina siguiente se muestra
    el resultado del uso de TinyKeyMan para establecer una clave
    entre dos nodos.

    Una vez obtenida la clave compartida pudiera usarse uno
    de los algoritmos de cifrado tratados en la seccion 4.2.1 en la
    pagina 5 para la codificacion y decodificacion de los
    mensajes.

    Finalmente se tiene que TinyKeyMan implementa dos de los
    esquemas descritos anteriormente de forma separada: Simulation
    para el Esquema Aleatorio de Asignacion de Subconjuntos
    y SimulationG

    Monografias.com

    Figura 9. Codigo para establecer
    una clave entre dos sensores utilizando TinyKeyMan

    0: 0 and 1 have set up key

    0: key=B77B 8ADF 715A FBB2

    1: 1 and 0 have set up key

    1: key=B77B 8ADF 715A FBB2

    Figura 10. Resultado de
    TinyKeyMan

    Para el Esquema Matricial de Predistribucion de
    Claves
    . O sea, existen dos aplicaciones distintas en la
    distribucion de TinyKeyMan. Gracias a esto podemos obtener
    versiones distintas de la aplicacion y comparar los resultados de
    cada una [9]. Si se desea Compilar una o otra aplicacion debe
    modificarse el Makefile del proyecto TinyKeyMan.

    4.2.3. Distribucion de clave publica

    Anteriormente se ha descrito la dificultad del uso de
    algoritmos clasicos como RSA [26] o DSA [27] para la distribucion
    de claves publicas dentro de una WSN. A continuacion veremos una
    propuesta realizada por An Liu y Peng Ning,
    ambos del Departamento de Ciencias de la Computacion de la
    Universidad Estatal de Carolina del Norte. Dicha propuesta se
    nombra TinyECC y pretende la distribucion de claves publicas en
    una WSN.

    TinyECC es una implementacion del Esquema Criptografico
    de Claves Publicas [23], esta se basa en una especificacion para
    redes de sensores propuesta por An Liu y Peng
    Ning
    en [10] de la Criptografia de Curva Eliptica
    de Koblitz [28]. Se han desarrollado tres versiones de TinyECC
    para TinyOS 1.1.11, pero para el estudio en esta seccion
    describiremos solo la version 0.3, aunque en algun momento se
    hagan aclaraciones con respecto a las versiones
    anteriores.

    Desde su primera version, esta aplicacion cuenta en su
    implementacion con seis interfaces las cuales son comentadas a
    continuacion.

    NN Define operaciones algebraicas sobre numeros
    naturales grandes que normalmente no son soportadas por los tipos
    de datos primitivos de nesC.

    ECC Define operaciones basicas sobre una curva
    eliptica, ademas de otras operaciones extendidas basadas en el
    metodo de la ventana deslizante [29].

    ECDSA Define funciones para la generacion y
    verificacion de la firma de autenticidad adjunta al mensaje. Esta
    firma depende directamente del mensaje y de la clave
    privada.

    SHA1 Define las funciones del Algoritmo de Hash
    Seguro SHA-1 [30].

    CurveParam Define dos funciones: get param para
    obtener los parametros de la curva eliptica y omega mul para la
    multiplicacion optimizada con omega. En los modulos
    secp128*.nc, secp160*.nc y secp192*.nc se implementa esta
    interfaz. Dichos parametros de la curva pueden ser modificados en
    la seccion "choose curve parameter " del archivo
    Makefile.

    Una aplicacion que pretenda hacer uso de la distribucion
    de claves publicas proporcionada por TinyECC debe de incluir los
    componentes listados en el cuadro 2 en la pagina siguiente y
    hacer uso de las interfaces de la segunda columna de este cuadro.
    La figura 11 en la pagina siguiente muestra el ejemplo de una
    aplicacion que ademas de los componentes nativos de TinyOS,
    utiliza los componentes requeridos para el uso de
    TinyECC.

    Puede notarse en la figura 11 en la pagina siguiente,
    que la aplicacion que ella representa difiere de una aplicacion
    clasica para recibo y envio de mensajes, solamente en la
    inclusion de ECCC, ECDSAC y NNM

    EL PRESENTE TEXTO ES SOLO UNA SELECCION DEL TRABAJO
    ORIGINAL.
    PARA CONSULTAR LA MONOGRAFIA COMPLETA SELECCIONAR LA OPCION
    DESCARGAR DEL MENU SUPERIOR.

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter