TRABAJO FIN DE GRADO Título Comparativa de servicios de localización Autor/es Óscar Martínez Oliván Director/es Angel Luis Rubio García Facultad Facultad de Ciencias, Estudios Agroalimentarios e Informática Titulación Grado en Ingeniería Informática Departamento Curso Académico 2012-2013 Comparativa de servicios de localización, trabajo fin de grado de Óscar Martínez Oliván, dirigido por Angel Luis Rubio García (publicado por la Universidad de La Rioja), se difunde bajo una Licencia Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported. Permisos que vayan más allá de lo cubierto por esta licencia pueden solicitarse a los titulares del copyright. © © El autor Universidad de La Rioja, Servicio de Publicaciones, 2013 publicaciones.unirioja.es E-mail: publicaciones@unirioja.es FACULTAD DE CIENCIAS, ESTUDIOS AGROALIMENTARIOS E INFORMÁTICA TITULACIÓN: Grado en Ingeniería Informática TÍTULO DEL PROYECTO O TRABAJO FIN DE GRADO: Comparativa de servicios de localización DIRECTOR DEL PROYECTO O TRABAJO: Ángel Luis Rubio García DEPARTAMENTO: Matemáticas y Computación ALUMNO: Óscar Martínez Oliván CURSO ACADÉMICO: 2012 / 2013 CONVOCATORIA: Junio de 2013 ÍNDICE DE CONTENIDOS Resumen ……………………………………………………………………………………................. 3 Summary ……………………………………………………………………………………................. 3 Introducción …………………………………………………………………………………............... 4 1. Contexto …………………………………………………………………………………………... 4 2. Objetivos …………………………………………………………………………………………... 6 3. Primer contacto ………………………………………………………………………………….. 7 Desarrollo ……………………………………………………………………………………………... 11 4. Tecnologías ……………………………………………………………………………………… 11 4.1. GPS …………………………………………………………………………………….... 11 4.2. WPS ……………………………………………………………………………………… 13 4.3. Redes móviles (GSM) ………………………………………………………………... 15 4.4. Direcciones IP …………………………………………………………………………. 18 5. Aplicaciones …………………………………………………………………………………….. 20 5.1. Aplicaciones online ………………………………………………………………….. 21 5.1.1. Mapas ………………………………………………………………………. 21 5.1.2. Imágenes y geoetiquetado ……………………………………………. 22 5.1.3. Redes sociales …………………………………………………………….. 23 5.2. Aplicaciones para teléfonos móviles …………………………………………….. 24 5.2.1. Mapas ………………………………………………………………………. 25 5.2.2. Navegación GPS …………………………………………………………. 26 5.2.3. Redes sociales …………………………………………………………….. 27 5.2.4. Puntos de interés …………………………………………………………. 28 5.2.5. Realidad aumentada ……………………………………………………. 29 6. Privacidad ……………………………………………………………………………………….. 30 7. Seguridad ………………………………………………………………………………………… 37 7.1. Sistema operativo ……………………………………………………………………. 37 7.2. Software de geolocalización ……………………………………………………… 40 7.3. Comunicaciones en la red …………………………………………………………. 42 7.4. Seguridad física ……………………………………………………………………….. 44 7.5. Desarrollo de aplicaciones seguras ………………………………………………. 46 8. Ejemplo aplicación de geolocalización ……………………………………….………….. 50 Conclusiones …………………………………………………………………………………………. 54 Bibliografía ……………………………………………………………………………………………. 55 -2- RESUMEN La geolocalización ha tenido una gran evolución en los últimos años y se ha convertido en una parte importante de nuestras vidas. En este trabajo hablaré de las diferentes tecnologías de localización actuales, de sus aplicaciones en la vida diaria de los usuarios, de los diferentes problemas que puede tener para la privacidad de las personas y así como de las precauciones que deben tomar tanto los usuarios como los desarrolladores con esta tecnología. En la última parte del trabajo realizaré una pequeña explicación técnica de una aplicación de ejemplo que utilizará servicios de geolocalización. SUMMARY The geolocation has had a great evolution in recent years and it has become an important part of our lives. In this research I will discuss the different current location technologies, their applications in daily life of users, the different problems that may have for personal privacy and as well as the precautions to take by users and developers with this technology. In the last part of the research I will make a small technical explanation of a sample application that uses geolocation services. -3- INTRODUCCIÓN 1. CONTEXTO Para encontrar los comienzos de las tecnologías de localización nos tenemos que remontar miles de años, cuando los indios americanos empezaron a utilizar señales de humo para localizar sus hogares e incluso para comunicar mensajes. Pero fue a partir del siglo XX cuando las tecnologías de localización han experimentado una gran evolución. A principios de 1900, mediante la medición de la fuerza de las señales de radio, tanto barcos como aviones como tropas militares de tierra empezaron a ser capaces de calcular sus coordenadas desde distancias muy largas. En los años 60, un grupo de satélites orbitaban alrededor del planeta Tierra permitiendo triangular la posición de un receptor. Los satélites enviaban mensajes con marcas de tiempo y el receptor calculaba la distancia a cada satélite basándose en la velocidad de los mensajes entrantes en comparación con el momento en que fueron enviados. Debido a propósitos militares, el tamaño de dichos receptores se fue viendo reducido con el paso de los años. Hasta que en los 90, el GPS de navegación para automóviles se convirtió en el primer dispositivo de localización creado para ganar fuerza entre los consumidores. El siguiente gran salto se produjo con la llegada de los teléfonos móviles. Aunque los teléfonos móviles empezaron a llevar tecnologías de localización a principios del siglo XXI, la aparición del iPhone de Apple trajo consigo el mayor cambio en la industria. Permitió que una gran cantidad de terceros empezaran a desarrollar programas que aprovechaban las ventajas del hardware de posicionamiento que integraban los teléfonos móviles. Actualmente, con la tecnología ya en las manos de millones de consumidores, el coste de crear una aplicación de geolocalización que señale la localización precisa de un usuario en el planeta Tierra es realmente cero. Cualquiera que tenga la paciencia de estudiarse unos cuantos tutoriales de programación es capaz de crear una de dichas aplicaciones. -4- La idea de la realización de este Trabajo de Fin de Grado parte del Proyecto de Fin de Carrera que realice durante el curso académico 2008/2009. En esa época yo me encontraba trabajando en una empresa que utilizaba dispositivos bluetooth de reconocimiento de teléfonos móviles y me surgió la idea de que mi Proyecto de Fin de Carrera podría consistir en el desarrollo de un Sistema de Control de Acceso de Personal vía Bluetooth. Dicho sistema consistía en la colocación de emisores bluetooth en las distintas entradas de una empresa, que registrarían la entrada y la salida de los empleados mediante el bluetooth de sus teléfonos móviles y que permitirían el envío de notificaciones a los empleados cuando pasasen cerca de alguno de dichos emisores bluetooth. Actualmente parece que la tecnología bluetooth ha desaparecido del mapa de las tecnologías de localización. Esto se debe principalmente al gran auge que han experimentado en los últimos tiempos otras tecnologías que permiten conexiones más rápidas, un rango de distancias mayor y mejores mecanismos de seguridad, y lo que es más importante, permiten que cualquier dispositivo conectado a Internet (bien se trate de un teléfono móvil, un ordenador portátil, un equipo de sobremesa, etc.) pueda obtener todo tipo de información en tiempo real, así como la localización de la misma con total precisión. En particular, los dispositivos móviles se prestan especialmente a la aplicación de las tecnologías de geolocalización. Aparte del desarrollo de múltiples mecanismos que permiten la localización geográfica de un dispositivo, el desarrollo de la banda ancha móvil permite la conexión permanente a Internet para los denominados “teléfonos inteligentes” (smartphones). Además, la combinación de esta tecnología con los sistemas de almacenamiento “en la nube” (cloud) permite la sincronización automática de información entre dispositivos heterogéneos. Por tanto, debido a mi experiencia previa en el campo de la localización de personas, así como la extensión de estas tecnologías y su demanda actual, he decidido que el tema de mi Trabajo de Fin de Grado va a ser la geolocalización. -5- 2. OBJETIVOS Por un lado, realizaré un análisis de las diferentes tecnologías que se utilizan hoy en día para geolocalizar personas, así como de las diferentes aplicaciones prácticas de dichas tecnologías. Y por otra parte, debido a la naturaleza de la información utilizada por las tecnologías de geolocalización, en general información privada o por lo menos sensible, realizaré un estudio de los riesgos relacionados con la geolocalización, tanto para la privacidad como para la seguridad, además de una enumeración de ciertas recomendaciones para el uso de aplicaciones de geolocalización. A continuación presento una lista con los objetivos que se esperan alcanzar en el desarrollo de este Trabajo de Fin de Grado: • Realizar una buena planificación de las tareas previstas para la elaboración del Trabajo de Fin de Grado, preparando un calendario de desarrollo del trabajo, a partir de las horas que se pueden invertir cada día, así como de las horas estimadas para cada tarea, teniendo en cuanta tanto los días festivos como las reuniones de control del tutor. • Recopilar documentación relacionada con el tema del trabajo desde distintos puntos de vista, no simplemente desde un punto de vista tecnológico. Dicho proceso de recopilación de documentación se intentará realizar de forma ordenada y sistemática, para que sea fácilmente accesible a lo largo de la elaboración de la memoria. • Explicar las principales tecnologías de georreferenciación que se utilizan actualmente, explicando tanto su funcionamiento como sus principales características. • Detallar los diferentes tipos de aplicaciones que utilizan geolocalización, además de señalar ejemplos y casos de éxito de cada uno de los tipos. • Analizar los riesgos existentes en los procesos de geolocalización en cuanto a la privacidad de las personas e intentar redactar una serie de consejos para un buen uso de aplicaciones que utilizan dichos procesos. -6- • Examinar las amenazas de seguridad asociadas a los procesos de geolocalización, tanto para el software como para el hardware. • Redactar la memoria de manera continuada y en paralelo a otras tareas del Trabajo de Fin de Grado, intentando de esta manera que la revisión final y el cierre del trabajo no lleven demasiado tiempo. • Preparar la defensa del Trabajo de Fin de Grado según las pautas dadas para la realización de una buena presentación en la asignatura “Taller transversal II: bases de datos y sistemas de información”. 3. PRIMER CONTACTO Por último, antes de empezar con el desarrollo del trabajo, creo necesario hablar de ciertos aspectos generales sobre la geolocalización, así como dar un glosario de términos. Empecemos definiendo el término geolocalización. La geolocalización consiste en la unión de una serie de tecnologías que tienen como fin la utilización de cierta información vinculada a una localización geográfica del mundo real. Se pueden distinguir principalmente tres componentes asociados a todo proceso de geolocalización: • Un dispositivo hardware, que actuará como plataforma en la que se desarrollará el proceso de geolocalización. Puede tratarse de un ordenador de sobremesa, un ordenador portátil, un dispositivo móvil, un navegador GPS, una cámara de fotos, etc. En ciertos casos, el propio dispositivo hardware tiene incorporada la tecnología necesaria para permitir dicha localización (por ejemplo, un receptor GPS). • Un programa software, que ejecutará el proceso de geolocalización. Este software se ejecutará en el dispositivo hardware, y se apoyará en éste para llevar a cabo la búsqueda de información, -7- la determinación de localizaciones geográficas, y la asociación de ambos elementos. • Una conexión a Internet, que actuará como medio de obtención e intercambio de información y, en ocasiones, como sistema de almacenamiento y procesamiento de la misma (según el modelo cloud). Excepcionalmente, pueden ejecutarse procesos de geolocalización sin utilizar una conexión a Internet (modo fuera de línea), cuando los datos necesarios se encuentren cargados con antelación en la memoria del dispositivo. También se pueden diferenciar principalmente tres procesos comunes para las tecnologías de geolocalización: • La georreferenciación, que se basa en la localización física de un objeto o individuo en un sistema de coordenadas, para posteriormente acceder a información específica. Un ejemplo de esto sería la utilización de un sistema de navegación mediante GPS. • La geocodificación, que consiste en la búsqueda de información y su localización física en un sistema de coordenadas. Un ejemplo de esto sería la utilización de un servicio de mapas para buscar museos en una ciudad determinada. • El geoetiquetado, que consiste en la adición de información geográfica a un contenido generado, usualmente como paso posterior a un proceso de georreferenciación. Un ejemplo de esto sería la creación de una fotografía, incluyendo en sus metadatos las coordenadas del lugar en que fue tomada. Dada la importancia del proceso de georreferenciación, y debido a que juega un papel importante en la gran mayoría de las aplicaciones de geolocalización, en ocasiones se utilizan ambos términos indistintamente. -8- A continuación se presenta un glosario de términos geolocalización: • Almacenamiento en la nube (cloud): Hace referencia al sistema que permite a los usuarios almacenar toda su información, ficheros y datos en servidores de terceros, de forma que puedan ser accesibles desde cualquier sistema con acceso a Internet. • Geocodificación: Proceso de asignación de unas coordenadas geográficas a un punto del mapa. • Geocodificación Proceso inversa: consistente en la obtención, a partir de una coordenada geográfica, de una localización legible por humanos (dirección, nombres de lugares, etc.). • Geoetiquetado: Proceso de adición de información geográfica a los metadatos de un fichero, de forma que se permite su posterior georreferenciación. • Geomática: Conjunto de dominios del conocimiento orientados a la captura, procesamiento, almacenamiento, y difusión de información geográfica. Las tecnologías de geolocalización se inscribirían dentro de la geomática. • Georreferenciación: Proceso de definición de un objeto en un espacio físico, mediante el cálculo de su localización en un sistema de coordenadas. • GPS: Global Positioning System o Sistema de Posicionamiento Global. • Latitud y longitud: Coordenadas que miden el ángulo entre un punto cualquiera y su referencia (el ecuador para la latitud y el meridiano de Greenwich para la longitud). En la práctica, la combinación de ambos ángulos permiten expresar cualquier posición en la superficie de la Tierra. • Metadatos: Pueden definirse como un conjunto de datos que definen o caracterizan a una cierta información a la que están asociados. -9- sobre • Triangulación: Método geométrico basado en la trigonometría de triángulos que, usando como referencia la posición de varios puntos conocidos, permite determinar de forma precisa la posición de otro desconocido. - 10 - DESARROLLO 4. TECNOLOGÍAS Como ya geolocalización se al ha comentado conjunto de anteriormente, tecnologías que se denomina combinan la georreferenciación de elementos del mundo real con la información obtenida a través de una conexión a Internet. Debido a que es la base de la geolocalización, empezaré el desarrollo de la memoria describiendo las tecnologías de georreferenciación más relevantes. El orden que he elegido para presentarlas está basado en la precisión actual de cada una de las tecnologías (de más precisa a menos precisa). 4.1. GPS Los objetivos iniciales del desarrollo del Sistema de Posicionamiento Mundial, más conocido por sus siglas en inglés GPS (Global Positioning System), fueron militares. El surgimiento de esta tecnología fue similar al de la actual Internet, creado e instalado a comienzos de los años 60 por el Departamento de Defensa y la Agencia Espacial Estadounidenses. Sin embargo, sus utilidades están hoy relacionadas con servicios que permiten mejorar la calidad de vida de las personas. El GPS funciona a través de un Sistema Global de Navegación por Satélite (GNSS) que permite establecer la posición de una persona, un vehículo o una nave en todo el mundo a través de la latitud, la longitud y la altitud. La red GPS está formada por 24 satélites en órbita. Dichos satélites están sincronizados para cubrir en todo momento la superficie de la tierra. Mediante la triangulación de los satélites GPS, es posible georreferenciar un dispositivo con una precisión de entre 1 y 15 metros (en torno a los 3 metros en el 95% de las ocasiones). - 11 - En la utilización de dicha tecnología es imprescindible contar con un aparato receptor de GPS, ya que los satélites actúan únicamente como emisores de señal, siendo imposible localizar a un receptor concreto desde la red GPS. Para ubicar la posición exacta donde nos encontramos situados, el receptor GPS tiene que localizar por lo menos 3 satélites que le sirvan de puntos de referencia. En realidad eso no constituye ningún problema porque normalmente siempre hay 8 satélites dentro del “campo visual” de cualquier receptor GPS. Para determinar en que lugar exacto se encuentran los satélites en un momento concreto, el receptor tiene en su memoria un calendario electrónico que contiene datos sobre la órbita de los satélites. Generalmente los receptores GPS no trabajan con precisión o directamente no funcionan cuando se encuentran bajo techo. Por lo tanto, hay que situarlos preferiblemente donde no existan obstáculos que impidan la visibilidad y reduzcan su capacidad de captar las señales que envían a la Tierra los satélites. Cuando el receptor detecta el primer satélite se genera una esfera virtual, cuyo centro es el propio satélite. El radio de la esfera será igual a la distancia que separa al satélite del receptor. Éste último asume entonces que se encuentra situado en un punto cualquiera de la superficie de la esfera, que aún no puede precisar. Después se calcula la distancia hasta un segundo satélite y se genera otra esfera virtual. La esfera anteriormente creada se superpone a esta otra y se crea un anillo imaginario que pasa por los dos puntos donde se interceptan ambas esferas. A continuación el receptor calcula la distancia a un tercer satélite y se genera una tercera esfera virtual. Esa esfera se corta con el anillo anteriormente creado en dos puntos, uno en el espacio y el otro en la superficie de la Tierra. El receptor GPS discrimina como ubicación el punto situado en el espacio utilizando ciertos recursos matemáticos de posicionamiento que almacena y toma como posición correcta el punto situado en la Tierra. De esta forma el receptor GPS ya conoce las coordenadas de su posición, es decir, la latitud y la longitud. - 12 - Para detectar también la altitud a la que se encuentra situado el receptor GPS sobre el nivel del mar, tendrá que medir adicionalmente la distancia que lo separa de un cuarto satélite y generar otra esfera virtual que permitirá determinar esa medición. Una vez visto el funcionamiento de esta tecnología tan precisa, se debe comentar que existen ciertos factores que pueden influir en el desplazamiento de la señal entre los satélites y los aparatos receptores, como son las condiciones atmosféricas locales, el ángulo existente entre el satélite y el receptor GPS o la interferencia de obstáculos en el campo de transmisión, ya sean de tipo natural (elevaciones montañosas, vegetación) o artificial (presencia de líneas eléctricas, edificaciones, estructuras). Si sumamos el tiempo que necesita cada señal en viajar desde los satélites hasta el punto donde el receptor GPS se encuentra situado y el tiempo necesario para realizar los correspondientes cálculos matemáticos para conocer la localización del receptor GPS, se puede decir sin lugar a equivocarnos que GPS es la tecnología de geolocalización más lenta de todas, pero también es con diferencia la más precisa. 4.2. WPS Gracias a la utilización de enormes bases de datos de miles de millones de puntos de acceso Wi-Fi, creadas y recopiladas por distintas empresas, como por ejemplo Google o Skyhook, es posible georreferenciar un dispositivo con una precisión proporcional al alcance de una red Wi-Fi inalámbrica, normalmente entre 30 y 100 metros. El funcionamiento de esta tecnología depende de la cobertura del servicio inalámbrico en la zona, así como de la actualización de sus bases de datos. Conocido como WPS (Wi-Fi Positioning System), esta tecnología obviamente sólo es útil para determinar la ubicación de un dispositivo con capacidad Wi-Fi, como puede ser un teléfono móvil, un tablet o un ordenador portátil. Al igual que la geolocalización por GPS, dicha tecnología se basa en el método geométrico de la triangulación para situar los dispositivos. Por lo tanto, debe usar 3 o más puntos de referencia y ciertas distancias conocidas para calcular la ubicación exacta de un objeto. - 13 - Primero, el dispositivo comienza a analizar las distintas señales inalámbricas provenientes de routers o puntos de acceso Wi-Fi que hay en su radio de alcance. Da exactamente igual que las redes sean privadas o públicas. No importa que la red esté protegida, que sea WPA2 o que la clave tenga mil caracteres porque está tecnología no usa el nombre de la red, ni los paquetes que se transmiten por ella. Principalmente utiliza la dirección MAC del router o punto de acceso Wi-Fi, que como ya sabemos es un identificador único de cada dispositivo de red que nunca cambia y siempre va en texto claro entre las ondas. Luego el dispositivo se conecta a Internet para consultar alguna de las bases de datos con miles y miles de puntos de acceso Wi-Fi y compararlas con los valores capturados. Debido a que dichas bases de datos tienen información muy específica sobre cada uno de esos puntos de acceso Wi-Fi, como la intensidad de la señal, la localización geográfica, pero sobre todo la dirección MAC, esta tecnología puede determinar rápidamente el primer punto de referencia más próximo al dispositivo a localizar. Una vez localizado el primer punto de referencia, ya se conoce que el dispositivo puede estar en un radio de 100 metros alrededor de las coordenadas de dicho punto de acceso Wi-Fi. Esa es toda la información que un solo punto de referencia nos brinda. A continuación, se determina que, por ejemplo, el dispositivo está a 50 metros de un segundo punto de referencia. De la misma forma, se precisa, gracias a la base de datos, que el primer punto de acceso Wi-Fi localizado y el segundo están a 200 metros el uno del otro. Al agregar un tercer punto de referencia, gracias al método de triangulación, rápidamente se puede determinar la ubicación “exacta” del dispositivo. Pero, ¿cómo hacen Google o Skyhook para saber dónde se encuentra un determinado router o punto de acceso Wi-Fi? Lo que hacen realmente es peinar las ciudades con flotas de vehículos, equipados con sistemas para escanear las redes Wi-Fi que tengan a su alrededor, e ir asociando sus identificadores únicos, es decir, sus direcciones MAC, a los lugares en los que han sido escaneadas. - 14 - Así, por ejemplo, si tenemos una red Wi-Fi en nuestra casa, y el coche de Google o Skyhook pasa por debajo de ella, automáticamente obtendrá el identificador único de nuestro router Wi-Fi, y lo asociará a la localización por la que estaba circulando. Obviamente no lo asociará con una precisión exacta, debido al alcance variable según la intensidad de la señal inalámbrica de las redes Wi-Fi. De este modo, algunas empresas han acabado teniendo una base de datos con millones de identificadores únicos Wi-Fi, asociados a localizaciones geográficas específicas. Dichas bases de datos son actualizadas cada cierto tiempo mediante nuevas búsquedas en zonas ya rastreadas, para captar nuevas redes y corregir redes desubicadas, lo que les permite tener una base de datos actualizada y útil. En algunos casos, cuando un dispositivo combina esta tecnología con la de GPS también permite realimentar y actualizar dichas bases de datos. Por lo tanto, la tecnología WPS, mediante una constante recopilación de información, puede ubicar un dispositivo con tarjeta inalámbrica Wi-Fi en una localización muy aproximada en cuestión de segundos. 4.3. REDES MÓVILES (GSM) Todo terminal conectado a una red móvil de telefonía y/o datos puede ser georreferenciado, con una precisión que depende directamente del radio de cobertura del dispositivo y del número de torres de telefonía que hay alrededor del terminal. Dicho número es mucho más alto en los núcleos urbanos, permitiendo una precisión de entre 50 y 500 metros, que en zonas más alejadas de las ciudades, con una precisión entre 2 y 4 kilómetros. GSM (siglas en inglés de Sistema Global de Comunicaciones Móviles) es el protocolo más extendido de la telefonía móvil en el mundo y el que se ha implantado en España. La tecnología de las redes de telefonía móvil ha evolucionado durante los últimos años, principalmente en el transporte de datos. - 15 - Dicha tecnología la usan sobre todo los navegadores de los dispositivos móviles y se basa en la distancia relativa a las distintas torres de telefonía móvil. Actualmente es una tecnología rápida y si el dispositivo se encuentra en un entorno urbano con muchas torres de telefonía pude dar una precisión bastante aceptable de forma casi instantánea. Cualquier teléfono móvil puede utilizar esta tecnología ya que no es necesario que tenga ningún complemento extra, como puede ser un receptor GPS o una tarjeta inalámbrica Wi-Fi. Igual que en las tecnologías anteriores, se usa el método geométrico de la triangulación, esta vez utilizando los repetidores de telefonía móvil, para geolocalizar los dispositivos. Pero en cambio existen varias técnicas diferentes para la ubicación de los terminales móviles. Algunas técnicas se basan en la identidad del celular. La posición se obtiene mediante la identidad de la celda en la que se encuentra el terminal móvil. Sirve para ubicar todo tipo de dispositivos móviles tanto en redes GSM como en redes GPRS, UMTS o CDMA, sin ningún tipo de requisito hacia las torres o repetidores de la red. Un ejemplo de estas técnicas sería CGI (Cell Global Identity), que identifica la célula en la que está el terminal móvil realizando una estimación de la distancia desde dicho terminal a la torre de telefonía móvil. La medición está basada en el retardo de acceso entre el principio de un intervalo de tiempo y la llegada de las ráfagas del terminal móvil. Existen otras técnicas que tienen ciertos requisitos en los equipos de red existentes, pero que permiten obtener mayor precisión. Por ejemplo, AOA (Angle of Arrival) utiliza antenas multiarray situadas en la estación base para determinar el ángulo de la señal incidente. Si un terminal que transmite una señal está en la línea de visión de la antena multiarray, entonces puede determinar de qué dirección viene la señal. Para conocer la posición del terminal es necesaria al menos una segunda estimación procedente de otra estación base con la misma tecnología que la primera. La segunda estación base localizará al terminal y comparará sus datos con los de la primera estación para después calcular la posición del usuario mediante trigonometría. En principio sólo son necesarias dos estaciones base para estimar la posición del terminal móvil, por este motivo AOA resulta efectiva en - 16 - entornos rurales, donde es complicado disponer de visión de varias estaciones base al mismo tiempo. Otro ejemplo sería TOA (Time of Arrival). Esta técnica se basa en la medición del tiempo de llegada de una señal transmitida por un terminal móvil a diferentes estaciones base. Para obtener una precisión aceptable en el cálculo de la posición de un terminal es necesario efectuar medidas al menos respecto a tres estaciones base, que deben estar sincronizadas para evitar errores de precisión. Las medidas permiten trazar circunferencias con centro en cada una de las estaciones base, dando su intersección como resultado el punto donde se encuentra el terminal que se desea localizar. Posteriormente se transmiten al servidor de localización, que realiza los cálculos y corrige los errores utilizando ciertos métodos matemáticos. Una desventaja que presenta esta técnica es que la ausencia de visión directa entre el terminal y la estación base puede causar un error que desemboque en una falsa estimación. Existen muchas más técnicas de geolocalización mediante antenas de telefonía móvil, lo que hace a esta tecnología ser la que más variables tiene a la hora de georreferenciar un dispositivo. Pero la principal característica que diferencia esta tecnología de las comentadas anteriormente es que es posible localizar a un dispositivo concreto desde las redes móviles sin necesidad de que lo solicite el propio terminal. Esto se conoce como localización pasiva. A través del uso de las redes GSM para localizar un teléfono celular, ya no es necesario efectuar una llamada a dicho teléfono móvil con el fin de poder ubicar geográficamente al dispositivo (lo que se conoce como localización activa, una de las técnicas más antiguas para establecer la ubicación correcta de un teléfono móvil), aunque cabe destacar que el equipo debe estar encendido para que la búsqueda pueda concluir con resultados exitosos. Hoy en día, incluso se usa para reconstruir la posición de algún acusado en base a la posición de su móvil en un día determinado y de los ficheros que guarda su operadora. - 17 - 4.4. DIRECCIONES IP Esta tecnología es la menos precisa y se usa ya desde hace mucho tiempo. Relaciona la dirección IP con tu proveedor de servicios (ISP) y a través de ello te da la ciudad donde tu proveedor tiene el centro de datos. Básicamente se utilizan bases de datos de asignación de direcciones IP a proveedores y su distribución geográfica. En la práctica, no es un mecanismo de localización “válido” para establecer georreferenciación, excepto en ocasiones muy específicas donde la precisión no es un factor importante. Habitualmente nos encontramos con páginas web o anuncios que nos muestran, con mayor o menor acierto, la ciudad desde la que estamos accediendo a Internet. El problema de esta tecnología es que depende de la información sobre la localización de las direcciones IP que los datacenters del ISP tienen almacenada en sus registros. Pero resulta que los ISP no son demasiado metódicos al mantener actualizada dicha información, y si a esto le añadimos que entre un 2% y un 5% de las direcciones IP cambian mensualmente, debido a que las direcciones IP se reasignan o que los usuarios reinician sus módems, entre otros factores, dicha tecnología resultar no ser demasiado precisa. Estamos hablando de un error que, de media y utilizando la mejor técnica actual, alcanza los 35 kilómetros. ¿Pero realmente es ésta la mayor precisión que podemos alcanzar con esta tecnología? Hasta ahora sí. Pero resulta que un grupo de científicos de la Universidad de Illinois ha anunciado la implementación de una nueva técnica que es capaz de reducir este error medio hasta los 690 metros, llegando incluso a localizar a usuarios con tan sólo 100 metros de diferencia respecto a su ubicación real. Este nuevo proceso se divide en tres pasos: • En primer lugar, se hace un ping a la dirección IP que se desea localizar desde varios servidores. Con el tiempo de tránsito y otras variables se puede obtener la distancia con una exactitud de unos 200 kilómetros, según dicho estudio. El objetivo es ubicar la IP en una región concreta, aunque aún no se tenga la ubicación exacta. - 18 - • En el segundo paso, se localizan empresas, instituciones académicas o edificios del gobierno, previamente almacenadas en una base de datos, que estén en la región que se ha calculado anteriormente. Muchos de ellos hospedan sus páginas web de forma local y, en ellas, suelen incluir la dirección Lógicamente, se física (calle, descartarían los código postal, dominios que etc.). usan alojamiento compartido o alojamiento de forma no local. La localización y uso de estos puntos de referencia, de nuevo para medir tiempos, es clave en todo este proceso. • Finalmente, se vuelve a repetir todo el proceso de manera local y tomando una región más pequeña con los datos obtenidos en el punto anterior. Posiblemente la conclusión más importante que se puede sacar de este nuevo proceso (mucho más preciso que el actual) para la geolocalización de direcciones IP, es que, al igual que pasaba con la localización pasiva de terminales en las redes móviles, tendríamos otra tecnología bastante precisa con la cual no es necesario que el usuario proporcione su permiso para geolocalizarlo, ya que el rastreo puede llevarse a cabo de forma totalmente independiente al usuario. - 19 - 5. APLICACIONES Las aplicaciones prácticas de las tecnologías de geolocalización son muy variadas, y al tratarse de un entorno relativamente novedoso y emergente, las posibilidades de futuro del mismo son muy prometedoras. Se pueden diferenciar claramente dos entornos de uso de las aplicaciones de geolocalización: de ámbito personal y de ámbito profesional o empresarial. En el ámbito personal, la gran mayoría de las aplicaciones están relacionadas con el ocio. Existen multitud de tipos, que van desde las redes sociales (tradicionales como Facebook o Twitter, y específicas como Foursquare) hasta el uso de ciertas utilidades (navegadores GPS, trazado de rutas en mapas de carretera, senderismo, etc.). En el ámbito profesional o empresarial, se encuentran aplicaciones que van desde la seguridad (localización de vehículos siniestrados, georreferenciación de seguros de automóviles para conductores noveles, localización de vehículos robados, etc.) hasta los estudios de mercado (por ejemplo, mediante estadísticas generadas por redes sociales como Facebook o Foursquare). Dentro del conjunto de aplicaciones que hacen uso de las tecnologías de la geolocalización, se pueden distinguir principalmente dos grupos, en función de la interacción del usuario con dicha aplicación: • Las aplicaciones online, que son generalmente aplicaciones web utilizadas desde cualquier tipo de dispositivo, en las cuales el usuario solicita una localización y la aplicación responde con información ya existente en Internet. • Las aplicaciones para teléfonos móviles, que han sido diseñadas específicamente para su uso en dichos dispositivos. En estos casos, la localización del dispositivo móvil se utiliza como una variable más del sistema a la hora de calcular la información solicitada. A continuación, analizaré ambos conjuntos de aplicaciones, desglosándolos en categorías según su ámbito de actuación y enunciando algunos ejemplos ilustrativos. - 20 - 5.1. APLICACIONES ONLINE Se entiende por aplicación online aquella cuya funcionalidad solamente puede ser utilizada mediante una conexión a Internet. Normalmente, se trata de servicios web accesibles mediante un navegador estándar. Pero en ocasiones se ofrece como una aplicación independiente que debe ser instalada en el sistema operativo del dispositivo. Estas aplicaciones, mediante el uso de las tecnologías de geolocalización, interrelacionan la información existente en la Red, con aquella proporcionada por el usuario. Propiamente dicho, estas aplicaciones no realizan procesos de georreferenciación, sino que funcionan nutriéndose de información ya existente, y ofreciendo servicios de geocodificación y geocodificación inversa. 5.1.1. Mapas En este conjunto se engloban aquellas aplicaciones destinadas a la búsqueda de información en mapas. Entre los servicios típicos de este tipo de aplicaciones se encuentran la búsqueda de información y su geocodificación inversa, la consulta de diversos tipos de mapas (geográficos, físicos o callejeros), el cálculo de rutas (a pie o utilizando vehículos) o la creación de mapas personalizados. Usualmente, la utilización de estos servicios conlleva la asociación de una cuenta de usuario, permitiendo almacenar información como puntos de interés, mapas personalizados, etc. Algunos ejemplos de aplicaciones online de mapas son: • Google Maps, que es posiblemente el servicio de mapas más extendido, propiedad de la compañía Google, integra otras funcionalidades de la compañía e información de diversos servicios mediante el uso de capas adicionales. • Google Earth, que se trata de un Sistema de Información Geográfica (SIG), propiedad de Google, combina las funcionalidades de diversos servicios con recreaciones en 3D - 21 - de la superficie del planeta Tierra, de la Luna, e incluso de Marte. • Bing Maps, que es la contrapartida de la compañía Microsoft al servicio de Google Maps, ofrece funcionalidades muy similares y tecnologías equivalentes a la mayoría de las integradas por Google. 5.1.2. Imágenes y geoetiquetado Este conjunto de aplicaciones de geolocalización utiliza imágenes como medio de transmisión de la información. Las imágenes son capturadas y geoetiquetadas por algún tipo de dispositivo móvil, para posteriormente incluirse en una base de datos que permita su búsqueda y geocodificación como un servicio online. Algunos ejemplos de aplicaciones online de imágenes y geoetiquetado son: • Google Street View, que es una funcionalidad incluida en Google Maps y Google Earth, permite la visualización en dichas aplicaciones de imágenes panorámicas de las calles. Actualmente, incluye imágenes de 50 países diferentes, algunos de ellos, como por ejemplo España, con una cobertura casi total. • Street Side, que es una característica de Bing Maps análoga a Google Street View, tiene una cobertura muy inferior que por ahora se centra principalmente en Estados Unidos y ciertas zonas de Canadá, Francia, Holanda, Reino Unido y Alemania. • Panoramio, que pertenece a Google, es un servicio de compartición de fotografías realizadas, geoetiquetadas y georreferenciadas por los propios usuarios. • Flickr Maps, que es una aplicación que permite la búsqueda de fotografías geoetiquetadas, cuenta con más de 100 millones de fotografías geoposicionadas. - 22 - 5.1.3. Redes sociales En este conjunto se engloban las aplicaciones de geolocalización relacionadas con las redes sociales, la gran mayoría de las cuales se presentan en forma de funcionalidades extra para las redes sociales tradicionales, y que permiten integrar herramientas de georreferenciación mediante la utilización de dispositivos móviles. No obstante, existen algunos ejemplos de redes sociales geolocalizadas orientadas al entorno online, y no delimitadas únicamente a los dispositivos móviles, pero que, como se puede comprobar, van tendiendo a desaparecer: • Dopplr, que es una red social destinada a la organización de viajes, itinerarios y puntos de reunión, permite definir viajes de placer o de trabajo, compartir dicha información, recibir avisos en los alojamientos, así como recibir consejos de otros usuarios. • Plazes, que finalmente quedó fuera de servicio a mediados del año pasado, era una red social destinada a compartir la ubicación y actividad de sus usuarios. • Fire Tagle, que es una red social propiedad de Yahoo!, actúa como almacén de localizaciones de sus usuarios y permite centralizar y manejar desde un solo lugar y de manera cómoda nuestros datos de geolocalización. Dicha red social se encuentra fuera de servicio desde febrero de este año. - 23 - 5.2. APLICACIONES PARA TELÉFONOS MÓVILES La mayoría de las aplicaciones de geolocalización se enmarcan dentro del ámbito de las tecnologías móviles. La incursión en el mercado de los denominados “teléfonos inteligentes” (smartphones), así como la extensión de las tecnologías de banda ancha móvil, han ayudado al crecimiento de este tipo de aplicaciones, de la misma manera que las comunidades de usuarios que las utilizan y respaldan. Según el informe sobre la Sociedad de la Información en España que la Fundación Telefónica realiza cada año, la proporción de smartphones en España en 2012 era del 63,2%, cuando en 2010 apenas era de un 28,3%. La compañía comScore realizó el año pasado un estudio sobre la penetración de dispositivos móviles en los principales mercados europeos, según el cual España ocupa la primera posición europea en uso de smartphones, por delante de países como Reino Unido, Francia, Italia o Alemania. España también lidera a nivel europeo en número de habitantes que acceden a Internet mediante conexiones de banda ancha móvil. Según el ministerio de Industria, Energía y Turismo, el 96% de los españoles tiene cobertura banda ancha móvil 3,5G. Dentro del mercado de los teléfonos inteligentes, se pueden encontrar los siguientes sistemas operativos, ordenados por cuota de mercado: • Android de Google (68,1%) • iOS de Apple (16,9%) • BlackBerry OS de RIM (4,8%) • Symbian OS (4,4%) • Windows Mobile de Microsoft (3,5%) • Linux (2,3%) • Otros (0,1%) Las aplicaciones de geolocalización para dispositivos móviles suelen hacer uso típicamente de la georreferenciación del propio dispositivo, bien para geoetiquetar contenido multimedia, o bien para llevar a cabo procesos de geocodificación o geocodificación inversa. - 24 - 5.2.1. Mapas En este conjunto se engloban aquellas aplicaciones destinadas a la búsqueda de información en mapas. La posición geográfica del usuario se utiliza como un elemento relevante en el proceso de búsqueda de información. Asimismo, también es habitual que estas aplicaciones se encuentren integradas con algún servicio online (e incluso aplicaciones de escritorio), permitiendo la sincronización de información en la nube. Algunos ejemplos de aplicaciones de mapas para dispositivos móviles son: • Google Maps, que está disponible para sistemas Android, BlackBerry, iOS, Symbian y Windows Mobile (de todas maneras las funcionalidades difieren de un sistema operativo a otro), es una aplicación que incorpora el servicio Google Maps online y la mayoría de sus funcionalidades en el dispositivo móvil. • Google Earth, que está disponible para algunos sistemas Android e iPhone, es una aplicación para teléfonos móviles que integra el servicio Google Earth y ciertas de las funcionalidades presentes en la aplicación de escritorio. • MyTracks (disponible para Android) y Map My Tracks (disponible para iOS, Symbian, BlackBerry y Windows Mobile) son dos aplicaciones que permiten grabar recorridos geolocalizados, así como añadirlos en otros servicios y redes sociales. • Sports Trackers, que está disponible de forma gratuita para Android, iOS, Symbian y Windows Mobile, es una aplicación que, a parte de registrar y compartir recorridos geolocalizados, calcula la velocidad media, la velocidad máxima o el desnivel (junto con otros parámetros), y además permite tomar fotos que automáticamente en la ruta. - 25 - son geoposicionadas 5.2.2. Navegación GPS En este conjunto se engloban aquellas aplicaciones destinadas a la navegación paso a paso (tanto a pie como en vehículos) haciendo uso de un dispositivo GPS. Su principal aplicación se encuentra en el mundo de la automoción. Algunos ejemplos de aplicaciones de navegación GPS para dispositivos móviles son: • Tom Tom Navigator, que es posiblemente el navegador GPS más extendido y utilizado, funciona sobre plataformas hardware propias (dispositivos embebidos), así como en Android, iOS, Windows Mobile o Symbian, cuya versión se encuentra actualmente descontinuada. Esta aplicación soporta varios idiomas, mapas para distintas zonas geográficas, puntos de interés personalizados e información del tráfico en tiempo real. • Google Maps Navigator, que es el navegador GPS de Google, está integrado con los mapas y funcionalidades del servicio Google Maps. Esta aplicación facilita información del tráfico en tiempo real y requiere de una conexión de datos para el uso de los mapas. Actualmente únicamente se encuentra disponible para Android. • CoPilot Live es un sistema de navegación GPS que funciona sobre plataformas hardware propias, pero que también es compatible con Android, iOS y Windows Mobile. • Waze, que está disponible para Android, iOS, Windows Mobile y Symbian, es un sistema de navegación GPS con información colaborativa sobre el estado del tráfico e incidencias en la carretera. Se trata de un GPS social basado en la información que los usuarios comparten en tiempo real. • Nokia OviMaps, que es el navegador GPS de Nokia, es compatible únicamente con algunos dispositivos con sistema operativo Symbian del fabricante finlandés. - 26 - 5.2.3. Redes sociales En este conjunto se engloban aquellas aplicaciones cuya finalidad principal consiste en la integración de información en redes sociales, bien tradicionales (como Facebook o Twitter) o bien específicas para aplicaciones móviles. Estas aplicaciones son las que mayor difusión presentan dentro del ámbito de la geolocalización en teléfonos móviles. Algunos ejemplos de dichas aplicaciones de redes sociales específicas para dispositivos móviles son: • Facebook Places es una aplicación de la red social Facebook que, haciendo uso de la georreferenciación de dispositivos móviles, permite compartir la posición del usuario con sus amigos. • Twitter Places es una funcionalidad de la red social Twitter que permite a los usuarios, mediante georreferenciación o especificación explícita, definir el lugar exacto asociado a un mensaje concreto. Incluye integración con las redes sociales Foursquare y Gowalla. • Foursquare es una red geosocial basada en la georreferenciación de sus usuarios, que pueden hacer “check-in” en diversos lugares. Con dicha información se puede participar en juegos sociales, promociones y eventos especiales. Su aplicación está disponible para Android, iOS, BlackBerry, Windows Phone y Linux. • Gowalla, que está disponible para Android, iOS, BlackBerry y Linux, así como a través de su página web, es una red geosocial basada en la georreferenciación de usuarios, y con un funcionamiento básico muy similar a Foursquare. • Google Latitude, que es una aplicación de geolocalización para dispositivos móviles de Google, se encuentra integrado con la mayoría de los servicios de Google y es compatible con Android, iOS, BlackBerry, Windows Mobile y Symbian. Permite a un usuario que otras personas de su lista de contactos puedan rastrear donde esta ubicado. - 27 - 5.2.4. Puntos de interés En este conjunto se engloban las aplicaciones que permiten al usuario localizar lugares de interés cercanos (restaurantes, tiendas, etc.) a partir de su posición geográfica. Algunos ejemplos de aplicaciones de puntos de interés para dispositivos móviles son: • Bliquo, que es una aplicación que se define como un “buscador de ocio urbano”, permite consultar directorios especializados de restaurantes, bares, discotecas, etc. Incorpora un componente social, al permitir la creación y consulta de comentarios y evaluaciones. Está disponible para iOS y Android. • AroundMe, que es una aplicación de búsqueda de puntos de interés cercanos disponible para Android, iOS y Windows Mobile, también permite reservar un hotel o ver la cartelera de un cine cercano. • Google Places Directory, que es un servicio de búsqueda de puntos de interés de Google, permite su integración en Google Maps, así como la definición de categorías personalizadas. Solamente se encuentra disponible para Android. • Buzzd, que dejo de operar a mediados del año pasado tras cinco años de funcionamiento, era otra red geosocial de búsqueda de puntos de interés. Dicha aplicación estaba disponible para Android, iOS y BlackBerry, y como servicio de red social a través de su página web. • McDonald’s podría ser un ejemplo de empresa que crea su propia aplicación de puntos de interés para que sus clientes más fieles puedan llegar fácilmente hasta el restaurante más cercana según la posición actual del usuario. - 28 - 5.2.5. Realidad aumentada En este conjunto se engloban aquellas aplicaciones que, haciendo uso de la georreferenciación, así como de otras tecnologías de detección (sensores de movimiento y orientación, brújula, etc.), permiten al usuario enriquecer la visión del mundo real, combinándola con la información virtual extraída de Internet. Gracias a la georreferenciación, es posible determinar la posición del usuario, y gracias a los sensores de orientación, es posible determinar hacia dónde está mirando. En cuanto a lo que observa, la aplicación captura la imagen del mundo real obtenida a través de una cámara y añade en la pantalla la información obtenida a través de Internet. Algunos ejemplos de aplicaciones de realidad aumentada para dispositivos móviles son: • Layar es una aplicación que funciona cargando desde Internet “capas” de información, que van desde transportes públicos hasta juegos sociales, pasando por información de Wikipedia, etc. Está disponible para terminales Android, iOS y Symbian. • Wikitude es un explorador de realidad aumentada centrado especialmente en el ámbito del turismo, incluyendo guías de viaje y rutas con navegación paso a paso. Está disponible para dispositivos Android, iOS, BlackBerry, Windows Phone y Symbian. - 29 - 6. PRIVACIDAD Como se ha visto en el apartado anterior, las aplicaciones de geolocalización forman parte de nuestras vidas y actualmente son utilizadas constantemente por millones y millones de personas. ¿Pero realmente son los usuarios conscientes de los riesgos que pueden tener el uso de dichas aplicaciones? Lo primero que habría que dejar claro es que la propia naturaleza de los datos que manejan las aplicaciones de geolocalización, referente a la posición georreferenciada de los usuarios, hace que se consideren aplicaciones especialmente sensibles desde el punto de vista de la privacidad. Posiblemente, el aspecto más importante relacionado con los riesgos de las aplicaciones de geolocalización sea el de la privacidad. Los datos manejados por las aplicaciones de geolocalización resultan especialmente delicados y su integración en las redes sociales agrava aún más el problema. De esta forma, resultaría peligroso que no existiera algún tipo de restricción en el medio en el que los datos estuvieran disponibles. El hecho de que cualquier persona pueda conocer la localización de un ciudadano conlleva riesgos que van desde el robo de datos, el hurto o robo físico, a la agresión contra su persona. Asimismo, el hecho de que pueda conocerse la posición de un usuario en todo momento, puede derivar en la creación de un perfil del mismo, y a ser utilizado sin autorización en estudios de mercado, envío de publicidad, etc. También conviene ser conscientes del riesgo que representa la ingeniería social en el caso de las redes sociales. Se conoce como ingeniería social a la práctica de obtener información confidencial a través de la manipulación de usuarios legítimos. Un usuario podría hacerse pasar por otra persona o entablar amistad o contacto con alguna excusa, ocultando algún interés malicioso. Otro aspecto importante, relacionado con la privacidad y la geolocalización, es la revelación involuntaria de información privada. Se encuentran ejemplos de personas que han comunicado a través de redes sociales su posición, encontrándose después con problemas al conocerse dicha información en su círculo laboral o personal. - 30 - El mayor problema, relacionado con la privacidad y la geolocalización, en la mayoría de las ocasiones, recae en el tratamiento irresponsable de los datos llevado a cabo por las empresas: cesión de datos de usuarios sin su consentimiento, utilización indebida de datos para estudios de mercado fuera de las cláusulas de privacidad, vulneración de la configuración de privacidad de los usuarios, etc. Es conocido el caso de la red geosocial Foursquare que, en su página principal, mostraba información aleatoria sobre un cierto número de usuarios y su última localización anunciada. El problema radicaba en que los usuarios seleccionados y anunciados públicamente, lo eran a pesar de que hubieran configurado su cuenta de forma privada, y sólo quisieran que su información fuera conocida por sus contactos. Tras hacerse público (http://www.wired.com/threatlevel/2010/06/foursquare-privacy/), el fallo Foursquare cambió la configuración de su política de privacidad. Otro caso conocido que deja patente la importancia de los datos que manejan las aplicaciones de geolocalización es la cantidad de demandas que ha sufrido la empresa Google por la recopilación de datos personales sin autorización, gracias a los vehículos utilizados por su servicio de mapas Street View (método que se ha explicado anteriormente en el apartado sobre la tecnología Wi-Fi Positioning System). Actualmente Google ha aceptado pagar 7 millones de dolares por capturar datos de redes Wi-Fi privadas, convirtiéndose en la mayor indemnización que Google ha pagado por ahora en Estados Unidos (http://sociedad.elpais.com/sociedad/2013/03/12/ actualidad/1363112492_149222.html). Pero la aplicación Street View de Google tiene otros frentes abiertos aparte de la captura de datos de redes Wi-Fi. Numerosos abogados privados han opinado sobre esta aplicación, que permite encontrar, por ejemplo, a hombres dejando un club de striptease, mujeres ante una clínica de abortos, gente en playas nudistas, padres azotando a sus hijos, así como otros acciones embarazosas que no cuentan con el permiso del ciudadano afectado. - 31 - Google mantiene que todas las imágenes se obtienen de una propiedad pública (la calle). De todas maneras, antes de lanzarse dicha aplicación, Google asegura que eliminó las imágenes que representasen violencia doméstica, y permite a los usuarios pedir la eliminación de las fotografías que muestren actos o situaciones no deseadas o indebidas. En Europa, la introducción del servicio Street View en ciertos países podría no ser legal. Como las leyes entre países varían, muchos no permiten la revelación de forma no consentida de imágenes de personas para su exhibición pública. Uno de los remedios que Google ha aplicado es la difuminación de rostros y matrículas de vehículos. Sin embargo, esta aplicación aún no es perfecta, y en muchas ocasiones aparecen algunas matrículas y algunos rostros revelados. Al mismo tiempo, el programa confunde algunos elementos de la fotografía (aceras, buzones, carteles de direcciones...) con rostros y matrículas, y son difuminados innecesariamente. ¿Y en concreto en España? ¿Cómo se gestiona legalmente la privacidad de dichos datos? En el ámbito de la geolocalización, el marco legal abarca diferentes aspectos de la privacidad de los datos personales. La Constitución Española establece, en su artículo 18.1, que se garantiza el derecho al honor, a la intimidad personal y familiar y a la propia imagen. En este sentido, la Ley Orgánica 1/1982 de Protección Civil del Derecho al Honor, a la Intimidad Personal y Familiar y a la Propia Imagen establece, en su artículo primero, que dicho derecho será protegido civilmente frente a todo género de intromisiones ilegítimas, de acuerdo con lo establecido en dicha ley. La propia Constitución también establece, en su artículo 18.3, que se garantiza el secreto de las comunicaciones y en su artículo 18.4, que la Ley limitará el uso de la informática para garantizar el honor y la intimidad personal y familiar de los ciudadanos y el pleno ejercicio de sus derechos. En la legislación española, la principal ley dedicada a garantizar el cumplimiento del artículo 18.4 de la Constitución, es la Ley Orgánica 15/1999 de Protección de Datos de Carácter Personal (LOPD), junto con el Real Decreto 1720/2007 de desarrollo de la Ley Orgánica de Protección de Datos (RLOPD). - 32 - El RLOPD define en su artículo 81 tres niveles de protección (básico, medio y alto), atendiendo al tipo de datos considerados y su papel en la privacidad del individuo: • Nivel alto: tratamientos con datos relacionados con la ideología, creencias, religión, raza, vida sexual, salud, aquellos recabados para fines policiales sin el consentimiento de los afectados (ficheros de las Fuerzas de Seguridad del Estado) y derivados de actos de violencia de género. • Nivel medio: tratamientos con datos relativos a información laboral, fiscal, financiera, de solvencia, infracciones penales y administrativas, que ofrezcan una definición de la personalidad y de los operadores de comunicaciones electrónicas, respecto a los datos de tráfico y localización. • Nivel básico: tratamientos con datos de carácter personal. También datos sobre ideología, afiliación sindical, religión, creencias, salud, origen racial o vida sexual, cuando se utilicen en el marco de una transferencia dineraria, son accesorios en la realización de una operación o se refieran a la condición de discapacidad o invalidez (este último caso relativo a los datos de salud). Partiendo de esta clasificación, en el caso concreto de la utilización de servicios de geolocalización destaca que: • Con carácter general, los datos de geolocalización, y siempre que dichos datos se refieran a una persona identificada o identificable, se considerarían datos de nivel básico. • Por otro lado, la LOPD también contempla la posibilidad de que datos de nivel básico lleguen a ser considerados de nivel medio, mediante la combinación con otros datos que, bien de manera directa o por inferencia, ofrezcan una definición de las características o de la personalidad de los ciudadanos y que permitan evaluar determinados aspectos de la personalidad o del comportamiento de los mismos. Esto - 33 - resulta especialmente importante en el caso de las redes geosociales como Foursquare, que combinan información de geolocalización con otros datos privados de sus usuarios. • Asimismo la LOPD presenta una excepción para los datos de localización de los que sean responsables operadores que presten servicios de comunicaciones electrónicas disponibles al público o exploten redes públicas de comunicaciones electrónicas, en cuyo caso se aplicará la medida de seguridad de nivel alto, relativa al registro de accesos. En toda aplicación o servicio de geolocalización que haga uso de los datos de un ciudadano, dicho usuario deberá ser informado de modo preciso, previo e inequívoco de los siguientes aspectos: • La existencia de un fichero o proceso de tratamiento de datos. • La finalidad en la recogida de los datos, exponiendo la finalidad legítima con absoluta sinceridad. • El carácter obligatorio u optativo de las preguntas planteadas durante la recogida de los datos. • Las consecuencias de la negativa a suministrar ciertos datos. • La posibilidad de ejercer los derechos de Acceso, Rectificación, Cancelación y Oposición, definidos en la LOPD. • La identidad y dirección del responsable del tratamiento de los datos. Es importante reseñar que, salvo por razones de seguridad pública, como se establece en el artículo 25 de la LOPD, todo ciudadano podrá ejercer sus derechos de acceso (consulta de la información existente sobre sí mismo), rectificación (modificación de datos incorrectos), cancelación (eliminación de los datos de un fichero) y oposición (impedir la inclusión de sus datos en un fichero) sobre los datos que cualquier fichero almacene sobre dicho ciudadano. - 34 - El organismo encargado de velar por el cumplimiento de la LOPD es la Agencia Española de Protección de Datos (AEPD). Todo fichero adscrito a la LOPD deberá ser puesto en conocimiento de dicha agencia. En el caso de ficheros de titularidad pública, mediante su publicación en el Boletín Oficial del Estado, y en el caso de ficheros de titularidad privada, mediante notificación explícita a la AEPD por parte del responsable. La falta de atención de los derechos de los ciudadanos establecidos por la legislación, la violación de los mismos, la ausencia de colaboración con las autoridades o la AEPD, así como la falta de notificaciones en las circunstancias establecidas por la Ley, son causas que derivan en la pertinente investigación por parte de la AEPD, pudiendo imponerse las medidas y sanciones oportunas previstas en la LOPD. Cualquier ciudadano que acredite el incumplimiento de la LOPD puede dirigir una denuncia a la AEPD. La intervención de la AEPD no sólo tiene lugar cuando se presenta una denuncia, sino que la Agencia también puede actuar de oficio, cuando se considera que los derechos de los ciudadanos, en materia de privacidad y protección de datos, han podido ser violados. Un ejemplo en este sentido sería el caso anteriormente mencionado sobre Google. Particularizando en España, la AEPD abrió una investigación a Google en 2010, debido a la mencionada captura de información de redes Wi-Fi (http://tecnologia.elpais.com/ tecnologia/2010/05/19/actualidad/1274259665_850215.html). En conclusión, todos los ciudadanos están amparados por la Ley en cuanto a la protección de sus datos personales, según establece la legislación vigente y la propia Constitución. Precisamente por esto, el uso responsable y seguro de estas tecnologías de geolocalización es fundamental para poder disfrutar de sus servicios sin poner en peligro el aspecto íntimo y personal de los ciudadanos, y también para que puedan evolucionar y aportar más funcionalidades al usuario. - 35 - A continuación, voy a enunciar algunas recomendaciones de privacidad para el uso de aplicaciones de geolocalización: • Leer con detenimiento y comprender las cláusulas de privacidad de los servicios de geolocalización y las redes sociales. • En general, restringir al máximo la información que se ofrece de forma pública. • Desconfiar, como norma general, de toda persona que no sea conocida. • Adaptar la precisión de las publicaciones sobre georreferenciación. Por ejemplo, en una red social orientada al turismo podría ser suficiente con anunciar la ciudad de estancia, siendo innecesario anunciar también el hotel concreto. • Elegir con cuidado el grupo de usuarios que podrán ver la información de geolocalización generada por las aplicaciones. La mayoría de las redes sociales permiten configurar este aspecto, restringiendo las publicaciones a grupos privados. • Configurar correctamente los vínculos entre aplicaciones de georreferenciación y redes sociales, evitando a toda costa el envío indiscriminado de información. • No aportar información que pueda conducir a deducir el lugar en que se encuentra un usuario en un momento dado. Para ello, conviene evitar anunciar los desplazamientos habituales (por ejemplo, al entorno laboral) y los períodos de vacaciones. - 36 - 7. SEGURIDAD Por otro lado, el hecho de que esta información se integre en ocasiones dentro de redes sociales, aumenta las posibles consecuencias de los fallos de seguridad asociados, al conjugar la información de geolocalización con toda clase de datos personales. Al transmitir información sensible asociada a su georreferenciación, los riesgos para el ciudadano no se limitan a posibles robos de información o datos a través de Internet, sino que pueden llegar incluso a suponer un peligro para su integridad física y personal. En este apartado, empezaré por intentar diferenciar los principales elementos existentes en todo proceso de geolocalización, para analizar los posibles riesgos y amenazas asociados a dicha tecnología, y definir algunas recomendaciones y configuraciones de seguridad que permitan utilizar dichas aplicaciones de geolocalización de un modo más seguro. Para finalizar, intentaré, desde un punto de vista más práctico, enunciar una serie de procedimientos recomendados para la creación de aplicaciones seguras. 7.1. SISTEMA OPERATIVO Todo dispositivo, para poder desempeñar sus funciones, ejecuta su sistema operativo. Éste se encarga de gestionar los recursos del sistema y juega un papel fundamental en la seguridad. En el ámbito de los ordenadores personales (sobremesa o portátiles), los sistemas operativos más utilizados son Microsoft Windows, Mac OS X y GNU/Linux. Todos ellos ofrecen al usuario servicios muy similares, permitiendo manejar fácilmente los recursos del sistema. En el ámbito de los dispositivos móviles, y obviando sistemas embebidos propios (como dispositivos de navegación GPS), los sistemas operativos más utilizados son Android de Google, iOS de Apple, Blackberry OS de RIM, Symbian OS y Windows Mobile de Microsoft. Nuevamente, todos ellos ofrecen servicios similares al usuario y permiten acceder con cierta facilidad a los recursos del sistema. - 37 - Al actuar el sistema operativo como instrumento de administración de recursos, se convierte en el punto central de gestión de la información almacenada y procesada por el dispositivo. Es, por tanto, uno de los elementos más sensibles desde el punto de vista de la seguridad. Una de las amenazas más evidentes es el código malicioso o malware, que usualmente se presenta en forma de virus, troyanos o programas espía. Este tipo de programas infectan el sistema operativo anfitrión con el fin de dañar el sistema o la información contenida en él. El daño causado por estos virus puede ir desde la inutilización del sistema operativo (posible denegación de servicios) hasta el robo de información. Existen ciertos troyanos que tienen por objetivo la creación de botnets o redes de ordenadores infectados, controlados de forma remota para la realización de operaciones conjuntas. Investigaciones en seguridad han demostrado que el modelo de generación de botnets por infección de troyanos resulta extrapolable a teléfonos inteligentes, por lo que el peligro de este tipo de ataques no se limita únicamente a ordenadores personales. Por otro lado, el sistema operativo, como cualquier software, no está exento de fallos de seguridad (“bugs”) que permitan la intrusión de un hipotético atacante. Los fallos de seguridad más peligrosos en un sistema operativo son aquellos que permiten su explotación de forma remota. En el caso de los dispositivos portátiles, el hecho de contar con múltiples interfaces de comunicación de red (redes de telefonía, redes Wi-Fi inalámbricas, Bluetooth, infrarrojos…), aumenta los posibles vectores de ataque en caso de fallo de seguridad. Además, en el caso concreto de los teléfonos inteligentes y dispositivos portátiles, es habitual la modificación no autorizada del sistema operativo, con el fin de acceder a funciones que se encuentran bloqueadas por el fabricante. Un ejemplo de este tipo de modificaciones sería el jailbreak en dispositivos iOS, o el rooteo en dispositivos Android. - 38 - El hecho de habilitar la instalación de programas no firmados puede provocar la entrada de software malicioso que, bien suplantando a uno original o no, llegue a infectar el sistema operativo y los programas y aplicaciones en él instalados. En cuanto al uso del sistema operativo, se recomienda: • Mantener siempre actualizado el sistema operativo y los programas instalados, aplicando las actualizaciones periódicas que el fabricante suministra. • Utilizar, siempre que esté disponible, un sistema de protección de red de tipo cortafuegos para proteger el sistema de conexiones peligrosas. • Utilizar, cuando esté disponible, un sistema antivirus. La base de datos de definiciones de virus, así como el propio software, deberán mantenerse siempre actualizadas. • Utilizar software original, cuya procedencia sea conocida y pueda ser certificada. • Evitar las modificaciones no autorizadas del software o el hardware, puesto que pueden ocasionar problemas de seguridad no contemplados por el fabricante. • Utilizar usuarios con privilegios bajos en el sistema, reservando el uso del usuario privilegiado (administrador o root) para las ocasiones en que sea estrictamente necesario. • En los dispositivos móviles, configurar las opciones de geolocalización de forma adecuada a las necesidades de la aplicación a utilizar. No todas las aplicaciones requieren de la precisión del GPS, o no siempre es conveniente que esté habilitada la georreferenciación mediante redes Wi-Fi. - 39 - 7.2. SOFTWARE DE GEOLOCALIZACIÓN Cualquier software de geolocalización, y al igual que ocurría en el caso del sistema operativo, es susceptible de contener fallos de seguridad. Aún cuando el sistema operativo se encuentre funcionando perfectamente y libre de fallos (situación utópica), un fallo en el software encargado de gestionar el proceso de geolocalización puede suponer un potencial vector de ataque, siendo posible incluso la escalada del fallo hasta llegar al propio sistema operativo. En la mayoría de las aplicaciones, estos fallos de seguridad tienen una gravedad directamente proporcional a la clase o nivel de privilegios que tiene el usuario que las ejecuta, restringiendo de esta forma un posible daño al sistema operativo. En el caso concreto de los dispositivos móviles, estos suelen funcionar sobre algún sistema de sandboxing mediante máquinas virtuales, que permite aislar el entorno de ejecución de la aplicación. El sandboxing (o aislamiento de procesos) básicamente consiste en la ejecución separada de ciertas aplicaciones, controlando y aislando los recursos del sistema a los que dichas aplicaciones acceden. Sin embargo, en caso de un fallo de estas características que proviniera del software de geolocalización, la información gestionada por la propia aplicación siempre se encontrará comprometida, pudiendo ocasionar fallos de privacidad. En el caso de aplicaciones online, el rango de los posibles fallos de seguridad aumenta. Algunas de las amenazas existentes son: • Inyección de código en sitios cruzados (Cross-site scripting). • Falsificación de petición en sitios cruzados (Cross-site request forgery). • Ataques de inyección de código SQL (SQL injection). • Secuestro de clic (Clickjacking). • Falsificación de información en formularios (Form tampering). - 40 - En cuanto al uso del software de geolocalización, se recomienda: • Utilizar únicamente aplicaciones de confianza, obtenidas a través de los canales de distribución pertinentes, por ejemplo, las páginas web oficiales de los proyectos y las tiendas de aplicaciones. • Mantener siempre actualizadas las aplicaciones de geolocalización. • Tener en cuenta los permisos que solicita una aplicación para su instalación en el sistema. No tiene sentido, por ejemplo, que un juego solicite acceso al hardware de georreferenciación y a la red de comunicaciones, ya que podría tratarse de un software destinado a espiar al usuario. • Vigilar, en las actualizaciones de las aplicaciones, los posibles cambios en los permisos requeridos del sistema. • Establecer, en la configuración de la aplicación, en qué momento se permite la utilización de funciones de geolocalización y con quién se va a compartir dicha información. • Tener en consideración la vinculación de datos que establecen ciertas aplicaciones de geolocalización con las redes sociales. • En el caso de aplicaciones online, utilizar una versión actualizada del navegador web, además de mantener actualizados todos sus complementos y plugins. • En aplicaciones online, utilizar algún complemento destinado a la prevención de ataques web y explotación de vulnerabilidades. Por ejemplo, NoScript para Mozilla Firefox. - 41 - 7.3. COMUNICACIONES EN LA RED Dejando a un lado el hecho de que una conexión a Internet supone un posible vector de ataque, el principal problema asociado a una conexión de red es la intercepción de las comunicaciones (eavesdropping). Debido a la propia arquitectura de Internet, la información, en su camino entre el origen y el destino de la comunicación, viaja por un número indeterminado de máquinas. De este modo, toda comunicación que no se encuentre protegida por métodos criptográficos, es susceptible de ser intervenida por personas no autorizadas. En el caso de las aplicaciones de geolocalización (tanto para dispositivos móviles como de escritorio), no siempre es posible conocer los mecanismos de comunicación utilizados y si éstos funcionan sobre una conexión segura o no. Desde el punto de vista lógico de la conexión, existen diversos ataques de tipo “hombre en el medio” (man in the middle) que permiten interponerse en una comunicación e interceptar la información no cifrada que viaje por la red, aunque no esté destinada al sistema del propio intruso. Un ejemplo de este tipo de ataques sería el clásico envenenamiento de la caché ARP (ARP poisoning). Desde el punto de vista físico, la posible intercepción de la comunicación depende fuertemente del tipo de red utilizada. En el caso de las redes cableadas, típicas del entorno doméstico y laboral, el riesgo de una intercepción física es bajo. Este riesgo aumenta enormemente en el caso de las redes inalámbricas, al estar exponiendo de forma abierta el medio físico de la red. En el caso de las redes abiertas, es decir, sin contraseña, no existe ningún tipo de protección física y los datos se encuentran, en consecuencia, expuestos. En cambio, en las redes inalámbricas que sí tienen contraseña, se utilizan algoritmos de cifrado, como WPA y WPA2, con los que la protección física aumenta al tratarse de algoritmos robustos. No obstante, no resulta infalible, pues la efectividad del algoritmo está también ligada al tipo de contraseña utilizada como clave de protección. - 42 - En el caso de las redes móviles la situación es similar. Las redes móviles de tercera generación (3G) se consideran bastante robustas, en cuanto a la seguridad de sus algoritmos de cifrado y protección. Por otro lado, la seguridad de las redes móviles de segunda generación (2G y 2.5G) se ha puesto en entredicho en diversos estudios, por lo que actualmente no se consideran seguras. Por último, comentar que actualmente es posible adquirir en Internet dispositivos “distorsionadotes” (jammers) que impiden la utilización de determinadas bandas de frecuencia utilizadas por las tecnologías móviles. Usando un dispositivo de estas características, se podría impedir la conexión de un dispositivo a las redes de telefonía móvil, forzándolo a conectarse a una red inalámbrica maliciosa. También se podría imposibilitar la conexión a las redes 3G y de este modo forzar una conexión mediante tecnologías 2.5G (como GPRS y EDGE). En cuanto al uso de comunicaciones en la red, se recomienda: • No enviar nunca información o documentos sensibles a través de una conexión sin cifrar. Asegurarse de que los credenciales de conexión (nombre de usuario y contraseña) viajan cifrados a través de SSL. • Conectarse, en la medida de lo posible, a redes de confianza. Es preferible utilizar la red doméstica o laboral, antes que otro tipo de redes. • En redes locales, comprobar que la conexión con la puerta de enlace es directa y el equipo no está sufriendo un ataque de hombre en el medio. Para ello, se pueden utilizar herramientas de trazado de conexiones (como tracert en Microsoft Windows o traceroute en GNU/Linux y Mac OS X) o consultar la tabla de correspondencias ARP. - 43 - • No utilizar en ningún caso redes inalámbricas abiertas, cuyo origen resulta desconocido, y desconfiar de redes Wi-Fi inalámbricas gratuitas, como las ofrecidas en bares. • Configurar nuestra propia red Wi-Fi doméstica con seguridad WPA2. • En redes móviles, preferir el uso de redes de tercera generación (3G) frente a las de segunda generación (2G, 2.5G, GPRS o EDGE). 7.4. SEGURIDAD FÍSICA Se entiende por seguridad física aquella que está relacionada con los dispositivos hardware, en este caso aquellos en los que tiene lugar algún proceso de geolocalización. El riesgo más evidente supone la pérdida o sustracción de un dispositivo hardware, en el que podrían estar almacenados datos personales, contraseñas de acceso a servicios de geolocalización, etc. Este riesgo, en el caso de los ordenadores de sobremesa, es bajo. Sin embargo, en los ordenadores portátiles y especialmente en el caso de dispositivos móviles y teléfonos inteligentes, resulta bastante elevado. Por otro lado, debe considerarse también el riesgo de una modificación no autorizada en el hardware, cuyas consecuencias pueden ir desde el funcionamiento defectuoso del mismo (posible denegación de servicios) hasta la captura de contraseñas de acceso mediante keyloggers, que básicamente son un tipo de software o dispositivo hardware que se encarga de registrar las pulsaciones que se realizan en el teclado, para posteriormente memorizarlas en un fichero o enviarlas a través de internet. - 44 - A continuación presento algunas recomendaciones para mejorar la seguridad física de nuestros dispositivos móviles: • Instalar programas de borrado remoto que, en caso de sustracción o pérdida del dispositivo sin posibilidad alguna de recuperación, nos permitan eliminar toda la información privada del dispositivo. • Instalar programas que impidan su utilización en el caso de que se cambie la tarjeta SIM instalada en el dispositivo. • En caso de pérdida o sustracción de un teléfono móvil, solicitar al operador de la red su bloqueo mediante IMEI (International Mobile Equipment Identity), tras establecer la correspondiente denuncia en las dependencias policiales. • Establecer contraseñas de acceso para todos los dispositivos, incluyendo ordenadores de sobremesa, portátiles o dispositivos móviles. • Asegurarse de que tras activar un dispositivo suspendido se solicita nuevamente la contraseña de acceso o una diferente. • Utilizar contraseñas fuertes con una longitud mínima de 8 caracteres, que combinen números, letras mayúsculas y minúsculas, e incluso símbolos. De igual manera, se deben cambiar las contraseñas con cierta periodicidad. - 45 - 7.5. DESARROLLO DE APLICACIONES SEGURAS Proteger las aplicaciones basadas en red contra posibles hackers es clave para garantizar el éxito de cualquier sistema. Un ejemplo de ello sería Google, que invierte miles de millones de dólares en tecnología, personal y procesos para garantizar que los datos de los usuarios de sus aplicaciones estén a salvo, seguros y mantengan su privacidad. Por ejemplo, Google protege la transmisión de datos por la red con conexiones SSL (Secure Socket Layer) para evitar que los datos confidenciales de los usuarios se intercepten. Además el acceso a la mayoría de servicios de sus aplicaciones es a través de HTTPS, lo que consigue que todos los accesos del usuario y todas las interacciones de datos estén encriptados. Por otro lado, Google nunca utiliza cookies para almacenar contraseñas o datos del usuario en su equipo. Solamente utiliza las cookies para guardar la información de la sesión y a conveniencia del usuario, pero nunca se utilizan para guardar información confidencial que pueda utilizarse, por ejemplo, para entrar en la cuenta del usuario. A continuación, enumeraré algunos consejos prácticos a la hora de crear aplicaciones seguras: • Desarrollar aplicaciones utilizando un framework que atienda a los aspectos fundamentales de seguridad y privacidad. • Establecer y cumplir directivas de seguridad para garantizar que la aplicación funciona de manera segura, como por ejemplo, longitud y período de validez de las contraseñas o métodos para el cifrado de claves. • Optar por tecnologías que utilicen el cifrado para proteger la privacidad de los usuarios y la integridad de los datos en toda la red. Establecer un protocolo admitido por la comunidad de internet, como por ejemplo, SSL (Secure Socket Layer), TLS (Transport Layer Security) o IPSec (Internet Protocol Security). - 46 - • Utilizar mecanismos de control de acceso, que limiten la llegada a los recursos en función de la identidad de los usuarios y de su pertenencia a varios grupos predefinidos. • Limitar el acceso a los recursos a aquellos usuarios que realmente lo necesiten. Por ejemplo, abrir únicamente los puertos 80 (HTTP) y 443 (HTTPS) del protocolo TCP para obtener acceso a los servicios web y desactivar los demás. • Cuando se intente obtener acceso a un recurso protegido, comprobar los permisos de toda la cadena de llamadas con la intención de garantizar que se está autorizado para obtener dicho acceso. Básicamente, el comportamiento del código está restringido por el componente menos fiable de la cadena de llamadas. • Utilizar una autentificación mediante certificados de clave pública, que permite a los usuarios comunicarse con un sitio a través de internet sin exponer contraseñas ni datos susceptibles de ser interceptados con facilidad. Si bien, los certificados no proporcionan cifrado por sí solos, pero son fundamentales para establecer un canal de comunicación seguro. • Fomentar el uso de contraseñas rigurosas, procurando que contengan al menos siete caracteres, haya tanto mayúsculas como minúsculas, incluya números y signos de puntuación, y no figure en ningún diccionario de contraseñas. • Utilizar algún estándar de autorización integrado en el sistema para controlar el acceso a los recursos. No confiar en el acceso a los recursos desde las aplicaciones. - 47 - • Evitar desbordamientos de búfer, ya que representan una gran amenaza para la seguridad. Las aplicaciones que escuchan en un socket o puerto de E/S constituyen un blanco para ataques que introducen código malintencionado que después se ejecuta en el sistema. Es muy importante que cuando se tengan que escribir datos en algún búfer, no se sobrepase la capacidad permitida del búfer. • Exigir privilegios mínimos, o lo que es lo mismo, no se deben exigir privilegios de administrador para ejecutar todas las aplicaciones. Un desbordamiento del búfer en una aplicación que se ejecuta con privilegios de administrador permite que un atacante cause estragos en todo el sistema. • Dividir la aplicación en capas independientes. En el núcleo de la aplicación debe encontrarse la parte que más se desee proteger; normalmente, el almacén de datos de la aplicación. La comunicación entre una capa y la capa siguiente debe producirse sólo a través de canales específicos. Cada capa agrega un obstáculo adicional a la entrada de un atacante. • Validar los datos proporcionados por el usuario. Es conveniente desconfiar siempre de los datos proporcionados por el usuario hasta que sean validados. Cualquier dato introducido por un usuario puede causar daños a un sistema. Hay que examinar y comprobar siempre que los datos sean correctos y que estén correctamente formados antes de actuar sobre ellos. Es conveniente recordar que, cuando se validan los datos, a veces resulta más fácil identificar información incorrecta (por ejemplo, buscar caracteres no válidos) que verificar que la información sea correcta. - 48 - • Desarrollar planes de emergencia a los que se pueda recurrir si no funciona la defensa ante los ataques. Estos planes deben tener como objetivo reducir los daños al mínimo y determinar en qué medida se ha visto afectada la aplicación. • Realizar copias de seguridad programadas ante, por ejemplo, posibles ataques que den lugar a una denegación de servicios, como el bloqueo de un sistema de servidores, ya que resultan difíciles de evitar e incluso de pronosticar. La realización de copias de seguridad rutinarias es uno de los mecanismos más importantes de un plan de recuperación. • Por último, pero por ello no menos importante, realizar una vigilancia constante, que como suele decirse, para obtener seguridad no hay que bajar la guardia. Es preciso realizar exámenes periódicos de seguridad para identificar modelos de abuso y brechas potenciales. La vigilancia constante es el único medio que existe para defenderse de los riesgos imprevistos o no paliados. - 49 - 8. EJEMPLO APLICACIÓN DE GEOLOCALIZACIÓN En este último apartado voy a explicar brevemente los puntos más importantes de una aplicación básica de geolocalización. He decidido realizar dicho ejemplo para Android, ya que tenía algo de experiencia previa en la programación para dichos dispositivos. La aplicación realizada muestra la ubicación actual del dispositivo en un mapa, utilizando su GPS. Dicha localización se actualizará periódicamente. Para el desarrollo de dicha aplicación he utilizado la librería Google APIs [Android 4.2.2]. En principio, por razones de seguridad, acceder a la información de localización está prohibido a las aplicaciones. Si éstas desean hacer uso de este servicio han de solicitar los diferentes permisos al usuario. Estos permisos deben ser indicados en el fichero AndroidManifest.xml. Posteriormente, durante la instalación de la aplicación, se le comunicará al usuario los distintos servicios de los que va a hacer uso dicha aplicación y si desea darle permiso para usarlos. Para esta aplicación voy a pedir permiso para tener acceso a Internet, ya que el mapa lo va a necesitar para cargarse, y para precisar la ubicación vía GPS: También hay que reflejar en el AndroidManifest.xml que la aplicación va a utilizar la librería de mapas de Google: Una vez creado el Manifest, lo siguiente que voy a hacer es diseñar la disposición que va a tener la interfaz de la actividad principal en el activity_main.xml, que se encuentra dentro de la carpeta layout de los recursos. - 50 - Para esta aplicación va ser muy sencillo. Simplemente voy a utilizar una vista para el mapa que rellene toda la pantalla del dispositivo y que sea clickable: Para la utilización de la vista de mapas de Google es necesaria la obtención de una clave del servicio del API de Google Maps. En el siguiente enlace se explica como obtener dicha clave: https://developers.google.com/maps/documentation/android/start#obtaining_an_api_key Para finalizar voy a programar la funcionalidad de la clase de la actividad principal (MainActivity.java) de la aplicación. Primero, la clase extenderá de MapActivity para facilitar la gestión del mapa e implementará la interfaz LocationListener para poder detectar los cambios en la localización del dispositivo. De los métodos disponibles en la interfaz LocationListener, utilizaré onProviderDisabled, para forzar al usuario a tener el GPS funcionando antes de que la aplicación se inicie, y onLocationChanged, para llamar al método updateLocation que voy a implementar más tarde y que dibujará un nuevo marcador de posición cada vez que se actualice la localización. - 51 - A continuación, voy a crear una clase que dibuje un marcador en la localización detectada. Para ello extenderé la clase Overlay (capa superpuesta) y de esta manera podré seleccionar la imagen que desee como marcador. En este caso utilizaré la imagen de ejemplo de Android, pero se podría cambiar por cualquier otra imagen que añadamos a los recursos del proyecto. La clase MiOverlay será privada ya que está definida dentro de la clase principal. Dentro de esta clase, crearé una variable que represente el punto donde se colocará el marcador de posición y que pasaré como parámetro al constructor, y sobrescribiré el método draw para que dibuje la imagen que yo desee como marcador. Ahora voy a crear el método mencionado anteriormente updateLocation que dibujará el marcador de posición al iniciar la aplicación y cada vez que haya una actualización. Primero voy a obtener la vista del mapa definida anteriormente en el diseño de la interfaz y de ella crearé un controlador para el mapa. Después creo un punto a partir de la latitud y la longitud de la localización que se pase como parámetro al método. Una vez que tengo el punto, centro el mapa en la posición del punto con el controlador y hago zoom. - 52 - Finalmente instancio la clase MiOverlay que he construido anteriormente para agregar el nuevo marcador en el listado de overlays del mapa e invalido la vista del mapa para que vuelva a dibujarse de nuevo con el último marcador. Para finalizar, en el método onCreate, que es invocado cuando la actividad principal se inicia, selecciono como interfaz de la aplicación la vista activity_main anteriormente diseñada, habilito el control del zoom en el mapa, obtengo el servicio de geolocalización del sistema y llamo al método updateLocation para dibujar el marcador en la última posición detectada por el GPS. Por último, cada 5 minutos, consulto la ubicación del dispositivo a través de su GPS. Si su nueva posición tiene más de 100 metros de distancia con la última almacenada, entonces se registra que ha habido un cambio de localización y, por tanto, automáticamente se hará una llamada al método onLocationChanged, mencionado anteriormente, que a su vez ejecutará nuevamente el método updateLocation para dibujar el marcador de la nueva posición en el mapa. - 53 - A continuación se muestra una captura de ejemplo de la aplicación de geolocalización: Figura: Captura ejemplo aplicación de geolocalización - 54 - CONCLUSIONES Este Trabajo de Fin de Grado se ha basado en el estudio de la situación actual de los servicios de geolocalización. Junto a la parte más tecnológica y técnica de la materia, he querido abordar otros aspectos que se han tratado en clase en este último curso (como la privacidad y la seguridad) y en los que no me había parado a pensar en exceso en mi anterior Proyecto de Fin de Carrera. Las conclusiones más importantes del estudio realizado sobre la geolocalización son las siguientes: • La tecnología hacia la que está evolucionando claramente el sector es la triangulación mediante satélites (GPS). Ninguna otra tecnología puede competir con ella en lo que se refiere a precisión, pero aun así todavía está un peldaño por debajo de las demás en cuanto a velocidad y tiempo de cálculo. • Las aplicaciones basadas en servicios de geolocalización están invadiendo nuestra vida diaria, debido a la gran cantidad de usos que tienen, desde localizar direcciones o lugares hasta situar a nuestros amigos. • Lo especialmente sensible que son los datos que manejan las aplicaciones de geolocalización, así como la importancia que debemos darle a la privacidad y a la seguridad de dichos datos, tanto si somos un usuario como un desarrollador de alguna de estas aplicaciones. Por último, cabe destacar que la realización de este Trabajo de Fin de Grado ha sido muy positiva por lo gratificante que resulta, desde un punto de vista personal, notar la evolución que ha habido tanto en la planificación, la organización y la estimación de horas previas al desarrollo del trabajo, así como en la redacción de la memoria. - 55 - BIBLIOGRAFÍA • Android Developers http://developer.android.com/index.html • Encuesta sobre equipamiento y Uso de Tecnologías de Información y comunicación (TIC) en los Hogares, 2012 http://www.ine.es/prensa/np738.pdf • Fundamentals of GPS Receivers: A Hardware Approach Dan Doberstein Springer New York, 2012 • Guía de Seguridad de Datos de la Agencia Española de Protección de Datos, 2010 http://www.agpd.es/portalwebAGPD/canaldocumentacion/publicacio nes/common/Guias/GUIA_SEGURIDAD_2010.pdf • Guía sobre seguridad y privacidad de las herramientas de geolocalización Pablo Pérez San José INTECO, 2011 • La Sociedad de la Información en España, 2012 http://e-libros.fundacion.telefonica.com/sie12/aplicacion_sie.html • Protección de los datos personales y geolocalización Didier Gasse La revista de la Agencia de Protección de Datos de la Comunidad de Madrid, nº. 23, 2006 - 56 - • Resumen exhaustivo de protección de seguridad y vulnerabilidad para Google Apps http://static.googleusercontent.com/external_content/untrusted_dlcp/ www.google.com/en/us/a/help/intl/es/admins/pdf/ds_gsa_apps_white paper_0207.pdf • Servicios móviles de localización Ana Mª Bernardos Barbolla Ceditec, 2003 • Towards Street-Level Client-Independent IP Geolocation http://static.usenix.org/events/nsdi11/tech/full_papers/Wang_Yong.pdf - 57 -