• No se han encontrado resultados

Diseño de un protocolo de autenticidad para redes de sensores

N/A
N/A
Protected

Academic year: 2023

Share "Diseño de un protocolo de autenticidad para redes de sensores"

Copied!
125
0
0

Texto completo

(1)

Instituto Polit´ecnico Nacional

Escuela Superior de Ingenier´ıa Mec´ anica y El´ectrica Unidad Culhuacan

Secci´ on de Estudios de Posgrado e Investigaci´ on

”Dise˜ no de un protocolo de autenticidad para redes de sensores”

Tesis que presenta el

M. en C. Mois´ es Salinas Rosales Para obtener el grado de

Doctorado en Comunicaciones y Electr´onica Bajo la direcci´on de:

Dr. Gonzalo Isaac Duch´en S´anchez Dr. Juan Carlos S´anchez Garc´ıa

Ciudad de M´exico, D.F., Diciembre de 2009

(2)
(3)
(4)

´Indice general

Resumen 1

Abtract 3

1. Introducci´on 5

1.1. Antecedentes . . . 5

1.2. Planteamiento del Problema . . . 8

1.3. Soluci´on propuesta . . . 8

1.4. Objetivos del trabajo . . . 8

1.5. Justificaci´on . . . 9

1.5.1. Requerimientos de Autenticidad en las WSN . . . 11

1.6. Estado del arte . . . 12

1.6.1. Propuestas basadas en criptograf´ıa sim´etrica . . . 14

1.6.2. Propuestas basadas en criptograf´ıa asim´etrica . . . 15

2. Redes de Sensores Inal´ambricas 17 2.1. Or´ıgenes . . . 17

2.2. Componentes de una WSN . . . 19

2.2.1. Organizaci´on de la Red . . . 19

2.2.2. Nodos sensores . . . 21

2.3. Sistemas operativos . . . 24

2.3.1. Servicios de un Sistema Operativo para WSN . . . 24

2.3.2. Ejemplos de Sistemas Operativos para WSN . . . 25

2.4. Lenguajes de programaci´on . . . 29

2.4.1. El lenguaje NesC . . . 30

2.5. Tendencias y aplicaciones en las WSN . . . 30

(5)

3. Dise˜no del protocolo de autenticaci´on 33

3.1. Estructuras algebraicas para la criptograf´ıa . . . 33

3.1.1. Grupos finitos . . . 34

3.1.2. Anillos finitos . . . 36

3.1.3. Campos . . . 37

3.1.4. Campos de Enteros . . . 38

3.1.5. Campos de Polinomios . . . 39

3.1.6. Extensiones de campos finitos . . . 41

3.2. Identificaci´on de requerimientos de dise˜no . . . 43

3.2.1. Funcionalidad . . . 43

3.2.2. Fiabilidad . . . 44

3.2.3. Seguridad . . . 45

3.2.4. Eficiencia . . . 45

3.2.5. Escalabilidad . . . 47

3.2.6. Compatibilidad . . . 47

3.3. Arquitectura de la soluci´on . . . 48

3.4. Protocolo de autenticaci´on propuesto . . . 55

4. Resultados 59 4.1. An´alisis del protocolo de autenticaci´on . . . 59

4.1.1. Metodolog´ıa de an´alisis . . . 59

4.1.2. Funcionalidad . . . 60

4.1.3. Fiabilidad . . . 62

4.1.4. Seguridad . . . 64

4.1.5. Eficiencia . . . 67

4.1.6. Escalabilidad . . . 71

4.1.7. Compatibilidad . . . 73

4.2. Mediciones experimentales de la ejecuci´on del protocolo de autenticaci´on . . . 74

4.2.1. Descripci´on del escenario de pruebas . . . 74

4.2.2. Determinaci´on experimental del costo . . . 79

4.3. Comparativa de consumo de energ´ıa del protocolo . . . 85

Conclusiones y trabajo a futuro 90

Publicaciones de este trabajo 100

(6)

A. C´odigo de componentes 102

A.1. Componente SHA-1 de 16 bits . . . 102

A.1.1. Interfaz Sha16ToolsAppC.nc . . . 102

A.1.2. Configuraci´on Sha16ToolsAppC.nc . . . 105

A.1.3. Estructura Hash t de 16 bits . . . 105

A.1.4. Interfaz Comp16 sha1.nc . . . 106

A.1.5. M´odulo Sha16bC.nc . . . 106

A.1.6. Configuraci´on Sha16bAppC.nc . . . 109

A.2. Componente SHA-1 de 32 bits . . . 109

A.2.1. Interfaz ShaTools.nc . . . 109

A.2.2. M´odulo ShaToolsC.nc . . . 109

A.2.3. Configuraci´on ShaToolsAppC.nc . . . 111

A.2.4. Estructura Hass t DE 32 bits . . . 111

A.2.5. Interfaz Comp sha1.nc . . . 111

A.2.6. M´odulo Sha1C.nc . . . 111

A.2.7. Configuraci´on Sha1AppC.nc . . . 113

A.3. Componente HMAC de 32 bits . . . 113

A.3.1. Interfaz HMAC.nc . . . 113

A.3.2. M´odulo HmacC.nc . . . 113

A.3.3. Configuraci´on HmacAppC.nc . . . 115

A.4. Componente HMAC de 16 bits . . . 116

A.4.1. Interfaz HMAC16b.nc . . . 116

A.4.2. M´odulo Hmac16bC.nc . . . 116

A.4.3. Configuraci´on Hmac16bAppC.nc . . . 119

(7)

Resumen

Hoy en d´ıa se tiene la necesidad de garantizar la seguridad de la infor- maci´on en todo sistema encargado de procesarla, transmitirla y almacenarla.

Esta necesidad est´a presente en toda clase de sistemas de informaci´on, desde aquellos de corte empresarial, hasta los sistemas de uso personal, pasando incluso por los sistemas embebidos y los de monitoreo electr´onico. En este

´

ultimo rubro se encuentran las redes inal´ambricas de sensores, las cuales al ser redes que colectan y transmiten por medios inal´ambricos informaci´on de su entorno, est´an expuestas a escenarios que pueden poner dicha informaci´on en riesgo. Aunado a esto, las redes inal´ambricas de sensores est´an compuestas por unidades muy limitadas en recursos, principalmente la energ´ıa disponible es el punto m´as cr´ıtico, por lo que la implementaci´on de todo control de se- guridad debe ser muy bien analizado para medir su impacto en el desempe˜no de la red.

En este trabajo de presenta una propuesta de un protocolo de auten- ticaci´on aplicable a las redes inal´ambricas de sensores, la cual parte de la problem´atica de seguridad de la informaci´on existente en dichas redes para identificar la importancia de los servicios de autenticidad dentro de ellas y se presenta una revisi´on del estado del arte en el campo de autenticidad en redes inal´ambricas de sensores. Como parte del trabajo de dise˜no se parte de un an´alisis para la identificaci´on de requerimientos para un protocolo de auten- ticaci´on, dando paso a la propuesta de una estrategia de soluci´on, en la cual se incluyen dos tareas principales: autenticaci´on de nodos y autenticaci´on de mensajes, mismas que se definen como las partes principales del protocolo de autenticaci´on. Este protocolo hace uso de dos primitivas criptogr´aficas principales: el cifrado basado en identidad y los c´odigos de autenticaci´on de mensaje.

Se describe un an´alisis del protocolo propuesto para identificar sus princi- pales fortalezas y limitantes en t´erminos de funcionalidad, seguridad, escala-

(8)

bilidad, y consumo de energ´ıa. Con respecto a ´este ´ultimo rubro, se presentan resultados experimentales del uso de c´odigos de autenticaci´on de mensajes en una plataforma espec´ıfica de redes inal´ambricas de sensores. Dichos re- sultados se analizan para identificar la proporci´on del costo asociada a cada tarea de autenticaci´on, concluyendo que la combinaci´on de la criptograf´ıa basada en identidad con los c´odigos de autenticaci´on de mensajes, proveen una opci´on viable para su aplicaci´on en ambientes limitados como las redes inal´ambricas de sensores.

Finalmente se presentan las conclusiones del trabajo y algunas l´ıneas de trabajos a futuro que pudieran derivarse de este trabajo.

(9)

Abstract

Nowadays, it is required to guarantee information security in all systems that process, transmit and store it. This requirement is present among all kind information systems, from enterprise-level to personal systems, including also embedded and electronic monitoring systems. Wireless sensor networks are related to the former ones, such networks are exposed to several risks due to the use of wireless communication channels for transmit and collect environmental information. Moreover, wireless sensor networks are composed by high power constrained units, making for any new security control that would be incorporated, be mandatory to measure its impact on the whole network.

In this work, an authentication protocol suitable for wireless sensor net- works proposal is presented, it start from the analysis of the information se- curity scenario in order to identify the importance of authentication services in such networks, also a review of the state of art in such topic is presented.

The design work, starts from an analysis for identifying of requirements for and authentication protocol, resulting into a proposal for a general approach, where two main tasks are identified: node authentication and message aut- hentication, both derived the main components of the proposed protocol.

This protocol involves basically two cryptographic primitives: identity based encryption and message authentication codes.

After design description, an analysis for identify the strengths and weak- nesses of the protocol in terms of its security, scalability, functionality and energy consumption. Experimental results on the use energy by message aut- hentication codes using an specific wireless sensor networks platform are re- ported. Derived from these results, an analysis of composition of the opera- ting cost for each task on the protocol in terms of energy consumption, con- cluding that the combination of identity based cryptography with message authentication codes, represents a suitable option for constrained environ-

(10)

ments, such as wireless sensor networks.

Finally, the main conclusions of the work, and future work is presented.

(11)

Cap´ıtulo 1 Introducci´ on

1.1. Antecedentes

La integraci´on de las computadoras a la mayor´ıa de los procesos de la vida del hombre ha tra´ıdo nuevos paradigmas a la mesa de dise˜no de la ingenier´ıa, dando origen a innovaciones en el desarrollo de arquitecturas de hardware, protocolos de comunicaci´on y metodolog´ıas para desarrollo de software, las cuales en su conjunto dan como resultado la oferta y aparici´on de nuevos servicios. Entre estos nuevos servicios es posible citar las redes inal´ambricas metropolitanas, la oferta de servicios de banda ancha, la Internet y todas sus aplicaciones de negocios (e-bussines), entre muchos otros.

El origen de estos nuevos servicios es en muchos casos, una necesidad detectada y canalizada a trav´es de una idea de soluci´on y llevada a su reali- zaci´on tecnol´ogica. En otras ocasiones estos servicios tienen su origen en los paradigmas que se van gestando en forma colateral al desarrollo de soluciones a problemas espec´ıficos; donde dichos paradigmas dan pie a su vez a posi- bles desarrollos, algunos de los cuales culminan con la aparici´on de nuevos productos y/o servicios. En este segundo grupo se encuentra la idea de la computaci´on ubicua y los desarrollos asociados a ´esta, tal como se describe en [64] y en [35].

La computaci´on ubicua propone la idea de contar con facilidades de c´omputo en la mayor´ıa de los lugares en los que el individuo se mueve. Este campo se ha caracterizado por su desarrollo en dos vertientes principales:

la primera es la computaci´on m´ovil, la cual consiste en utilizar dispositivos de c´omputo port´atiles que tienen una funci´on muy particular, cuyas carac-

(12)

ter´ısticas f´ısicas y el´ectricas las hacen ideales para el uso y porte diario por un individuo. Ejemplos de esta vertiente son los PDA (Personal Digital As- sistant), los sistemas de navegaci´on GPS, e incluso los reproductores de mp3.

Una segunda vertiente est´a constituida por aquellos sistemas de comu- nicaci´on que permiten contar, en casi cualquier punto, con la facilidad de operar una red de comunicaciones, sin la necesidad de una infraestructura asignada para tal fin. En esta vertiente se aglutinan todos aquellos disposi- tivos que pasan a formar un nodo de una red, la cual opera como pilar del sistema completo. En este caso cada uno de estos nodos, por lo regular, se encuentra limitado en t´erminos de capacidad de procesamiento, almacena- miento, fuentes de energ´ıa y acceso a canales de comunicaci´on. Entre algunos ejemplos de este rubro se encuentran: las redes Bluetooth y ZigBee, los sis- temas de monitoreo para instalaciones inteligentes, sistemas de control de tr´afico urbano, los servicios de Internet m´ovil, las redes de telefon´ıa m´ovil y finalmente las redes de sensores.

Las redes inal´ambricas de sensores, WSN por sus siglas en ingl´es, son una las aplicaciones de m´as reciente aparici´on en el campo de la computaci´on ubicua; estas redes tienen entre sus principales caracter´ısticas la de estar for- madas por un conjunto de dispositivos capaces de medir informaci´on de su entorno y realizar cierto an´alisis de la misma. Cada dispositivo que integra una red de este tipo tiene como principales caracter´ısticas el estar formado de una peque˜na pieza de hardware, la cual est´a limitada en cuanto a capa- cidad de procesamiento y almacenamiento, adem´as de tener que operar en condiciones de bajo consumo de energ´ıa [35]. A la fecha se han desarrollado algunos prototipos de sensores, tales como los Motes de Berkeley, los Mica Motes [66] y los Spec Motes [51], todos ellos construidos con recursos de hardware muy limitados.

Las WSN ha sido propuestas para operar en escenarios como la auto- matizaci´on de procesos, el control inteligente de instalaciones, el monitoreo ambiental y la seguridad y control de acceso; y en los ´ultimos 5 a˜nos han cobrado considerable inter´es debido al auge en el desarrollo de las redes inal´ambricas y la posibilidad de su incorporaci´on como componente en el dise˜no de soluciones.

La transmisi´on de informaci´on en una red de sensores a trav´es de medios inal´ambricos permite ampliar el abanico de aplicaciones de estas redes, a la vez que plantea algunas vertientes, cada una con un conjunto de ventajas, limitaciones y obviamente problemas a resolver.

Las redes de comunicaci´on ad hoc se caracterizan porque el proceso de

(13)

comunicaci´on entre los dispositivos se hace en forma distribuida, en donde cada componente o nodo cumple con dos funciones b´asicas: la funci´on propia del sensor que es generar informaci´on a partir de mediciones, y una segunda que es servir de nodo retransmisor o relay para recibir y retransmitir hacia la estaci´on base informaci´on de otros nodos, que pueden no estar en condi- ciones ´optimas para transmitir hacia una estaci´on base (por ejemplo, fuera de alcance o con demasiada interferencia en el canal).

Estas redes son redes aut´onomas, las cuales se conectan hacia una estaci´on base a trav´es de uno o m´as nodos y donde la comunicaci´on entre el resto de los nodos y la estaci´on base se realiza en forma de cadena a trav´es de la facilidad de retransmisi´on que cada nodo tiene. Las caracter´ısticas de esta organizaci´on de red, como la tolerancia a fallas, los canales de comunicaci´on redundantes, la posibilidad de ruteo inteligente, etc., hacen de ella la m´as utilizada para el dise˜no de redes de sensores.

La informaci´on que se transmite a trav´es de las WSN es en esencia in- formaci´on recolectada por cada nodo. Sin embargo, el mismo canal puede compartirse en la mayor´ıa de los casos para transmitir informaci´on de mo- nitoreo y control. Estas ´ordenes de control pueden variar seg´un la red, por ejemplo, en redes extremadamente simples las ´ordenes de lectura de datos, habilitaci´on e inhabilitaci´on ser´ıan las m´ınimas necesarias. Otras ´ordenes de control para el caso de redes m´as complejas ser´ıan ´ordenes de recalibraci´on, informaci´on de cambios en la arquitectura de la red, etc.

La forma en que la informaci´on se transmite a trav´es de las WSN da pie a plantear algunos cuestionamientos; dado que se utiliza un medio de libre acceso como lo es el espectro radioel´ectrico, la informaci´on y la propia red se encuentran expuestas a varias amenazas como la alteraci´on de la informaci´on y la falta de identificaci´on y control de autenticidad de dispositivos y ´ordenes de control, por solo mencionar las principales.

Partiendo del hecho que la seguridad de la informaci´on se considera como la perpetuaci´on de cuatro propiedades b´asicas para la informaci´on: Confiden- cialidad, Autenticidad, Integridad y Disponibilidad, este trabajo se centra en proporcionar la autenticidad en las comunicaciones entre pares (nodos o dis- positivos) en una WSN.

(14)

1.2. Planteamiento del Problema

Debido a que las redes de sensores inal´ambricas son un campo en pleno desarrollo, que la operaci´on de servicios de autenticidad en sus comunica- ciones es un problema que no ha sido resuelto de forma definitiva y que la naturaleza de operaci´on de dichas redes presenta requerimientos espec´ıficos de escalabilidad y flexibilidad para el dise˜no de cualquier control de seguri- dad, se lleg´o a determinar lo siguiente.

El problema a resolver es la b´usqueda de un mecanismo que permita el uso de operaciones de criptograf´ıa asim´etrica en un ambiente de redes de sensores, para operar de forma eficiente un protocolo de autenticaci´on que permita explotar las caracter´ısticas de flexibilidad y escalabilidad en dicho ambiente.

1.3. Soluci´ on propuesta

La soluci´on que se propone consiste en un protocolo de autenticaci´on que opera con base en esquemas de criptograf´ıa basada en identidad y c´odigos de autenticaci´on de mensajes, para atender las tareas de autenticaci´on de nodos y de mensajes, respectivamente, resolviendo de esta forma el problema planteado.

1.4. Objetivos del trabajo

Objetivo General:

Dise˜nar un mecanismo de seguridad que permita garantizar la autentici- dad entre nodos de una red inal´ambrica de sensores, bajo las limitantes asociadas a esta tecnolog´ıa.

