miércoles, 29 de diciembre de 2010

Terminales GSM de código abierto

Cuando conté ayer de cómo se consigue capturar una llamada de GSM, había algo que no me cuadraba del todo... Yo citaba en la charla cómo para capturar los datos se sustituía el firmware de un teléfono de 10€ por otro de código abierto llamado OsmocomBB. Sin embargo, era la primera vez que oía hablar de él.

En años pasados se ha hablado de una estación base de código abierto (openBTS) o un controlador de estaciones base de código abierto (openBSC), pero nada de teléfonos. Hay pocos fabricantes y son completamente cerrados, decía Harald Welte el año pasado. Pues bien, este año se ha tomado tres meses sabáticos para iniciar un proyecto más, OsmocomBB, que ha desarrollado toda la pila de protocolos (bueno, casi toda) de GSM a partir de cero (bueno, tenía de partida el código de openBSC).

Y en nueve meses, el proyecto ya puede mostrar un estado de avance considerable (aparte de servir para capturar tráfico como vimos ayer):
  • Pueden establecer canales de control para llamadas con y sin saltos de frecuencia
  • Pueden enviar cualquier dato por esos canales de control... incluyendo las solicitudes de llamada y SMS. En concreto en la charla han demostrado que podían acceder a todos los datos de control de potencia de la llamada, por ejemplo.
  • Pueden soportar enviar audio en los canales de tráfico, es decir, establecer llamadas (y también lo han demostrado en la charla)
Todo esto, con la posibilidad de captura y decodificación del tráfico (han hecho todo esto con una versión de Wireshark modificada con soporte de GSM).

Eso sí, el desarrollo sólo sirve para el chipset de banda base que incluye el procesador de banda base digital Calypso, junto con el conversor a analógico y modulador en FI llamados Iota (TWL3025) y Rita (TRF6151), con el diseño que podemos ver en este diagrama.

El chipset ha sido escogido sobre todo por la disponibilidad de documentación y de teléfonos ampliamente disponibles (eso sí, de segunda mano porque desde 2008 no se fabrican): es la banda base de los teléfonos Compal/Motorola con nombres C1[1-5]? Como ejemplo, he aquí el teléfono con el que han hecho las demostraciones, destripado.


El acceso para programarlo se hace... por el conector de auricular, utilizándolo como RS232. Y no es que sea algo que se hayan inventado ellos, es el procedimiento estándar para acceder al firmware...

¿Qué queda por hacer? Bueno, todavía bastante: "hand-over" entre celdas, llamadas de datos, GPRS... y todo tipo de comprobaciones de seguridad. Harald sigue insistiendo que se deje de mirar al TCP/IP y se empiece a mirar a GSM, y el mundo será más entretenido, y posiblemente más seguro (sobre todo si tu teléfono es 3G). Como decía una compañía que ya no lo dice tanto: "La vida es móvil".

1 comentario: