S3LAB

Actualmente, el laboratorio S3Lab de Deusto está trabajando en un middleware que implementará el modelo de confianza anteriormente expuesto y proporcionará más seguridad a las redes de sensores y por lo tanto contribuirá a la progresión de la Internet de las cosas.

En las siguientes líneas, intentaremos explicar en qué consiste el middleware.

Como primer paso, los dispositivos se comunican con el middleware, con la primera capa exactamente.

En ella, los dispositivos se identifican y comunican su capacidad de procesamiento, ya que algunas podrán cifrar los mensajes y otros no.

Una vez identificados, estos son registrados y solicitan qué servicios van a utilizar y ofrecer.

Posteriormente, se les establece un nivel de confianza. A partir de este momento, pueden empezar a comunicarse.

Teniendo en cuenta la capacidad de procesamiento que tienen los dispositivos (receptor y emisor), la información se irá cifrando o descifrando adecuándose al receptor (la información siempre se cifra en el mayor grado posible) e irá pasando de un extremo del middleware al otro.

Dependiendo de las capacidades, podremos encontrar comunicaciones SSL, OTP (se suele utilizar como checksum también) o incluso en texto plano.

Esta transformación de cifrado se da en la segunda capa.

Como  comentábamos, la información también podría ir en texto plano, pero el middleware asegura la seguridad con el nivel de confianza implantado en la tercera capa.

s3lab

Modelo de Confianza III

Fase 4: Agregación de datos

En esta fase, los datos de cada nodo, se agregan conjuntamente por rejillas. Para ello, se escoge un nodo por rejilla como nodo acumulador.

Este nodo recoge la información de cada nodo la procesa y genera un resultado. El proceso se divide en las siguientes fases:

Selección del acumulador: se escoge al nodo que mayor nivel de confianza tenga en la rejilla entre todos (por votación).

Este “titulo” va cambiando de propiedad periódicamente, ya que como se trata de un proceso continuo, los valores van cambiando con el paso del tiempo.

El cometido del acumulador, es recoger toda la información, computarla y enviarle el resultado al nodo sumidero, por lo que cuando es elegido como nodo acumulador, tiene que identificarse ante el nodo sumidero:

4.1

Acuerdo de confianza: el nodo acumulador solicita a los nodos integrantes de su rejilla que se identifiquen.

Después solicita que envíen los valores, propios y ajenos, de confianza computados anteriormente. Con estos valores, puede computar nuevos valores acumulativos de confianza con los que evaluar la credibilidad de cada nodo. Para hallar estos valores agregados, se usa la siguiente ecuación:

4.2

Donde k es el número de nodos en la rejilla, y T el valor de confianza enviado por j respecto a i.

Agregación de datos: se agrega toda la información y se excluye toda aquella sospechosa o fraudulenta que provenga de los nodos que tienen un nivel de confianza por debajo de la media de los demás nodos.

Mediante esta ecuación, se logra la información agregada:

4.3

Donde m es el número de nodos en la rejilla incluyendo al nodo acumulador.

Este cómputo, solo se realiza cuando más de la mitad de los sensores han captado un evento simultáneamente. De esta manera, se evitan comunicaciones redundantes con el nodo sumidero.

Transmisión de datos: una vez computados todos los datos recibidos de los nodos, el nodo acumulador le envía al nodo sumidero los resultados junto con su identificación.4.3

Modelo de Confianza II

Fase 2: Verificación de la localización

En esta fase, cada sensor, verifica la localización de sus otros nodos vecinos. Para ello, se utiliza el protocolo Echo propuesto por Sastry.

El sensor probador p, envía un mensaje HELLO al sensor verificador v, indicándole su posición l y el tiempo de procesamiento.

Si v puede verificar la petición, le envía un nonce a p y p debe devolverle el nonce a v mediante ultrasonido. v calcula el tiempo que se ha necesitado para la comunicación, y si no ha sido mayor al tiempo de procesamiento, v acepta la petición.

Sin embargo, con el protocolo Echo, solamente comprobamos si los nodos están realmente en la posición que les corresponde, en el área de monitoreo.

Es decir, con ello solo se puede comprobar la legitimidad del vecino. Más de tres nodos, pueden afirmar que el probador está realmente localizado donde dice estar.

En nuestro modelo, al haber utilizado numerosos dispositivos por área, podemos confirmar las localizaciones de cada nodo con altas probabilidades.

El propósito de la verificación de la localización, es evitar diferentes ataques que hacen creer a un nodo que el atacante es un vecino o que está en determinada posición como son los ataques: sinkhole, wormhole o Sybil .

Estos ataques, utilizan información falsa sobre la localización para invalidar la red, por lo que esta fase, sirve de protección contra estos ataques.

Fase 3: Evaluación de la confianza

En esta fase, cada sensor evalúa la credibilidad o confianza de los otros nodos de manera acumulativa. (Solo se evalúan los nodos vecinos, no todos los nodos del sistema).

Cada sensor contiene una matriz de evaluación de confianza con k filas, correspondientes a sus k vecinos. Cada fila está compuesta de factores que determinan el nivel de confianza.

grafiko2

  • Identificación: contiene información de identificación. Está compuesto de la posición del nodo y la rejilla a la que pertenece.

grafiko3

  • Distancia: contiene la distancia entre los dos nodos, siendo x e y las coordenadas del nodo i

grafiko4

  • Comunicación sobre lo detectado: cuando un evento sucede, los nodos vecinos lo deben comunicar entre sí.

Si se comunica, el valor de este factor aumenta, mientras que si no lo comunican, decrece.

Este factor sirve para medir la normalidad y egoísmo de cada nodo. Si un nodo no comunica por ahorrar batería o por algún otro motivo, su nivel de confianza decrecerá.

grafiko5

  • Resultado de lo detectado: en este factor se almacenan los eventos detectados y el tiempo en el que ocurrieron. Sirve para cotejar la información y ver la consistencia de la misma y a su vez excluir nodos ilegales o comprometidos.

  • Consistencia: indica el nivel de consistencia de cada nodo. Basado en este factor podemos identificar nodos maliciosos y filtrar su información en la red.

grafiko6

  • Batería: muestra el nivel de batería o vida que le queda al nodo sensor. Cuando un nodo tiene un nivel alto de confianza, tiende a realizar más cálculos y procesos, por lo que mediante este factor, podemos delegar el computo y realización de estos a otros nodos.

grafiko7

  • Valor de confianza: representa el total del nivel de confianza, como resultado de los otros factores. Este valor es dinámico y por lo tanto, varía con el paso del tiempo.

grafiko8

Con los datos recopilados, se procede a realizar el análisis de consistencia y la cuantificación de la confianza.

  • Comprobación de inconsistencia: un nodo comprueba si la información transmitida está dentro de un rango de tolerancia (y por lo tanto es consistente) y almacena el resultado en el factor de consistencia C.

Para representar los márgenes de tolerancia, representamos dos casos:

grafiko9

En el primer caso, existe una diferencia de distancia entre los nodos y el evento ( ), puesto que el nodo i se encuentra más cerca que el nodo j. Esto puede llevar a ligeras variaciones en la detección del evento, por lo que se establece un margen.

Sin embargo, en el segundo caso, los dos nodos se encuentran a la misma distancia del evento, por lo que la detección e interpretación del evento debe ser idéntica. Por ello, el margen de tolerancia en la desviación, es 0.

La ecuación para determinar el margen de diferencia, es el siguiente:

 grafiko10

Donde prior devuelve el menor de los valores de la captación de un mismo evento por parte de dos nodos.

Cuando un dispositivo capta un evento, lo difunde, indicando cuando se ha producido y los datos correspondientes al evento, de esta manera, los otros nodos pueden corroborarlo con sus propios resultados y pueden comprobar si todo es correcto (por ejemplo si el tiempo es correcto) o si la información recibida es inconsistente y por lo tanto el nodo maliciosos.

Para los chequeos de la consistencia, utilizamos la siguiente fórmula:

grafiko11

Exponemos un ejemplo para ver el funcionamiento del mecanismo una vez comprobada la consistencia.

Dos nodos, procesan un mismo evento y lo envían simultáneamente. Cada nodo, procesa la información recibida de su nodo vecino. Siendo idéntica, puede afirmar que el otro nodo es de confianza, y por lo tanto, aumenta en 1 el valor del factor éxito de captación correspondiente en al otro nodo.

Por el contrario, si se fallase en la captación del evento, el factor de fracaso de captación correspondiente al otro nodo, aumentaría en 1.

  • Cuantificación de la confianza: cada valor discreto se transforma en un valor continuo comprendido entre -1 y +1, siendo -1 completa desconfianza y +1 plena confianza.

La cuantificación de confianza para cada factor es la siguiente:

grafiko12 grafiko13

  • Computación de la confianza: este paso consiste en la asignación de pesos a cada factor calculado. W representa el peso asignado a cada factor dentro de un rango de valores que van desde el -1 al +1, significando -1 irrelevante, y +1 muy relevante.

grafiko13

En caso de que B=-1 (batería agotada) se le asigna un valor de -1 a T y ese nodo queda excluido de la red, puesto que se le ha agotado la vida y no puede seguir operando.

Como cada nodo mantiene un historial de los acontecimientos y valores de confianza, mediante valores acumulativos, los nodos malintencionados e inconsistentes pueden ser continuamente detectados y clasificados en este paso.

Modelo de Confianza I

En esta entrada profundizaremos en el modelo de confianza o trust model.

Se comentarán los puntos de partida y se describirán las primeras fases.

Modelo de amenaza

Las redes inalámbricas de sensores, suele estar en zonas abiertas (open área) y por lo tanto tienen que enfrentarse al riesgo de ataques.

Debido a que pueden comunicarse con anónimos adversarios, información maliciosa puede ser aceptada en su sistema a través de ataques como la captura de nodos o la captura de las claves privadas (usadas en la comunicación en la red y capturadas por atacantes activos que se dedican a la escucha).

 

Objetivos

Debe focalizarse en crear una red fiable que trabaje con normalidad a pesar de que un nodo se vea comprometido.

Sin ningún mecanismo de evaluación, no podemos garantizar que la red de sensores vaya a trabajar correctamente a pesar de que el sistema este empleando un sistema de criptografía de claves.

Para el objetivo de la resistencia o fiabilidad de la red, el modelo propuesto, se centra en la evaluación de credibilidad de cada nodo-sensor y en filtrar toda aquella información inconsistente y fraudulenta de los nodos maliciosos o comprometidos.

 

Suposiciones

Existen varias suposiciones dentro del modelo:

  1. Cada sensor conoce su posición usando un sistema detección de la localización como el GPS (Global Position System).

  2. El tiempo está sincronizado en todos los sensores de la red.

  3. Los sensores son colocados densamente para poder capturar el mismo evento, redundantemente, por más de un sensor.

  4. Los adversarios intentan introducir información maliciosa para crear confusión en el sistema o para hacer que vaya mal.

Diseño: Trust Evaluation Model

El protocolo del modelo se compone de 4 fases:

  • La primera consiste en dividir el área de monitoreo en rejillas lógicas con una identificación única para cada rejilla.

  • En la segunda, cada nodo identifica a sus vecinos de rejilla mediante el protocolo ECHO.

  • En la tercera fase, cada nodo evalúa la fiabilidad de sus nodos vecinos comparando la información procedente de los otros nodos con la suya propia. La información inconsistente, puede ser detectada en esta fase.

  • En la cuarta, los nodos especiales llamados acumuladores (agreggator), reúnen toda la información correspondiente a los nodos de su correspondiente rejilla, la computan y se la envían al nodo sumidero (sink node).

       La información maliciosa puede ser excluida en este fase.

 

