Pfc Sym Bian Paco

Embed Size (px)

Citation preview

Implementacin de comunicaciones seguras en la plataforma Symbian para asistencia a la conduccin ndice General

PROYECTO FIN DE CARRERA

Implementacin de comunicaciones seguras en la plataforma Symbian para asistencia a la conduccin

Autor: Francisco Jos Martn Fernndez

Tutora: Pino Caballero Gil

Co-tutor: Cndido Caballero Gil

Fecha: Junio 2011ndice General

Agradecimientos

8Prlogo

91. Preliminares

11

1.1. Red Ad-hoc11

1.2. Manet Mobile Ad-hoc Network12

1.3. Vanet Vehicular Ad-hoc Network13

1.4. VAiPho Vanet in Phone15

1.5. Symbian

16

1.6. SDK Software Development Kit17

1.6.1. C++ SDK Symbian18

1.6.2. Java SDK para Symbian19

1.6.3. Nokia Qt SDK20

1.7. Modelo Cliente Servidor21

1.7.1. Cliente22

1.7.2. Servidor23

1.8. Autenticacin23

1.9. Beacon

25

1.10. Broadcast26

1.11. Grafo

27

1.11.1 Grafo completo27

1.11.2. Grafo aleatorio28

1.11.3. Isomorfismo de Grafos28

1.11.4. Circuito hamiltoniano29

1.12. Criptografa29

1.12.1. Cifrado30

1.12.2. Descifrado31

1.12.3. Criptografa simtrica31

1.12.4. Criptografa asimtrica32

1.12.5. Firma digital33

1.13. Funcin Hash33

1.14. SQLite

352. Estado del arte

36

2.1. VANETs: Del pasado al presente36

2.1.1. Desde el principio hasta mediados de los 9037

2.1.2. De mediados de los 90 hasta la actualidad39

2.2. Propuestas actuales de solucin42

2.2.1. Autenticacin43

2.2.1.1. Envo de claves44

2.2.1.2. Anonimato45

2.2.2. Deteccin de usuarios fraudulentos46

2.2.3. Fomento de la cooperacin48

2.2.4. Implementacin y aplicacin49

2.2.4.1. Integracin de infraestructuras49

2.2.4.2. Comunicaciones seguras entre vehculos523. Opciones de implementacin55

3.1. Plataforma mvil55

3.2. Lenguaje de programacin61

3.3. Libreras

65

3.4. Navegador GPS684. VAiPho

73

4.1. Conexiones de red73

4.2. Mdulo Cliente Servidor76

4.2.1. Mdulo Cliente77

4.2.2. Mdulo Servidor80

4.3. Algoritmo de Autenticacin82

4.4. Persistencia de datos98

4.5. Mdulo de deteccin de eventos103

4.6. Agregacin de datos106

4.7. Mdulo GPS111

4.8. Programacin del Bluetooth116

4.9. Interfaces de VAiPho118

4.9.1. VAiPho WatchDog118

4.9.2. VAiPho User Interface119

4.9.3. VAiPho Automatic120Conclusiones y trabajos futuros123Bibliografa

125Anexo I

133ndice de Figuras

Figura 1.1. Representacin de una MANET12Figura 1.2. Simulacin grfica de una VANET14Figura 1.3. Presentacin de VAiPho en Eurocast 201115Figura 1.4. Compaas fundadoras de Symbian17Figura 1.5. Uno de los libros que explican el lenguaje nativo de Symbian19Figura 1.6. Diferentes bindings de Qt para diversos lenguajes de programacin20Figura 1.7. Modelo cliente servidor22Figura 1.8. Protocolo AAA24Figura 1.9. Esquema de autenticacin en IEEE 802.1125Figura 1.10. Envo en modo broadcast26Figura 1.11. Representacin grfica de un grafo27Figura 1.12. Representacin grfica de un grafo completo28Figura 1.13. Ejemplo de isomorfismo de grafos29Figura 1.14. Representacin grfica de un circuito hamiltoniano29Figura 1.15. Esquema grfico de un cifrado30Figura 1.16. Cifrado / Descifrado simtrico31Figura 1.17. Cifrado / Descifrado asimtrico32Figura 1.18. Esquema de firma digital33Figura 1.19. Funcin hash34Figura 2.1. Cronologa de proyectos sobre VANET42Figura 2.2. Uso de una VANET para deteccin de atascos

43Figura 2.3. Protocolo de autenticacin propuesto por Patrick Tsang y Sean Smith46Figura 2.4. Conduccin de forma cooperativa en las VANETs 49Figura 2.5. Mapa de la POC en Detroit (Michigan) 50Figura 2.6. Aplicaciones con xito en los escenarios propuestos53Figura 3.1. Cuota de mercado de las ventas de SmarthPhone de alta gama en 201056Figura 3.2. Usos de los distintos lenguajes de programacin en 2010 y 201156Figura 3.3. Estimacin del uso del Market de cada plataforma hasta 201558Figura 3.4. Grfica comparativa del mercado de las distintas plataformas mviles59Figura 3.5. Grfico de la dificultad de programacin en cada plataforma mvil64Figura 3.6. Aspecto grfico de MoNav70Figura 4.1. Todos los tipos de mensajes utilizados en VAiPho80Figura 4.2. Esquema algoritmo autenticacin utilizado en VAiPho83Figura 4.3. Ejemplo sencillo de grafo usado87Figura 4.4. Parmetros usados en VAiPho que ofrecen los satlites GPS.113Figura 4.5. Interfaz grfica de VAiPho WatchDog en estado ON y estado OFF119Figura 4.6. Parmetros configurables de VAiPho120Figura 4.7. Interfaz grfica de VAiPho User Interface120Figura 4.8. Interfaz grfica de VAiPho Automatic121

ndice de TablasTabla 4.1. Tiempo en segundos que se tarda en conectar a la red ad-hoc74Tabla 4.2. Tiempo que se tarda en autenticar a dos usuarios97Tabla 4.3. Horas tiles de batera utilizando las interfaces de VAiPho121Tabla 4.4. Incremento del gasto de batera utilizando las interfaces de VAiPho 121Tabla 4.5. Comparativa de la duracin de la batera con las interfaces de VAiPho122

Agradecimientos

La vida es una sucesin de etapas que poco a poco se van quemando. Cada una de estas etapas se puede agrupar segn los objetivos, que queremos satisfacer. Tan pronto como hemos cumplido un objetivo, surge otro llenando el hueco dejado por el anterior. Algunas etapas estn predestinadas a que sucedan. Un da tuve un sueo y desde ese instante hice todo lo posible para que se hiciera realidad. Todo esto viene a colacin de que llegados a este punto, puedo considerar que he cumplido un objetivo que conlleva a la finalizacin de una etapa en mi vida que aqul da so. Por ello no me quiero olvidar de todas las personas que han colaborado en este fin.

En primer lugar, quisiera dar las gracias a toda mi familia (mi madre, mi padre, mis hermanos, sobrinos, gatos, loro, perro, etc.), por darme todo lo necesario para poder cumplir este objetivo. Sin ellos este proyecto no parecera el mismo.

A Dani, por acompaarme en toda esta fase y ayudarme en todo lo que ha podido. Sin su compaa, esta carrera y este proyecto me hubiesen resultado menos amenos.

Naturalmente a mi tutora, la Doctora Pino Caballero Gil. Sin ella, la motivacin puesta en este proyecto no hubiese sido la misma. Su ayuda ha sido vital para poder hacer este sueo una realidad y me ha abierto un mundo que desconoca.

Quisiera dar mi ms sincero agradecimiento a mis co-tutores, Cndido Caballero Gil y Jezabel Molina Gil, por haberme aguantado todo lo inimaginable y ms. Sin ellos no hubiera terminado el proyecto en la fecha que lo he hecho, ni hubiera estado tan bien elaborado. Espero que me perdonen por mis tediosos emails, que tan bien han sabido responder, siempre con la mxima celeridad.

Por ltimo no me quiero olvidar de mis amigos. Al grupito del sbado que me ha perdonado faltar tanto a nuestras reuniones semanales, por tener que elaborar el presente documento. Al resto de mis amigos y a aquellos que han colaborado y permitido que todo esto sea palpable.Gracias.

Prlogo

La seguridad vial se ha convertido en una de las preocupaciones ms importantes de los ltimos tiempos a nivel mundial. Evitar los accidentes acaecidos en las carreteras es uno de los objetivos que tienen en comn todos los pases. Si a la fundamental cuestin de los accidentes se le suman los atascos, la conclusin es que las carreteras conllevan una compleja problemtica que requiere una solucin urgente tanto por las consecuencias en las prdidas de vidas, como por su negativo efecto en la economa y en el medioambiente.

Una medida que ha surgido en la bibliografa cientfica con mucho auge en los ltimos aos, es la propuesta de implantacin de redes vehiculares o VANETs (Vehicular Ad-hoc NETworks), en las que los vehculos se comunican entre s para prevenir y/o evitar circunstancias adversas en las carreteras y lograr una gestin ms eficiente del trfico. Sin embargo, la implantacin real de estas redes tal como ha sido propuesta por la mayor parte de los investigadores, conllevara un esfuerzo econmico muy elevado por parte de los gobiernos y de los usuarios, lo que ha supuesto un grave impedimento hasta ahora.

Este proyecto aporta la implementacin de una herramienta para la asistencia a la conduccin, llamada VAiPho (VANET in Phones), que permite crear la primera red vehicular real utilizando nicamente telfonos mviles inteligentes, para hacer factible el despliegue actual de las VANETs. Dicha herramienta es el producto resultado de la patente solicitada por la ULL en 2010 [15].

Concretamente, se propone aqu el desarrollo de VAiPho para los telfonos mviles con sistema operativo Symbian, proporcionando no slo la deteccin automtica de los eventos que ocurren en las carreteras en tiempo real, sino tambin las comunicaciones seguras entre vehculos para difundir avisos sobre dichos eventos. En cuanto a las comunicaciones seguras, este proyecto incluye la implementacin de un esquema de autenticacin fuerte basado en la confianza distribuida entre los usuarios, as como de varios algoritmos criptogrficos para comprobar la veracidad de las identidades de los nodos. Por otra parte, la deteccin de eventos se realiza de manera ptima y eficiente para saber con certeza dnde y cundo se da una determinada condicin de trfico. Se incluye para ello un esquema de agregacin de datos que permite corroborar con otros usuarios que un evento es real, y as evitar los mensajes errneos o malintencionados.

Este proyecto ha sido expuesto en dos eventos nacionales [16] [17], y aceptado en un congreso internacional [14]. Adems, VAiPho ha tenido una repercusin meditica importante en los ltimos meses [51].Captulo 1

1. Preliminares1.1. Red ad-hoc

Una red ad-hoc es una red inalmbrica descentralizada donde cada nodo est preparado para reenviar datos a los dems y la decisin sobre qu nodos reenvan los datos se toma de forma dinmica en funcin de la conectividad de la red. Esto contrasta con las redes inalmbricas tradicionales en las que los router llevan a cabo esa funcin y en las que un nodo especial, llamado punto de acceso, gestiona las comunicaciones con el resto de nodos. Cada nodo hace de router, permitiendo que la red siempre est en funcionamiento aunque se desconecte de ella el nodo que la cre, debido a que los dems elementos tienen toda la informacin necesaria para permitir que siga activa.