De este objetivo se plantearon los siguientes objetivos particulares:

Identificar los requerimientos de autenticidad existentes en las redes inal´ambricas de sensores.

Identificar las herramientas criptogr´aficas adecuadas para su aplicaci´on en un ambiente de redes inal´ambricas de sensores.

(15)

Dise˜nar un protocolo de establecimiento de autenticidad basado en crip- tograf´ıa de clave p´ublica, para operar en ambiente de una red inal´ambri- ca de sensores.

Hacer un an´alisis comparativo del protocolo propuesto contra otros disponibles en la literatura.

1.5. Justificaci´ on

La idea de considerar la necesidad de seguridad de redes ad hoc no es nueva, inclusive en redes de sensores hay ataques espec´ıficos ante los cuales es necesario utilizar mecanismos de protecci´on para evitar ataques de suplan- taci´on y negaci´on de servicios, entre otros posibles; sin embargo no todas las t´ecnicas utilizadas en soluciones a estos problemas en redes ad hoc, no son del todo aplicables en una WSN.

Con el fin de establecer claramente los riesgos a que se expone la infor- maci´on en una WSN en un ataque, conviene retomar una definici´on de la seguridad de la informaci´on, la cual consiste en otorgarle a la informaci´on cuatro propiedades b´asicas, como se indica en [50]:

Confidencialidad, Autenticidad, Integridad, Disponibilidad.

Con base en estas cuatro propiedades, los escenarios de riesgo en una WSN, y sobre todo, considerando el impacto de un ataque sobre la operaci´on de la red, se considera que el problema de la suplantaci´on de nodos es uno de los m´as severos dada la mec´anica de operaci´on de la red. A fin de ilustrar esta situaci´on, en las siguientes l´ıneas se plantea un ataque hipot´etico.

Una red de WSN con topolog´ıa ad hoc est´a formada por varios nodos, entre los cuales existe una relaci´on de confianza mutua, por lo que cada uno puede establecer enlaces con cualquier otro nodo que est´e dentro de su ´area de cobertura. Estos enlaces permiten a la WSN cumplir sus dos funciones b´asicas: recolecci´on y transporte de datos y ´ordenes de control de

(16)

la red. En las condiciones m´as cr´ıticas, no se tiene forma alguna de establecer autenticidad entre los nodos de la red.

Para esta red, la ejecuci´on de un ataque de suplantaci´on es una situaci´on no muy ajena a la realidad. Este ataque puede llevarse a cabo por lo menos de las siguientes dos formas:

Con la captura de un nodo y la manipulaci´on del mismo.

Con la incorporaci´on de un dispositivo que se haga pasar por un nodo de la red aut´entico.

La realizaci´on del primer ataque es muy simple, ya que como se ha dicho anteriormente, uno de los problemas del dispositivo en s´ı es la facilidad de ser capturado, ya que la mayor´ıa de las veces los sensores no cuentan con mecanismos de protecci´on f´ısica alguna, adem´as de estar expuestos a fallas, e interrupci´on en su servicio.

Para el caso del segundo ataque, si bien se requiere la construcci´on de un sensor compatible con la WSN, esto no parece ser muy complicado una vez que se tiene la posibilidad de capturar uno o m´as nodos originales y recuperar informaci´on del mismo que permita completar la construcci´on.

Dada la din´amica de operaci´on de las WSN, y las posibilidades de ocu- rrencia de un ataque de suplantaci´on, es conveniente evaluar qu´e tan graves podr´ıan ser los da˜nos en caso de la realizaci´on del mismo para as´ı tener una mejor perspectiva del enfoque del problema que adopta el presente estudio.

Bajo la suposici´on que un tercer elemento ha logrado suplantar un no- do aut´entico en la red, los da˜nos generados a partir de tal acci´on pueden agruparse en dos casos generales:

1. Una parte de la informaci´on recolectada por la WSN tendr´a que hacer un salto a trav´es del nodo comprometido, esto pone en riesgo la dispo- nibilidad, la integridad y la confidencialidad de dicha informaci´on, ya que ´esta podr´ıa perderse, alterarse o en un caso extremo, ser expuestos a terceros no autorizados.

2. De igual forma, las ´ordenes de control que viajan por la red pueden ser interceptadas y alteradas al momento de pasar por el nodo comprometi- do, acarreando un mal funcionamiento de la WSN, llegando en algunos casos incluso a poner en riesgo la integridad de elementos circundantes al sensor o del sensor mismo.

(17)

La ocurrencia de cualquiera de estos casos anteriores ser´ıa en menoscabo de la operaci´on de la WSN, lo que repercutir´ıa en consecuencias acordes a la importancia de la misi´on que desempe˜ne dicha red. Esto deja sobre la mesa la necesidad de contar con mecanismos de autenticidad que operen en las WSNs.

En t´erminos generales, el problema de establecimiento de identidad tiene soluci´on mediante un proceso de autenticaci´on entre pares. En las redes de comunicaciones y en los sistemas de informaci´on, este proceso com´unmente involucra el uso de mecanismos criptogr´aficos, ya sean de clave secreta o sim´etricos, o bien de clave p´ublica o asim´etricos.

La autenticidad en una WSN debe ser una propiedad inherente de la propia red, ya que como se ha establecido en la secci´on anterior, un ataque originado a ra´ız de la falta de ´esta puede llegar a comprometer el funciona- miento de la red completa. Sin embargo, a diferencia de otros entornos, las WSN tienen como un marco de operaci´on muy reducido en recursos, por lo que la selecci´on de los mecanismos de autenticidad a utilizar debe ser acorde a dichas limitantes.

1.5.1. Requerimientos de Autenticidad en las WSN

Debido a la din´amica de operaci´on de las WSN, ´estas requieren operar servicios de autenticidad para asegurar dos tareas sustanciales: el intercambio de mensajes entre nodos y la incorporaci´on de nuevos enlaces en la red.

1.5.1.1. Autenticidad de mensajes

Conforme a lo descrito previamente en este documento, la operaci´on se- gura de una WSN requiere de un mecanismo que permita verificar a un nodo la autenticidad de los mensajes recibidos para determinar si es que ´este debe ser aceptado y procesado o bien descartado.

Este tipo de controles son de suma importancia en todo momento a fin de evitar que se suscite un ataque por inyecci´on de mensajes de control, as´ı como la contaminaci´on de lecturas de la red por medio de mensajes ap´ocrifos.

1.5.1.2. Autenticidad de nodos

Las redes de sensores se componen de un conjunto de nodos, el cual ir´a variando conforme se desarrolla la operaci´on de la red. En este tiempo se

(18)

presentan casos donde varios nodos dejar´an de pertenecer la red por alguna de las siguientes causas:

Agotamiento de su bater´ıa

Inhabilitaci´on del nodo por da˜no o destrucci´on.

Fallo en la conectividad del nodo debido a la inhabilitaci´on de un nodo relay o por la interferencia de nuevos obst´aculos.

As´ı tambi´en, es com´un que un cambio en la topolog´ıa de la red d´e como consecuencia que un par de nodos que nunca hab´ıan interactuado, deban iniciar comunicaciones.

Adem´as siempre existe la posibilidad de que nuevos nodos se incorporen a la WSN con el objetivo de aumentar la granularidad de la red, o bien, para sustituir nodos inhabilitados.

Estos tres escenarios sugieren la necesidad de que los nodos de una WSN verifiquen si deben o no aceptar nuevas asociaciones con otros nodos, lo que conllevar´ıa el desarrollo de un proceso de autenticaci´on para determinar si la contraparte es un nodo aut´entico de la WSN o si por el contrario pudiera tratarse de un elemento ajeno a la WSN y potencialmente hostil.

Por lo anterior se observa que existe un requerimiento de contar con un mecanismo de autenticaci´on entre nodos dentro de una WSN, lo que proveer´ıa una protecci´on ante ataques de sustituci´on de nodos o infiltraci´on en la WSN.

1.6. Estado del arte

Aunque ya hay algunos prototipos e incluso productos de redes inal´ambri- cas de sensores, como los comercializados por Dust Networks [29], a´un hay muchos problemas por resolver en cuanto a su operaci´on antes de que las WSN extiendan su campo de aplicaci´on a ´areas cr´ıticas, tal es el caso de

´areas como la medicina, la seguridad, el control industrial e incluso la in- dustria militar, como las descritas en [46] y [48]. El conjunto de todos estos problemas se pueden clasificar bajo dos vertientes: aquellos relacionados con la tecnolog´ıa del nodo sensor, y los relacionados con la red de comunicaci´on formada por la asociaci´on de ´estos.

En lo que respecta a los problemas asociados a la tecnolog´ıa de los dis- positivos, podemos mencionar como el de mayor impacto, al consumo de po- tencia, el cual es un problema permanente en las ´areas de dise˜no de circuitos,

(19)

por ello es que existen numerosas alternativas de soluci´on a este problema, como ejemplo se tiene el dise˜no de microcontroladores y unidades de radio de menor consumo de energ´ıa.

Debido a que los dispositivos sensores est´an pensados para ser desple- gados en locaciones muy diversas, donde se exponen a da˜no, captura, nula posibilidad de recuperaci´on, e incluso a su destrucci´on, surgen dos problemas m´as a resolver. El costo de fabricaci´on, el cual debe mantenerse muy bajo a fin de poder ser considerados como desechables; otro problema proviene de la exposici´on de los dispositivos a ataques de sabotaje y/o mal manejo (tampering) [49], situaci´on que puede generar serios problemas a la red de sensores, tal como se explica m´as adelante. Con respecto al primer problema, la mayor´ıa de las propuestas de dise˜no de dispositivos sensores hacen especial

´enfasis en disminuir el costo de los componentes, lo cual se ve reflejado en las limitadas capacidades de procesamiento y almacenamiento del dispositivo, lo que es casi un distintivo de las WSN’s.

Por lo que respecta a los problemas asociados al canal de comunicaci´on, es decir a las redes de comunicaci´on formadas por los sensores, los dise˜nadores de tecnolog´ıa WSN tienen un largo camino a recorrer, principalmente debido los compromisos de las prestaciones con que deben operar las WSN. Entre estas prestaciones se destacan:

eficiencia en consumo de potencia, robustez en los enlaces,

capacidad de auto-organizaci´on, tolerancia a fallos,

escalabilidad,

tiempo de vida aut´onoma de la red, y seguridad en las comunicaciones.

El problema de autenticidad en las redes de sensores est´a asociado por su origen al canal de comunicaci´on, sin embargo su soluci´on requiere de una estrategia que abarque aspectos tanto del dispositivo sensor, para efectos de implementaci´on, como del mismo canal de comunicaciones. Para efectos de proponer una soluci´on a dicho problema se deben considerar los dos siguientes

(20)

planteamientos para no impactar de forma considerable el tiempo de vida del nodo sensor:

El procesamiento de mensajes adicional requerido debido a los meca- nismos de autenticaci´on usados, deber´a mantenerse tan bajo como sea posible.

El uso de canal de comunicaciones para transmitir elementos adicio- nales a la informaci´on deber´a mantenerse al m´as m´ınimo nivel por el costo del uso de las unidades de radio.

Si bien en los ´ultimos a˜nos se han desarrollado un buen n´umero de pro- puestas de soluci´on al problema la autenticaci´on en el ´ambito de las redes inal´ambricas de sensores, dichas soluciones a´un presentan puntos que se pue- den mejorar. Estas propuestas se pueden dividir en dos grupos: el primer grupo, el m´as numeroso, involucra el uso de mecanismos basados en la crip- tograf´ıa sim´etrica, tales como los c´odigos MAC y funciones hash o las t´ecnicas de pre distribuci´on de llaves.

Un segundo grupo de propuestas involucra el uso de mecanismos de crip- tograf´ıa asim´etrica, entre las cuales destacan diferentes esquemas de firmas digitales, as´ı como el uso de protocolos de acuerdo de llave basados en crip- tograf´ıa asim´etrica. El n´umero de este grupo es mucho menor que el primero y la raz´on de ello es que por mucho tiempo se consider´o que los costos de dicho tipo de t´ecnicas eran prohibitivos para las redes de sensores. En los siguientes p´arrafos se presenta el estado del arte de este campo.

1.6.1. Propuestas basadas en criptograf´ıa sim´ etrica

En el terreno de las propuestas para autenticaci´on basadas en criptograf´ıa sim´etrica, la idea m´as recurrida son los esquemas de pre distribuci´on de llaves.

En estos esquemas se asocia cada nodo con una llave, la cual es usada para funciones de cifrado y de autenticaci´on, luego cada nodo es cargado con informaci´on de las llaves del resto de los nodos o al menos de un subconjunto de estos; esta estrategia obedece a la capacidad limitada de almacenamiento en cada nodo, situaci´on que se torna complicada para redes con muchos nodos.

Al considerar la idea de cargar solo las llaves de un subconjunto de los nodos que componen la red, se hace necesario establecer un criterio para tal

(21)

fin. En la mayor´ıa de las propuestas se tienen esquemas de distribuci´on alea- toria, que aseguran la conectividad entre cualquier par de nodos mediante un modelo probabil´ıstico asociado a mecanismos de b´usqueda de trayectorias.

Estas propuestas parten del trabajo de Blom [54], el cual describe un me- canismo para la generaci´on de llaves compartidas. Algunas propuestas que consideran la pre distribuci´on aleatoria de llaves son las de Eschenauer [22]

y mejorada en primera instancia por Chan [12]. Otros trabajos consecuentes sobre esta idea son el de Newsome [47] y posteriormente Du y Liu, entre otros [19, 43, 39, 37, 40].

Otras estrategias exploradas en el desarrollo de esquemas de pre distri- buci´on de llaves incluyen la incorporaci´on de elementos de la localizaci´on geogr´afica o topol´ogica de cada nodo. A este respecto se tienen propuestas hechas por Whitehouse [67], Medhi [28], y Liu [38].

En un tercer grupo de estrategias para la pre distribuci´on de llaves, est´an los trabajos de Zachary [30] quien incorpora novedosos mecanismos como los acumuladores de una sola v´ıa, el trabajo de Camptepe [11] que hace uso de la teor´ıa combinatoria para lograr una distribuci´on de llaves y el trabajo de Castelluccia [10] el cual describe un protocolo de intercambio de secretos basado en el uso de un canal de multidifusi´on con anonimato.

1.6.2. Propuestas basadas en criptograf´ıa asim´ etrica

Dejando de lado los desarrollos basados en llaves sim´etricas, destacan por su limitada explotaci´on en el campo de las WSN las propuestas que operan con base en algoritmos de llaves asim´etricas. Como es posible adivinar, la principal raz´on es la considerable cantidad de recursos, en t´erminos de procesamiento y memoria, que involucra la ejecuci´on de protocolos basados en este tipo de t´ecnicas. Sin embargo, existen herramientas que pudieran ayudar a salvar esta limitante y as´ı potenciar el uso de llaves asim´etricas en ambientes de WSN.

En mayo de 2005, Du [20] report´o resultados acerca del uso de mecanismos de criptograf´ıa asim´etrica o de llave p´ublica (PKC) para efectos de establecer autenticidad en WSN, este estudio se basa en otros estudios, como el de Gaubatz [23] y Gura [25] , ambos presentados en 2004.

Gaubatz parte de la una idea enfocada a realizar en hardware las ope- raciones de los algoritmos de criptograf´ıa asim´etrica: Rabin y NtruEncrypt, los cuales requieren considerables ciclos de reloj si se realizan en software.

Gaubatz reporta en su trabajo resultados interesantes en lo que se refiere a

(22)

consumo de potencia y ´area de silicio utilizada por el arreglo de compuertas.

En el segundo estudio, Gura reporta los resultados del desempe˜no del algoritmo RSA comparado con Criptograf´ıa de Curvas El´ıpticas (ECC) en un microprocesador de 8 bits, el cual se acerca mucho a la capacidad instalada en los nodos de una WSN. A partir de estos dos resultados, Du describe y eval´ua una t´ecnica que permite reducir la cantidad de operaciones de verificaci´on de firma, que son las m´as frecuentes en la ejecuci´on de protocolos basados en PKC.

La t´ecnica de Du involucra el uso de funciones hash sobre una firma digi- tal, para as´ı reducir la cantidad de los datos a evaluar, y luego incorpora cada valor hash resultante en una estructura de un ´arbol de Merkle [59] (´arbol de firmas), el cual permite realizar verificaciones de firma digital sin la necesidad de una CA. Este esquema promete un ahorro de recursos considerable y sirve como un ejemplo para incorporar de mecanismos de PKC en la operaci´on de WSN.

Considerando el uso de protocolos como el que presentan Du y Gaubatz, as´ı como las aplicaciones de Malan [42] y Karlof [33] para firmado digital eficiente en ambientes de software con pocos recursos (TinyOS), se vislum- bra un campo de exploraci´on para la b´usqueda de mejores soluciones para establecer autenticidad en WSNs.

(23)

Cap´ıtulo 2

Redes de Sensores Inal´ ambricas

2.1. Or´ıgenes

Las redes de sensores tienen su origen en la necesidad que existe en m´ulti- ples escenarios de monitorear el desarrollo de fen´omenos que puedan formar parte de alg´un proceso industrial, o bien de la propia naturaleza.

El monitoreo de dichos fen´omenos puede darse de dos formas distintas.

La primera de ellas es el monitoreo a distancia (o tele monitoreo), el cual consiste en el uso de t´ecnicas para recolectar mediciones de un fen´omeno desde fuera del ambiente donde este se desarrolla. Por ejemplo, la detecci´on de tornados y cambios meteorol´ogicos se hace mediante sensores de im´agenes colocados en sat´elites a grandes distancias fuera del foco del fen´omeno; la vigilancia telesc´opica tambi´en es otro buen ejemplo de este tipo de t´ecnica.

Por otro lado, el monitoreo in situ, concentra todas aquellas t´ecnicas que requieren de tomar lecturas directamente en el lugar donde se desarrolla el fen´omeno, por lo que el dispositivo sensor se debe internar en el ambiente de observaci´on. Como ejemplo de estas t´ecnicas se pueden citar la grabaci´on de sonidos de las aves en los bosques, los sistemas de medici´on de humedad en los bosques y los sistemas de alarma basados en detectores de movimiento, entre otros.

En el monitoreo in situ destaca la necesidad de obtener mediciones con la mayor precisi´on posible, minimizando posibles contaminaciones de la lectura debido a la presencia del dispositivo sensor, as´ı como de toda los implemen- tos necesarios para la operaci´on del mismo, tales como cableado de energ´ıa, ruidos, vibraciones y emisiones de calor provenientes de los mismos, etc.

(24)

En un principio las redes de sensores hac´ıan uso de l´ıneas de datos para efectuar sus comunicaciones, con la incorporaci´on de los desarrollos recientes en materia de comunicaciones inal´ambricas, las redes de sensores han evo- lucionado un paso m´as adelante. De ah´ı que hayan adoptado el nombre de redes inal´ambricas de sensores.

En este escenario las redes inal´ambricas de sensores aparecen como una alternativa que permite obtener mediciones adecuadas ya que minimizan los efectos de ruido debido a la presencia de los sensores, al mismo tiempo que reducen los costos y tiempo de instalaci´on de la infraestructura de medici´on, y finalmente facilitan la obtenci´on continua de dichas mediciones.

Estas redes son redes de comunicaci´on integradas por dispositivos de c´omputo de capacidades muy limitadas, mismos que tiene la funci´on de obte- ner, procesar y transmitir informaci´on de eventos o mediciones de su entorno.

Estas son un caso muy especial de las redes ad hoc, lo que las convierte en´ una herramienta de comunicaci´on muy vers´atil que se conjuga con un di- se˜no de componentes orientados a un muy bajo consumo de potencia para as´ı proveer una plataforma de medici´on aplicable a muchas tareas, las cuales pueden ir desde el monitoreo ambiental, hasta la vigilancia de pacientes en

´areas hospitalarias [46] y la vigilancia en escenarios de operaciones militares [48, 32].

Gracias a la transmisi´on inal´ambrica, las redes de sensores han superado importantes obst´aculos en materia de alcance, distribuci´on y organizaci´on de la red. Esta misma capacidad ha dejado entrever nuevos horizontes en los campos de aplicaci´on de las WSN, lo que a su vez ha originado nuevos problemas a resolver. Por ejemplo, la ausencia de medios guiados para la transmisi´on de la informaci´on involucra de forma directa el uso de formas alternativas de fuentes de alimentaci´on, como son las bater´ıas, y la luz solar, tal como se propone en [7]. Otro cambio que ha tra´ıdo la inclusi´on de la tecnolog´ıa inal´ambrica es la flexibilidad en cuanto a topolog´ıa de la red, ya que cambios en el entorno u ocasionales desplazamientos del sensor pueden dar como consecuencia cambios en la misma.

Entre las principales caracter´ısticas de estas redes destaca el hecho de que est´an formadas por la agrupaci´on de varios nodos sin un patr´on de conexi´on definido entre ellos y que presentan caracter´ısticas como la capacidad de auto-organizaci´on, un alto grado de escalabilidad con respecto al n´umero de nodos que las forman y que est´an orientadas a maximizar la disponibilidad de enlaces entre los nodos de la red.

Otra caracter´ıstica muy distintiva de las WSN es el hecho de que todos los

(25)

algoritmos, protocolos y hardware relacionados con una WSN est´an dise˜nados con miras a minimizar el uso de energ´ıa, por lo que en la mayor´ıa de las ocasiones representan importantes logros en materia de dise˜no.

En las siguientes secciones se hace una descripci´on de la evoluci´on de las WSN y sus caracter´ısticas, as´ı como de sus principales componentes y los servicios de seguridad que existen a la fecha.

2.2. Componentes de una WSN

Las redes de sensores est´an integradas por un conjunto de nodos, entre los cuales la mayor parte se pueden clasificar como nodos sensores, as´ı como por otros nodos con funciones adicionales, tales como los nodos gateway, o los nodos de estaci´on base, as´ı como otros nodos con caracter´ısticas muy particulares de acuerdo a los trabajos que desempe˜nan en la red. Dichos nodos, as´ı como la configuraci´on de los mismos y los servicios operados dentro de la WSN, son los elementos que conforman los componentes de una WSN, tal como se describe a continuaci´on.

2.2.1. Organizaci´ on de la Red

Como se ha hecho menci´on en p´arrafos anteriores, las WSN se caracte- rizan por ser redes ad hoc, en las que no existe una topolog´ıa definida y la configuraci´on de los enlaces entre nodos tiene un car´acter meramente tempo- ral, la est´a sujeta a cambios en cualquier momento. Sin embargo, la mayor´ıa de las WSN presenta una organizaci´on entre nodos de acuerdo a las funciones que ejecuta cada nodo dentro de la red. Esta configuraci´on permite agrupar a los nodos en capas seg´un el papel que desempe˜nan en la red. Por ejemplo, un nodo gateway, el cual interconecta a toda los nodos sensores de una red, se distingue perfectamente de otro nodo, el cual tiene la simple tarea de censar el nivel de humedad y reportar hacia el primero la lectura. Adicionalmente se pueden considerar, de acuerdo al tama˜no y aplicaci´on de la WSN, otros tipos de nodos como son: nodos relay, los cuales solamente se encargan de interconectar a otros nodos sin tomar ninguna lectura; los nodos sensores es- pecializados, tales como aquellos equipados con sensores de im´agenes o video y que solo entran en operaci´on cuando se ha disparado una se˜nal de alarma;

nodos concentradores, los cuales colectan y procesan informaci´on para gene- rar res´umenes o tomar ciertas decisiones conforme a dichas lecturas, entre

(26)

otros.

Esta organizaci´on de la red se basa en las funciones que cada nodo desem- pe˜na dentro de la misma y normalmente refleja la diversidad de capacidades en t´erminos de procesamiento, ancho de banda y energ´ıa disponible, en los diferentes nodos que componen la WSN [32].

A continuaci´on se describe un ejemplo de la organizaci´on de una WSN t´ıpica, la cual est´a formada por nodos de varias clases y capacidades, los cuales tienen a su cargo tareas espec´ıficas. Esta organizaci´on se muestra en la figura 2.1.

Nodo gateway: se encarga de recolectar la informaci´on proveniente de toda la WSN y reportarla en un formato adecuado hacia los clientes a trav´es de la infraestructura definida para tal efecto.

Nodo relay: como su nombre lo ´ındica este es un nodo que se encarga de reenviar mensajes provenientes de otros nodos y reenviarlos hacia un nodo gateway.

Nodo concentrador : se encarga de recolectar lecturas de nodos sensores y procesarlos para generar res´umenes o reportes de lecturas y enviarlos hacia los nodos gateway.

Nodo sensor especializado: su funci´on es recolectar mediciones haciendo uso de sensores de prop´osito espec´ıfico, normalmente muy caros en cuanto a consumo de energ´ıa para mantenerlos en observaci´on continua, por lo que solo se activan como respuesta a alg´un evento detectado por otros sensores.

Nodo sensor general : este tipo de nodos se encargan de tomar lecturas locales, recibir informaci´on de lecturas de otros nodos, y finalmente reenviarla hacia los nodos gateway. Tambi´en pueden generar alarmas a la WSN para iniciar la actividad de otros nodos.

Nodo sensor simple: es un tipo de nodo sensor cuya ´unica tarea es realizar lecturas y enviar los resultados a alg´un otro nodo en la red;

normalmente es de muy bajo consumo de potencia y no tienen capaci- dad, al menos en operaci´on, para recibir mensajes de otros nodos, por lo que se pueden considerar como testigos.

(27)

Figura 2.1: Ejemplo de organizaci´on de una WSN

Cada una de las clases de nodos descritos en este ejemplo corresponde a un arreglo de hardware y software en espec´ıfico, de forma tal que ´este sea el necesario para el cumplimiento de las tareas encargadas al nodo, y al mismo tiempo se asegure que el uso de energ´ıa en la WSN sea el m´ınimo posible.

La integraci´on de diferentes clases de nodos en una WSN dan como re- sultado un esquema de organizaci´on, el cual incluye, adem´as de los propios nodos, la definici´on de rutas de tr´afico, perfiles de uso de energ´ıa, roles de cada nodo, etc., todo desde la perspectiva del conjunto total de nodos, es decir, de la WSN.

2.2.2. Nodos sensores

Los nodos sensores son unidades de hardware, las cuales dan soporte a la ejecuci´on de tareas de lectura, intercambio de mensajes, as´ı como control de la red. Cada nodo est´a integrado por los siguientes elementos: una unidad de procesamiento, uno o varios sensores, un radio y una fuente de energ´ıa [26].

Dichos elementos est´an agrupados en una configuraci´on, m´as o menos t´ıpica como la que se muestra en la figura 2.2.

(28)

Figura 2.2: Configuraci´on interna de un nodo sensor

A continuaci´on de describen brevemente los principales elementos de un nodo sensor, de acuerdo la figura 2.2.

Unidad de procesamiento La unidad de procesamiento de un nodo sen- sor consta com´unmente de un microprocesador o un micro controlador, el cual tiene una frecuencia de reloj del orden de Megahertz, y con tama˜nos de palabra entre 8 y 16 bits, aunque en algunos casos excepcionales los hay de 32 bits. Por lo que respecta a la memoria, normalmente se tienen bancos de memoria del orden de kilobytes y en solo en algunos casos incluso Megabytes.

Finalmente, en lo que respecta a la entrada/salida, la mayor´ıa de los nodos sensores tienen disponibles puertos de comunicaciones tipo UART a trav´es de los cuales se comunican con dispositivos perif´ericos, de radio, sensores y otros.

Sensores Los dispositivos sensores son el segundo componente en impor- tancia de un nodo sensor, despu´es de la unidad de procesamiento. Estos son arreglos de transductores conectados a un convertidor anal´ogico-digital (ADC), el cual se encarga de la digitalizaci´on de las lecturas, las cuales son

(29)

ingresadas al micro controlador o microprocesador a trav´es de los puertos de entrada/salida.

Por lo regular, un nodo sensor est´a dise˜nado para integrar uno o m´as sen- sores. Estos pueden ser de diversos tipos y van desde simples fototransistores los cuales operan como sensores de luz, hasta c´amaras de video las cuales pueden enviar tramas de video a trav´es de la red.

Por lo regular un nodo sensor est´a dotado de un conjunto de sensores que le permita detectar eventos acorde al tipo de trabajo que tiene asignado, por ejemplo, los nodos m´as simples poseen sensores piezoel´ectricos o de luz, mismos que son muy econ´omicos en t´erminos del consumo de energ´ıa.

Radio Las unidades de radio son uno de los componentes con un mayor consumo de energ´ıa, por lo que el tipo de ´esta es un factor que determina en gran parte la eficiencia del nodo. Las tecnolog´ıas existentes hoy en d´ıa en el campo de las Redes Inal´ambricas Personales (WPAN: Wireless Personal Area Networks) son una plataforma que ofrece muchas ventajas, como la estandarizaci´on, capacidad de flexibilidad y escalabilidad de la red, as´ı co- mo tambi´en permiten su integraci´on a otras plataformas, como la PC y la Internet; lo anterior al mismo tiempo que satisfacen los requerimientos de transmisi´on a bajas tasas de transferencia, del orden 10 a 256Kbps, as´ı como un manejo eficiente de la potencia de transmisi´on y distancias limitadas de cobertura, las cuales van de varios metros a incluso algunos kil´ometros.

Actualmente existen varias plataformas de radio para WSN, las cuales se basan en tecnolog´ıas como el IEEE 802.11/802.15/802.16, Bluetooth y Zig-Bee, las cuales incorporan chips de radio dise˜nados con un consumo de potencia extra bajo en mente y con frecuencias de operaci´on que oscilan entre las bandas de 900 MHz. y los 2.4 GHz. Como ejemplo de estas unidades est´an los chips de Chipcon, Jennic, Radiometrix y Nordic.

Fuente de energ´ıa Los nodos de una WSN son normalmente operados por paquetes de bater´ıas, los cuales proporcionan suficiente energ´ıa para mante- nerlos en operaci´on durante el tiempo para el cual fueron dise˜nados. Aunque existen otras alternativas de fuentes de energ´ıa como la solar o la qu´ımica, es innegable que la mayor´ıa de los dise˜no de nodos existentes hoy en d´ıa operan solo con base a bater´ıas. Por ello se considera a la energ´ıa disponible en nodo como un recurso limitado, lo que ha hecho necesario implementar esquemas de planificaci´on y ahorro de energ´ıa en todos los componentes restantes del

(30)

nodo sensor.

Dispositivos de Entrada/Salida Adem´as de los dispositivos sensores y la unidad de radio, los cuales en conjunto se desempe˜nan como los elemen- tos principales de entrada/salida, un nodo sensor cuenta la posibilidad de interactuar con otros dispositivos, tales como una interface de programaci´on, actuadores, etc., a trav´es de puertos de comunicaci´on tipo UART, diodos emi- sores de luz, etc. Sin embargo, por la propia restricci´on del uso de energ´ıa, es m´ınimo el uso de que normalmente se hace de este tipo de componentes.

2.3. Sistemas operativos

Un componente que ha sido determinante en el crecimiento de aplicacio- nes en las WSN es el sistema operativo, el cual es el software encargado de la administraci´on a m´as bajo nivel de los recursos con que cuenta un nodo sensor. Esta pieza de software es tambi´en conocida como middleware, ya que se encarga de servir de capa intermedia entre las aplicaciones y los compo- nentes de hardware y bien los controladores de dispositivo de dicho hardware [31].

2.3.1. Servicios de un Sistema Operativo para WSN

Las principales tareas que se concentran en un sistema operativo para WSN son las de ejecutar y administrar las rutinas necesarias para los si- guientes servicios [59]:

Abstracci´on y acceso uniforme al hardware Como cualquier sistema operativo, los sistemas operativos para WSN permiten establecer una capa de abstracci´on entre la complejidad que requiere la interacci´on directa con el hardware, lo que hace mucho m´as simple el desarrollo de aplicaciones al proveer el propio operativo una interfaz m´as clara y simple a trav´es de su API.

Administraci´on de tareas Las aplicaciones que se ejecutan dentro de cada uno de los nodos de una WSN requieren ser controladas por el sistema operativo como cualquier tarea o proceso que se ejecuta en cualquier otro sistema inform´atico. Sin embargo, debido a que los nodos de la WSN son

(31)

un sistema de prop´osito muy espec´ıfico, la cantidad de aplicaciones a ser ejecutadas son muy pocas, as´ı como tambi´en la interacci´on entre ellas. De hecho la administraci´on de tareas en una WSN se reduce normalmente a esquemas de planificaci´on muy simples, como el First Come First Served (FCFS), y a asignaci´on de espacios de memoria para la ejecuci´on de las mismas.

Administraci´on de acceso a los recursos El control de acceso a recur- sos, tanto de hardware como software, para las aplicaciones de un nodo de una WSN, es otra tarea que desarrolla el sistema operativo, el cual deber´a garan- tizar la exclusi´on mutua durante el acceso a recursos como memoria, unidad de radio, sensores, y tambi´en componentes de software que as´ı lo requieran.

Comunicaci´on en red Este servicio agrupa a todas aquellas servicios aso- ciados a las comunicaciones de mensajes entre los nodos de la WSN en las capas altas de OSI, entre los cuales se incluyen la definici´on din´amica de rutas, el descubrimiento de vecindarios, los ajustes a las reglas de ruteo conforme a las condiciones de los nodos de la red, la configuraci´on de la topolog´ıa, etc.

Administraci´on de la energ´ıa El sistema operativo, como punto de uni´on entre las aplicaciones y los componentes de hardware, es el encargado de establecer y operar la disciplina de ahorro de energ´ıa, tal que permita al nodo sensor realizar el trabajo asignado, mientras extiende al m´aximo el tiempo de vida de las bater´ıas.

2.3.2. Ejemplos de Sistemas Operativos para WSN

Actualmente existen varias propuestas de sistemas operativos para re- des inal´ambricas de sensores, algunos de los cuales son una adaptaci´on de otros sistemas operativos para ambientes m´as generales y por otro lado est´an aquellos dise˜nados ex profeso para ambientes de WSN.

Los siguientes sistemas operativos destacan entre los principales propues- tos para redes de sensores:

LiteOS Es un sistema operativo para redes de sensores desarrollado por la Universidad de Illinois en 2006. Este sistema est´a desarrollado en C++ y permite el desarrollo de software general, para lo cual provee un compilador

(32)

LiteC y una API denominada OpenSC [9]. El compilador LiteC recibe c´odigo en lenguaje C++ y lo transforma a c´odigo binario nativo de la plataforma donde se requiera ejecutar. Como sistema operativo provee las funciones de comunicaci´on, manejo de la entrada/salida, as´ı como acceso a rutinas comu- nes de programaci´on. Los servicios que ofrece a las aplicaciones son disposi- ci´on de recursos y planificaci´on de procesos. Los componentes principales de LiteOS son el compilador, la biblioteca OpenSC y el ambiente de ejecuci´on LiteOS, el cual es el encargado de ejecutar las aplicaciones.

MagnetOS Es un sistema operativo desarrollado por la Universidad Cor- nell en 2008. Este sistema implementa el concepto de una Imagen ´unica de sistema, la cual hace ver a toda la red de sensores como un solo sistema compuesto, y al cual le distribuye las aplicaciones como peque˜nos pedazos de c´odigo, cada uno de los cuales se instala y se ejecuta en un nodo sensor [41].

Para su implementaci´on, MagnetOS utiliza las caracter´ısticas de distribuci´on de c´odigo de Java, por lo que est´e es capaz de ejecutar una aplicaci´on con- vencional escrita en Java y distribuirla para que ´esta se ejecute entre todos los nodos de la red. En su arquitectura existe un monitor que se encarga de dividir una aplicaci´on de Java en peque˜nos objetos y los distribuye entre los nodos de la red. Por ello este sistema operativo se encarga de planificar la ejecuci´on de peque˜nos bloques de c´odigo por cada nodo de la red, mas no es el caso de una planificaci´on de procesos como se conoce en la mayor´ıa de los sistemas operativos. Dicho monitor se encarga adem´as de reescribir el c´odi- go Java a c´odigo a nivel de byte para ser ejecutado por los sensores. Entre las tareas de este monitor, llamado dynamic runtime component destacan las siguientes: monitoreo de la aplicaci´on, creaci´on de objetos, invocaci´on y migraci´on de sub-tareas entre nodos.

La principal ventaja de este sistema operativo es que al estar este dis- tribuido entre todos los nodos de la red, ´este posee una vista general de la misma, lo que le permite hacer los ajustes necesarios para balancear de ma- nera ´optima la carga entre nodos, y as´ı administrar el consumo de energ´ıa de forma m´as eficaz.

Mantis Es un sistema operativo para redes de sensores el cual fue desarro- llado por la Universidad de Colorado en 2005. Tanto el n´ucleo del sistema como su API est´an escritos en C, lo que facilita el desarrollo de aplicaciones [6].

(33)

Mantis o MOS, como tambi´en se le conoce, tiene soporte para progra- maci´on multi-hilos en varias capas. Opera con un esquema de planificaci´on apropiativo el cual retoma mucho de lo establecido en los sistemas Unix e incluye servicios de intercambio de contextos, sem´aforos, prioridades de eje- cuci´on y un stack de comunicaciones compuesto por 4 capas: aplicaci´on, red, control de acceso al medio y f´ısica. Una caracter´ıstica interesante es su capa- cidad para ser reprogramados de manera din´amica.

La arquitectura de MOS se basa en dos capas: una es la capa de co- municaciones que agrupa todas las funciones del esa ´ındole, y una capa de dispositivos, la cual agrupa diferentes controladores de dispositivos de hard- ware.

TinyOS El sistema operativo TinyOS es un sistema operativo dise˜nado espec´ıficamente por la Universidad de California, Berkeley, para operar nodos de una red de sensores. Este sistema operativo cuenta con caracter´ısticas muy espec´ıficas para una WSN, utilizando muy pocos recursos de hardware pero permitiendo ejecutar diversas tareas necesarias dentro de la misma red [1].

El modelo de ejecuci´on de procesos en TinyOS comprende dos elementos b´asicos: las tareas y los eventos, que representan una aplicaci´on lista para ejecutarse y formada en una cola esperando acceso al procesador, as´ı como la ocurrencia de un evento a trav´es de una interrupci´on, respectivamente.

En TinyOS el modelo de ejecuci´on de procesos, incluye un esquema de planificaci´on es de tipo no apropiativo, lo que significa que una vez que una tarea entre en estado de ejecuci´on tendr´a posesi´on de los recursos hasta ter- minar. Adicionalmente las ´unicas interrupciones permitidas a la ejecuci´on de una tarea son aquellas generadas por medio de un evento, ante lo cual se de- ber´a ejecutar una rutina de atenci´on al evento, la cual ser´a ejecutada hasta su conclusi´on (similar al caso de rutinas para las interrupciones de hardware).

Una aplicaci´on en TinyOS se define bajo la forma de un componente. Es- te componente ser´a instanciado por el sistema operativo para ser ejecutado.

Un componente se representa como la asociaci´on de un modulo y una confi- guraci´on a trav´es de una interfaz previamente definida. Un modulo incluye la especificaci´on de las rutinas a ejecutar por parte de la aplicaci´on, por lo que se dice que el modulo describe el funcionamiento del componente. Por otro lado la configuraci´on de un componente corresponde a la descripci´on de las asociaciones del mismo con otros componentes disponibles en el sistema operativo y/o desarrollados por el programador, por lo que se le conoce como

(34)

Figura 2.3: Arquitectura de un componente en TinyOS

una especie de definici´on de wiring o alambrado. Finalmente la definici´on de la compatibilidad de interacci´on entre componentes se logra mediante la de- finici´on y uso de las interfaces las cuales consisten en una especificaci´on de En la figura 2.3 se ilustran estos conceptos.

Al respecto de la arquitectura del sistema operativo, ´este implementa una capa de abstracci´on de hardware (o HAL por sus siglas en ingl´es), la cual permite contar con una especificaci´on de funciones del operativo y todos com- ponentes subyacentes, independiente de la plataforma de hardware en la que se ejecuta. Otras caracter´ısticas propias de la arquitectura son el stack de comunicaciones disponible en TinyOS y el encapsulamiento de componentes de hardware, como timers y puertos de datos, dentro de componentes a un nivel de software, lo que permite una manipulaci´on homog´enea de componen- tes sin importar si se trata de hardware o de software. Estas caracter´ısticas, las cuales se muestran en la figura 2.4, han permitido la f´acil adopci´on del sistema operativo en plataformas de hardware y nodos, lo que a su ves se ha traducido en un amplio nivel de aceptaci´on del software en la comunidad de las redes de sensores.

(35)

Figura 2.4: Arquitectura del sistema operativo TinyOS

2.4. Lenguajes de programaci´ on

Las WSN, como el resto de plataformas de sistemas de informaci´on exis- tentes hoy en d´ıa, requieren de, adem´as de una arquitectura de hardware y de un sistema operativo, de un ambiente de desarrollo de aplicaciones que provea de un m´etodo r´apido y eficiente para el dise˜no, desarrollo e implementaci´on de aplicaciones de usuario. Por ello los lenguajes de programaci´on, junto con sus compiladores para la plataforma, son uno de los sustratos m´as importantes de las plataformas de redes de sensores hoy en d´ıa.

Adem´as de los lenguajes de prop´osito general, como C, C++, Java y Pas- cal, dentro del ambiente de WSN se destacan por su aceptaci´on los siguientes:

c@t, DCL, galsC, nesC, SNACK. En el caso particular de NesC, ´este es un lenguaje que tambi´en ha sido usando para el desarrollo del sistema operativo TinyOS, lo que ofrece varias ventajas tal como se abordar´a m´as adelante.

(36)

2.4.1. El lenguaje NesC

NesC es un lenguaje de programaci´on que se puede definir como un dialec- to derivado de C++. Este lenguaje hereda la mayor´ıa de las caracter´ısticas de su predecesor, tales como el soporte para la programaci´on orientada a objetos (POO), los tipos de datos primitivos, las estructuras de control, etc. [24]. Sin embargo un distintivo muy importante para NesC es la organizaci´on de las aplicaciones desarrolladas en ´el, la cual se adapta al concepto de componente como unidad de software definido para el sistema operativo TinyOS.

Entre las caracter´ısticas m´as importantes de este lenguaje es que est´a orien- tado para trabajar con sistemas embebidos incorporados en red, al mismo tiempo que permite el desarrollo de aplicaciones con un uso muy reducido memoria y energ´ıa.

NesC proporciona un modelo de programaci´on que incorpora eventos y tareas, un modelo de concurrencia y componentes orientados al desarrollo de aplicaciones bajo una arquitectura basada en componentes, lo que es funda- mental en el uso de sistemas embebidos.

El modelo de programaci´on de NesC permite integrar la actividad en el medio ambiente con concurrencia y comunicaci´on entre nodos. Una carac- ter´ıstica importante es el dise˜no global del sistema, ya que las aplicaciones est´an totalmente ligadas al hardware y cada uno provee una solicitud a la vez.

Este m´etodo produce tres importantes propiedades: en primer lugar todos los recursos son conocidos est´aticamente, en segundo lugar las aplicaciones se construyen a partir de un conjunto de componentes reutilizables del siste- ma junto con aplicaciones espec´ıficas de c´odigo [58]. En tercer lugar el limite hardware/ software var´ıa dependiendo de la aplicaci´on y de la plataforma, lo que es importante para el dise˜no flexible de componentes.

Una aplicaci´on escrita en este lenguaje refleja una separaci´on entre la construcci´on y la composici´on de la misma, ya que involucra 2 clases de archivos: m´odulos y configuraciones, de tal forma que desde la codificaci´on se refleja la arquitectura de un componente como se describi´o en la secci´on anterior.

2.5. Tendencias y aplicaciones en las WSN

