jueves, abril 10, 2008

Monitorización de la red GSM

En este apartado pretendemos ver de forma empírica todos aquellos datos e información presentes en un determinado instante en el teléfono móvil del usuario. De esta forma podemos, no sólo conocer el formato de dicha información, sino deducir los métodos posibles de geoposicionamiento vía GSM desde el terminal de usuario.

Para lograr capturar esta información necesitamos un terminal móvil con un software específico. Hemos decidido emplear el Netmonitor de Nokia, incluido como funcionalidad oculta en ciertos terminales. La forma de activar esta funcionalidad oculta pasa por modificar el firmware del teléfono usado para la monitorización, activando así un menú para acceder a la aplicación Netmonitor.

Asimismo, emplearemos una aplicación Symbian gratuita llamada CellTrack.

Información residente en el terminal de usuario

El terminal móvil de un usuario necesita para su buen funcionamiento cierta información de la red celular que le permita entre otras cosas hacer su acto de presencia, login etc...

Parte de esta información está relacionada con la localización geográfica del terminal, y dicha información, pese a ser una pequeña parte de toda la información que el terminal tiene, es la que detallamos a continuación, puesto que puede sernos útil para nuestros propósitos:

  1. MCC (Mobile Country Code): Es un dato que hace referencia al país en el que se encuentra el usuario en el instante de la medición (o para ser mas exactos, el país en el que se ubica la estación base a la que el usuario está asociado en ese instante). El identificador MCC es un número de 3 dígitos decimales y es único para cada país en el mundo.

    Podemos ver a continuación unos ejemplos:

  2. MNC (Mobile Network Code): Identificador del operador de red. Es único para cada operador dentro de su país, lo que quiere decir que mismos identificadores pueden repetirse fuera del territorio nacional. Por cada operador, se asigna dicho identificador, el cual está compuesto por dos dígitos decimales. Asimismo, un operador puede tener asignados varios MNCs.

    A continuación se muestran los MNCs de las tres operadoras de telefonía móvil que hay operativas en España en la actualidad.

  3. LAC (Location Area Code): Código identificador de área. A aquellas regiones con cobertura GSM se les asigna un código LAC único dentro de cada país. Dicho código está representado por 4 dígitos decimales y hace referencia a una región más o menos extensa de territorio. Los 4 dígitos decimales tienen un significado, determinando la comunidad autónoma, la región y la localidad.
  4. Cell ID Identificador de célula. Es un número de entre 1 y 5 dígitos decimales que identifica de forma unívoca a una célula dentro de un territorio nacional. Cada dígito tiene un significado propio de los operadores, pero dicha información para la red móvil española no está bien documentada o bien no es de libre acceso.
  5. Células vecinas: El teléfono móvil almacena por orden las 7 células más (teóricamente) cercanas al terminal. Dicho criterio de cercanía se basa en la potencia de la señal recibida por cada BS.

Por tanto, la técnica CGI es aplicable con sencillez gracias al CellID, la técnica CGI-TA se resuelve con la información anterior más el Timing Advance.

Para aplicar técnicas de geoposicionamiento básicas (trilateración, triangulación) se podrían usar los datos de las potencias de las 7 células más próximas, aunque dichas técnicas son muy complicadas de aplicar debido a que sólo existe un punto de referencia para triangular (el del móvil) y no 2 ó 3, como hemos visto que eran necesario.

Podemos monitorizar la red móvil para contrastar la información recibida en el terminal y poder comprobar empíricamente que realmente se reciben los parámetros y datos que se comentan a continuación. Asimismo, la única forma de obtener al menos los identificadores de célula y la ubicación de las estaciones base es mediante la monitorización de la red y parametrización geográfica.

Monitorización con NetMonitor y CellTrack

Activando a través de un cable F-BUS la opción oculta del menú Netmonitor de terminales Nokia antiguos, pasamos a continuación a realizar ciertas mediciones para estudiar de forma práctica la red GSM.

En concreto vamos a estudiar aquellos datos del Netmonitor relativos a la localización del terminal.

Pasemos a analizar la página parámetros de la red del menú netmonitor:

  1. CC (Country Code): Es el valor anteriormente descrito como MCC. Podemos ver que, estando en España, el código es 214.
  2. NC (Network Code): Código de la red, es el MNC antes descrito. En este caso la SIM es del operador español de telefonía móvil Movistar (07).
  3. LACs: Código del área en el que nos encontramos ahora mismo, es decir, Bohadilla del Monte, Madrid. En este caso el LAC vale 2813.
  4. CH (Channel): Canal actual.
  5. CID (Cell IDentifier): Identificador de la célula actual. En este caso 3053.

Con estos datos, podríamos recorrer una localidad geográfica armados con un GPS y así describir un mapa de células para poder aplicar la técnica CGI-TA.

Hemos podido comprobar que pese a que los tres operadores de telefonía dominantes en España comparten la infraestructura básica de la red celular (es decir, cada célula y -por tanto sus antenas- puede ser contratada por cada uno de los 3 operadores) en cambio devuelven para una misma célula información distinta para cada caso, siendo el único campo que no varía el MCC (214).