La naturaleza descentralizada de las redes ad-hoc hace de ellas las ms adecuadas en aquellas situaciones en las que no puede confiarse en un nodo central, y mejora su escalabilidad comparada con las redes inalmbricas tradicionales tanto desde el punto de vista terico como prctico. Tambin son tiles en situaciones de emergencia, como desastres naturales o conflictos blicos, al requerir muy poca configuracin y permitir un despliegue rpido. El protocolo de encaminamiento dinmico permite que entren en funcionamiento en un tiempo muy reducido.

Uno de los problemas para su aplicacin es el llamado cuello de botella, que consiste en que si uno de los nodos falla otro toma su lugar, luego en el caso de que existan varios puntos cados, el entorno se ralentiza. En enero de 2011 han creado un algoritmo para intentar subsanar este problema y as evitar que el trfico no se interrumpa. Dicho algoritmo se basa en que los nodos se conecten a otros a los que no se hayan conectado recientemente. Alternando entre una seleccin determinista y no determinista de los nodos a los que se envan los datos se puede resolver el problema del cuello de botella.1.2. MANET Mobile Ad-hoc NETwork

Las redes mviles ad-hoc (denominadas tambin MANETs como acrnimo de Mobile Ad-hoc NETworks) son un tipo de redes ad-hoc inalmbricas cuyos dispositivos poseen propiedades de auto-configuracin, adems de poseer cierta movilidad, es decir, se encuentran montados en plataformas mviles (ver figura 1.1).

Figura 1.1. Representacin de una MANET

Cada dispositivo en una MANET posee libertad para desplazarse independientemente en cualquier direccin, y eso permite que cambien dinmicamente las condiciones de enlace entre los dispositivos o nodos. Esto significa que los enlaces entre los nodos pueden cambiar con el tiempo, que nuevos nodos pueden unirse a la red y que los nodos de la red pueden abandonarla en cualquier momento. El alcance de una MANET es mayor que el radio de una nica antena inalmbrica. Para ello es necesario enrutar el trfico a travs de saltos entre nodos intermedios de forma que dos nodos cualesquiera que quieran comunicarse puedan hacerlo. En las MANETs no existe ningn enrutador en una posicin fija, como ocurre por ejemplo en las redes de telefona mvil, que consisten en un cable central al cual se conecta una estacin base, de forma que los nodos mviles solo pueden comunicarse mediante un salto inalmbrico a la estacin base, y mltiples saltos inalmbricos no son posibles. Uno de los principales retos a la hora de construir una MANET es lograr que sea posible equipar cada dispositivo para mantener continuamente la informacin necesaria para enrutar los mensajes. Este tipo de redes puede operar de forma autnoma o bien estar conectada a Internet.

La principal caracterstica de las MANETs es que todos los dispositivos que forman parte de la red, adems de funcionar como terminales finales, realizan tambin funciones de retransmisin de paquetes tpicamente asociadas a routers en redes clsicas. Esta cualidad permite enrutar paquetes a destinos sin cobertura directa, a travs de otros nodos intermedios que se encuentren en la red. De este modo es posible incrementar la movilidad y el tamao de la red, creando de una manera rpida y eficaz una red temporal en lugares carentes de una infraestructura de red.1.3. VANET Vehicular Ad-hoc NETwork

Las Vehicular Ad-Hoc NETworks, o su acrnimo VANETs, son una extensin de las redes ad-hoc mviles o MANETs con una tecnologa que utiliza vehculos en movimiento como nodos de la red. De esta forma se convierte a todos los coches que participan en routers o nodos que son capaces de comunicar informacin entre diversos vehculos vecinos y el sistema de trfico (ver figura 1.2).

Al ser una extensin de las MANET se parecen mucho pero tienen detalles en los que difieren. Los nodos de la VANET tienden a moverse de forma organizada y no aleatoriamente, como se presupone en las MANETs, debido a que son vehculos que siguen un trazado marcado por las carreteras. Para que los vehculos puedan formar parte de la red, deben tener hardware aadido para que gestione las comunicaciones. Por tanto este equipamiento debe ser aadido a todos los vehculos. Adems, estas redes se caracterizan por tener, en su mayora, equipamiento adicional situado en las carreteras para comunicarse con los vehculos e informarles de los eventos que ocurren, lo que implica tambin tener que adecuar las infraestructuras de las carreteras.

En una VANET los mensajes intercambiados entre los vehculos influiyen en el comportamiento de sus conductores, reduciendo su velocidad y/o escogiendo rutas alternativas en funcin de la informacin recibida acerca de la condiciones de la carretera. Posibles usuarios malintencionados podran intentar explotar esta situacin, llevando a cabo alguno de los siguientes ataques:

1. Inyeccin de informacin falsa, modificada o repetida, intentando difundir datos errneos que puedan afectar al resto de vehculos, bien en beneficio del atacante, por ejemplo al conseguir liberar una va, o simplemente por mala intencin, por ejemplo para producir un atasco.

2. Falsificacin de identidad, hacindose pasar por ejemplo por un vehculo de emergencia.3. Manipulacin de la informacin enviada, alterando datos como posicin, direccin, velocidad, etc., por ejemplo para intentar escapar de responsabilidades al haber provocado un accidente.

4. Seguimiento de conductores y/o vehculos, amenazando su privacidad y anonimato.

5. Denegacin de servicio, provocando la prdida de la conectividad de la red.

Por tanto, la seguridad de las comunicaciones es un factor imprescindible a la hora de impedir dichas amenazas y posibilitar el despliegue de las VANETs.

Se puede considerar como un reto, la creacin de una VANET sin necesidad de aadir dispositivos adicionales, ni a los vehculos ni a la carretera. Esto es lo que pretende una idea innovadora denominada VAiPho y objeto de la presente memoria.

Figura 1.2. Simulacin grfica de una VANET

1.4. VAiPho - Vanet in Phones

VAiPho, acrnimo de Vanet in Phones, es una aplicacin software para el telfono mvil, que pretende ser una herramienta para la ayuda a la conduccin. Su objetivo es hacer posible la creacin de una VANET usando slo los terminales mviles como nodos de la red, evitando as la instalacin adicional de los equipos que se necesitaran en los vehculos y en las carreteras segn la visin clsica de las VANETs. Los dispositivos a utilizar deben de tener una serie de caractersticas como son: tecnologas Bluetooth y Wifi, GPS integrado y adems de capacidad para instalar aplicaciones.

Entre las funcionalidades de VAiPho destacan la deteccin automtica de eventos en carretera como pueden ser atascos o disponibilidad de aparcamientos, as como la retransmisin de dichos eventos a otros dispositivos, mediante la interaccin entre los nodos de la red que permite mantener siempre informado al usuario de lo que pasa en la carretera.

VAiPho ha tenido gran repercusin meditica en los ltimos meses, apareciendo en innumerables medios de comunicacin tanto de la prensa escrita como de la prensa audiovisual y radiofnica. Podemos ver en la figura 1.3, una imagen aparecida en la Opinin de Tenerife el 10 de febrero de 2011 concerniente a la presentacin de VAiPho en el congreso Eurocast que tuvo lugar en Las Palmas de Gran Canaria. En la imagen vemos a una de las investigadoras y desarrolladoras de VAiPho (Jezabel Molina Gil) exponiendo ante el pblico presente esta idea tan innovadora.

Figura 1.3. Presentacin de VAiPho en Eurocast 2011

Como VAiPho es un software para mviles, es conveniente que est desarrollado en todas las plataformas mviles disponibles que contengan las caractersticas antes sealadas. Una de estas plataformas es, la de la compaa finlandesa de telefona Nokia: Symbian, que es la escogida para desarrollar el presente proyecto.1.5. Symbian

Symbian es un sistema operativo que fue producto de la alianza de varias empresas de telefona mvil, entre las que se encuentran Nokia, Sony Ericsson, Psion, Samsung, Siemens, Arima, Benq, Fujitsu, Lenovo, LG, Motorola, Mitsubishi Electric, Panasonic, Sharp, etc, ver figura 1.4. Actualmente Symbian es totalmente propiedad de Nokia, por haber comprado las acciones de los dems aliados en su momento. El objetivo inicial era crear un sistema operativo para terminales mviles que pudiera competir con otros como el de Palm, Windows Mobile de Microsoft, Android de Google Inc., iOS de Apple Inc. y Blackberry 6 RIM.

Como en todo, los sistemas operativos, con el tiempo han ido saliendo diferentes versiones (S60, S80, S90, UIQ, Symbian^3, etc.), intentando adaptarse al frentico ritmo de los avances tecnolgicos de los nuevos terminales mviles y luchar por el mercado con la competencia. Originalmente fue gestado y desarrollado para ser utilizado en dispositivos porttiles, haciendo un especial nfasis en la conservacin de memoria, y ofreciendo caractersticas de los sistemas operativos de escritorio, como multitarea, proteccin de memoria y multilectura. Toda su programacin est basada en eventos y la CPU permanece latente mientras la aplicacin no est directamente conectada a un evento. El lenguaje de programacin utilizado como base del sistema es C++. Symbian trabaja sobre un microkernel que es lo suficientemente rpido como para responder en tiempo real, ejecutando tanto las compilaciones de seal como las aplicaciones de usuario. Esta caracterstica no la tienen los sistemas operativos basados en Linux o Windows. Adems, Symbian mejora significativamente el uso de recursos, ahorrando energa de la batera. El Symbian Signed (la firma de las aplicaciones) ha sido un requerimiento de seguridad aparecido en sus ltimas versiones, con el fin de regular el contenido de los telfonos Symbian e intentar hacerlo similar al iOS de Apple.

Actualmente, gracias a libreras y diversos soportes, se puede programar para Symbian usando Simkin, Perl, Python, Java, Qt o Flash. Algunos de estos lenguajes tienen ventajas y desventajas al utilizarlos bajo Symbian ya que al ser libreras de soporte de carcter portable, hay ciertas funcionalidades especficas de cada sistema operativo que no sean compatibles. Como todo sistema operativo que se precie, Symbian tiene su lenguaje nativo que permite sacar el mximo partido a las caractersticas del terminal mvil. Este lenguaje est basado puramente en C++, pero con libreras creadas por los diseadores del sistema operativo que dan un carcter distintivo al lenguaje de programacin. Adems Symbian pone a disposicin de los desarrolladores de software distintos SDKs (Software Development Kits) o kits de desarrollo de software.

Figura 1.4. Compaas fundadoras de Symbian

1.6. SDK Software Development Kit

Un kit de desarrollo de software o SDK generalmente est formado por un conjunto de herramientas de desarrollo que permite a un programador crear aplicaciones para un sistema concreto como por ejemplo paquetes de software, frameworks, plataformas de hardware, computadoras, videoconsolas, sistemas operativos, etc. Es algo tan sencillo como una interfaz de programacin de aplicaciones o API (del ingls Application Programing Interface) creada para permitir el uso de cierto lenguaje de programacin, o tambin para incluir determinado hardware sofisticado que permita comunicarse con algn sistema embebido. Las herramientas ms comunes incluyen soporte para la deteccin de errores de programacin como un entorno de desarrollo integrado o IDE (del ingls Integrated Development Environment) y otras utilidades. Los SDKs frecuentemente incluyen tambin cdigos de ejemplo y notas tcnicas de soporte u otra documentacin de soporte para ayudar a clarificar ciertos puntos del material de referencia primario.

Symbian tiene varios SDKs en el mercado, que dependen del lenguaje de programacin bajo el que se quiera desarrollar la aplicacin. Los tres ms comunes son: C++ para Symbian, Java para Symbian o Nokia Qt.

1.6.1. C++ SDK para Symbian

El SDK conocido como C++ SDK permite desarrollar aplicaciones que se compilan en el lenguaje nativo del terminal mvil. Las aplicaciones que se crean utilizando este SDK son las ms rpidas y optimizadas. Un hndicap puede llegar a ser la dificultad del lenguaje y lo arduo que se hace elaborar una simple aplicacin bajo l. Aunque es una especificacin de C++, pudindose ejecutar cdigo en C++, para utilizar las caractersticas propias del sistema operativo en toda su plenitud hay que recurrir a las libreras del SDK, que son bastantes complejas y utilizan un argot muy peculiar que dista mucho del C++ original tanto en tipos, como en dems caractersticas del lenguaje.

Este lenguaje cuenta con numerosas publicaciones que explican los entresijos que tiene, para sacar el mximo partido a la aplicacin que el programador quiera desarrollar. Nokia ha intentado fomentar la programacin de aplicaciones bajo su plataforma apoyando todas las publicaciones acerca del mismo. En la figura 1.5 vemos la portada de una de estas publicaciones, donde explicar el desarrollo de aplicaciones en este lenguaje para el sistema operativo V9 de Symbian.

Figura 1.5. Uno de los libros que explican el lenguaje nativo de Symbian

1.6.2. Java SDK para Symbian

El SDK para Symbian conocido como Java SDKs permite desarrollar aplicaciones que son interpretadas la mquina virtual de cada plataforma, aunque el sistema no sea Symbian. Se usa principalmente para desarrollar juegos, ya que por motivos de seguridad no permite acceder a todas las opciones del sistema, siendo este aspecto un punto negativo a tener muy en cuenta en la eleccin del SDK. Concretamente usa la plataforma que Java pone al alcance de los terminales mviles. Esta plataforma se denomina Java Micro Edition (Java ME), o anteriormente Java 2 Micro Edition (J2ME), y es una especificacin de un subconjunto de la plataforma Java orientada a proveer una coleccin certificada de APIs de desarrollo de software para dispositivos con recursos restringidos. Est orientado a productos de consumo como PDAs, telfonos mviles o electrodomsticos.

Java ME se ha convertido en una buena opcin para crear juegos en telfonos mviles debido a que se pueden emular en un PC durante la fase de desarrollo y luego subirlos fcilmente al telfono. Al utilizar tecnologas Java, el desarrollo de aplicaciones o videojuegos con estas APIs resulta bastante econmico de portar a otros dispositivos.

1.6.3. Nokia Qt SDK

El SDK conocido como Nokia Qt es el ms joven, el ms desconocido y el que ms progresin ha tenido en los ltimos meses. Nokia sac la versin 1.0 de este SDK en noviembre de 2010 como un ltimo intento de que su sistema operativo Symbian no muriera. La complejidad del SDK nativo de C++ y las restricciones enormes del SDK de Java, le llevaron a sacar un nuevo SDK que pudiera unificar la potencia del lenguaje nativo de la plataforma, con la facilidad de utilizacin del lenguaje de Java. As surgi este SDK que est basado en la biblioteca Qt.

Qt es una biblioteca multiplataforma para desarrollar interfaces grficas de usuario y tambin para el desarrollo de programas sin interfaz grfica, como herramientas de la consola y servidores. Fue producido por la divisin de software Qt de Nokia, y en marzo de 2011 fue vendido a la compaa Digia. Qt utiliza el lenguaje de programacin C++ de forma nativa, al igual que hace Symbian. Adicionalmente puede ser utilizado en otros lenguajes de programacin a travs de bindings, lo que permite ms portabilidad si cabe. En la figura 1.6 podemos ver qu bindings existen actualmente.

Figura 1.6. Diferentes bindings de Qt para diversos lenguajes de programacin

El API de la biblioteca cuenta con mtodos para acceder a bases de datos mediante SQL, as como uso de XML, gestin de hilos, soporte de red, una API multiplataforma unificada para la manipulacin de archivos y manejo de ficheros, adems de estructuras de datos tradicionales. Distribuido bajo los trminos de GNU Lesser General Public License (y otras), Qt es software libre y de cdigo abierto.1.7. Modelo Cliente Servidor

Existen diferentes modelos de software que se pueden seguir al desarrollar una aplicacin hoy en da. Distintas arquitecturas tienen ventajas y desventajas, y son seleccionadas en funcin de lo que el programador est buscando con la correspondiente aplicacin, para qu la desarrolla y cul es su objetivo.

El modelo cliente servidor consiste bsicamente en una arquitectura en la que un cliente realiza peticiones a otro programa (el servidor) que le da respuesta (ver figura 1.7). Inicialmente est diseada para que el programa cliente est ejecutndose en un ordenador y el programa servidor en otro ordenador distinto, para aprovechar el sistema operativo multiusuario distribuido a travs de una red. Esto no quiere decir que el modelo se pueda adaptar totalmente a nuestras necesidades, ya que son por conceptos a nivel de software y no de hardware por lo que tenemos ms versatilidad. Puede haber aplicaciones que sigan esta arquitectura, pero que tengan el programa cliente y el programa servidor ejecutndose en el mismo ordenador, o incluso que tengan el cliente y el servidor ejecutndose en el mismo programa, en diferentes hilos. En esta arquitectura la capacidad de proceso est repartida entre los clientes y los servidores.

Los dos elementos principales de esta arquitectura son el cliente y el servidor. Por ejemplo dentro de un ambiente multimedia, el elemento cliente es el dispositivo que puede observar vdeos, cuadros y texto, o reproduce audios distribuidos por el elemento servidor. Por otro lado el cliente tambin puede ser un ordenador personal o una televisin inteligente que posea la capacidad de entender datos digitales. Dentro de este caso el elemento servidor es el depositario del vdeo, audio, fotografas y/o texto, que distribuye bajo demanda del cliente por ser una mquina que cuenta con la capacidad de almacenar datos y ejecutar software. Cliente y servidor interactan mediante un mecanismo de paso de mensajes.

Figura 1.7. Modelo cliente servidor

Uno de los aspectos que ms ha promovido el uso de sistemas cliente servidor es la existencia de plataformas de hardware cada vez ms baratas. De hecho, la posibilidad de utilizar mquinas considerablemente ms baratas que las requeridas por una solucin centralizada basada en sistemas grandes constituyen a su vez una de las ventajas ms palpables de este esquema. Tambin se pueden utilizar componentes, tanto de hardware como de software, de varios fabricantes, lo cual contribuye considerablemente a la reduccin de costos y favorece la flexibilidad en la implantacin y actualizacin de soluciones.

1.7.1. Cliente

El cliente es una aplicacin informtica o un ordenador que accede a un servicio remoto en otro ordenador, conocido como servidor, normalmente a travs de una red de telecomunicaciones. Se suelen utilizar para referirse a programas que requieren especficamente una conexin a otro programa. Uno de los clientes ms utilizados, sobre todo por su versatilidad, es el navegador web. Muchos servidores son capaces de ofrecer sus servicios a travs de un navegador web en lugar de requerir la instalacin de un programa especfico.1.7.2. Servidor

Un servidor es un ordenador que, formando parte de una red, provee servicios a otras ordenadores denominados clientes. Un servidor tambin puede ser un proceso que entrega informacin o sirve a otro proceso. Como se coment antes, el modelo cliente servidor no necesariamente implica tener dos ordenadores, ya que un proceso cliente puede solicitar algo como una impresin a un proceso servidor en un mismo ordenador.1.8. Autenticacin

La autenticacin es el proceso encargado de verificar la identidad digital de una persona u objeto en una comunicacin. La entidad a autenticar puede ser una persona que usa un ordenador, un ordenador por s mismo o un programa del ordenador. Permite asegurar que el usuario que se conecta a un determinado sitio es quien dice ser.

La Autenticacin, en trminos de seguridad de redes de datos, se puede considerar como uno de los tres siguientes pasos (ver figura 1.8):

Autenticacin: Es un modo de asegurar que los usuarios son quienes dicen ser. As por ejemplo en un control de accesos la autenticacin permite determinar si el usuario que intenta acceder al sistema o red es de hecho el usuario que tiene la autorizacin para hacerlo.

Autorizacin: Es el proceso por el cual se autoriza al usuario identificado a acceder a determinados recursos del sistema o red.

Auditora: Permite a la red o sistema registrar todos y cada uno de los accesos e intentos de accesos a los recursos que realizan los usuarios, ya sean autorizados o no.

El gran inconveniente de la autorizacin es su confusin muchas veces con la autenticacin. De hecho, muchos protocolos de seguridad considerados como estndar, regulaciones obligatorias, y hasta estatutos estn basados en un trmino cuando pretenden referirse al otro. En cambio, el uso ms exacto de la terminologa asocia la autenticacin con el proceso de verificar la identidad de un usuario, mientras que la autorizacin es el proceso de verificacin para corroborar que un usuario autntico tiene la autoridad para realizar una determinada operacin. La autenticacin, por lo tanto, debe ejecutarse siempre antes que la autorizacin.

Los mtodos de autenticacin ms habituales se basan en la forma de la verificacin de la identidad, de forma que se pueden dividir en tres categoras:

1. Sistemas basados en algo que se conoce, como puede ser, una contrasea (en Unix) o una frase secreta (en PGP).

2. Sistemas basados en algo que se tiene, como por ejemplo, una tarjeta inteligente (smartcard) o token criptogrfico.

3. Sistemas basados en una caracterstica fsica del usuario como por ejemplo, verificacin de voz, de escritura, de huellas, de patrones oculares, etc.

Figura 1.8. Protocolo AAA

1.9. Beacon

Para autenticar a un usuario en el modelo cliente servidor, la autenticacin usa el envo de mensajes entre nodos para autenticarse. Una prctica frecuente para empezar este envo de mensajes es el envo de beacons para anunciarse.

Un beacon es un mensaje predeterminado que un nodo enva de forma peridica para comunicar que esta operativo al resto de nodos de la red. Suele contener varios parmetros que sirven para presentarse a los dems nodos. Su utilidad es servir como inicio de la autenticacin con cualquier usuario nuevo en la red o bien con el que an no se haya autenticado. Su modo de envo ms comn es el broadcast.

En el estndar IEEE 802.11 se utilizan para anunciar una red y portan el ESSID de la misma para comunicrselo a posibles nodos que se quieran conectar a ella (ver figura 1.9). Dentro de este estndar su nombre concreto es beacon frames y se envan constantemente cada 100 milisegundos.

Figura 1.9. Esquema de autenticacin en IEEE 802.111.10. Broadcast

El envo en broadcast es un modo de transmisin de informacin donde un nodo emisor enva informacin a una multitud de nodos receptores de manera simultnea, sin necesidad de reproducir la misma transmisin nodo por nodo (ver figura 1.10). Puede ser un envo a toda la red o bien a una subred. Un ejemplo cotidiano de comunicacin broadcast es la realizada por las emisiones de radio, que emiten seales sin saber quien las recibe. En el caso del protocolo de Internet IP se pueden usar en dos modalidades de difusin, una de las cuales se conoce como broadcast de difusin limitada y consiste en enviar un paquete de datos IP con la direccin 255.255.255.255. Este paquete solamente alcanzar a los nodos que se encuentran dentro de la misma red fsica subyacente, que en general, es una red de rea local (LAN, Local Area Network) o un segmento de sta.

El envo de beacons en modo broadcast hace que cada uno de los dems nodos reciba la notificacin de que dicho nodo se quiere. Para empezar la autenticacin son necesarios ciertos parmetros del nodo, como puede ser un nombre que lo identifique o un pseudnimo. Un pseudnimo es un alias por el cual un nodo es conocido en la red. Se suele utilizar para esconder la verdadera identidad del nodo ya que es una forma segura de presentarse sin dar datos privados como puede ser el identificador nico.

Una vez enviado el primer mensaje beacon en modo broadcast, existen varias tcnicas que se pueden aplicar para llevar a cabo la autenticacin. Entre esas tcnicas hay muchas que usan el concepto de grafo para representar informacin.

Figura 1.10. Envo en modo broadcast

1.11. Grafo

Se llama grafo a un conjunto de objetos llamados vrtices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias entre los elementos del conjunto de nodos (ver figura 1.11). Desde un punto de vista prctico, los grafos permiten estudiar las interrelaciones entre unidades que interactan unas con otras. Por ejemplo, una red de computadoras puede representarse y estudiarse mediante un grafo, en el cual los vrtices representan terminales y las aristas representan conexiones, que pueden ser cables o conexiones inalmbricas. Prcticamente cualquier problema puede representarse mediante un grafo, de manera que su estudio trasciende a las diversas reas de las ciencias exactas y las ciencias sociales.

Figura 1.11. Representacin grfica de un grafo

1.11.1. Grafo Completo

Un grafo completo es un grafo simple, es decir, un grafo que no contiene bucles o lazo (aristas que parten y llegan al mismo nodo), en el que cada par de vrtices o nodos estn unidos por una nica arista, haciendo que el grafo contenga todas las aristas o conexiones posibles entre los distintos nodos, sin repetir ninguna, como aparece en la figura 1.12.

Figura 1.12. Representacin grfica de un grafo completo

1.11.2. Grafo Aleatorio

Es un tipo de grafo que se genera como consecuencia de aplicar algn tipo de proceso aleatorio para determinar las aristas. La teora de los grafos aleatorios cae en la interseccin entre la teora de grafos y la teora de probabilidades y se fundamenta en el estudio de ciertas propiedades de los grafos aleatorios.1.11.3. Isomorfismo de grafos

Un isomorfismo entre dos grafos se da cuando existe una correspondencia uno a uno entre los vrtices de los grafos tal que todo par de vrtices son adyacentes en un grafo si y slo si el correspondiente par de vrtices son adyacentes en el otro grafo (ver figura 1.13).

La determinacin de si dos grafos con el mismo nmero n de vrtices y m de aristas son isomorfos o no, se conoce como problema del isomorfismo de grafos. Este problema admite un ataque por fuerza bruta que exigira comprobar si las n! biyecciones posibles preservan la adyacencia. Sin embargo no se conoce un algoritmo eficiente para resolverlo, al menos para el caso general. En este contexto, eficiencia debe interpretarse como crecimiento del nmero de pasos inferior a O (en).

Figura 1.13. Ejemplo de isomorfismo de grafos

1.11.4. Circuito Hamiltoniano

Un camino hamiltoniano en un grafo es un camino o sucesin de aristas adyacentes, que visita todos los vrtices del grafo una sola vez (ver figura 1.14). Si adems el ltimo vrtice visitado es adyacente al primero, el camino es un ciclo o circuito hamiltoniano. Un grafo que contiene un ciclo hamiltoniano es llamado grafo hamiltoniano.

Figura 1.14. Representacin grfica de un circuito hamiltoniano

1.12. Criptografa

Llamamos criptografa al conjunto de tcnicas, que altera las representaciones de un mensaje con objeto de mantenerlo en secreto y/o proteger la informacin que contiene. Para ello existen distintos mtodos, en donde el ms comn es el cifrado. El rea que se encarga de su estudio cientfico as como de los posibles ataques es la Criptologa.1.12.1. Cifrado

Para el envo de la informacin entre los nodos de la red, se usan tcnicas de cifrado de datos que permiten compartir de manera segura la informacin entre los nodos. Esta informacin que se debe proteger mediante criptografa se denomina texto en claro o texto plano.

El cifrado es el proceso de convertir el texto plano en un galimatas ilegible, denominado texto cifrado o criptograma. La aplicacin concreta del algoritmo de cifrado (tambin llamado cifra) se basa en la existencia de una clave: informacin secreta que adapta el algoritmo de cifrado para cada uso distinto (ver figura 1.15).

Existen dos grandes grupos de cifrado: los algoritmos que usan una nica clave tanto en el proceso de cifrado como en el de descifrado, y los que emplean una clave para cifrar y una clave distinta para descifrar. Los primeros se denominan cifrados simtricos, o de clave secreta, y son la base de los algoritmos de cifrado clsico (criptografa simtrica). Los segundos se denominan cifrados asimtricos, o de clave pblica y forman el ncleo de muchas de las tcnicas criptogrficas modernas (criptografa asimtrica).

Figura 1.15. Esquema grfico de un cifrado

1.12.2. Descifrado

El descifrado es el proceso inverso que recupera el texto plano a partir del criptograma y la clave. Es un algorimo criptogrfico que especifica los detalles sobre cmo se utilizan los mensajes cifrados y las claves de descifrado para conseguir el efecto deseado. Al conjunto de algoritmos de cifrado y descifrado, procesos de gestin de claves y actuaciones de los usuarios, se les denomina criptosistema.

1.12.3. Criptografa simtrica

La criptografa simtrica est formada por algoritmos criptogrficos en los cuales se usa una misma clave para cifrar y para descifrar como podemos ver un ejemplo en la figura 1.16. Las dos partes que se comunican han de ponerse de acuerdo de antemano sobre la clave a usar. Una vez ambas tienen acceso a esta clave, el remitente cifra un mensaje usndola, lo enva al destinatario, y ste lo descifra con la misma. Un buen sistema de cifrado basa toda su seguridad en la clave ya que el algoritmo normalmente es pblico. En otras palabras, no debe ser de ninguna ayuda para un atacante conocer el algoritmo que se est usando. Slo si el atacante obtuviera la clave, le servira de algo conocer el algoritmo. Uno de los algoritmos simtricos ms conocidos actualmente es Triple DES, tambin llamado TDES o 3DES, que es bsciamente un triple cifrado DES (Data Encryption Standard).

Figura 1.16. Cifrado / Descifrado simtrico

1.12.4. Criptografa asimtrica

La criptografa asimtrica est formada por sistemas criptogrficos que usan un par de claves distintas para el envo de mensajes, de tal forma que las dos claves utilizadas en cada operacin de cifrado pertenecen al misma usuario al que se ha enviado el mensaje. La clave usada para cifrar es pblica y se puede entregar a cualquier usuario, mientras que la otra clave, usada para descifrar, es privada y el propietario debe guardarla de modo que nadie ms tenga acceso a ella (ver figura 1.17). Adems, los mtodos criptogrficos garantizan que esa pareja de claves slo se puede generar una vez, de modo que se puede asumir que no es posible que dos usuarios hayan obtenido casualmente la misma pareja de claves. Si el remitente usa la clave pblica del destinatario para cifrar el mensaje, una vez cifrado, slo la clave privada del destinatario sirve para descifrar este mensaje. Por tanto se logra la confidencialidad total del mensaje enviado, ya que nadie ms, salvo el destinatario puede descifrarlo.

Por otra parte, si el propietario del par de claves usa su propia clave privada para cifrar un mensaje a enviar, cualquiera receptor podra descifrarlo utilizando su clave pblica pero en este caso lo que se consigue es la autenticacin del remitente, ya que se sabe que slo pudo haber sido l quien emple su clave privada para cifrar el mensaje.

Un buen ejemplo de algoritmo asimtrico es el RSA, que constituye a fecha de hoy el cifrado de clave pblica ms utilizado en el mundo.Destacar tambin que esta idea de la criptografa asimtrica es el fundamento bsico de la firma digital.

Figura 1.17. Cifrado / Descifrado asimtrico

1.12.5. Firma digital

La firma digital es un esquema criptogrfico que sirve para demostrar la autenticidad de un mensaje digital o de un documento electrnico as como de su autor o emisor (ver figura 1.18). Una firma digital da al destinatario seguridad en que el mensaje fue creado por el remitente, y que no fue alterado durante la transmisin. Las firmas digitales se utilizan normalmente para la distribucin de software, transacciones financieras y en otras muchas reas donde es importante detectar posibles falsificaciones y manipulaciones.

1.18. Esquema de firma digital

1.13. Funcin hash

Una funcin hash o funcin resumen es un mtodo para generar, resumir o identificar probabilsticamente un gran conjunto de informacin dando como resultado un conjunto imagen finito generalmente menor. Una de sus principales aplicaciones es producir como salida elementos que representen de manera casi unvoca documentos, registros, archivos, etc. de entrada. Es posible que existan salidas resultantes iguales para entradas diferentes, ya que el rango de posibles salidas es mucho menor que el de posibles objetos a resumir. Son usadas en mltiples aplicaciones, como la criptografa y en particular las firmas digitales, el procesamiento de datos, etc. Una buena funcin hash debe producir pocas colisiones en el conjunto esperado de entrada; es decir, debe permitir que se identifiquen unvocamente las entradas, sin provocar ambigedad. Las propiedades que debe cumplir una buena funcin hash son:

1. Sea cual sea la longitud del texto base de entrada A, la longitud de su hash resultante B siempre debe ser la misma. Por ejemplo, si la longitud de la salida B es 128 bits, si aplicamos una funcin hash a un A de 5 bits nos dar un B de 128 bits, y si se la aplicamos a un A de 380 millones de bits, nos dar un B de 128 bits igualmente (ver figura 1.19).2. Para cada entrada A, la funcin generar una salida B nica.3. Dado un texto de entrada, debe ser fcil y rpido calcular su resumen con un ordenador.

4. Debe ser imposible reconstruir el texto de entrada a partir de su resumen.

5. No debe presentar muchas colisiones.

Uno de los algoritmos ms conocidos para crear una funcin hash es el denominado MD5 (abreviatura de Message-Digest Algorithm 5) que produce salidas de 128 bits.

Figura 1.19. Funcin hash

1.14. SQLite

Para que cada nodo pueda almacenar toda su informacin as como la informacin sobre los nodos con los que se haya autenticado, en este proyecto se usa base de datos. Una base de datos, es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemticamente para su posterior uso, la biblioteca sera un ejemplo. En las aplicaciones normalmente es necesario guardar la informacin en uno o varios archivos que haga la funcin de base de datos. Este archivo se puede gestionar con diversos sistemas. Uno de ellos es SQL (Structured Query Language), que tiene su adaptacin para mviles en SQLite.

SQLite es un sistema de gestin de bases de datos relacionales que cumple las propiedades de atomicidad, consistencia, aislamiento y durabilidad, contenida en una biblioteca en C relativamente pequea (~275 kiB)2. SQLite es un proyecto de dominio pblico. A diferencia de los sistemas de gestin de bases de datos cliente servidor, el motor de SQLite no es un proceso independiente con el que el programa principal se comunica. En lugar de eso, la biblioteca SQLite se enlaza con la aplicacin pasando a ser parte integral de la misma. La aplicacin utiliza la funcionalidad de SQLite a travs de llamadas simples a subrutinas y funciones, reduciendo la latencia en el acceso a la base de datos, debido a que las llamadas a funciones son ms eficientes que la comunicacin entre procesos. El conjunto de la base de datos (definiciones, tablas, ndices, y los propios datos), es guardado como un slo fichero estndar en la mquina host. Este diseo simple se logra bloqueando todo el fichero de base de datos al principio de cada transaccin.Captulo 2

2. Estado del arte

Para la redaccin de este captulo se han realizado diferentes estudios de trabajos sobre redes ad-hoc vehiculares. Dichos documentos son sobre todo artculos, proyectos, libros, tesis etc., que proponen distintos puntos de vista sobre el tema. Antes de pasar a explicar cmo estn, en la actualidad, las investigaciones en este tipo de redes y por qu caminos estn yendo los investigadores, vamos a contextualizar histricamente el tema.

1.1. VANETs : Del pasado al presente

La historia del uso de las comunicaciones va radio e infrarrojos entre vehculos y elementos situados en las carreteras est fuertemente ligada a la evolucin de los sistemas de transporte inteligente o ITS (Intelligent Transportation Systems). Como referencias tempranas, Shladover [68] y Lasky y Ravani [46] en 1989 y 1993 respectivamente, mencionan por primera vez algunos de los conceptos bsicos sobre automatizacin en las carreteras. El uso de comunicaciones y tecnologas para el trnsito vehicular seguro, eficiente y respetuoso se abord por primera vez en la feria mundial de 1939 anunciada con el nombre de Futurama y organizada por General Motors. Dicha exposicin intentaba dar una visin de futuro, mostrando diversos conceptos innovadores y previendo cmo avanzara la tecnologa en este campo.

Ms tarde, hacia finales de la dcada de los 60, los actuales sistemas basados en comunicaciones va radio se empezaron a desarrollar en las carreteras demostrando sus beneficios. Desde entonces, se ha podido observar cmo la historia ha ido avanzando en este campo. El foco de investigacin ha ido cambiando constantemente a lo largo del tiempo. Tanto es as que al principio las investigaciones se enfocaron hacia sistemas que guiaban la ruta que segua el conductor. Luego se cambi el sentido de los trabajos y se opt por poner ms nfasis en sistemas de peajes. Con el tiempo se volvi a cambiar el rumbo y se popularizaron las investigaciones sobre conduccin autnoma. Cabe resaltar que el principal fin de las investigaciones nunca se ha visto alterado, y no era otro que mejorar la seguridad y eficiencia en las vas por parte de los vehculos en circulacin.

Las investigaciones y desarrollos en estos temas principalmente se llevaron a cabo en Estados Unidos. Sin embargo Japn y Europa, y otras partes del mundo, no se quedaron atrs y tambin hicieron aportaciones en este campo llegando a hacerse bastante popular esta lnea de investigacin. El tema, a lo largo del tiempo, ha sido abordado con un enfoque diferente para los vehculos y para las comunidades de transporte.

Un concepto clave e invariable en la historia es la financiacin. Desde el principio se han preguntado cmo podan rentabilizar estos conceptos. Se han propuesto soluciones de diversa ndole: peajes basados en la comunicacin, tarifas por congestin de trfico, etc. Ests tcnicas se ofrecen como posibles soluciones aunque persiste el escepticismo. Como citas, Jurgen [40] en 1991, Kan Chen y Robert Ervin describieron este asunto como El enfrentamiento del huevo y la gallina. Por un lado se sitan las industrias del automvil y la electrnica, que dudan de si llegar algn da en que se materialicen las infraestructuras pblicas que se deben llevar a cabo para implementar sistemas de comunicaciones en las carreteras que permitan aprovechar la circulacin de vehculos inteligentes. Por otro lado, los organismos pblicos dudan de si la tecnologa usada en los sistemas de carreteras podra llegar a ofrecer soluciones prcticas a los problemas que ocurren actualmente en la carretera.

Se puede decir que las primeras propuestas sobre lo que hoy en da denominamos redes ad-hoc vehiculares se produjeron en la dcada de los 70. Por tanto, 1970 puede considerarse de alguna forma el principio de la historia conceptual de las VANETs.

1.1.1. Desde el principio hasta mediados de los 90

En Estados Unidos, en 1970 Rosen [63] propuso un sistema electrnico de ruta guiada (ERGS, acrnimo del ingls, Electronic Route-Guidance System). Segn palabras del mismo Rosen:

Es un sistema basado en el destino del conductor. l mismo introduce en el vehculo el destino al que quiere llegar. A medida que el vehculo se acerca en cada tramo a instrumentos adicionales situados en la misma carretera, el vehculo comunica a estos instrumentos cul es su destino, y estos instrumentos le devuelven la informacin de la ruta hacia ese destino.

El sistema de comunicacin correspondiente operaba a 170 kHz y usaba antenas instaladas en las intersecciones de las carreteras y en la parte trasera de los vehculos para su comunicacin. La tasa de transmisin de datos se situaba alrededor de los 2000 bits por segundo. De acuerdo con lo que dice French [32] [33], los esfuerzos llevados a cabo por Rose para que su sistema ERGS fuese una realidad se vieron truncados por el alto coste que supona la instalacin en las carreteras de toda la infraestructura que conllevaba.

Cambiando de tercio, en Japn un proyecto para el control de trfico de automviles denominado CACS (de sus siglas en ingls, Comprehensive Automobile traffic Control System) fue llevado a cabo entre 1973 y 1979 por la agencia de ciencia industrial y tecnologa del ministerio de comercio internacional e industria del pas nipn. Los objetivos de dicho proyecto, como nombra Kawashima [42] siguen siendo vlidos despus de ms de 30 aos:

Reduccin de la congestin de trfico.

Reduccin de los gases producidos por el automvil a causa de las congestiones.

Prevencin de accidentes.

Mejora del rol pblico y social del automvil.

Dar prioridad a los vehculos de emergencia.

Proporcionar informacin con rapidez a los vehculos en caso de emergencia.

El proyecto CACS llev a cabo una operacin piloto del mismo, con 98 unidades de equipos adicionales de carretera y 330 vehculos, tal como informan Nakahara y Yumamoto en 1997 [52]. Para la comunicacin entre las estaciones de carretera y los vehculos se utilizaron antenas de tipo lazo en las estaciones de carretera y antenas de ferrita para los vehculos. La velocidad de transmisin ascendi hasta los 4,8 Kbps.

Mientras tanto, en Europa el PROMETHEUS (acrnimo de: PROgraMme for European Traffic with Highest Efficiency and Unprecedented Safety, Programa europeo de trfico con alta eficiencia y seguridad sin precedentes) inici su andadura en el ao 1986 y se puso en marcha en 1988 estimulando significativamente las actividades de investigacin y desarrollo en el mbito de la tecnologa de la informacin y las comunicaciones mviles entre vehculos y carretera. PROMETHEUS fue apoyado por 19 pases del continente europeo y por la Comisin de las Comunidades Europeas, como bien explican Walker en 1992 [75] y Williams en 1988 [77]. Gillan en 1989 [35] habla sobre la organizacin de PROMETHEUS y la desglosa en una serie de subprogramas:

PRO-CAR: asistencia a la conduccin mediante sistemas electrnicos.

PRO-NET: comunicaciones entre vehculos.

PRO-ROAD: comunicaciones entre vehculos y los sistemas de carretera.

El programa PRO-NET de PROMETHEUS jug un papel fundamental. El informe de Dabbous y Huitema en 1988 [21] acerca de dicho programa todava se puede considerar a da de hoy aceptable en muchos aspectos. Dabbous y Huitema analizaron las necesidades de comunicacin basndose en escenarios tpicos, por ejemplo, una simple maniobra de cambio de carril. Suponiendo una estrategia de difusin peridica y exactitud en la distancia de colisin, ellos muestran que con una estimacin conservadora de la tasa de transmisin peridica de los mensajes de estado entre vehculos, cada vehculo debera realizar 20 de estas transmisiones por segundo. Dabbous y Huitema indicaron que con menos precisin de colisin y con la introduccin de mtodos de prediccin se puede reducir significativamente el nmero de transmisiones necesarias. Para lograr esta tasa de comunicacin la atencin se centr en los sistemas que operen en la banda de frecuencia de 60 GHz, como expuso Fischer en 1991 [28].

El inters de la comunicacin entre vehculos continu en Japn y Estados Unidos. Kawashima en 1990 [42] cita dos informes tcnicos remitidos por la asociacin de tecnologa electrnica para la conduccin y el trfico de vehculos, publicados en 1986 y 1988 respectivamente y que plasmaban los resultados experimentales de la comunicacin vehculo a vehculo. En Estados Unidos, como indica Shladover en 1991 [67], la principal lnea de investigacin estaba relacionada con la conduccin autnoma del automvil. Sachs y Varaiya en 1993 [65] presentan los requisitos y prestaciones necesarias para poder llevar a cabo una comunicacin vehculo a vehculo y una comunicacin entre el vehculo y los instrumentos adicionales necesarios para poder hacer realidad un sistema automatizado entre vehculos en la carretera. Jurgen en 1991 [40] relata la situacin de estos proyectos en aquella poca en Estados Unidos, Japn y Europa, as como una visin de futuro sobre el papel de los sistemas que permitirn los vehculos inteligentes en las carreteras.

1.1.2. De mediados de los 90 a la actualidad

La segunda mitad de la dcada de 1990 implic hitos notables y algunos cambios importantes referentes al paradigma en este campo. En San Diego en 1997 dentro de algunas actividades de demostracin que organizaron los integrantes de la asociacin de California para los avances en trfico y carreteras (PATH: Partners for Advanced Transit and Highways), se mostraron diversos avances en la conduccin autnoma de los vehculos de forma cooperativa. No fue el nico congreso que mostr algo como esto. En la ciudad de Tsukuba en Japn, en el ao 2000 se present algo similar durante la fase de demostracin de avances en seguridad vehicular (ASV, Advanced Safety Vehicle). Europa no iba a ser menos, as que desde el proyecto europeo PROMOTE CHAUFFEUR, tambin se presentaron resultados. El objetivo marcado hasta el momento de repente cambi y se pas de pretender la conduccin autnoma mediante cooperacin a intentar crear un sistema cooperativo para la asistencia a la conduccin. Desde 1998 hasta 2005, en Estados Unidos, dentro del seno de la Iniciativa de Vehculos Inteligentes (IVI: Intelligent Vehicle Initiative), como bien explican Hartman y Strasser [37], se investig para buscar seguridad mediante cooperacin activa. En el viejo continente, los proyectos CarTalk y FleetNet, analizados por Franz [31], investigaron las tecnologas y aplicaciones que podran ayudar a lograr la asistencia a la conduccin de forma cooperativa. Mucho ms al este, en Japn, la fase 3 del proyecto ASV, antes nombrado, reconoci el papel fundamental que debera tomar la comunicacin entre vehculos en la asistencia a la conduccin de forma cooperativa.

El concepto de VANET se ha visto considerablemente afectado por el enorme avance de la tecnologa y de la normalizacin desde mediados de la dcada de los 90. En 1999 se produjo un giro bastante importante cuando la Comisin federal de Comunicaciones de los Estados Unidos asign 75 MHz de ancho de banda de los 5,9 GHz de la banda total al DSRC (Dedicated Short-Range Communication, comunicacin de corto alcance dedicada). Este trmino denota un conjunto de protocolos y estndares para la comunicacin inalmbrica de corto alcance entre los vehculos y la infraestructura necesaria, y su objetivo es aportar neutralidad tecnolgica.

Un ao despus, ya metidos en pleno siglo XXI, la ASTM (American Society for Testing and Materials) Internacional, que es una de las organizaciones de desarrollo de normas internacionales ms grande del mundo, estableci un grupo de trabajo para crear los requisitos correspondientes al nuevo estndar DSRC. En 2001, el comit de normas 17.51 de ASTM seleccion IEEE 802.11a como la tecnologa de radio subyacente para DSRC. El estndar correspondiente se public finalmente en el ao 2002 (ASTM E2213-02 2003) y se revis en el ao 2003 (ASTM E2213-03 2003). La presin por usar los canales asignados y la disponibilidad tanto de las tecnologas IEEE 802.11a como de los estndares, ha aumentado significativamente en la investigacin y el desarrollo en este campo. En particular, el inters de la comunidad de redes mviles en el tema de las redes vehiculares se revitaliz en estos aos. En 2004 la asociacin IEEE comenz a trabajar en el estndar 802.11p sobre el acceso inalmbrico en entornos vehiculares WAVE (Wireless Access in Vehicular Environments), basado en el estndar de ASTM, tal como describen Jiang and Delgrossi en un artculo de 2008 [39]. El proyecto sobre comunicacin segura vehicular conocido por el acrnimo VSC (Vehicle Safety Communications,) y respaldado por: la asociacin de prevencin de accidentes CAMP (Crash Avoidance Metrics Partnership), la administracin federal de carreteras de los Estados Unidos FHWA (Federal HighWay Administration) y la administracin nacional de seguridad del trfico en las carreteras NHTSA (National Highway Traffic Safety Administration), investig la tecnologa DSRC entre los aos 2002 y 2004, llegando a la conclusin de que el enfoque basado en el estndar IEEE 802.11a sera capaz de soportar la mayora de aplicaciones de seguridad que el proyecto VSC haba probado. El informe final de dicho proyecto, que se public en el ao 2006, analiza tambin los puntos dbiles del estndar, como la baja latencia de la comunicacin, la alta disponibilidad del canal de radio o temas generales relacionados con la capacidad del canal. En 2004, en el primer encuentro internacional organizado por la ACM sobre redes ad-hoc vehiculares que tuvo lugar en Filadelfia, se acuo el trmino VANET.

En la figura 2.1 podemos ver en una lnea de tiempo los proyectos y actividades llevadas a cabo en Japn, Estados Unidos y Europa a lo largo de la historia de las VANETs. Se reflejan ah los principales proyectos de investigacin y desarrollo de las distintas zonas mundiales a lo largo de su historia.Figura 2.1. Cronologa de proyectos sobre VANET1.2. Propuestas actuales de solucin

En la actualidad, muchos investigadores han tratado diversos temas relacionados con las VANETs. Autenticacin, cooperacin, cifrado, implementaciones, aplicaciones, etc. han sido el objetivo de sus trabajos para conseguir que este tipo de redes sean cada vez ms seguras y sobretodo que cada da se avance ms en este campo y podamos ver, en poco tiempo, VANETs reales funcionando a la perfeccin y completamente integradas en la sociedad. A continuacin se relatan un par de propuestas actuales sobre alguno de estos temas que son fundamentales en este tipo de redes.

1.2.1. Autenticacin

Uno de los principales requisitos de cualquier VANET es que los usuarios se puedan autenticar en ella con total seguridad. La privacidad de los datos es tambin fundamental para dar seguridad al usuario y que utilice este tipo de tecnologa sin miedo a seguimientos o usos de su informacin. Muchos son los entendidos que han investigado fehacientemente estos asuntos y han propuesto soluciones de todo tipo en este tema.

En la figura 2.2 se muestra visualmente lo que se pretende conseguir con una VANET en el caso de una deteccin de atascos. Los vehculos se comunican entre s y con los elementos adicionales de la carretera y de esa forma transmiten las condiciones del trfico.

Figura 2.2. Uso de una VANET para deteccin de atascos

1.2.1.1. Envo de claves

El envo de las claves a los distintos nodos de la red es un tema muy abordado en los ltimos aos. Se pretende que la distribucin de claves se realice de la manera ms eficiente posible, intentando que la comunicacin sea la menor posible con poca computacin de los datos a enviar y que el overhead (bytes adicionales que se deben transmitir como cabeceras) de los paquetes de datos no ocupe mucho espacio. Todo esto tiene que estar aderezado con una transmisin de estos datos de forma segura por el medio de transporte correspondiente, es decir el canal de difusin de la red.

Una de las ltimas investigaciones llevada a cabo por Jan y Maciej Nikodem [53], intenta aportar una nueva solucin para poder transmitir las claves a los distintos nodos de la red. Hasta el momento todas las lneas de investigacin iban en la direccin de uno de los cuatro mtodos existentes, como comentan en sus artculos Kui [45] y Liu [49]. Estos cuatro mtodos: el basado en certificados, el basado en la Generalizacin de Diffie-Hellman (GDH), el basado en la exclusin broadcast y el basado en un enfoque probabilstico, tienen varios inconvenientes.

Por ejemplo en el caso de los mtodos basados en clave pblica (certificados y GDH) tienen una gran complejidad computacional, lo que conlleva gran ineficiencia cuando se aplica en grandes redes, asunto que tratan Anton [3] y Steiner [69]. Tambin podemos hablar de un overhead muy grande en las comunicaciones cuando hay nodos de la red que han sido excluidos.

Los mtodos de exclusin broadcast, como explican Castellucia [18], Fiat [26], Kim [43] y Watanabe [76], suponen que la estructura de la red es conocida, suposicin que es imposible cumplir en las VANETs debido a que los nodos estn en constante movimiento.

Los mtodos probabilsticos se basan en un gran conjunto de claves simtricas tal y como dice Zhu [79]. Es una alternativa muy buena pero quizs peca de tener una complejidad en las comunicaciones muy alta y necesita mucho espacio disponible en memoria. Por ello, Jan y Maciej Nikodem [53] ofrecen una solucin que intenta subsanar estos inconvenientes. Su solucin se basa en una idea de Blundo [7] que utilizaba un mtodo de claves pre-distribuidas basado en polinomios. Fusionando esto con el mtodo de exclusin broadcast lograron crear un sistema de regeneracin de claves de grupo, que permite gestionar elementos de la red, garantiza una comunicacin segura y establece claves de cifrado eficientemente. Adems dichos autores van ms all y proponen que su mtodo en conjuncin con propuestas de enrutamiento de Buchegger [8] y Filipovic [27] se pueden utilizar para construir una VANET auto-organizada.

1.2.1.2. Anonimato

Patrick Tsang y Sean Smith [73] proponen un esquema de autenticacin que sirve para subsanar el problema de que en los actuales esquemas basados en el modelo cliente servidor, slo los clientes se preocupan por la privacidad de los datos, ya que el servidor normalmente no tiene en cuenta este aspecto. Su propuesta no slo va enfocada a las VANETs sino que tambin dicen que mejoraran la tecnologa P2P (Peer To Peer). Su modelo se basa en el concepto de pseudnimo y pretenden que los usuarios en la red se identifiquen usando este concepto. En su artculo describen su propuesta (ver Figura 2.3), la desarrollan y analizan, y demuestran su seguridad. Un aspecto fundamental es que es una solucin eficiente debido a que las complejidades son independientes del nmero de usuarios de la red.

Existen varios trabajos que versan sobre el uso de credenciales annimas en la autenticacin [12] [10] [72] [71] [19] [11] [20] [5], pero ninguno pone tanto nfasis en el uso de pseudnimos como lo hacen Patrick Tsang y Sean Smith.

Se ha demostrado que la intimidad que se busca usando estos mtodos es fundamental para los usuarios que usan VANETs [9] [59]. Como dice Krumm [44], no es slo que el usuario sea annimo en la red, sino que no se debe poder monitorizar la seal de un usuario, es decir, no se debe poder hacerle un seguimiento. Todo esto es lo que consigue la propuesta descrita y desarrollada en el presente proyecto, llamada VAiPho. Su modelo de autenticacin mejora en algunos aspectos los algoritmos de autenticacin conocidos hasta la fecha, convirtiendo en verdaderos annimos a los usuarios que usan la red.

En captulos posteriores se explicaran con todo detalle todos los esquemas de seguridad propuestos y usados en VAiPho.

Figura 2.3. Protocolo de autenticacin propuesto por Patrick Tsang y Sean Smith en [73]1.2.2. Deteccin de usuarios fraudulentos

Uno de los peores ataques que pueden recibir este tipo de redes, es que usuarios legtimos pero con mala intencin transmitan mensajes sobre eventos que no estn sucediendo o bien mensajes errneos. Son muchas las razones por las que alguien podra intentar algo como esto: necesidad de protagonismo, ganas de corromper un sistema moderno, informar de un atasco para que los usuarios dejen libre una determinada carretera, etc. Muchos investigadores han analizado el problema para intentar evitarlo, y han intentado crear algoritmos que detecten a los usuarios malintencionados y los excluyan de la red [23].

Algunas propuestas proponen el uso regular de firmas digitales [59] [4] [62] [61] para permitir el seguimiento de los vehculos maliciosos. Para que esto funcione se sugiere en diferentes artculos [57] [56] [58] [78] el uso de una infraestructura de clave pblica (PKI, Public Key Infrastructure) en VANETs. Sin embargo, estas propuestas no proporcionan ningn mtodo para la revocacin de certificados. Aunque los problemas relacionados con este asunto se discuten en [9] [61] [55], una solucin completa totalmente nueva fue publicada en [62]. Dicha solucin propone tres protocolos de revocacin [23]: revocacin comprimida utilizando listas de certificados revocados (RC2RL: Revocation using Compressed Certificate Revocation Lists), revocacin a prueba de manipulaciones (RTPD, Revocation of the Tamper-Proof Device), y protocolo de revocacin distribuida (DRP, Distributed Revocation Protocol). Estos mtodos intentan evitar que la red se corrompa debido a la existencia de usuarios malintencionados.

A pesar de la seguridad proporcionada por los protocolos mencionados, puede darse el caso de que un mensaje est correctamente construido pero su informacin sea falsa. Esto se podra deber a un intento de que una carretera se libere de trfico, mandando el atacante mensajes falsos sobre que existe un atasco en ella. Este tipo de ataques son muy fciles de realizar y tienen una repercusin bastante grande. Simplemente con lograr que los dispositivos del automvil que se comunican con el resto de elementos de las VANETs generen y transmitan mensajes falsos, ya se consigue meter basura en la red y lograr el objetivo de estos usuarios fraudulentos. Por ello, para evitar estos ataques maliciosos se deben analizar a priori los mensajes recibidos para impedir la redifusin de mensajes falsos. Asimismo el envo de mensajes desde el punto de partida tambin debe pasar determinados controles para evitar la generacin de mensajes falsos. La teora sobre estos algoritmos ha sido estudiada en [25] [24] [47], pero todos enfocan el problema hacia el contexto de Internet con conexin por cable. Estas tcnicas pueden fallar con frecuencia en las VANETs, por sus caractersticas peculiares. En las VANETs el nico modo que debe haber de que las unidades vehiculares generen eventos falsos es que stas detecten posiciones errneas, por lo que la ubicacin del vehculo es una informacin muy importante que debe ser contrastada. Siguiendo con esta idea, [48] presenta una propuesta destinada a verificar los datos de la posicin enviados por un determinado vehculo. Una propuesta ms general que se encarga de la deteccin y correccin de los datos malintencionados en la red se da en [36]. En ella se trata la idea de que cada vehculo mantiene un modelo actualizado de los eventos de la VANET, basado en los mensajes que ha recibido. Si al llegarle un nuevo mensaje e intentarlo aadirlo al modelo que tiene almacenado, el sistema se puede volver inconsistente, pues ese mensaje se marca como malintencionado y se retira del modelo. Este concepto est totalmente desarrollado y combinado con los mecanismos de seguridad. Estos protocolos son un poco pesados y pueden llegar a sobrecargar la red, por lo que algunos autores sugieren nuevos mecanismos buscando un umbral ms eficiente para alcanzar el mismo objetivo [36] [22] [56] [57] [60]. Se basan en definir que un mensaje es de confianza si ha sido corroborado por varios vehculos que estn en la misma zona. Para que esto funcione hay que presuponer que la mayora de los usuarios son honestos y no buscan corromper el sistema.

Esta ltima idea es precisamente la que sigue el sistema VAiPho desarrollado en este proyecto para detectar usuarios malintencionados. Es un concepto bastante analizado, eficaz y muy ligero computacionalmente hablando, por lo que mejora las ideas anteriormente descritas, sin perder un pice de los objetivos que se persiguen.

1.2.3. Fomento de la cooperacin

Mediante las VANETs se puede conseguir una conduccin ms segura y automatizada a travs de la cooperacin entre los vehculos que conforman la red. Hay diversas situaciones en las que los vehculos pasan por puntos crticos: entradas a la autopista, cruces sin mucha visibilidad, coches que se quedan sin luz por la noche, etc. Todas estas situaciones, anormales dentro de la normalidad, tambin son investigadas en la actualidad para que se puedan contemplar especficamente en las VANETs. Gracias a la unidad instalada en el vehculo que es capaz de comunicarse con otros vehculos y con las unidades de carretera, tal y como dicen en [38], se puede lograr la necesaria coordinacin. Este problema se podra abordar como cualquier otro problema de comparticin de recursos, pero en una VANET se complica mucho ms ya que los nodos son vehculos que contienen a seres humanos, los nodos son transitorios y las comunicaciones son inalmbricas. Una posible solucin a este desafo es la dada en [38], que pretende que un vehculo sea el que tenga el acceso al recurso y los dems se comuniquen a travs de l. Para llegar a l no sera necesario tener un enlace directo ya que se pueden comunicar a travs de otros vehculos, como vemos en la figura 2.4. Se pueden aplicar varias polticas que gestionen el cambio del vehculo que tiene acceso al recurso en cada momento. En cualquier caso siempre debe elegirse una poltica que utilice la posicin verificada de cada vehculo, e intente definir en cada momento quin debe poseer el acceso al recurso para que la red sea eficiente. En particular, en la figura 2.4 (a) el coche rojo tiene el acceso al recurso lo que implica que tendra la preferencia en el cruce con poca visibilidad, mientras que en la figura 2.4 (b) sucede lo mismo pero en la entrada a una autopista.

Figura 2.4. Conduccin de forma cooperativa en las VANETs

1.2.4. Implementacin y aplicacin

Actualmente se estn llevando a cabo muchos proyectos sobre VANETs, que estudian los casos de xito que se pueden conseguir mediante su aplicacin a distintos mbitos de la vida. Concretamente se estn desarrollando pruebas de implementacin y aplicacin de este tipo de redes por parte de las grandes potencias mundiales ya que ven este tipo de tecnologa como un beneficio para el progreso que adems es totalmente lcita para ayudar a la sociedad.

1.2.4.1. Integracin de infraestructuras

En el ao 2005 el departamento de transporte de Estados Unidos inici una demostracin de prueba de concepto (POC, Prof. Of Concept) relacionada con las VANETs. La mayor parte de este estudio se llev a cabo en el noreste de los suburbios de Detroit. Como describe Kandarpa [41], este sistema estaba compuesto por 55 equipos de carretera (RSE, Road Side Equipment) desplegados por los 45 km2 que tena el escenario de prueba (ver figura 2.5). Se emplearon 27 vehculos equipados. El proyecto llev a cabo siete aplicaciones que fueron desarrolladas y probadas:

Sealizacin en los vehculos: los RSEs se comunicaban mediante mensajes con los vehculos.

Sonda de recopilacin de datos: los vehculos proporcionaban un historial de datos sobre su ubicacin y estado, que compartan con las RSEs que lo analizaban y almacenaban.

Pagos electrnicos: por los sistemas de peajes.

Pagos electrnicos: por aparcamiento.

Informacin para el usuario sin navegador de ruta.

Hertbeat: las RSEs recogan peridicamente mensajes de estado enviados por los vehculos que incluan su velocidad y posicin.

Indicacin de trfico: estado del trfico.

Figura 2.5. Mapa de la POC en Detroit (Michigan) [66]

Andrew y Corps [2] as como Kandarpa [41] hablan de las conclusiones del proyecto:

Las tasas de error de los paquetes fueron muy analizadas. Cuando haba cobertura de las antenas la tasa de error era baja y a medida que la cobertura se iba perdiendo la tasa de error suba desmesuradamente.

La utilizacin de IPv6 fue todo un acierto.

El uso de GPS de bajo coste provocaba que los errores de precisin sobre la localizacin fuesen notables.

El cifrado extremo a extremo de la comunicacin fue un xito.

La aplicacin Hertbeat funcionaba correctamente con vehculos que estuvieran en un radio de 100 m. respecto a las RSEs.

Los sistemas de seguridad en general se mostraron frgiles, no realizndose pruebas a gran escala.

La gestin de las comunicaciones de la red fue ms compleja de lo esperado.

La instalacin, configuracin y mantenimiento de las RSEs fue mucho ms complejo y dificultoso de lo esperado.

Cuando esta fase del proyecto acab, el departamento de los Estados Unidos continu con la idea y sac un nuevo proyecto que continuaba la lnea [70]. Este proyecto se llama IntelliDrive y pretende hacer hincapi en la tecnologa inalmbrica dentro de las aplicaciones seguras. Citando el artculo de Row [70], el nuevo programa se centra en las siguientes reas de investigacin:

Tecnologas de exploraciones.

Investigacin, demostracin y evaluacin de las tecnologas de aplicaciones seguras.

Establecimiento de bancos de prueba para fomentar el uso en el sector pblico y privado.

Desarrollo de una arquitectura y estndares abiertos para ofrecer una plataforma de comunicaciones inalmbricas.

Estudios de aspectos no tcnicos: privacidad, responsabilidad, regulacin, etc.

Investigacin sobre los beneficios secundarios de la movilidad y el entorno.

Como primer paso del proyecto se dio a conocer el Safe Trip-21, una herramienta probada en varios sitios de California, que est diseada para mejorar la seguridad yreducirla congestin del trficoaprovechando la tecnologaexistentey adaptndolaa las necesidadesde transporte. Demostrarque avances significativos en lasolucin delos problemas detransporteno tienenquerequerir gastos muy elevados en infraestructuras [70].

2.2.4.2. Comunicaciones seguras entre vehculos

El proyecto sobre la aplicacin de comunicaciones seguras en vehculos llamado VSC-A (Vehicle Safety Communications-Applications), es un proyecto de tres aos de duracin que llevan a cabo cinco de los mayores fabricantes de vehculos (Daimler/Mercedes-Benz, Ford, GM, Honda, y Toyota) junto al departamento de transporte de los Estados Unidos. Este proyecto continua la lnea marcada por el proyecto predecesor que se llev a cabo entre 2002 y 2004. Se centra en las comunicaciones entre vehculos y sus posiciones con el fin de conseguir un esquema interoperable para aplicaciones seguras [72]. VSC-A identifica ocho escenarios de catstrofe basados en las estadsticas del gobierno americano sobre accidentes, costos y funcionalidades de los ltimos aos. Sobre estos escenarios se prueban siete aplicaciones distintas [50] (ver figura 2.6):

EEBL (Emergency Electronic Brake Lights): Frenazos bruscos. FCW (Forward Collision Warning): Colisin inminente del vehculo.

BSW (Blind Spot Warning): Punto ciego en la carretera.

LCW (Lane Change Warning): Cambio de carril, con poca visibilidad.

IMA (Intersection Movement Assist): Asistencia en interseccin.

DNP (Do Not Pass warning): Cuando el cambio de carril puede provocar una colisin.

CLW (Control Loss Warning): El vehculo pierde el control.

Figura 2.6. Aplicaciones con xito en los escenarios propuestos

En el rea de las comunicaciones, la lnea de investigacin est yendo en los siguiente sentidos [14]:

Composicin de los mensajes a enviar.

Pruebas de alimentacin.

Difusin de los mensajes.

Operaciones multicanal.

Estndares sobre coordinacin y validacin.

Adems, el proyecto VSC-A tiene una tarea centrada en la seguridad de las comunicaciones vehculo a vehculo. Quieren evitar la necesidad de incluir hardware dedicado para la seguridad. Para ello estn evaluando la utilizacin de algoritmos de curvas elpticas para firma digital ECDSA (Elliptic Curve Digital Signature Algorithm) [57]. Las evaluaciones sobre estas pruebas se basarn tanto en simulaciones de redes extensas como en las pruebas finales del proyecto [7].

Como hemos visto, todas estas aplicaciones que se han llevado a cabo en distintos proyectos tienen como hndicap principal presuponer la necesidad de instalar equipamiento especfico en las carreteras y dispositivos especiales en los vehculos para poder comunicarse. Todo esto, por mucho que se intente optimizar, siempre supondr un coste elevado para intentar materializar una VANET, pues implicara encarecer los vehculos y gastar dinero pblico para desplegar toda la infraestructura. La propuesta VAiPho aqu analizada, evita todo esto y propone una solucin innovadora utilizando dispositivos mviles existentes, con capacidad para albergar tecnologas tan simples y cotidianas como pueden ser la del Bluetooth, la del GPS o la de WiFi. En captulos posteriores se explicar detenidamente la propuesta desarrollada en este proyecto, que propone la creacin de la primera VANET real del mundo, con un coste adicional nulo.

Captulo 3

3. Opciones de implementacin

Para la realizacin de este proyecto se estuvieron valorando las distintas posibilidades que existan a la hora de implementar la aplicacin VAiPho en distintas plataformas mviles. En este captulo se mencionarn las opciones de implementacin que se tuvieron en cuenta pero que al final no fueron escogidas por diversas circunstancias, que tambin se detallarn.

3.1. Plataforma mvil

La primera eleccin que se tuvo que realizar fue la de la plataforma mvil en la que se desarrollara VAiPho. En este aspecto se analizaron tres posibles alternativas: iOS (Sistema operativo de los dispositivos mviles de Apple), RIM (Sistema operativo de los telfonos de BlackBerry) y Symbian (Sistema operativo de los telfonos de Nokia, algunos de Samsung y LG).

En un primer momento, la primera opcin que barajamos era programar para iOS ya que el mercado de la compaa Apple es muy reconocido mundialmente y est creciendo cada da ms. Sus mviles, tablets y dems tienen mucha repercusin meditica y cada da ms personas poseen un dispositivo mvil de esta marca, como vemos en la figura 3.1 donde ms de un tercio de las ventas de los mviles de ltima generacin las acapar el iPhone de la compaa Apple. Adems de eso, la compaa norteamericana trata muy bien a los programadores que trabajen para su sistema operativo y el entorno de desarrollo lo tienen muy bien cuidado, as como los simuladores de sus terminales, los tutoriales y documentacin de su lenguaje de programacin. Una de las posibles desventajas poda ser el entorno de programacin, ya que usa un lenguaje orientado a objetos creado como un sper conjunto del lenguaje C denominado Objetive C, el cual no dominbamos debido a que nunca habamos trabajado bajo l. De todos modos, un punto a favor de este lenguaje es que est teniendo un auge espectacular en los ltimos meses, representando la mayor subida en posiciones de desarrolladores que lo utilizan en el ltimo ao, como vemos en la figura 3.2.

Figura 3.1. Cuota de mercado de las ventas de SmarthPhone de alta gama en 2010

Figura 3.2. Uso de los distintos lenguajes de programacin en 2010 y 2011

Aunque este problema del lenguaje fuese menor, haba otras circunstancias que hicieron que desechramos iOS. Una de ellas era la de no poseer un ordenador que permitiera programar para Apple. Se tena un Mac Mini de la compaa Apple, pero era un modelo antiguo que no permita programar en la plataforma de desarrollo de Apple. En un primer momento se intent instalar el SDK que facilitaba la compaa americana, pero pudimos observar que no era compatible con los requisitos que tena el ordenador. Era necesario tener una versin del sistema operativo superior a la que permita instalar el Mac Mini que tenamos. Este fue un duro golpe, casi definitivo, para desechar este entorno de desarrollo. Buscando soluciones, se intent probar el SDK en una mquina virtual que corriese en un ordenador que no fuese de Apple. Se valor muy conscientemente la utilizacin de una mquina virtual pero las lecturas de diversos foros en internet as como los consejos de otras personas que desarrollaban para este sistema operativo conllevaron a dejar definitivamente de lado esta opcin. El problema resida en que la arquitectura interna de los ordenadores de Apple no es la misma que la de los PCs convencionales, por lo que a la hora de programar para ella, podra haber muchas desavenencias. Aunque la mquina virtual simulara esta arquitectura, la experiencia de otras personas que lo haban intentado deca que una aplicacin desarrollada bajo este mtodo, podra o no funcionar correctamente en el dispositivo mvil. Mayoritariamente los casos eran de fracaso, y muy pocos casos eran de xito utilizando esta metodologa.

El anterior inconveniente fue el definitivo para discriminar totalmente esa opcin, pero a ese inconveniente se le sumaban pequeos detalles que lo hacan inviable. Uno de esos detalles es que no se posea un terminal real para probar la aplicacin al mismo tiempo que estaba siendo desarrollada. Este era un hndicap que se tena que tener en cuenta ya que no siempre es seguro que lo que funcione en el emulador o simulador del entorno de desarrollo, luego llegue a funcionar en el dispositivo mvil. Por eso se tuvo en cuenta que la plataforma para la que se desarrollara fuera una a la que se tuviera acceso mediante un terminal real.

Una vez desechada la opcin de iOS, se valoraron otras dos: la de Symbian y la de RIM. La opcin de RIM era atractiva en el sentido comercial. Un estudio reflejaba que porcentualmente los usuarios de BlackBerry eran los que ms descargaban aplicaciones de pago para su mvil, incluso se prev que hasta el ao 2015 ms de un tercio de la cuota de estos usuarios que utilizan el sistema de descarga de aplicaciones de pago de cada plataforma, sean usuarios de BlackBerry, como vemos en la figura 3.3. Este hecho se debe a que estos usuarios tienen un perfil empresarial con un nivel adquisitivo medio-alto.

Figura 3.3. Estimacin del uso del Market de cada plataforma hasta 2015

La anterior circunstancia hizo valorar fehacientemente la alternativa ofrecida por RIM. Aunque sus usuarios fueran propicios a descargar aplicaciones para su mvil sin importarles que fueran de pago, la cantidad de personas que posean una BlackBerry no era tan elevada como las personas que contenan otras plataformas como iOS o Symbian. Este aspecto se tuvo muy en cuenta ya que la intencin era que VAiPho llegara al mximo de usuarios posibles para que su funcionamiento fuera ptimo, como despus comentaremos.

Sin embargo, BlackBerry permita una programacin conocida, ya que se poda desarrollar para RIM tanto en Java ME (J2ME), como en C++. Era un aspecto positivo a valorar ya que se ahorrara el tiempo necesario para conocer el lenguaje de programacin. Finalmente, esta ventaja no pes tanto como la desventaja anterior ni como el inconveniente, nuevamente, de no poseer un terminal para hacer las pruebas de desarrollo para no llevarse despus sorpresas de incompatibilidades con el sistema real.

Llegados a este punto la alternativa que quedaba era la de la compaa Nokia. La posibilidad se valor desde el primer momento debido a que se contaba con dos terminales reales para hacer pruebas de desarrollo. Adems de esta circunstancia, Nokia con su sistema operativo Symbian, en 2010, segua a la cabeza de la clasificacin de telfonos distribuidos en todo el mundo. Aunque est perdiendo mucho mercado respecto a telfonos Android o los iPhone de Apple, sigue siendo el lder mundial de telefona, como vemos en la figura 3.4.

Figura 3.4. Grfica comparativa del mercado de las distintas plataformas mviles

Otra ventaja de utilizar Symbian es que permita desarrollar las aplicaciones en Java ME, lenguaje conocido que como se comentaba antes permita ahorrarse el tiempo asignado a conocer el lenguaje de programacin.

Adems se encontraron otras diez razones por las que programar para Symbian:1) Versatilidad: Symbian es la nica plataforma compatible con dispositivos de gama alta, gama baja, teclado QWERTY, pantalla tctil y Smartphones.2) Ovi Tienda: Posee una tienda con 3 millones de descargas al da. 2,6 descargas por visita. 1.000.000.000 de descargas al ao y disponible en 30 idiomas.3) Crecimiento de la tienda: Se ha duplicado en 9 meses el nmero de descargas al da, creciendo a un ritmo de 2,6 personas por segundo, lo que se traduce en 200.000 nuevos usuarios al da.

4) Mejora continua: Symbian es un sistema operativo que est continuamente en crecimiento y desarrollo. Ms de 250 nuevas caractersticas han sido incluidas en el nuevo Symbian (Symbian^3).

5) Futuro: El sistema operativo ser compatible con otros dispositivos en los prximos aos.

6) Symbian y Nokia son N1: Se planea vender 50 millones de dispositivos mviles que incluyen el nuevo Symbian (el sistema operativo ms usado en el mundo), lo que se traduce en 50 millones de clientes potenciales.

7) Idiomas: Existen diferentes lenguajes de programacin para los que Symbian te permite desarrollar: Qt, Qt Quick y HTML5. Con una reduccin del 70% del cdigo, hay ms tiempo para mejorar la aplicacin, o hacer una nueva.

8) Concursos: El concurso Calling All Innovators premia con 100 millones de dlares a los desarrolladores, repartidos en 17 premios de 150.000 dlares y dos premios de 250.000 dlares en efectivo y 1,9 millones en marketing de Nokia.

9) Facturacin a travs del operador telefnico: Dos de cada tres usuarios con opcin de pago a travs del operador telefnico lo elige, antes que la tarjeta de crdito. Ovi Market trabaja con 99 operadores telefnicos en 29 pases.

10) Casos de xito: 88 desarrolladores han superado el milln de descargas en Ovi Market. La aplicacin Digital Chocolate cuenta con ms de 4 millones de juegos descargados; HeroCraft, con ms de 10 millones; Lunaforte, ms de 6 millones; Idevio con 2 millones de descargas; y Shazam, al poco tiempo de su lanzamiento, ya duplicaba su disponibilidad pasando de 60 a 120 pases.

Todas estn razones que se han explicado conllevaron a concluir que en este proyecto, la implantacin de VAiPho se desarrollara para la plataforma mvil Symbian. Una vez que se tuvo claro el sistema para el cual se programara tocaba elegir el lenguaje de programacin que se usara para desarrollar la aplicacin. En este punto tambin se tuvieron varias posibilidades.

3.2. Lenguaje de programacin

Un nuevo frente se abra con la eleccin del lenguaje de programacin a usar para el desarrollo en Symbian. En este aspecto haba dos posibilidades, usar el leng