En lo que se refiere al campo de aplicaci´on de las WSN, ´estas en un princi- pio estuvieron orientadas b´asicamente a implantar controles de monitoreo de

(37)

ecosistemas y otros sistemas similares. Sin embargo actualmente sus aplica- ciones se han ido extendiendo a otras ´areas como el monitoreo de movimiento, vigilancia para control de seguridad y algunas otras donde se incluye cierto procesamiento de las se˜nales, por ejemplo: el monitoreo de construcciones y el control inteligente de instalaciones para el ahorro de energ´ıa [11, 67]. Lo anterior ha ido marcando varias tendencias en el dise˜no y desarrollo de estas redes.

Como ya se ha mencionado antes, las primeras aplicaciones existentes para WSN tuvieron pocos o ning´un requerimiento de dise˜no en cuanto a la seguridad de la informaci´on y de la WSN se refiere, por lo que es natural que tanto las especificaciones de hardware, como los sistemas operativos, los lenguajes de programaci´on y en suma, las aplicaciones no integraran ning´un mecanismo para proteger la informaci´on de la red y la infraestructura de la misma. A todas las aplicaciones que encajan en esta descripci´on se les puede clasificar como aplicaciones sin servicios de seguridad, obviamente bajo un enfoque de seguridad de la informaci´on.

Conforme se fueron vislumbrando m´as ´areas de oportunidad para las re- des de sensores inal´ambricas, otros requerimientos de dise˜no referentes a la seguridad de los datos colectados y procesados por la red y de la misa red fueron observados.

A partir de esta observaci´on varias estrategas se han venido desarrollado para dar respuesta a las necesidades planteadas, entre estos se destacan los siguientes:

Dise˜no de hardware El hardware que se usa en WSN ha venido mo- dific´andose poco a poco para proveer y soportar mecanismos de seguridad, por ejemplo las unidades de radio utilizadas en los sensores m´as recientes incluyen chips Bluetooth [27] y ZigBee [60], ´este ´ultimo tiene la posibilidad de cifrar el tr´afico mediante el algoritmo AES del NIST [16], con lo que se mejora considerablemente la componente de confidencialidad en las comuni- caciones en las redes de sensores. Por otro lado tambi´en se han incorporado en las nuevas plataformas procesadores de 16 y 32 bits que hacen un manejo muy eficiente de la energ´ıa y facilitan la ejecuci´on de algunos algoritmos y protocolos criptogr´aficos de forma eficiente.

Inclusi´on de mecanismos criptogr´aficos Aunque no todos los meca- nismos criptogr´aficos existentes hoy en d´ıa son adecuados para su uso en

(38)

ambientes de WSN, el simple hecho de considerar c´odigos de verificaci´on de integridad o cifrado sim´etrico permiten mejorar de forma significativa el nivel de seguridad en las aplicaciones de WSN. Su uso ha dado pie a la b´usqueda de m´as alternativas para estos ambientes limitados.

Dise˜no de mecanismos y protocolos criptogr´aficos eficientes en WSN Como parte de dicha b´usqueda de alternativas, se han desarrollado trabajos encaminados al dise˜no e implementaci´on de mecanismos criptogr´aficos que puedan ejecutarse de forma eficiente dentro de los ambientes de WSN. Esta misma b´usqueda tambi´en ha involucrado el desarrollo de protocolos crip- togr´aficos, los cuales permiten resolver problemas espec´ıficos de la seguridad en las WSN como son la confidencialidad, autenticidad, administraci´on de llaves criptogr´aficas, entre otros.

Dise˜no de servicios de red seguros Adicionalmente a lo que respec- ta a la inclusi´on de mecanismos criptogr´aficos, tambi´en se ha venido dando el desarrollo de servicios de conectividad seguros, tales como ruteo o enca- minamiento, suscripci´on a la red, descubrimiento de vecindarios, radios con tecnolog´ıa de espectro disperso, entre otros.

Dise˜no de hardware antitrampeo Ante la posibilidad de operar nodos de una WSN en ambientes hostiles tambi´en se ha prestado atenci´on al dise˜no de t´ecnicas de ensamble y fabricaci´on de dichos nodos, de forma tal que la extracci´on de informaci´on cr´ıtica, como ser´ıa el caso de llaves criptogr´aficas, se hiciera imposible en t´erminos pr´acticos. De igual forma este tipo de t´ecni- cas contemplan prevenir la posibilidad de la manipulaci´on de un nodo sensor por parte de un atacante.

Con base en los adelantos en materia de seguridad de la informaci´on aplicada en las redes de sensores, se ha visto un aumento considerable de aplicaciones que est´an ligadas a tareas cr´ıticas. Dicho aumento se ha visto en la proporci´on que las propias WSN han ido satisfaciendo los requerimientos de seguridad propios de cada aplicaci´on. As´ı por ejemplo, por un lado recientemente hay muchas aplicaciones encaminadas al monitoreo y cuidado de pacientes, mien- tras que por otro tambi´en ha aumentado el n´umero de aplicaciones que tienen que ver con la vigilancia de espacios f´ısicos y control de procesos industriales.

(39)

Cap´ıtulo 3

Dise˜ no del protocolo de autenticaci´ on

En este cap´ıtulo se describe el dise˜no de un protocolo de autenticaci´on para redes de sensores, el cual permite establecer la autenticidad entre nodos, as´ı como de los mensajes recibidos. La descripci´on del protocolo parte de una introducci´on a los principales mecanismos criptogr´aficos usados para garantizar autenticidad, comenzando por los fundamentos matem´aticos que sirven como pilar para la operaci´on de ´estos. Posteriormente se describe como la criptograf´ıa basada en identidad puede fungir como alternativa para el uso de criptograf´ıa de clave p´ublica en ambientes de redes de sensores, tal como el protocolo en cuesti´on.

Finalmente, se hace una descripci´on del protocolo de autenticaci´on di- se˜nado, la cual incluye una revisi´on detallada de las etapas del mismo, as´ı co- mo de los mecanismos criptogr´aficos involucrados.

3.1. Estructuras algebraicas para la cripto- graf´ıa

En este secci´on de presenta una introducci´on a las estructuras algebraicas abstractas, tales como grupos, anillos y campos finitos, cuyo uso es una cons- tante dentro de la criptograf´ıa junto con la teor´ıa de n´umeros. A continuaci´on se hace un recuento de las principales estructuras del ´algebra abstracta, y de sus propiedades de inter´es para el funcionamiento de mecanismos criptogr´afi- cos.

(40)

3.1.1. Grupos finitos

Un grupo es una estructura algebraica construida sobre un conjunto de elementos S, entre los cuales es posible definir una operaci´on binaria •. La notaci´on usual para denotar un grupo es: < S, • >, donde S representa al conjunto de elementos del grupo y • representa la operaci´on bajo la que se construye el mismo [56].

En un grupo, la operaci´on binaria deber´a satisfacer un conjunto de pro- piedades para todos los elementos del mismo. As´ı por ejemplo en grupo G =< S, • > debe satisfacer lo siguiente:

1. La operaci´on • es asociativa, lo cual conlleva el cumplimiento de la siguiente condici´on: a(b • c) = (a • b) • c, ∀a, b, c ∈ G

2. Dentro del grupo G existe un elemento identidad e, el cual cumple con lo siguiente: a • e = e • a = a, ∀a ∈ G

3. Para cada elemento del grupo G, existe un elemento inverso, denotado como a−1 o ¯a, tal que se cumple la condici´on: a • a−1 = e, ∀a ∈ G.

4. Adem´as, la operaci´on • puede ser, o no, conmutativa, lo que conllevar´ıa satisfacer la condici´on: a • b = b • a, ∀a, b ∈ G, en cuyo caso se considera al grupo como un grupo conmutativo o abeliano.

Como se ha descrito anteriormente, la definici´on de un grupo parte de un conjunto de elementos, el cual puede tener una cardinalidad finita o infinita;

de ah´ı se desprende que un grupo puede ser considerado como finito o infinito seg´un el conjunto sobre el cual se construya.

Por ejemplo, se puede tomar el conjunto de los n´umeros reales para cons- truir sobre ´el un grupo G1, el cual ser´ıa de naturaleza infinita y se podr´ıa representar de por G1 =< R, • >.

Una vez seleccionado el conjunto, es posible seleccionar una operaci´on bi- naria que se pueda desarrollar sobre elementos de dicho conjunto. Por ejem- plo, en el caso de los n´umeros reales, la operaci´on • podr´ıa ser la adici´on o la multiplicaci´on convencional. Dependiendo de la operaci´on utilizada para la definici´on del grupo, la cual normalmente es una de las dos anteriores, se le denomina al grupo como grupo aditivo o grupo multiplicativo, seg´un corresponda.

Extendiendo el ejemplo anterior, es posible construir dos grupos G1 y G2 sobre los reales, uno aditivo y otro multiplicativo, los cuales quedar´ıan

Referencias

Documento similar