Como es lógico el MNC cambia, pero contra lo que el autor de este documento esperaba, los operadores no presentan un código LAC común para una región y lo mismo ocurre con el CID. Por los experimentos realizados, parece que esto ocurre ciertamente en la realidad y podemos observar que si a un terminal móvil libre ubicado en el territorio español y permaneciendo en una región se le introducen tarjetas de los tres operadores, comprobando que se conecta a la misma estación base, se reciben LACs y CIDs distintos por cada operador.

Cabe hacer constar que todos los parámetros anteriormente descritos, llegan al terminal móvil pese a que éste no llegue a autenticarse contra el AUC del operador. Por tanto, en estos casos el terminal interpreta que su funcionamiento está limitado y ofrece un nivel de cobertura nulo, lo cual puede ocurrir al monitorizar la red (por ejemplo) con tarjetas SIM dadas de baja o no funcionales, como las que han sido las empleadas para realizar este informe. Podemos comprobar que el hecho de que no se use una SIM con contrato de servicios no inhibe al móvil de su funcionamiento habitual y éste se “conecta” a la BS cuya señal es mas intensa independiente del operador, momento tras el cual la SIM trata de autenticarse.

En estas capturas obtenemos la comprobación empírica de que cada operador emplea sus propios códigos LAC y CellID, dicha monitorización fue realizada desde el mismo punto geográfico que para el caso de Movistar, conectándose el móvil a la misma célula en los tres casos.

Para la captura que muestra el MNC = 01, el operador es Vodafone y para la captura que muestra el MNC = 03, es Orange.

Lo siguiente es capturar los parámetros Timing Advance y el parámetro RxL (Reception Level) del terminal. Con ellos sabremos la distancia a la que nos encontramos de la estación base y el nivel de señal recibido en dBm. Para calcular la distancia de forma aproximada, basta con multiplicar el valor TA por 0.547. El resultado se expresa en kilómetros.

La pantalla de netmonitor anterior muestra por filas los valores indicados, estudiaremos los que hacen referencia al TA y RxL.

Para contrastar si el valor TA tiene sentido tenemos que observar el valor RxL. Dicho valor se representa en valor negativo, por lo que un valor alto del RxL significa bajo nivel de señal mientras que un nivel aceptable -que muestra cierta cercanía a la BS- se representaría por 35, siendo el valor 0 un valor que indica gran proximidad a la BS.

En el caso de que TA sea igual a cero, esto implica que la distancia a la que nos encontramos de la BS es de 0-550m.

Podemos observar que en este caso, el valor de TA es 2, lo que implica que nos encontramos a una distancia estimada de 2*0.547 km de la BS, es decir, a aproximadamente 1 Km de distancia.

Podemos comprobarlo:

El valor RxL capturado es 0, lo cual confirma la gran proximidad a la BS (ubicándonos ademas en un lugar elevado con visión directa de la antena).

Pasemos a comentar una forma de monitorizar los parámetros de información celular de la red GSM usando terminales móviles más modernos, los cuales no son susceptibles de entrar en modo monitor o dicha operación no es trivial.

Para ello lo más sencillo es emplear alguna aplicación symbian o java que tras instalarla en el terminal nos facilite dicha información recogiendo los datos necesarios gracias al API del sistema operativo del teléfono.

Una de estas aplicaciones es el programa gratuito de Axel Fischer llamado CellTrack para Symbian. Este programa resulta interesante, ya que entre toda su funcionalidad es capaz de facilitarnos el MNC el MCC, el LAC y el CID de la célula a la que estemos conectados y guardar la información en logs.

Las pruebas realizadas no han resultado concluyentes ya que al parecer el API del teléfono móvil devuelve valores distintos del Cell ID para tarjetas del mismo operador cuyo terminal está conectado a la misma célula. Lo mismo ocurre con el LAC.

Asimismo Celltrack devuelve el CellID, tanto en decimal como en hexadecimal. Tal vez esto sea debido al formato de representación, pero lo lo llamativo es que el LAC sí es distinto y no debería serlo.

Observemos las capturas:

Por tanto la conclusión a la que llegamos es que probablemente los valores que devuelve el API del teléfono deben tener distinto formato o bien han sido expresados en distinto formato. En el caso de querer realizar una parametrización geográfica de una región, pese a la calidad de netmonitor, deberíamos usar aplicaciones como la que hemos usado ya que hacen uso del API del teléfono.

Podemos observar como el CellID tiene en ambos monitores una parte común, en concreto 4 dígitos decimales (en este caso 0693), por lo que se deduce que simplemente la representación de la información en el interfaz es ligeramente distinta.

Para el LAC, en cambio, no se ha encontrado ningún patrón. No es lógica esa divergencia de valores, y al desconocer la implementación interna de ambos monitores no podemos sacar grandes conclusiones.