Fase 1: Definición de rejillas.

Se deciden cuales van a ser las áreas de monitoreo; donde se van a producir los eventos, y por lo tanto, donde se deben colocar los sensores.

 

Después dividimos las áreas de monitoreo en rejillas rectangulares lógicas, proporcionales al número de dispositivos sensores que vayamos a colocar.

Definimos el radio r, que acotará el rango que monitoree cada dispositivo sensor. Dependiendo del número de sensores que tengamos, r variará.

Para ilustrarlo ponemos 2 ejemplos en el que se puede comprobar el uso de un único sensor para cubrir toda la zona, y otro en el que existen varios nodos para monitorear la zona especificada.

grafiko1

 

En el primer caso, la rejilla de monitoreo de cada sensor, tendrá que tener el tamaño máximo siendo su área resultante:

En el segundo caso por el contrario, al usarse más de un dispositivo para monitorear toda la zona, el rango a cubrir por cada dispositivo, es menor. El área mínima que tendría que tener sería la siguiente:

Para seleccionar cualquiera de las posibilidades existentes entre estos extremos (los extremos también son seleccionables), hay que considerar los criterios de eficacia y los criterios económicos y seleccionar el que mejor se adecue a nosotros.

Para la explicación del modelo, escogeremos el segundo extremo, donde hay un número mayor de dispositivos, y por lo tanto, mayor información redundante para cotejar la credibilidad de los nodos.

Después de haber dividido las áreas en rejillas lógicas, se les proporciona un identificador único a cada rejilla, que será útil a la hora de identificar a cada sensor.

 

Introducción Moldelo de Confianza

Las redes inalámbricas de sensores, ofrecen soluciones potencialmente beneficiosas para diversas aplicaciones. La cualidad más distintiva de estos sistemas, es que un nodo del sistema ayuda a cada uno de los otros nodos a la hora de procesar datos y en el control de los paquetes enviados de un nodo a otro.

Muchas veces el sistema es referido como sistema sin infraestructura, sistema auto-organizado y red espontanea.

Debido a que estas redes suponen un reto único, las técnicas tradicionales de seguridad, no pueden ser aplicadas sobre los nodos de la red.

Por una parte, los nodos sensores están limitados en su memoria, la duración de su batería y en sus capacidades de computación y comunicación. Esto conlleva a que las técnicas intensivas de computación como la criptografía de claves públicas, no puedan ser usadas en redes inalámbricas de sensores.

Por otra parte, estas redes, son susceptibles a variedad de ataques como por ejemplo: capturas de nodos, denegación de servicios, interceptación (eavesdropping), agujeros de gusano(wormholes) o ataques Sybil.

El objetivo de estos ataques, suele ser inutilizar la red completa o parcialmente o ponerla al servicio del atacante.

Si el atacante logra introducir su propio nodo y que el sistema lo acepte como propio, es muy difícil distinguir un nodo maliciosos de los correctos con las políticas de seguridad tradicionales.

Además, se tiene que tener en cuenta la seguridad del esquema de gestión de claves, puesto que tampoco se puede asegurar la privacidad de las claves privadas de cada nodo.

Teniendo en cuenta todo esto, son necesarios nuevos modelos de seguridad para asegurar la veracidad de cada nodo distinguiendo los inocuos de los maliciosos, reforzando los de confianza y debilitando los sospechosos.

Sin embargo, existen muy pocos estudios sobre los modelos de confianza aplicados a las redes inalámbricas de sensores.

En las siguientes entradas, presentaremos un modelo de confianza que ayuda a la red a funcionar con normalidad con un alto porcentaje de probabilidades, a pesar de que algunos nodos o datos sean comprometidos.

La idea general es incluir numerosa y redundante información percibida y convalidarla para asegurar su consistencia.

Después de esa validación, cada nodo, determina el nivel de confianza de los otros nodos-vecinos del sistema.