Independientemente de la diferencia de valores entre Netmonitor y CellTrack, la decisión de qué aplicación usar para generar una base de datos (con los valores MCC, MNC, LAC, CID y latitud y longitud de la BS) para aplicar CGI-TA es irrelevante obviamente mientras se use sólo una de las dos aplicaciones. Teóricamente el uso de aplicaciones como CellTrack presenta varias ventajas, como por ejemplo la facilidad de hacer logs en lugar de tener que apuntar a mano los valores. También contamos con terminales más modernos capaces de integrar GPS para facilitar con la transcripción de coordenadas e incluso podemos usar el bluetooth para transferir las mediciones. Asimismo, si se quisiera realizar un proyecto distribuido para que la gente aportase desinteresadamente los datos de las células de su localidad o barrio, es más factible emplear aplicaciones propias o de libre distribución que teléfonos antiguos más difíciles de encontrar, en cuyo caso habría que emplear los valores que facilita el API.

<<>

>> Capítulo siguiente

Comentarios

Selecciona tu forma preferida de visualizar los comentarios y pulsa el botón para guardar tus preferencias entre visitas (sólo si eres usuario registrado).

Cada vez me gustan más estos artículos

Por qué no se explican estas cosas prácticas en la Universidad?

Solo meten teoría y más teoría... una pena.

LAC

He encontrado una relación, que aunque posiblemente sea casualidad, no deja de ser curiosa:

17695 = 16386 + 1300 + 11 = 0x4000 + 0x0514 + 0x000B

Faltarían más datos para encontrar una relación, si la hubiera.

Informacion del Celular

Por ahi me encontré un midlet para Sony Ericsson que obtiene información como CellTrack pero usando Java,

http://www.ottaky.com/k800i.php

Es de una persona que lo hizo para k800i (no se si funcione en otro), pero puede servir para ver si la información son correctos comparando con los que comentan aqui.

mapas de células

me gustaría un proyecto que creara mapas de células en diferentes ciudades, yo me ofrecería por ejemplo para trabajar en mi ciudad obteniendo datos con mi equipo.

El problema estaría en conseguir software para los diferentes tipos de celular que hay... todavía estoy buscando el soft para mi motorola L6

Chapó!

Muy bueno el artículo, la verdad es que esta muy bien leer cosas como esta, y por lo menos te aclara bastante los "misterios" de la vida diaria, y tu telefono movil.

La verdad es que yo intuia algunas cosas, pero aqui esta todo perfectamente explicado, y todas las opciones y funcionalidades que tiene la red de telefonia.

Animo con el proyecto, pero una duda mia, ¿Yoigo que?, segun Yoigo disponen de infraestructura propia e infraestructura conveniada con Vodafone, ¿usaran los datos de identificaion de las celulas como vodafone o tambien se suman al caos de identificaciones?

Un saludo, y animo con el proyecto.

La red propia de Yoigo es

La red propia de Yoigo es exclusivamente UMTS, y este artículo sólo trata de GSM, quizás no sean aplicable los mismos principios.

Saludos

LAC-CID

Muy buenos artículos.

Yo he trabajado para mantenimiento de Movistar y de Orange y en Movistar los LAC-CID eran datos en toda la documentación relaccionada con una EB, por lo que al llegar a Orange me extrañó en un principio no verlos.

En su lugar (siempre a nivel administrativo) se trabaja con códigos de 4 letras y 4 dígitos. No sé exactamente como corresponden a los datos del netmonitor, pero las tres primeras letras nos dan el area (aunque en cada una de ellas se incluyen varios LACs de los de Movistar), la cuarta letra identifica el tipo de servicio (GSM, UMTS) y los dígitos son el CID, que efectivamente no coincide con los de otras compañías que usen la misma EB.

Samsung. Navizon

Yo he adquirido recientemente un móvil Samsung (L760) y trasteando para lograr instalar aplicaciones java he entrado en un menú que da los datos CC, NC y LAC.

Se entra tecleando *#0523# después hay que pulsar 3 veces la # (funciona como el función atrás) y dar a "[2] MM Information".

El menú tiene bastantes más funciones como "[4] GSM Neighbour Cell" que muestra dos números, que pueden ser el número de la cell y la potencia de la señal.

También he encontrado un programa para móviles (java, symbian, iphone...) que te localiza según tu célula.

http://www.navizon.com

Pero necesita conectar a internet para obtener la información, para mi una pega muy grande.

Mapas celulares y rehoming

El problema para la creación de un mapa celular es que no es algo estático. Con cierta frecuencia (por ejemplo, cada vez que se instalan varias BTS en un área), los operadores hacen resintonización de frecuencias, afectando en muchos casos a los identificadores de celdas, ampliando/reasignando LACs, etc...

En cualquier caso la información que se obtiene del Celltrack es, al menos desde un punto de vista didáctico, muy interesante.


Texto obtenido de: http://www.kriptopolis.org/geoposicionamiento-gsm-5

No hay comentarios: