Trabajo Redes y Servcios de Radio
Transcripción
Trabajo Redes y Servcios de Radio
Trabajo de Redes y Servicios de Radio - Bluetooth Miguel Ángel Cuevas Cepeda y Pablo Isidoro Carrillo Álvarez 25 de mayo de 2010 Resumen Este documento realizado para la asignatura de Redes y Servicios de Radio pretende mostrar una panorámica sobre la Tecnología Bluetooth tanto históricamente como técnicamente. En el presente documento podremos ver el origen de la Tecnología Bluetooth y sus principales usos, para a continuación, estudiar la tecnología desde un punto más técnico, sus tramas, protocolos, perfiles, topologías, tipos de enlaces o la seguridad, profundizando en los aspectos más interesantes no tratados en clase. Por último veremos algunos ejemplos prácticos así como las tramas que intercambian dispositivos que implementan la Tecnología Bluetooth. Índice general 1. Historia y Contexto 1.1. Qué es una WPAN . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Historia de Bluetooth . . . . . . . . . . . . . . . . . . . . . . 1.2.1. Surgimiento de Bluetooth . . . . . . . . . . . . . . . . 1.2.2. Evolución de Bluetooth . . . . . . . . . . . . . . . . . 1.2.2.1. El Grupo de Interés Especial de Bluetooth[2] 1.2.2.2. Versiones . . . . . . . . . . . . . . . . . . . . 1.3. Usos y Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1. Clases y Perfiles . . . . . . . . . . . . . . . . . . . . . 1.3.2. Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . 1.3.3. Diferencias en redes Bluetooth y Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 4 4 4 5 7 7 7 9 2. Información Técnica 2.1. Topología de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Radio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1. Canal de radio . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2. Salto de frecuencia y salto adaptable de frecuencia (AFH) . 2.2.3. Ranuras de tiempo y paquetes. Transmisión bidireccional . 2.2.4. Protocolos de gestión de enlaces y canales. Capas de control 2.2.5. Canalización . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Tipos de enlace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4. Formato del paquete . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5. Máquina de estados . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6. Aplicaciones. Perfiles en Bluetooth . . . . . . . . . . . . . . . . . . 2.6.1. Advanced Audio Distribution Profile (A2DP) . . . . . . . . 2.6.2. Audio/Video Remote Control Profile (AVRCP) . . . . . . . 2.6.3. Basic Imaging Profile (BIP) . . . . . . . . . . . . . . . . . . 2.6.4. Basic Printing Profile (BPP) . . . . . . . . . . . . . . . . . 2.6.5. Common ISDN Access Profile (CIP) . . . . . . . . . . . . . 2.6.6. Cordless Telephony Profile (CTP) . . . . . . . . . . . . . . 2.6.7. Device ID Profile (DID) . . . . . . . . . . . . . . . . . . . . 2.6.8. Dial-Up Networking Profile (DUN) . . . . . . . . . . . . . . 2.6.9. Fax Profile (FAX) . . . . . . . . . . . . . . . . . . . . . . . 2.6.10. File Transfer Profile (FTP) . . . . . . . . . . . . . . . . . . 2.6.11. General Audio/Video Distribution Profile (GAVDP) . . . . 2.6.12. Generic Access Profile (GAP) . . . . . . . . . . . . . . . . . 2.6.13. Generic Object Exchange Profile (GOEP) . . . . . . . . . . 2.6.14. Hard Copy Cable Replacement Profile (HCRP) . . . . . . . 2.6.15. Hands-Free Profile (HFP) . . . . . . . . . . . . . . . . . . . 2.6.16. Human Interface Device Profile (HID) . . . . . . . . . . . . 2.6.17. Headset Profile (HSP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 10 12 12 12 13 13 16 17 18 18 19 20 20 21 21 21 21 21 21 22 22 22 22 22 22 22 22 22 1 . . . . . . . . . . . . . . . . . . . . ÍNDICE GENERAL 2.6.18. 2.6.19. 2.6.20. 2.6.21. 2.6.22. 2.6.23. 2.6.24. 2.6.25. 2.6.26. 2.6.27. 2.6.28. Intercom Profile (ICP) . . . . . . . . . . . . . . . . . Object Push Profile (OPP) . . . . . . . . . . . . . . Personal Area Networking Profile (PAN) . . . . . . . Phone Book Access Profile (PBAP) . . . . . . . . . . Serial Port Profile (SPP) . . . . . . . . . . . . . . . . Service Discovery Profile (SDAP) . . . . . . . . . . . SIM Access Profile (SAP, SIM) . . . . . . . . . . . . Synchronisation Profile (SYNCH) . . . . . . . . . . . Video Distribution Profile (VDP) . . . . . . . . . . . Wireless Application Protocol Bearer (WAPB) . . . Perfiles adicionales . . . . . . . . . . . . . . . . . . . 2.6.28.1. Unrestricted Digital Information (UDI). . . 2.6.28.2. Extended Service Discovery Profile (ESDP) 2.6.28.3. Video Conferencing Profile (VCP) . . . . . 2.6.28.4. Message Access Profile (MAP) . . . . . . . 3. Seguridad en Bluetooth 3.1. Modos de seguridad . . . . . . . . . . . . . . . . 3.2. Seguridad en la Conexión . . . . . . . . . . . . . 3.2.1. Emparejamiento o “Paring” . . . . . . . . 3.2.2. Autenticación . . . . . . . . . . . . . . . . 3.2.3. Autorización . . . . . . . . . . . . . . . . 3.2.4. Cifrado de datos . . . . . . . . . . . . . . 3.3. Vulnerabilidades. Ataques a dispositivos Bluetooh 3.3.1. BlueSnarf . . . . . . . . . . . . . . . . . . 3.3.2. BlueBug . . . . . . . . . . . . . . . . . . . 3.3.3. Hello Moto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. Ejemplos y Casos de uso práctico 4.1. Ejemplo con un móvil. Aplicación Java para bluetooth 4.2. Sniffer para Bluetooh . . . . . . . . . . . . . . . . . . . 4.2.1. Introducción . . . . . . . . . . . . . . . . . . . 4.2.2. Herramientas software necesarias . . . . . . . . 4.2.3. Comandos útiles . . . . . . . . . . . . . . . . . 4.2.3.1. Interfaz Bluetooth . . . . . . . . . . . 4.2.3.2. Lista de dispositivos. Escaner . . . . . 4.2.3.3. Sniffer de tráfico de datos . . . . . . . 4.2.3.4. Descubrimientos de servicio . . . . . . 4.2.4. Contruir nuestro propio sniffer Bluetooth . . . 4.3. Análisis de Intercambio de Tramas Bluetooth . . . . . Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 23 23 23 23 23 23 23 23 23 24 24 24 24 24 . . . . . . . . . . 25 25 25 25 27 28 29 30 30 32 37 . . . . . . . . . . . 38 38 38 38 39 41 41 41 41 46 51 54 2 Capítulo 1 Historia y Contexto En este capítulo se describe el contexto histórico - tecnológico en el que surge la tecnología Bluetooth y su evolución. Lo primero que veremos será una aproximación a que es Bluetooth. Bluetooth es una norma que define un estándar global de comunicación inalámbrica para la transmisión de voz y datos por un enlace de radiofrecuencia. Los principales objetivos son: Facilitar las comunicaciones entre equipos móviles y fijos. Eliminar cables y conectores entre estos. Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sincronización de los datos en ellas entre nuestros equipos personales. Para más información puede acudir a la referencia bibliografica utilizada disponible en la Biblioteca de la Escuela de Ingenerios [1]. 1.1. Qué es una WPAN Lo primero que debemos preguntarnos es qué es una WPAN, Wireless Personal Area Network o Red de Área Personal Inalámbrica. Las WPAN son un tipo de redes que se despliegan entre los dispositivos en un área de 1 metro de radio, generalmente es usada por una misma persona comunicando entre sí sus dispositivos de forma inalámbrica, no estando destinadas a su aplicación en LANs, Local Area Networks o Redes de Área Local. Este tipo de redes surge de la necesidad creciente de comunicación entre los distintos aparatos electrónicos que portamos o usamos cada día como ordenadores, teléfonos móviles, periféricos inalámbricos o manos libres para el automóvil. Este tipo de redes surge en los años noventa y cada vez se estan popularizando más hasta tal punto que en 2007 se tenían más de mil millones de dispositivos que trabajaban en una WPAN. 1.2. Historia de Bluetooth El nombre Bluetooth proviene del rey danés y noruego Harald Blàtand, la traducción al inglés de su apellido sería Bluetooth. El rey Harald fue conocido por ser un buen comunicador y consiguió unificar las tribus noruegas, suecas y danesas. Debido a que el propósito de esta tecnología era unir los dispositivos entre sí y el origen noruego de la compañía que lo impulsó primero se eligió este nombre. El logo proviene de la unión de dos runas germánicas. 3 CAPÍTULO 1. HISTORIA Y CONTEXTO (a) Runa Hagall (c) Logotipo de Bluetooth (b) Runa Berkanan Figura 1.1: Logo de Bluetooth 1.2.1. Surgimiento de Bluetooth La primera empresa que trabajó en Bluetooth fue Ericsson, que en 1994 encarga un estudio sobre la viabilidad de una interfaz de conexión inalámbrica vía radio, de bajo coste y consumo reducido. El propósito de esta interfaz era la conexión entre teléfonos móviles y accesorios para así no tener que usar cables. El estudio partía de un proyecto que investigaba multicomunicadores conectados a una red celular, hasta que se consiguió un enlace de corto alcance llamado MC link. Al avanzar el proyecto se vió que este tipo de enlace podía tener muchosa más usos y aplicaciones teniendo como principal virtud que se basaba en un chip de radio económico. 1.2.2. Evolución de Bluetooth 1.2.2.1. El Grupo de Interés Especial de Bluetooth[2] En septiembre de 1998 se crea el Grupo de Interés Especial (SIG) de Bluetooth con sede en Bellevue, Washington. El SIG de Bluetooth es una organización privada sin ánimo de lucro. El SIG de Bluetooth no se ocupa de la fabricación ni venta de productos con esta tecnología, tan sólo del desarrollo de la misma. Actualmente el SIG tiene más de 9000 miembros líderes en las áreas de las telecomunicaciones, informática, industria automotriz, música, etc. . . . Los miembros del SIG impulsan el desarrollo de la tecnología Bluetooth y la implantan y comercializan en sus productos. Actualmente el SIG tiene oficinas en Bellevue, Washington y dependencias en Hong Kong y en Malmo, Suecia. El equipo está formado por una pequeña plantilla de profesionales del SIG y sus ejecutivos. Además del personal propio del SIG varias empresas afiliadas prestan a sus trabajadores de forma voluntaria y de esta forma juegan un papel importante en el desarrollo de la tecnología Bluetooth y en la organización que la respalda. Los miembros de la organización son responsables de varios grupos de trabajo y comités de áreas como ingeniería, calidad o marketing. En su origen el SIG fue formado por las empresas: Ericsson IBM Intel Toshiba Nokia Un año después, en 1999 se unirían: 3com Microsoft Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 4 CAPÍTULO 1. HISTORIA Y CONTEXTO Motorola En la actualidad hay multitud de empresas pero las más activas, siendo sus miembros promotores, son: Ericsson Intel Corporation Lenovo (Singapore) Pte Ltd Microsoft Corporation Motorola, Inc. Nokia Corporation Toshiba Corporation Para poder usar el logo o la tecnología Bluetooth en tu producto debes pertenecer al SIG de Bluetooth y al ser una tecnología abierta todos sus miembros están autorizados a usarla en sus productos y servicios. En la actualidad existen 3 tipos de afiliación que comparten los mismos acuerdos: Miembros promotores Miembros asociados Miembros adoptivos Actualmente no se permite la afiliacion de individuos ni estudiantes y sí a las empresas. Los beneficios por afiliarse es una licencia de uso libre de derechos de autor para fabricar productos con esta tecnología, acceso a la información técnica y las especificaciones y la licencia para usar el término y los logotipos de la tecnología Bluetoth. 1.2.2.2. Versiones Durante todo este tiempo Bluetooth ha ido evolucionando mejorando sus características y adaptándose al mercado. Originalmente la especificación fue desarrollada en 1994 por dos ingenieros de Ericsson y se basaba en la técnica de Salto en Frecuencia de Espectro Expandido. En 1998 la especificación fue formalizada por el SIG de Bluetooth. 1. Bluetooth v1.0 y 1.0B Las versiones 1.0 y 1.0B del protocolo tuvieron muchos errores y los fabricantes tuvieron muchas dificultades para conseguir que los productos fueran interoperables entre si. Por otra parte, estas versiones exgían el envío de la dirección hardware en el proceso de conexión, haciendo imposible a nivel de protocolo el envío anónimo, algo que era necesario para ciertos servicios planeados en entornos Bluetooth. 2. Bluetooth v1.1 Muchos de los errores de la versión anterior fueron corregidos. Se añadió soporte para canales no encriptados y un indicador de la potencia de la señal recibidad. Esta versión se ratificó como estandar del IEEE 802.15.1-2002 [3]. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 5 CAPÍTULO 1. HISTORIA Y CONTEXTO 3. Bluetooth v1.2 Esta versión es retrocompatible con la v1.1, y se alcanza una mayor velocidad de conexión de hasta 721Kb/s. Sus principales avances fueron una conexión y descubrimiento más rápido, el uso de la técnica de Salto en Frecuencia Adaptativo (AFH) que consigue mayor resistencia a las interferencias en la señal, Conexiones Extendidas Síncronas (eSCO) que consiguen una mejora en la calidad de los enlaces de audio y se introduce el control de flujo y un modo de retransmisión para L2CAP. Es ratificado como estándar por el IEEE, 802.15.1-2005[3]. 4. Bluetooth v2.0 + EDR Esta versión fué lanzada en 2004 y es retrocompatible con la versión 1.2. El avance principal es la inclusión de “Enhace Data Rate” (EDR) para una transmisión de datos más rápida. La velocidad nominal es de 3Mbps pero en la práctica se alacanzaban tasas de 2.1Mbps. La especificación fue publicada como “Bluetooth 2.0 + EDR” lo que implicaba que EDR era una característica opcional 5. Bluetooth v2.1 + EDR Esta versión fue lanzada por el SIG en 2007 y es retrocompatible con la v1.2. La característica más importante es el Emparejamiento Simple Seguro (SPP) que mejora la experiencia de emparejar dos dispositivos incrementando el uso y fuerza de la seguridad. También encontramos mejoras en la gestión de energía, sobre todo un menor consumo estando en reposo. 6. Bluetooth v3.0 + HS Esta versión fue lanzada por el SIG en abril de 2009. Soporta velocidades teóricas de 24Mbps, pero no se usa el canal Bluetooth en sí para los datos sino sólo para la negociación y establecimiento, el transporte de los datos se dá sobre un enlace 802.11, esto se hace usando “Alternate MAC/PHY”. a) Alternate MAC/PHY, permite el uso de alternativas MAC y PHY para el transporte de los datos del perfil de Bluetooth. El enlace de radio Bluetooth se sigue usando para la detección de los dispositivos, la conexión inicial y la configuración del perfil, pero cuando se tienen que transferir grandes cantidades de datos se usa una interfaz de alta velocidad PHY MAC 802.11 que es la que se asocia a Wi-Fi. Con esto usamos Bluetooth cuando el sistemas está inactivo y cuando es necesario una transferencia de gran cantidad de datos se usa Wi-Fi. b) Unicast Conectionless Data, permite un servicio de envío de datos sin establecer un canal L2CAP explícito. Está destinado a aplicaciones de baja latencia entre la acción del usuario y la reconexión / envío de los datos. Sólo debe utilizarse con pequeñas cantidades de datos. c) Control mejorado de energía, actualiza el control de energía quitando el control de energía por lazo abierto y aclara ambigüedades de la versión anterior estableciendo esquemas nuevos de modulación para EDR y el comportamiento que se espera. También se añade un control de alimentación en circuito cerrado y una petición para ir directamente a la máxima potencia para evitar perdidas de conexión de los dispositivos. 7. Bluetooth v4.0 El 21 de abril de 2010 el SIG de Bluetooth completa el núcleo de la v4.0 de Bluetooth. Esta versión incluye Classic Bluetooth, Bluetooth de alta velocidad y Bluetooth de baja energía. El Bluetooth de alta velocidad se basa en Wi-Fi y el Classic Bluetooth se compone de los anteriores protocolos. a) El Bluetooth de baja energía es una mejora reciente que permite dos tipos de aplicación, modo dual y monomodo. En una aplicación dual, la nueva funcionalidad se integra en un controlador Classic Bluetooth existente. Como resultado tenemos una arquitectura que comparte muchos puntos con Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 6 CAPÍTULO 1. HISTORIA Y CONTEXTO Classic Bluetooth y tiene un coste mínimo. Además los fabricantes pueden usar la nueva pila de baja energía tanto en Bluetooth v2.1 como Bluetooth 3.0, mejorando el desempeño de Classic Bluetooth con las nuevas capacidades. Por otra parte en un chip monomodo permitirá dispositivos muy integrados y compactos que tendran una ligera capa de enlace con un consumo ultra bajo en el modo de inactividad, detección de dispositivos simple, conexiones punto-multipunto de transferencia de datos con ahorro avanzado de energía y conexiones encriptadas seguras al menor coste posible. Además la capa de enlace de estos controladores permitirán sensores conectados a internet para programar el tráfico de baja energía entre transmisores Bluetooth. La tecnología Bluetooth de bajo consumo está diseñada para tener una vida de batería de hasta un año con pilas de botón, esto se espera que pueda aplicarse en equipamiento deportivo y en relojes. 8. Versiones futuras Para versiones futuras se quiere diseñar canales de difusión, esto habilitaría los puntos de información Bluetooth impulsando Bluetooth en los teléfonos móviles y haciendo posibles modelos de publicidad basados en puntos de información. También se preveen mejoras en la topología de gestión cuando haya muchos dispositivos haciendo la gestión de estos transparente al usuario y mejoras en la QoS haciendo que se priorice el tráfico de Audio o Video a una mayor calidad dentro de la piconet. 1.3. Usos y Aplicaciones Bluetooth tiene como misión ser un protocolo de comunicación diseñado para tener un bajo consumo y un rango de trabajo pequeño. 1.3.1. Clases y Perfiles Dependiendo de la potencia que se use tenemos tres clases de dispositivos, como vemos en la figura 1.1. Por otra parte estos dispositivos no necesitan estar en una línea de visión directa porque se usa un radio enlace. Clase Clase 1 Clase 2 Clase 3 Potencia Máx. Permitida (dB) 20 4 0 Potencia Máx. Permitida (mW) 100 2,5 1 Intervalo ~100m ~10m ~1m Cuadro 1.1: Clases de dispositivos Bluetooth Para usar la tecnología Bluetooth de forma sencilla se crearon una seria de perfiles que facilitaran la interoperatiblidad de los dispositivos y la puesta en funcionamiento de las conexiones, estos perfiles podemos verlos detalladamente en el apartado 2.6. 1.3.2. Aplicaciones Teniendo en cuenta la flexibilidad que ofrecen los perfiles y las distintas clases de dispositvos Bluetooth nos encontramos con un amplio abanico de aplicaciones. A continuación veremos algunos ejemplos. Manos libres para teléfonos móviles y ordenadores, esta fué una de las primeras aplicaciones, ver figura 1.2d. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 7 CAPÍTULO 1. HISTORIA Y CONTEXTO Redes inalámbricas entre ordenadores, este no es su propósito principal pero aún así es posible. Transferencia de archivos y datos de contacto, calendario, mediante la tecnología OBEX, ir a 2.2.4 para más información. Para conexiones de perífericos de forma inalámbrica y que no precisen mucho ancho de banda, como ejemplo tenemos impresoras, ratones o teclados. Para sustituir los cables de comunicación serie de receptores GPS, equipos médicos. Envío de anuncios desde puntos publicitarios a dispositivos Bluetooth detectables. Para la conexión de los controles inalámbricos en consolas de videojuegos u ordenadores. Para conectar un teléfono móvil a un ordenador y que el ordenador pueda usarlo como modem. Transmisión de datos a teléfonos móviles desde sensores de salud o deportivos. Como puente inalábrico entre dos redes Industrial Ethernet (PROFINET). Para conectar altavoces a ordenadores o teléfonos móviles de forma inalámbrica evitando cables, ver figura 1.2a. (b) Ratón bluetooth (a) Altavoces Bluetooth (c) Mando de videoconsola Bluetooth (d) Headset Bluetooth Figura 1.2: Ejemplos de dispositivos Bluetooth Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 8 CAPÍTULO 1. HISTORIA Y CONTEXTO 1.3.3. Diferencias en redes Bluetooth y Wi-Fi Wi-Fi está pensado para equipos que necesitan intercambiar una gran cantidad de datos pero sin un cableado general, es decir, de forma inalámbrica y en el entono de una Red de Área Local Inalámbrica así que sería un entorno WLAN. Por otra parte Bluetooth está pensado para equipos que están en continua movilidad y que se comunican cuando están muy cerca unos de otros encajando en el perfil de la Red de Área Personal Inalámbrica, WPAN. Además también se diferencian en la puesta en marcha de los dos tipos de redes, Wi-Fi al ser una red Ethernet requiere de una configuración previa para poder funcionar mientras que Bluetooth gracias a los perfiles de uso sólo necesita detectar el dispositivo e introducir una contraseña. Por otra parte los enlaces en Wi-Fi al ser con mayor potencia y dentro del mismo rango de frecuencias de Bluetooth consigue una mayor fiabilidad en las transmisiones. A continuación vemos la figura 1.2 como resumen. Bluetooth Wi-Fi Distancia Corta Larga Frecuencia 2.4GHz 2.4GHz Tipo de red WPAN WLAN Configuración Sencilla Complicada Potencia Menor Mayor Ancho de Banda Menor Mayor Cuadro 1.2: Tabla Bluetooth Vs Wi-Fi Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 9 Capítulo 2 Información Técnica 2.1. Topología de red Bluetooth soporta tanto comunicaciones punto a punto como punto a multipunto. Los dispositivos Bluetooth se agrupan en lo que se conoce como piconet, que podemos ver en la figura 2.1, constituida por equipos que se conectan sobre la marcha. Cada piconet se caracteriza por una secuencia de salto en frecuencia diferente y tiene una capacidad de hasta 8 dispositivos, todos ellos sincronizados tanto en tiempo como en frecuencia. Figura 2.1: Esquema de una piconet Dentro de una piconet, existen medios de interacción entre los dispositivos Bluetooth. El modo más simple es la conexión punto a punto, que vemos en la figura 2.2a, en la que únicamente hay dos extremos implicados: uno de ellos recibe el nombre de maestro (master en la figura 2.1) y el otro el de esclavo (slave en la figura 2.1). La otra variedad es la conexión punto a multipunto, que vemos en la figura 2.2b, donde múltiples dispositivos esclavos, hasta un máximo de 7, se conectan a un maestro. En este caso el canal y su ancho de banda son compartidos por todo el conjunto. 10 CAPÍTULO 2. INFORMACIÓN TÉCNICA (a) Punto a punto (b) Punto a Multipunto Figura 2.2: Topologías de red Bluetooth En realidad es posible que dentro de una misma piconet haya más de 7 esclavos conectados a un maestro, pero únicamente 7 de ellos podran estar activos simultáneamente; el resto se dice que están aparcados (parked ). Estos tipos de dispositivos permaneceran sincronizados, en todo momento, con el maestro, de manera que en cualquier instante uno de ellos puede entrar en funcionamiento. A cada uno de los esclavos activos se le asigna un número de 3 bits que recibe el nombre de dirección AMA (Active Member Address) mientras que para los esclavos aparcados la dirección es de 8 bits y se denomina PMA (Parked Member Address). Por tanto, podra haber hasta 256 esclavos aparcados. El solapamiento entre las áreas de cobertura de dos piconet cercanas da lugar a una scatternet (ver figura 2.3). Cuando esto ocurre, los esclavos de una piconet pueden actuar como maestros o como esclavos de la otra mediante un esquema TDM de multiplexación por división en el tiempo. Cada una de las piconet opera con una secuencia de salto distinta. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 11 CAPÍTULO 2. INFORMACIÓN TÉCNICA Figura 2.3: Esquema de una scatternet En cuanto a interferencias con otros dispositivos, hay que tener cuidado con los que operan en la misma banda ya que se pueden interferir unos a otros. 2.2. Radio La capa física de radio (RF) Bluetooth opera en la banda de 2.4 GHz libre para ISM (banda de frecuencia industrial, científica y médica), como ya hemos comentado en secciones anteriores. El sistema emplea un transmisor de salto de frecuencia para contrarrestar las interferencias y la pérdida de intensidad, y cuenta con un gran número de portadoras de espectro ensanchado por salto de frecuencia (FHSS). Para minimizar la complejidad del transmisor, se utiliza una modulación de frecuencia binaria. La tasa de transferencia de símbolos es de 1 MSps (megasímbolos por segundo), que admite una velocidad de transmisión de 1 Mbps en el modo de transferencia básica y una velocidad de transmisión aérea total de 2 a 3 Mbps en el modo de transferencia de datos mejorada. Estos modos se conocen como transferencia básica y transferencia de datos mejorada, respectivamente. 2.2.1. Canal de radio Normalmente, varios dispositivos sincronizados por un reloj y una secuencia de salto de frecuencia comparten el mismo canal físico de radio, el aire. 2.2.2. Salto de frecuencia y salto adaptable de frecuencia (AFH) Los dispositivos de una piconet utilizan una secuencia de salto de frecuencia determinada por algoritmos en ciertos campos del reloj y de la dirección de especificación Bluetooth del maestro. La secuencia básica de salto consiste en un ordenamiento pseudo-aleatorio de las 79 frecuencias de la Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 12 CAPÍTULO 2. INFORMACIÓN TÉCNICA banda ISM. Esta secuencia puede adaptarse para excluir la sección de frecuencias utilizadas por los dispositivos que están causando interferencias. La técnica de salto adaptable mejora la coexistencia de la tecnología Bluetooth con los sistemas ISM estáticos (es decir, sin salto) cuando éstos se encuentran localizados. 2.2.3. Ranuras de tiempo y paquetes. Transmisión bidireccional El canal físico se subdivide en unidades de tiempo denominadas ranuras. Los datos intercambiados entre los dispositivos Bluetooth se transmiten en forma de paquetes que se emplazan en estas ranuras. Cuando la situación lo permite, se pueden asignar varias ranuras consecutivas a un único paquete. El salto de frecuencia se produce durante la transmisión o recepción de los paquetes. La tecnología Bluetooth consigue la transmisión bidireccional mediante la técnica de acceso múltiple o dúplex por división de tiempo (TDD). 2.2.4. Protocolos de gestión de enlaces y canales. Capas de control La pila de protocolos Bluetooth está formada por una serie de niveles funcionales cuya representación simplificada se muestra en la figura 2.4. Figura 2.4: Pila de protocolos de Bluetooth En primer lugar, encontramos el nivel de Radio (RF ), que especifica los parámetros relacionados con la interfaz del medio físico como la banda de frecuencia (ver tabla 2.4), las características del transmisor, la modulación, etc. Sobre esta capa, se sitúa el de Banda base (BaseBand ), encargado de las tareas de bajo nivel para lo que define un controlador del enlace (LC, Link Controller ). Un Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 13 CAPÍTULO 2. INFORMACIÓN TÉCNICA dispositivo Bluetooth genérico se compone de un módulo de radio, un módulo de control del enlace y un módulo para la gestión del enlace de la entrada y salida (ver figura 2.5). Figura 2.5: Esquema de un dispositivo Bluetooth genérico Por otra parte, el protocolo de Gestión del Enlace (LMP, Link Manager Protocol ) contiene los mensajes de establecimiento de las conexiones, seguridad y control. Bluetooth soporta un canal de datos asíncrono o hasta tres canales síncronos de voz o bien un canal de voz y otro de datos simultáneos, ver tabla 2.1. Configuración 3 canales de voz simultáneos Datos simétricos Datos asimétricos Máxima tasa binaria ascendente 64 Kbps por canal 433.9 Kbps 723.2 Kbps o 57.6 Kbps Máxima tasa binaria descendente 64 Kbps por canal 433.9 Kbps 57.3 Kbps o 723.2 Kbps Cuadro 2.1: Configuraciones del enlace El protocolo L2CAP ( Logical Link Control and Adaptation Protocol ) se utiliza para pasar paquetes con y sin orientación a la conexión a sus capas superiores incluyendo tanto al Host Controller Interface (HCI) como directamente al gestor del enlace (LM). Las funciones de L2CAP incluyen: Segmentación y reensamblado de paquetes: Acepta paquetes de hasta 64KBytes de sus capas superiores. Multiplexación de varias fuentes de paquetes, comprobando el protocolo de las capas superiores para así adaptarlo antes del reensamblaje. Proporcionar una buena gestión para la transmisión unidireccional a otros dispositivos bluetooth. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 14 CAPÍTULO 2. INFORMACIÓN TÉCNICA Gestión de la calidad de servicio (QoS), del inglés Quality of service: para los protocolos de las capas superiores. En esta fase negocia el tamaño máximo del campo de datos de las tramas. Con ello, evita que algún dispositivo envíe paquetes tan grandes que puedan desbordar al receptor. Sobre el nivel L2CAP, encontramos los siguientes protocolos: SDP (Service Discovery Protocol ): Ofrece un servicio de publicación de los servicios disponibles y sus características, ver figura 2.6. Figura 2.6: Protocolo SDP RFCOMM (Radio Frequency Communication) [10]: es una emulación de un puerto serie sobre L2CAP basada en el estándar ETSI TS 0.7.10 y puede soportar hasta 60 conexiones simultáneas entre dos dispositivos Bluetooth, aunque el número empleado depende de la capacidad de cada dispositivo concreto. • OBEX (abreviatura de OBject EXchange, intercambio de datos; también denominado IrOBEX ) es un protocolo de comunicaciones que facilita el intercambio de objetos binarios entre dispositivos. Es mantenido por la Infrared Data Association (IrDA) pero ha sido adoptada también por el Bluetooth Special Interest Group y por la sección SyncML de la Open Mobile Alliance (OMA). Una de las primeras aplicaciones populares de OBEX tuvo lugar en la Personal Digital Assistant Palm III. Esta PDA y sus múltiples sucesoras utilizaron OBEX para intercambiar tarjetas de negocio, datos e incluso aplicaciones. • OBEX es similar en diseño y funcionalidad a HTTP, protocolo en el que el cliente utiliza un transporte fiable para conectarse a un servidor y así recibir o proporcionar objetos. No obstante, OBEX difiere en algunos puntos importantes. ◦ Transporte: HTTP funciona normalmente sobre un puerto TCP/IP. OBEX, en cambio, es comúnmente implementado sobre una pila IrLAP/IrLMP/Tiny TP de un dispositivo IrDA; mientras que funcionando con Bluetooth, OBEX se suele implementar sobre una pila en Banda Base/Link Manager/L2CAP/RFCOMM. En cualquier caso, ofrece otras posibilidades. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 15 CAPÍTULO 2. INFORMACIÓN TÉCNICA ◦ Transmisiones binarias: HTTP utiliza texto legible por el ser humano, mientras que OBEX utiliza tripletes binarios llamadas cabeceras (del inglés, headers) para intercambiar información sobre una petición o un objeto. Éstos, resultan más simples de elaborar para dispositivos con características limitadas. ◦ Soporte para realizar sesiones: Las transacciones HTTP carecen inherentemente de estado. Generalmente, un cliente HTTP establece una conexión, efectúa una sola petición, recibe respuesta y cierra la conexión. En OBEX, una sola conexión de transporte podría utilizarse para efectuar varias operaciones relacionadas entre sí. De hecho, las últimas novedades de la especificación OBEX permiten almacenar la información del estado de una conexión intacta incluso si la conexión finalizó inesperadamente. TCS (Telephony Control Specification) (TCS BIN o TCP): Esta especificación detalla cómo un dispositivo con tecnología Bluetooth puede utilizarse como teléfono inalámbrico y el proceso que debe seguir un móvil compatible para cambiar sus funciones al conectarse con una estación base equipada con esta tecnología. Es un protocolo que opera en bits y establece la señalización de control para el establecimiento de llamadas de voz y datos en dispositivos con tecnología Bluetooth. También muestra la señalización de control en grupos de dispositivos Bluetooth. El protocolo TCP admite el establecimiento de llamadas de voz y datos en configuraciones punto a punto y multipunto. Se basa en la norma Q.931 del ITU-T y se ejecuta directamente en la capa L2CAP. Las especificaciones de estándar Bluetooth se recogen en la tabla de la figura 2.2. Tecnología Banda de frecuencia Modulación Potencia del transmisor Canales máximos Velocidad de datos Distancia máxima Número de dispositivos Consumo de potencia Espectro Ensanchado por Salto de Frecuencia (FHSS) 2.4 GHz (Banda ISM) GFSK 1 mW para un enlace de 10 m 100 mW para un enlace de hasta 100 m De voz: 3 por piconet De datos: 7 por piconet Hasta 721 Kbps por piconet 10 m 8 por piconet y hasta 10 piconets Desde 30mA hasta 30mA transmitiendo Cuadro 2.2: Características principales del estándar 2.2.5. Canalización La especificación distingue dos tipos de canales: físicos y lógicos. Los primeros hacen referencia al modo en que se reparten los recursos del canal entre los dispositivos que forman parte de la red (scatternet o piconet), mientras que los segundos son conexiones a nivel de protocolo que se emplean para algún propósito específico. Cada dispositivo Bluetooth está equipado con un microchip (transceiver ) que transmite y recibe en la frecuenia de 2.45 GHz (2.402 GHz hasta 2.480 GHz, en saltos de 1 MHz) que esta disponible en todo el mundo y que no require de ninguna licencia especial. En algunos países, entre ellos España, Francia y Japón, esta banda está limitada a 23 canales en lugar de 79, también espaciados 1MHz. Ver figura 2.3 Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 16 CAPÍTULO 2. INFORMACIÓN TÉCNICA Banda de guarda Canal 0 Canal 1 Canal 2 ... ... Canal 77 Canal 78 Banda de guarda Frecuencia (GHz) 2.400 2.402 2.403 2.404 ... ... 2.479 2.480 2.481 GHz + 3.5 MHz Cuadro 2.3: Canalización física Cada canal se caracteriza por una secuencia pseudoaleatoria que define el modo en que se realizarán los saltos en frecuencia. Esta secuencia es única para cada piconet y depende de la dirección del dispositivo maestro de la misma, mientras que la fase la determina el reloj del maestro. El canal queda dividido, por tanto en slots temporales de 625 ms de duración, designados por un número del 0 a 227 -1 de acuerdo al reloj del dispositivo maestro de la piconet. En cada slot, tanto el maestro como los esclavos pueden transmitir información. En cuanto a los canales lógico existen cinco diferente agrupados en dos categorías: control y usuario, ver figura 2.4. Canales de control Canales de usuario Acrónimo LC LM UA UI US Descripción Link Control Link Manager User Asynchronous User Isochronous User Synchronous Cuadro 2.4: Canales lógicos 2.3. Tipos de enlace En la comunicación entre un maestro y un esclavo se distinguen dos tipos de enlaces. Enlaces SCO (Synchronous Connection-Oriented ): que proporcionan una comunicación punto a punto entre el maestro y un único esclavo de la piconet. El maestro se encarga del mantenimiento del enlace SCO y emplea para ello slots reservados a intervalos regulares de tiempo. Puesto que se reservan slots para el enlace SCO, equivale a una conexión por conmutación de circuitos entre el maestro y el esclavo en cuestión (por esta razón, es el que se emplea para comunicaciones de voz). Un mismo maestro soporta tres enlaces SCO con el mismo maestro o dos enlaces SCO con maestros diferentes. Al producirse una reserva de recursos, se supone que el enlace es fiable y no se retransmiten los paquetes. Enlaces ACL (Asynchronous ConnectionLess): en este caso, se trata de un enlace punto a multipunto entre el maestro y todos los esclavos que forman parte de la piconet. En los slots que no estan reservados para enlaces SCO, el maestro puede establecer un enlace ACL por slot con cualquier esclavo, incluidos aquellos con los que ya está enlazado a través del SCO. A diferencia del SCO, el enlace ACL está orientado a conmutación de los paquetes intercambiados entre el maestro y todos los esclavos activos de la piconet. Entre un maestro y un esclavo únicamente se Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 17 CAPÍTULO 2. INFORMACIÓN TÉCNICA puede establecer un ACL. En este caso, para asegurar la integridad de la información se efectúan retransmisiones de paquetes, si son necesarias. 2.4. Formato del paquete En cada piconet, la información se transmite fragmentada en paquetes. Cada paquete está formado por tres bloques, el código de acceso, la cabecera y la carga útil, ver figura 2.7. El código de acceso y la cabecera son de longitud fija (72 bits y 54 bits, respectivamente) mientras que el tamaño de la carga útil puede variar hasta los 2745 bits. Figura 2.7: Formato del paquete El codigo de acceso es el mismo en cada piconet y se utiliza para distinguir los paquetes pertenecientes a una piconet dada. 2.5. Máquina de estados El LC del dispositivo del dispositivo Bluetooth se caracteriza por una máquina de estados como la de la figura 2.8, en la que se distinguen dos estados principales (STANDBY y CONNECTION) y siete subestados (page, page scan, inquiry, inquiry scan, master response, slave response e inquiry response). Los subestados son estados internos que se emplean para añadir esclavos a la piconet y las transiciones de uno a otro se producen como consecuencia de comandos LMP o del envío y recepción de señales internas. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 18 CAPÍTULO 2. INFORMACIÓN TÉCNICA Figura 2.8: Máquina de estados Bluetooth El estado por defecto es STANDBY y en él , el dispositivo se encuentra en el modo de ahorro de energía y únicamente el reloj nativo esta activo. El controlador dejará el estado STANDBY para efectuar una búsqueda de dispositivos en la misma piconet y no volverá a él hasta que no pase al estado CONNECTED como maestro o como esclavo. 2.6. Aplicaciones. Perfiles en Bluetooth Sobre la pila de protocolos de Bluetooth, se define una serie de perfiles que se tomarán como base para implementar aplicaciones. Un perfil Bluetooth es la especificación de un interfaz de alto nivel para su uso entre dispositivos Bluetooth. Para utilizar una cierta tecnología Bluetooth un dispositivo deberá soportar ciertos perfiles. Los perfiles son descripciones de comportamientos generales que los dispositivos pueden utilizar para comunicarse, formalizados para favorecer un uso unificado. La forma de utilizar las capacidades de Bluetooth se basa, por tanto, en los perfiles que soporta cada dispositivo. Los perfiles permiten la manufactura de dispositivos que se adapten a sus necesidades. Como mínimo, una especificación de perfil debe cubrir: Dependencias con otros perfiles. Formatos recomendados para la interfaz con el usuario. Partes concretas de la pila Bluetooth que se utilizan (opciones particulares, parámetros). Puede incluir una descripción del tipo de servicio requerido. Algunos perfiles utilizados se puede ver en la figura 2.9. Las características de Bluetooth, la hacen adecuada para las siguientes categorias de aplicaciones: Conexión a otras redes como la red telefónica o una red LAN a través de otro dispositivo que haga las veces de punto de acceso. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 19 CAPÍTULO 2. INFORMACIÓN TÉCNICA Conexión de periféricos a un PC y otras aplicaciones en las que se sustituya el cable por un enlace inalámbrico (comunicación entre unos auriculares inalámbricos y un teléfono móvil, por ejemplo). Accesibilidad mutua entre dispositivos inalámbricos para, por ejemplo, transferencias de ficheros y sincronizacion de información. Figura 2.9: Perfiles Bluetooth Los siguientes perfiles han sido definidos y adoptados por el SIG de Bluetooth. [4] 2.6.1. Advanced Audio Distribution Profile (A2DP) Distribución de audio avanzada. Define cómo se puede propagar un stream de audio (mono o estéreo) entre dispositivos a través de una conexión Bluetooth. Inicialmente, se utilizaba en conjunción con un transceptor intermedio conectado al jack de salida de audio por defecto, que realizaba la conversión y transmisión. Actualmente, hay dispositivos Bluetooth 2.0 que soportan esta conexión sin esta necesidad. Éstos suelen soportar también AVRCP, HSP y HFP. A2DP puede transmitir un stream estéreo en dos canales a una radio o unos auriculares. Este perfil utiliza AVDTP y GAVDP. Incluye soporte obligatorio para codecs sub-band de baja complejidad (SBC) y soporte opcional de MPEG-1, MPEG-2, AAC y ATRAC, junto con codecs definidos por el fabricante. La mayoría de pilas implementan DRM (en concreto, el mecanismo SCMS-T). En estos casos no pueden conectarse unos auriculares para recibir audio de alta calidad. Por ejemplo, Motorola HT820 sólo puede hacer esto con ciertas versiones de pila Toshiba. 2.6.2. Audio/Video Remote Control Profile (AVRCP) Control remoto de audio/video. Diseñado para ofrecer un interfaz estándar para el control de televisores y aparatos de música entre otros, de forma que un mando único pueda agrupar todo el control. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 20 CAPÍTULO 2. INFORMACIÓN TÉCNICA Puede usarse junto con A2DP o VDP. También permite extensiones específicas del fabricante. Su versión 1.3 permite transmitir información del estado de la fuente, por ejemplo el título de una canción. 2.6.3. Basic Imaging Profile (BIP) Tratamiento básico de imágenes. Diseñado para enviar imágenes, incluye capacidades de ajuste de tamaño y conversión a formatos adecuados. También puede dividir una imagen en trozos más pequeños: Image Push permite el envío de imágenes. Image Pull permite la recepción de imágenes. Advanced Image Printing sirve para imprimir imágenes con opciones avanzadas utilizando el formato DPOF. Automatic Archive habilita backups automáticos de todas las imágenes nuevas de un dispositivo. Por ejemplo, un portátil puede descargar las imágenes que ha tomado una cámara desde la última conexión. Remote Camera permite el uso remoto de una cámara digital. Remote Display permite enviar imágenes a otro dispositivo para su visualización (por ejemplo, una presentación a un proyector). 2.6.4. Basic Printing Profile (BPP) Impresión básica. Permite el envío de texto, e-mails y otros documentos a impresoras en base a trabajos de impresión. Es distinto a HCRP en que no requiere drivers específicos de impresora, lo que lo hace más apto para dispositivos móviles como cámaras y teléfonos, que no pueden actualizar drivers con sencillez. 2.6.5. Common ISDN Access Profile (CIP) Acceso común a ISDN. Provee acceso ilimitado a los servicios de ISDN. 2.6.6. Cordless Telephony Profile (CTP) Telefonía sin cables. Permite que los teléfonos inalámbricos utilicen Bluetooth. Se espera que los teléfonos puedan utilizarlo para comunicarse con la línea de teléfono dentro de una casa, y con la red de telefonía móvil cuando no esté disponible (fuera de casa). 2.6.7. Device ID Profile (DID) Identificación de dispositivo. Permite a un dispositivo ofrecer identificación más allá de la clasificación en tipo de dispositivo de acuerdo con la versión, fabricante, producto y revisión de la especificación. Podría utilizarse para permitir a un ordenador conectarse a un dispositivo y descargar los drivers necesarios. Sus capacidades son semejantes a las de la especificación de plug and play. 2.6.8. Dial-Up Networking Profile (DUN) Conexión a red por dial-up o línea conmutada. El caso de uso típico es el de un portátil accediendo a Internet por medio de la línea de un teléfono móvil. Se basa en SPP y permite un funcionamiento razonablemente sencillo con productos existentes, en base a su similitud con los protocolos de línea serie (serial line Internet protocol). Incluye entre otros el protocolo PPP. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 21 CAPÍTULO 2. INFORMACIÓN TÉCNICA 2.6.9. Fax Profile (FAX) Fax. Busca ofrecer una interfaz bien definida entre un teléfono móvil o fijo y un ordenador con software de fax. Debe darse soporte al comando AT definido en ITU T.31 o ITU T.32, definidos por la ITU-T. No cubre llamadas de voz o datos. 2.6.10. File Transfer Profile (FTP) Transferencia de ficheros. Da acceso remoto a los sistemas de ficheros, permitiendo listados de directorios y cambios a éstos, obtención, envío y borrado de ficheros. Se basa en GOEP y utiliza OBEX como transporte. 2.6.11. General Audio/Video Distribution Profile (GAVDP) Distribución general de audio/video. Base de A2DP y VDP. 2.6.12. Generic Access Profile (GAP) Acceso genérico. Es la base para todos los demás perfiles. 2.6.13. Generic Object Exchange Profile (GOEP) Intercambio genérico de objetos. Sirve como base para otros perfiles de datos, y se basa a su vez en OBEX. 2.6.14. Hard Copy Cable Replacement Profile (HCRP) Reemplazo de cables. Es una alternativa a una conexión cableada entre un dispositivo y una impresora, aunque no fija un estándar de comunicación con la impresora, por lo que necesita drivers concretos para la impresora que se utiliza, lo que reduce su utilidad en dispositivos sencillos que no suelan disponer de drivers. 2.6.15. Hands-Free Profile (HFP) Manos libres. Usado comúnmente para permitir la comunicación con teléfonos móviles dentro de un coche. Utiliza SCO para transportar un canal de audio mono por medio de PCM. Su versión actual es la 1.5. Es un perfil integrado desde hace tiempo en muchos automóviles de fábrica. 2.6.16. Human Interface Device Profile (HID) Dispositivo de interfaz humana. Da soporte a dispositivos tales como ratones, joysticks y teclados. También puede utilizarse para indicadores luminosos o botones en otros tipos de dispositivos. Se ha diseñado para ofrecer un enlace de baja latencia manteniendo bajo el consumo. HID es un contenedor ligero del protocolo original definido para USB. Su uso simplifica la implementación del anfitrión (en concreto, el soporte de USB es reutilizable para Bluetooth en sistemas operativos). Últimamente se ha utilizado en los mandos de las consolas Wii y PS3. 2.6.17. Headset Profile (HSP) Auriculares. Uno de los perfiles más comunes, que permiten el uso de los auriculares Bluetooth (BT headsets) con los teléfono móviles. Utiliza SCO para transportar audio a 64 kbps codificado con CVSD o PCM y un subconjunto de comandos AT de GSM 07.07 para dar facilidades sencillas como tono, respuesta, colgado y ajuste de volumen. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 22 CAPÍTULO 2. INFORMACIÓN TÉCNICA 2.6.18. Intercom Profile (ICP) Intercom (el “perfil del walkie-talkie”). Un perfil de control de teléfono [5] que utiliza SCO para el transporte de audio. Propuesto para el transporte de llamadas entre dos dispositivos Bluetooth capaces de ello. 2.6.19. Object Push Profile (OPP) Un perfil básico para el envío de “objetos” genéricos como fotos, tarjetas virtuales (Vcard) o citas. Sigue el modelo push ya que el emisor es el que inicia siempre la comunicación. Utiliza las API’s de OBEX para las operaciones de conexión y desconexión, envío, recepción y cancelación. Situándose por encima de OBEX sigue indirectamente la especificación de la pila Bluetooth. 2.6.20. Personal Area Networking Profile (PAN) Redes de área personal. Permite el uso del protocolo de encapsulación de Bluetooth en protocolos de nivel de red sobre un enlace Bluetooth. 2.6.21. Phone Book Access Profile (PBAP) Acceso a agenda de teléfonos. Permite el envío de agendas telefónicas entre dispositivos. Puede utilizarse, por ejemplo, para enviar desde un móvil a una pantalla (por ejemplo, de coche en un manos libres) los datos de una llamada. 2.6.22. Serial Port Profile (SPP) Puerto serie. Basado en la especificación 07.10 de ETSI por medio del protocolo RFCOMM. Emula una línea serie y provee un interfaz de reemplazo de comunicaciones basadas en RS-232, con las señales de control típicas. Base de DUN, FAX, HSP y AVRCP. 2.6.23. Service Discovery Profile (SDAP) Descubrimiento de servicios. 2.6.24. SIM Access Profile (SAP, SIM) Acceso a SIM. Permite que los dispositivos compatibles con GSM como teléfonos puedan conectarse a una tarjeta SIM de forma que un teléfono esclavo (como el de un coche) no necesite una tarjeta propia. 2.6.25. Synchronisation Profile (SYNCH) Sincronización. Se origina como parte de las especificaciones de infrarrojo pero ha sido seleccionado para pasar a formar parte de la especificación principal. También conocido como IrMC Synchronization. 2.6.26. Video Distribution Profile (VDP) Distribución de vídeo. Habilita el transporte de un stream de vídeo. Puede usarse para distribuir un vídeo grabado desde cualquier fuente a un reproductor o televisor. Debe soportar H.263, y opcionalmente MPEG-4 y los perfiles 3 y 8 de H.263. 2.6.27. Wireless Application Protocol Bearer (WAPB) Portador de protocolos de aplicación inalámbrica. Permite el transporte de WAP sobre PPP, a su vez sobre Bluetooth. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 23 CAPÍTULO 2. INFORMACIÓN TÉCNICA 2.6.28. Perfiles adicionales Los siguientes perfiles no están finalizados, pero sí propuestos por Bluetooth SIG. 2.6.28.1. Unrestricted Digital Information (UDI). Información digital no restringida. 2.6.28.2. Extended Service Discovery Profile (ESDP) Descubrimiento de servicios extendido. 2.6.28.3. Video Conferencing Profile (VCP) Videoconferencia. Previsto que sea compatible con 3G-324M y que trabaje sobre conexiones 3G. 2.6.28.4. Message Access Profile (MAP) Acceso a mensajes. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 24 Capítulo 3 Seguridad en Bluetooth 3.1. Modos de seguridad Bluetooth define tres niveles de seguridad, que son: Modo 1, no seguro: en este caso, no se emplea ningún mecanismo de seguridad permitiendo conexiones desde cualquier dispositivo. Modo 2, seguridad a nivel de servicio: el permiso se concede por servicio. Por ejemplo, un dispositivo puede conectarse a un PC para descargarse ficheros pero no para acceder a una libreta de direcciones del PC. Modo 3, seguridad a nivel del enlace: antes de establecer el canal de seguridad se usan los siguientes procedimientos de seguridad: • Uso de autentificación mediante PIN ◦ Generalmente de 4 dígitos, soportando hasta 16. ◦ Normalmente los productos tienen un PIN por defecto 0000. ◦ Posibilidad de generar un PIN de 6 dígitos en 12,5 segundos. • Filtro por dirección de origen BD_ADDR. • Cifrado mediante SAFER+. 3.2. 3.2.1. Seguridad en la Conexión Emparejamiento o “Paring” El emparejamiento en Bluetooth es una relación de confianza. El objetivo es que dos dispositivos se puedan comunicar si están emparejados, si hay una relación de confianza. Cuando dos dispositivos intentan comunicarse tiene lugar el procedimientos de emparejamiento o “paring”, este procedimiento permite crear una clave de enlace común de una forma segura. Este procedimiento requiere que el usuario de cada dispositivo introduzca un código de seguridad Bluetooth (PIN), de hasta 16 bytes de longitud que debe ser el mismo en los dos casos. A partir del código PIN se obtiene la clave de enlace común a través del siguiente algoritmo: 1. Se genera una clave de inicialización común Kinit de 128 bits usando el algoritmo E22 a partir del PIN, la longitud del PIN, la dirección BD_ADDR de 48 bit y un número aleatorio IN_RAND. Podemos ver un ejemplo en la figura 3.1. 25 CAPÍTULO 3. SEGURIDAD EN BLUETOOTH Figura 3.1: Algoritmo E22 2. Se genera la clave de enlace Kab usando el algoritmo E21. Los dispositivos usan la clave Kinit para intercambiar dos números aleatorios, conocidos como LK_RAND A y LK_RAND B. Estos números aleatorios son generados cada uno por uno de los dispositivos y se mandan al otro dispositivo después de hacerles un XOR con Kinit . Como los dos dispositivos conocen Kinit cada uno conoce ambas LK_RAND y a partir de las LK_RAND y BD_ADDR se genera Kab . Figura 3.2: Algoritmo E21 Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 26 CAPÍTULO 3. SEGURIDAD EN BLUETOOTH 3. Una vez los dispositivos emparejados disponen de la clave de enlace Kab utilizan esta clave común para autenticarse en las próximas conexiones. 3.2.2. Autenticación La autenticación es el proceso por el que un dispositivo Bluetooth verifica su identidad en otro dispositivo para poder acceder a los servicios que ofrece. Todas las funciones de nivel de enlace están basadas en el concepto de clave de enlace que es un número pseudoaleatorio de 128 bits almacenado individualmente por cada dispositivo Bluetooth. La autenticación se hace sin intervención del usuario y consiste en un esquema de desafío/respuesta entre cada par de dispositivos con una clave secreta de 128 bits. Con esto podemos autentificar dispositivos pero no usuarios. Cuando se dispone de una clave de enlace entre dispositivos se usa para autenticarse en las siguientes conexiones. El proceso de desafío respuesta tiene las siguientes fases: 1. Un dispositivo Reclamante transmite a un dispositivo Verificador su BD_ADDR. 2. El dispositivo Verificador generia AU_RAND (número aleatorio de 128 bits) y lo transmite al Reclamante. 3. El Reclamante usa el algoritmo E1 para generar la respuesta de autenticación (SRES) de 32 bits, usa la dirección BD_ADDR del Reclamante, la clave Kab almacenada y el desafío. El Verificador por su parte hace lo mismo en paralelo. 4. El Reclamante devuelve la respuesta SRES al Verificador. 5. El Verificador comprueba que la respuesta SRES recibida por el reclamante es igual a la que ha calculado él. 6. Si los valores del SRES coinciden el Verificador y Reclamante cambian los papeles y se repite el proceso. Vemos un resumen en la figura 3.3. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 27 CAPÍTULO 3. SEGURIDAD EN BLUETOOTH Figura 3.3: Proceso de autenticación 3.1. En la siguiente tabla vemos las distintas entidades empleadas en el proceso de autenticación, tabla Entidad Dirección única del dispositivo, BD_ADDR Clave privada de usuario para autenticación, Kab Respuesta de autenticación, SRES Número aleatorio, RAND Tamaño 48 bits 128 bits 32 bits 128 bits Cuadro 3.1: Entidades de autenticación en Bluetooth En la especificación de Bluetooth y como medida de protección ante ataques de fuerza bruta, se especifica que ante fallos de autenticación se debe esperar un tiempo, que aumenta de forma exponencial, entre intentos sucesivos. 3.2.3. Autorización La autorización es el procedimiento que determina los derechos de un dispositivo Bluetooth para acceder a los servicios que ofrece un sistema. El mecanismo de autorización en Bluetooth se lleva a cabo mediante niveles de confianza. Los dispositivos tienen tres niveles de confianza que determinan la capacidad de acceso a los servicios: Dispositivo de confianza, mantiene una relación de emparejamiento y dispone de acceso sin restricciones a todos los servicios. Dispositivo de confianza restringida, mantiene una relación de emparejamiento pero tiene acceso restringido a uno o más servicios. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 28 CAPÍTULO 3. SEGURIDAD EN BLUETOOTH Dispositivo no confiable, es aquel que no mantiene una relación de emparejamiento. No se le permite acceso a ningún servicio. Si un dispositivo de confianza necesita acceder a un servicio autorizado no requiere ningún proceso de confirmación, accede de forma transparente. En cambio si un dispositivo de confianza restringida o no confiable intenta acceder a un servicio restringido se necesita una confirmación explícita por parte del usuario, para permitir o denegar el acceso al dispositivo. Para algunos servicios, como el caso del Perfil de Carga de Objetos (OBEX PUSH) es posible conceder permisos de acceso temporal a dispositivos no emparejados previamente. En la mayoría de los dispositivos es posible marcar los dispositivos conectados como dispositivos de confianza, así evitamos la confirmación en cada intento de conexión. 3.2.4. Cifrado de datos El cifrado protege la información que se transmite en un enlace entre dispositivos Bluetooth, garantizando la confidencialidad del mensaje enviado. Si el paquete es capturado por un usuario al que no va destinado, al no poseer la clave de descifrado el mensaje le resultará ininteligible. La implementación del cifrado es opcional pero necesita que antes se haya producido una autenticación. Los dispositivos maestro y esclavo deben ponerse deacuerdo sobre si usar o no cifrado. Si se quiere usar el cifrado, el maestro y el esclavo intercambian mensajes para determinar el tamaño de la clave, si no consiguen un acuerdo se indica que no pueden usar cifrado en el enlace. A continuación detallamos el proceso de cifrado: El maestro genera una clave de cifrado KC de 128 bits usando el algoritmo E3, que vemos en la figura 3.4. Este algoritmo necesita como entradas: • Un número aleatorio de 128 bits • La clave de enlace Kab generada durante el proceso de emparejamiento. • El número Ciphering Offset (COF) de 96 bits basado en el valor temporal Authenticated Ciphering Offset (ACO) calculado durante el procedimiento de autenticación. Figura 3.4: Algoritmo E3 Cuando la clave se ha generado con éxito, el maestro puede transmitir datos cifrado, para esto el tráfico debe detenerse temporalmente en los niveles superiores a fin de evitar la recepción de datos corruptos. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 29 CAPÍTULO 3. SEGURIDAD EN BLUETOOTH Hay que tener en cuenta que la clave de cifrado y la clave de autenticación son distintas y tienen distintos propósitos. Cada vez que el cifrado se activa, se genera una nueva clave de cifrado cuyo periodo de vida no se corresponde, necesariamente, con el de la clave de autenticación. De hecho, se supone que la clave de autenticación tendrá un carácter más estático que la clave de cifrado. 3.3. 3.3.1. Vulnerabilidades. Ataques a dispositivos Bluetooh BlueSnarf La vulnerabilidad Bluesnarf se basa en la implementación incorrecta en los primeros modelos de teléfonos móviles Bluetooth del Perfil de Carga de Objetos (OBEX Object Push), que carecía de mecanismos de autenticación y autorización, y que permitía descargarse mediante una operación OBEX GET archivos de nombre conocido, como la agenda de contactos almacenada en el terminal en telecom/pb.vcf o el calendario de citas almacenado en telecom/cal.vs. Filename Device info telecom/devinfo.txt telecom/rtc.txt Phone Book telecom/pb.vc telecom/pb/luid/.vcf telecom/pb/0.vcf telecom/pb/info.log telecom/pb/luid/###.log telecom/pb/luid/cc.log Calendar telecom/cal.vcs telecom/cal/luid/.vcs telecom/cal/info.log Description Information hardware version, software version, serial number , etc. The real Time Clock Object contains the current date and time of the device Supported operations GET GET / PUT Level 2 access (Access entire phonebook database) Add new entre Own business card Supported properties and memory info Change log Change counter GET / PUT Level 2 access Add new entry Supported properties and memory info GET / PUT PUT GET PUT GET / PUT GET GET GET Cuadro 3.2: Especificación IrMC de los archivos OBEX. Fuente: Sony-Ericsson AT Commands Online Referente (Developer Guidelines, Octubre 2004) Hoy en día, la mayoría de teléfonos móviles Bluetooth incorporan únicamente mecanismos de autorización en el acceso al Perfil de Carga de Objetos (OBEX Object Push). Esto significa que el dispositivo remoto debe estar incluido en la lista de dispositivos de confianza del teléfono móvil. En cualquier otro caso, la conexión requerirá confirmación explícita por parte del usuario propietario del teléfono móvil. A continuación se muestran el procedimiento para llevar a cabo un ataque Bluesnarf sobre un teléfono móvil desde linux: 1. Detectar el teléfono móvil Bluetooth objetivo (vulnerable) y enumerar los perfiles que soporta. Ver figuras 3.5 y 3.6. 2. Dado que los primeros modelos de teléfonos móviles Bluetooth no implementaban mecanismos de autenticación y autorización en el acceso al Perfil de Carga de Objetos (OBEX Object Push), un atacante podía extraer de forma transparente cualquier archivo disponible en el sistema de ficheros del terminal con ayuda de cualquier aplicación que permitiera realizar operaciones OBEX GET, como por ejemplo Obexftp. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 30 CAPÍTULO 3. SEGURIDAD EN BLUETOOTH Browsing 0 0 : 1A: 8 9 : 6 4 : 6 7 : 7 F . . . S e r v i c e Name : Dial −up n e t w o r k i n g S e r v i c e RecHandle : 0 x10026 S e r v i c e C l a s s ID L i s t : " Dialup Networking " ( 0 x1103 ) " G e n e r i c Networking " ( 0 x1201 ) Protocol Descriptor List : "L2CAP" ( 0 x0100 ) "RFCOMM" ( 0 x0003 ) Channel : 1 Language Base Attr L i s t : code_ISO639 : 0 x656e encoding : 0 x6a b a s e _ o f f s e t : 0 x100 Profile Descriptor List : " Dialup Networking " ( 0 x1103 ) V e r s i o n : 0 x0100 S e r v i c e Name : Voice Gateway S e r v i c e RecHandle : 0 x10029 S e r v i c e C l a s s ID L i s t : " H a n d s f r e e Audio Gateway" ( 0 x 1 1 1 f ) " G e n e r i c Audio " ( 0 x1203 ) Protocol Descriptor List : "L2CAP" ( 0 x0100 ) "RFCOMM" ( 0 x0003 ) Channel : 13 Language Base Attr L i s t : code_ISO639 : 0 x656e encoding : 0 x6a b a s e _ o f f s e t : 0 x100 Profile Descriptor List : " H a n d s f r e e " ( 0 x111e ) V e r s i o n : 0 x0105 Figura 3.5: Enumeración de los perfiles Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 31 CAPÍTULO 3. SEGURIDAD EN BLUETOOTH S e r v i c e Name : Nokia PC S u i t e S e r v i c e RecHandle : 0 x10027 S e r v i c e C l a s s ID L i s t : " S e r i a l Port " ( 0 x1101 ) Protocol Descriptor List : "L2CAP" ( 0 x0100 ) "RFCOMM" ( 0 x0003 ) Channel : 15 Language Base Attr L i s t : code_ISO639 : 0 x656e encoding : 0 x6a b a s e _ o f f s e t : 0 x100 S e r v i c e Name : COM 1 S e r v i c e RecHandle : 0 x10028 S e r v i c e C l a s s ID L i s t : " S e r i a l Port " ( 0 x1101 ) Protocol Descriptor List : "L2CAP" ( 0 x0100 ) "RFCOMM" ( 0 x0003 ) Channel : 3 Language Base Attr L i s t : code_ISO639 : 0 x656e encoding : 0 x6a b a s e _ o f f s e t : 0 x100 S e r v i c e Name : SIM ACCESS S e r v i c e RecHandle : 0 x10038 S e r v i c e C l a s s ID L i s t : "SIM A c c e s s " ( 0 x112d ) " G e n e r i c Telephony " ( 0 x1204 ) Protocol Descriptor List : "L2CAP" ( 0 x0100 ) "RFCOMM" ( 0 x0003 ) Channel : 4 Language Base Attr L i s t : code_ISO639 : 0 x656e encoding : 0 x6a b a s e _ o f f s e t : 0 x100 Profile Descriptor List : "SIM A c c e s s " ( 0 x112d ) V e r s i o n : 0 x0101 Figura 3.6: Continuación de la enumarción de los perfiles 3.3.2. BlueBug Bluebug es una vulnerabilidad que permite a un atacante establecer una conexión RFCOMM a un canal oculto (no accesible por SDP) sin necesidad de autenticación y ejecutar comandos AT en el terminal. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 32 CAPÍTULO 3. SEGURIDAD EN BLUETOOTH Como puede apreciarse en el esquema de la pila de protocolos Bluetooth ver figura 3.7, desde el nivel RFCOMM se puede acceder a la capa de comandos AT. Esto significa que estableciendo una conexión RFCOMM a un determinado canal, el atacante podría iniciar una sesión de comandos AT con el teléfono móvil. Figura 3.7: Pila de protocolos Bluetooth centrandose en el nivel RFCOMM La posibilidad de ejecutar comandos AT en el teléfono móvil, permitiría a un atacante llevar a cabo las siguientes acciones en el terminal comprometido: Obtener información básica: Marca, modelo, IMEI,. . . Realizar llamadas de voz, desvío de llamadas,. . . Gestión de la agenda de contactos: Leer, escribir, borrar,. . . Acceso a la agenda de llamadas: Últimas llamadas perdidas, recibidas o realizadas. Gestión de mensajes SMS: Leer, escribir y enviar, borrar,. . . Bluebug es, sin duda, una de las vulnerabilidades más peligrosas y con mayor impacto en usuarios de teléfonos móviles Bluetooth, no sólo por la violación de privacidad que puede suponer el acceso ajeno a la agenda de contactos o a mensajes SMS, sino por las consecuencias económicas que conlleva la capacidad de efectuar llamadas telefónicas. Una de las posibles soluciones a esta vulnerabilidad podría ser restringir el acceso a los comandos AT desde el interfaz Bluetooth. Sin embargo, los propios fabricantes desarrollan aplicaciones para sincronizar un equipo PC con la agenda de contactos y la bandeja de entrada de mensajes SMS de los teléfonos móviles. Un ejemplo de aplicación de este tipo es Nokia PC Suite. Así mismo, algunos dispositivos Bluetooth, como los Manos Libres, requieren el control del teléfono móvil para poder colgar, descolgar e iniciar llamadas telefónicas, para lo cual requieren el uso de los comandos AT. La solución adoptada por los fabricantes para proteger la vulnerabilidad Bluebug en los teléfonos móviles consiste en añadir mecanismos de autenticación y autorización antes de permitir el establecimiento de una conexión RFCOMM. De esta forma, se necesita la intervención del usuario propietario del teléfono móvil y resulta imposible llevar a cabo un ataque de forma transparente. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 33 CAPÍTULO 3. SEGURIDAD EN BLUETOOTH Puesto que los teléfonos móviles actuales también implementan el juego de comandos AT, es posible emular el ataque Bluebug estableciendo una conexión RFCOMM al teléfono móvil e iniciando una sesión de comandos AT. Ver figura 3.8. Figura 3.8: Comparación de modelos antiguos y modernos 1. Detectar el teléfono móvil Bluetooth objetivo (vulnerable o no) y enumerar los perfiles que soporta. Ver figura 3.9. 2. El siguiente paso es establecer una conexión RFCOMM al canal 4. Ver figura 3.10. 3. Desde otra ventana de shell, hay que lanzar la herramienta cu, que está integrada en el paquete Taylor UUCP y puede obtenerse en internet [7], Ver figura 3.11. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 34 CAPÍTULO 3. SEGURIDAD EN BLUETOOTH Figura 3.9: Vulnerabilidad con Bluebug Figura 3.10: Vulnerabilidad Bluebug II Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 35 CAPÍTULO 3. SEGURIDAD EN BLUETOOTH Figura 3.11: Vulnerabilidad Bluebug Cu permite conectar con el teléfono móvil a través del interfaz rfcomm0 ya establecido e iniciar una sesión de comandos AT. Es necesario especificar la velocidad (en bits por segundo) que utilizará la conexión. Como muestra la captura, se han ejecutado los siguientes comandos AT en el terminal móvil: AT: Comando unitario para comprobar la comunicación. AT+CGMI: Petición de identificación del fabricante (marca). AT+CGMM: Petición de identificación del modelo de teléfono. AT+CPBR=1: Leer la entrada 1 de la agenda de contactos. AT+CPBS=“MC”;+CPBR=1: Seleccionar el dispositivo de memoria de llamadas perdidas (MC, Missed Call List) y leer la entrada 1. AT+CPBS=“DC”;+CPBR=1: Seleccionar el dispositivo de memoria de llamadas realizadas (DC, Dialled Call List) y leer la entrada 1. ATD679000000; :Realizar una llamada de voz a un número. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 36 CAPÍTULO 3. SEGURIDAD EN BLUETOOTH 3.3.3. Hello Moto El ataque HeloMoto sólo afecta a teléfonos móviles Motorola. La vulnerabilidad que explota HelloMoto se basa en una implementación incorrecta de la gestión de la lista de dispositivos de confianza en los siguientes modelos Motorola: V80, v500 y v600. El ataque se desarrolla del siguiente modo: El atacante inicia una conexión al Perfil de Carga de Objetos (OBEX Push Object) con la intención de enviar una tarjeta de visita o vCard. De forma automática y sin necesidad de interacción por parte del usuario propietario del teléfono móvil, el dispositivo atacante es añadido a la lista de dispositivos de confianza del terminal, aunque el proceso de envío haya sido interrumpido por el atacante antes de llegar a su fin. Con el dispositivo incluido en la lista de dispositivos de confianza del teléfono móvil, el atacante puede acceder a perfiles que requieran autorización pero no autenticación, como el caso del Perfil de Pasarela de Voz (Voice Gateway Profile). Una vez establecida la conexión con el Perfil de Pasarela de Audio, el atacante puede acceder a la ejecución de comandos AT en el teléfono móvil comprometido. Para poder llevar a cabo el ataque HelloMoto, existe una herramienta desarrollada en BlueZ que se puede obtener en internet[6]. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 37 Capítulo 4 Ejemplos y Casos de uso práctico 4.1. Ejemplo con un móvil. Aplicación Java para bluetooth Programas que se han estudiados: Psiloc_BlueText_S603rd.exe En el trabajo, muchos usamos el PC el 90 % del tiempo, y cuando suena el móvil, pues esto nos hace desviar la atención, incluso hemos de salir del despacho para coger la llamada sin molestar. Para que esto no vuelva a pasar, lo mejor es poner el modo reunión, es decir silencio, y usar BlueText para poder recibir y responder a los mensajes de texto desde el Escritorio del PC con Windows. Para ello necesitarás activar el Bluetooth de tu móvil y descargar BlueText para que inicie la instalación del programa en tu PC. A partir de este momento, recibirás avisos cuando te entre un mensaje de texto, podrás verlo y responderlo desde el PC, sin perder tiempo ni desviarte de tu trabajo. Easy_Jack_v2.0_By_Rock_ADS Envio de mensajes via bluetooth. Otras aplicaciones bluetooth que se encuentran en el CD junto a la memoria. 4.2. 4.2.1. Sniffer para Bluetooh Introducción Un atacante puede tener acceso al tráfico intercambiado en una piconet si dispone de la tabla que contiene la secuencia o patrón de saltos de frecuencia que utilizan los dispositivos pertenecientes a esa piconet. Para obtener esta tabla, únicamente necesita estar presente en el momento en el que la piconet se establece entre maestro y esclavos y recibir el paquete FHS (Frequency Hop Synchronization) que permite sincronizar su reloj interno con el reloj del maestro y también generar el patrón de saltos de frecuencia que sigue dicha piconet. A partir de entonces, formará parte de la piconet y podrá sniffar el tráfico, como en la figura 4.1. 38 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO Figura 4.1: Escenario atacante hacia una piconet En Octubre de 2002 FTE desarrolló el primer analizador del protocolo Bluetooth comercial, FTS4BT, un sniffer dotado de una tecnología muy avanzada cuyo precio rondaba los miles de $. Durante varios años, fue la única herramienta capaz de sniffar tráfico Bluetooth. En 2007 Max Moser publicó en su paper Busting The Bluetooth® Myth – Getting RAW Access un procedimiento para construir un sniffer Bluetooth a partir de un adaptador Bluetooth convencional. Básicamente, consiguió instalar en un adaptador convencional el firmware de un sniffer comercial y obtener con éxito la parte hardware de un sniffer Bluetooth. En el mismo año, Andrea Bittau y Dominic Spill publicaron el paper BlueSniff: Eve meets Alice and Bluetooth, en el que demostraron que es posible determinar los parámetros necesarios para calcular la secuencia de saltos de frecuencia y obtener un mecanismo para sniffar Bluetooth. Posteriormente, Andrea Bittau publicó BTSniff, una implementación práctica para enviar comandos a un hardware sniffer y sincronizarlo con los dispositivos de una piconet. 4.2.2. Herramientas software necesarias Vamos a hablar sobre BlueZ. Las herramientas de este proyecto nos permite interactuar con equipos remotos bluetooth con líneas de comandos. Herramientas: Bluez-pin: Gestión de suministro del PIN para conectarnos con otros dispositivos. Hciattach: Configuración de dispositivos serial UART (Universal Asynchronous Receiver/Transmitter) como interfaces HCI Bluetooth. Hciconfig: Configuración de dispositivos Bluetooth locales. Hcid: Demonio interfaz HCI. Hcidump: Sniffer local de tráfico HCI que entra y sale por el dispositivo Bluetooth instalado en el sistema. Hcitool: Gestión del enlace con otros dispositivos Bluetooth, detección de dispositivos remotos, resolución de nombres, identificación de clases, etc. L2ping: Envío de solicitudes echo request (pings) a nivel L2CAP. Pand: Gestión de conexiones PAN (Personal Area Network) Rfcomm: Gestión de conexiones RFCOMM Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 39 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO Sdpd: Demonio del protocolo de descubrimiento de servicios SDP. Se encarga de proporcionar acceso a los servicios Bluetooth locales. Sdptool: Gestión de SDP (Service Discovery Protocol), descubrimiento de servicios Bluetooth en dispositivos remotos. La mayoría de las herramientas mencionadas se encuentran instaladas por defecto en aquellas distribuciones Linux que incorporan el núcleo de BlueZ. Sin embargo, también es posible obtener las herramientas y librerías necesarias para el funcionamiento de BlueZ por medio de módulos del núcleo BlueZ. Estos módulos se encuentran disponibles en internet[8] y son los siguientes: bluez-libs-x.x.tar.gz (Librerías básicas Bluetooth) bluez-libs-devel-x.x.tar.gz (Librerías de desarrollo Bluetooth) bluez-utils-x.x.tar.gz (Herramientas Bluetooth) bluez-firmware-x.x.tar.gz (Actualización de firmware) bluez-hcidump-x.x.tar.gz (Sniffer local de tráfico HCI) Tambien hará falta Bluetooth File Transfer (OBEX FTP) funciona con casi todos los modelos de móviles actuales con conexión Bluetooth, puesto que soportan el protocolo de comunicaciones OBEX (OBject EXchange o intercambio de datos). Plataformas: Intel and AMD x86 AMD64 and EM64T (x86-64) SUN SPARC 32/64bit * PowerPC 32/64bit Intel StrongARM and XScale Hitachi/Renesas SH processors Motorola DragonBall Distribuciones: Debian. Ubuntu. Fedora. OpenSuSE. Mandrake. Dicho proyecto ganó en el año 2.005 el TuxMobil GNU/Linux Award. Para saber si teneis el paquete en el repositorio de la distribución, tan sólo hay que abrir una línea de comandos y teclear lo siguiente: # sudo aptitude search bluez # sudo apt - get install obexftp Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 40 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO 4.2.3. 4.2.3.1. Comandos útiles Interfaz Bluetooth Con hciconfig -a examinamos la interfaz de nuestro adaptador Bluetooth. # sudo hciconfig -a hci0 hci0 : Type : USB BD Address : 00:1 E :37:69: C0 :6 D ACL MTU : 1017:8 SCO MTU : 64:8 UP RUNNING PSCAN RX bytes :2545 acl :0 sco :0 events :69 errors :0 TX bytes :429 acl :0 sco :0 commands :33 errors :0 Features : 0 xff 0 xff 0 x8f 0 xfe 0 x9b 0 xf9 0 x00 0 x80 Packet type : DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy : RSWITCH HOLD SNIFF PARK Link mode : SLAVE ACCEPT Name : ’ portatil -0 ’ Class : 0 x4a010c Service Classes : Networking , Capturing , Telephony Device Class : Computer , Laptop HCI Ver : 2.0 (0 x3 ) HCI Rev : 0 x2129 LMP Ver : 2.0 (0 x3 ) LMP Subver : 0 x41cf Manufacturer : Broadcom Corporation (15) 4.2.3.2. Lista de dispositivos. Escaner Con hcitool scan podemos obtener una lista de dispositivos presentes en el alredor. Por ejemplo: # sudo hcitool scan Scanning ... 60: D0 : A9 :4 D :99:4 F 00:1 A :89:64:67:7 F 4.2.3.3. n/a Miguel Ángel Sniffer de tráfico de datos El comando para extraer información entre una comunicación Bluetooth es hcidump, en el siguiente recuadro podemos observar como se extrae la información de un envio de datos de un dispositivo a otro: # sudo hcidump HCI sniffer - Bluetooth packet analyzer ver 1.42 device : hci0 snap_len : 1028 filter : 0 xffffffff < HCI Command : Periodic Inquiry Mode (0 x01 |0 x0003 ) plen 9 > HCI Event : Command Complete (0 x0e ) plen 4 Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 41 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO > > > > > < > > < > > < > > < > > > < > > < > < < > > > < > HCI Event : Inquiry Result with RSSI (0 x22 ) plen 15 HCI Event : Inquiry Result with RSSI (0 x22 ) plen 15 HCI Event : Inquiry Result with RSSI (0 x22 ) plen 15 HCI Event : Inquiry Result with RSSI (0 x22 ) plen 15 HCI Event : Inquiry Result with RSSI (0 x22 ) plen 15 HCI Command : Exit Periodic Inquiry Mode (0 x01 |0 x0004 ) plen 0 HCI Event : Command Complete (0 x0e ) plen 4 HCI Event : Command Complete (0 x0e ) plen 4 HCI Command : Create Connection (0 x01 |0 x0005 ) plen 13 HCI Event : Command Status (0 x0f ) plen 4 HCI Event : Connect Complete (0 x03 ) plen 11 HCI Command : Read Remote Supported Features (0 x01 |0 x001b ) plen 2 HCI Event : Command Status (0 x0f ) plen 4 HCI Event : Read Remote Supported Features (0 x0b ) plen 11 ACL data : handle 11 flags 0 x02 dlen 10 L2CAP ( s ): Info req : type 2 HCI Event : Page Scan Repetition Mode Change (0 x20 ) plen 7 HCI Event : Max Slots Change (0 x1b ) plen 3 ACL data : handle 11 flags 0 x02 dlen 16 L2CAP ( s ): Info rsp : type 2 result 0 Extended feature mask 0 x0000 ACL data : handle 11 flags 0 x02 dlen 12 L2CAP ( s ): Connect req : psm 1 scid 0 x0040 HCI Event : Number of Completed Packets (0 x13 ) plen 5 ACL data : handle 11 flags 0 x02 dlen 16 L2CAP ( s ): Connect rsp : dcid 0 x0040 scid 0 x0040 result 0 status 0 Connection successful ACL data : handle 11 flags 0 x02 dlen 12 L2CAP ( s ): Config req : dcid 0 x0040 flags 0 x00 clen 0 ACL data : handle 11 flags 0 x02 dlen 16 L2CAP ( s ): Config req : dcid 0 x0040 flags 0 x00 clen 4 MTU 65535 ACL data : handle 11 flags 0 x02 dlen 18 L2CAP ( s ): Config rsp : scid 0 x0040 flags 0 x00 result 0 clen 4 MTU 65535 HCI Command : Remote Name Request (0 x01 |0 x0019 ) plen 10 HCI Event : Command Status (0 x0f ) plen 4 HCI Event : Number of Completed Packets (0 x13 ) plen 5 ACL data : handle 11 flags 0 x02 dlen 14 L2CAP ( s ): Config rsp : scid 0 x0040 flags 0 x00 result 0 clen 0 Success ACL data : handle 11 flags 0 x02 dlen 24 L2CAP ( d ): cid 0 x0040 len 20 [ psm 1] SDP SSA Req : tid 0 x0 len 0 xf pat uuid -16 0 x1105 ( OBEXObjPush ) max 65535 aid ( s ) 0 x0000 - 0 xffff cont 00 ACL data : handle 11 flags 0 x02 dlen 119 L2CAP ( d ): cid 0 x0040 len 115 [ psm 1] Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 42 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO < > < > < > < > < SDP SSA Rsp : tid 0 x0 len 0 x6e count 107 record #0 aid 0 x0000 ( SrvRecHndl ) uint 0 x1000b aid 0 x0001 ( SrvClassIDList ) < uuid -16 0 x1105 ( OBEXObjPush ) > aid 0 x0004 ( ProtocolDescList ) < < uuid -16 0 x0100 ( L2CAP ) > < uuid -16 0 x0003 ( RFCOMM ) uint 0 x9 > < uuid -16 0 x0008 ( OBEX ) > > aid 0 x0005 ( BrwGrpList ) < uuid -16 0 x1002 ( PubBrwsGrp ) > aid 0 x0006 ( LangBaseAttrIDList ) < uint 0 x656e uint 0 x6a uint 0 x100 > aid 0 x0009 ( BTProfileDescList ) < < uuid -16 0 x1105 ( OBEXObjPush ) uint 0 x100 > > aid 0 x0100 ( SrvName ) str " OBEX Object Push " aid 0 x0303 ( SuppFormatsList ) < uint 0 xff > cont 00 ACL data : handle 11 flags 0 x02 dlen 12 L2CAP ( s ): Connect req : psm 3 scid 0 x0041 ACL data : handle 11 flags 0 x02 dlen 16 L2CAP ( s ): Connect rsp : dcid 0 x0041 scid 0 x0041 result 0 status 0 Connection successful ACL data : handle 11 flags 0 x02 dlen 16 L2CAP ( s ): Config req : dcid 0 x0041 flags 0 x00 clen 4 MTU 1013 ACL data : handle 11 flags 0 x02 dlen 16 L2CAP ( s ): Config req : dcid 0 x0041 flags 0 x00 clen 4 MTU 32772 ACL data : handle 11 flags 0 x02 dlen 18 L2CAP ( s ): Config rsp : scid 0 x0041 flags 0 x00 result 0 clen 4 MTU 32772 ACL data : handle 11 flags 0 x02 dlen 18 L2CAP ( s ): Config rsp : scid 0 x0041 flags 0 x00 result 0 clen 4 MTU 1013 ACL data : handle 11 flags 0 x02 dlen 8 L2CAP ( d ): cid 0 x0041 len 4 [ psm 3] RFCOMM ( s ): SABM : cr 1 dlci 0 pf 1 ilen 0 fcs 0 x1c ACL data : handle 11 flags 0 x02 dlen 8 L2CAP ( d ): cid 0 x0041 len 4 [ psm 3] RFCOMM ( s ): UA : cr 1 dlci 0 pf 1 ilen 0 fcs 0 xd7 ACL data : handle 11 flags 0 x02 dlen 18 L2CAP ( d ): cid 0 x0041 len 14 [ psm 3] RFCOMM ( s ): PN CMD : cr 1 dlci 0 pf 0 ilen 10 fcs 0 x70 mcc_len 8 dlci 18 frame_type 0 credit_flow 15 pri 7 ack_timer 0 frame_size 1008 max_retrans 0 credits 7 Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 43 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO > HCI Event : Remote Name Req Complete (0 x07 ) plen 255 > ACL data : handle 11 flags 0 x02 dlen 18 L2CAP ( d ): cid 0 x0041 len 14 [ psm 3] RFCOMM ( s ): PN RSP : cr 0 dlci 0 pf 0 ilen 10 fcs 0 xaa mcc_len dlci 18 frame_type 0 credit_flow 14 pri 7 ack_timer 0 frame_size 1008 max_retrans 0 credits 0 < ACL data : handle 11 flags 0 x02 dlen 8 L2CAP ( d ): cid 0 x0041 len 4 [ psm 3] RFCOMM ( s ): SABM : cr 1 dlci 18 pf 1 ilen 0 fcs 0 x32 > HCI Event : Number of Completed Packets (0 x13 ) plen 5 > HCI Event : Number of Completed Packets (0 x13 ) plen 5 > HCI Event : Number of Completed Packets (0 x13 ) plen 5 > HCI Event : Number of Completed Packets (0 x13 ) plen 5 > ACL data : handle 11 flags 0 x02 dlen 8 L2CAP ( d ): cid 0 x0041 len 4 [ psm 3] RFCOMM ( s ): UA : cr 1 dlci 18 pf 1 ilen 0 fcs 0 xf9 > ACL data : handle 11 flags 0 x02 dlen 12 L2CAP ( d ): cid 0 x0041 len 8 [ psm 3] RFCOMM ( s ): MSC CMD : cr 0 dlci 0 pf 0 ilen 4 fcs 0 xaa mcc_len dlci 18 fc 0 rtc 1 rtr 1 ic 0 dv 0 b1 0 b2 0 b3 0 len 0 < ACL data : handle 11 flags 0 x02 dlen 12 L2CAP ( d ): cid 0 x0041 len 8 [ psm 3] RFCOMM ( s ): MSC CMD : cr 1 dlci 0 pf 0 ilen 4 fcs 0 x70 mcc_len dlci 18 fc 0 rtc 1 rtr 1 ic 0 dv 1 b1 0 b2 0 b3 0 len 0 < ACL data : handle 11 flags 0 x02 dlen 12 L2CAP ( d ): cid 0 x0041 len 8 [ psm 3] RFCOMM ( s ): MSC RSP : cr 1 dlci 0 pf 0 ilen 4 fcs 0 x70 mcc_len dlci 18 fc 0 rtc 1 rtr 1 ic 0 dv 0 b1 0 b2 0 b3 0 len 0 < ACL data : handle 11 flags 0 x02 dlen 12 L2CAP ( s ): Disconn req : dcid 0 x0040 scid 0 x0040 > ACL data : handle 11 flags 0 x02 dlen 9 L2CAP ( d ): cid 0 x0041 len 5 [ psm 3] RFCOMM ( d ): UIH : cr 0 dlci 18 pf 1 ilen 0 fcs 0 x8 credits 9 > HCI Event : Number of Completed Packets (0 x13 ) plen 5 > ACL data : handle 11 flags 0 x02 dlen 12 L2CAP ( d ): cid 0 x0041 len 8 [ psm 3] RFCOMM ( s ): MSC RSP : cr 0 dlci 0 pf 0 ilen 4 fcs 0 xaa mcc_len dlci 18 fc 0 rtc 1 rtr 1 ic 0 dv 1 b1 0 b2 0 b3 0 len 0 < ACL data : handle 11 flags 0 x02 dlen 9 L2CAP ( d ): cid 0 x0041 len 5 [ psm 3] RFCOMM ( d ): UIH : cr 1 dlci 18 pf 1 ilen 0 fcs 0 xd2 credits 33 < ACL data : handle 11 flags 0 x02 dlen 15 L2CAP ( d ): cid 0 x0041 len 11 [ psm 3] RFCOMM ( d ): UIH : cr 1 dlci 18 pf 0 ilen 7 fcs 0 xce OBEX : Connect cmd ( f ): len 7 version 1.0 flags 0 mtu 32767 > ACL data : handle 11 flags 0 x02 dlen 12 L2CAP ( s ): Disconn rsp : dcid 0 x0040 scid 0 x0040 > HCI Event : Number of Completed Packets (0 x13 ) plen 5 > HCI Event : Number of Completed Packets (0 x13 ) plen 5 > ACL data : handle 11 flags 0 x02 dlen 16 Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 8 2 2 2 2 44 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO > > > < > > > > > > < > > > L2CAP ( d ): cid 0 x0041 len 12 [ psm 3] RFCOMM ( d ): UIH : cr 0 dlci 18 pf 1 ilen 7 fcs 0 x8 credits 1 OBEX : Connect rsp ( f ): status 200 len 7 version 1.0 flags 0 mtu 32767 ACL data : handle 11 flags 0 x02 dlen 8 L2CAP ( d ): cid 0 x0041 len 4 [ psm 3] RFCOMM ( d ): UIH : cr 0 dlci 18 pf 0 ilen 0 fcs 0 x14 ACL data : handle 11 flags 0 x02 dlen 8 L2CAP ( d ): cid 0 x0041 len 4 [ psm 3] RFCOMM ( d ): UIH : cr 0 dlci 18 pf 0 ilen 0 fcs 0 x14 ACL data : handle 11 flags 0 x02 dlen 8 L2CAP ( d ): cid 0 x0041 len 4 [ psm 3] RFCOMM ( d ): UIH : cr 0 dlci 18 pf 0 ilen 0 fcs 0 x14 ACL data : handle 11 flags 0 x02 dlen 62 L2CAP ( d ): cid 0 x0041 len 58 [ psm 3] RFCOMM ( d ): UIH : cr 1 dlci 18 pf 0 ilen 54 fcs 0 xce OBEX : Put cmd ( f ): len 54 Name (0 x01 ) = Unicode length 16 Time (0 x44 ) = Sequence length 16 Length (0 xc3 ) = 5 End of Body (0 x49 ) = Sequence length 5 ACL data : handle 11 flags 0 x02 dlen 8 L2CAP ( d ): cid 0 x0041 len 4 [ psm 3] RFCOMM ( d ): UIH : cr 0 dlci 18 pf 0 ilen 0 fcs 0 x14 ACL data : handle 11 flags 0 x02 dlen 9 L2CAP ( d ): cid 0 x0041 len 5 [ psm 3] RFCOMM ( d ): UIH : cr 0 dlci 18 pf 1 ilen 0 fcs 0 x8 credits 1 HCI Event : Number of Completed Packets (0 x13 ) plen 5 ACL data : handle 11 flags 0 x02 dlen 11 L2CAP ( d ): cid 0 x0041 len 7 [ psm 3] RFCOMM ( d ): UIH : cr 0 dlci 18 pf 0 ilen 3 fcs 0 x14 OBEX : Put rsp ( f ): status 200 len 3 ACL data : handle 11 flags 0 x02 dlen 8 L2CAP ( d ): cid 0 x0041 len 4 [ psm 3] RFCOMM ( d ): UIH : cr 0 dlci 18 pf 0 ilen 0 fcs 0 x14 ACL data : handle 11 flags 0 x02 dlen 8 L2CAP ( d ): cid 0 x0041 len 4 [ psm 3] RFCOMM ( d ): UIH : cr 0 dlci 18 pf 0 ilen 0 fcs 0 x14 ACL data : handle 11 flags 0 x02 dlen 11 L2CAP ( d ): cid 0 x0041 len 7 [ psm 3] RFCOMM ( d ): UIH : cr 1 dlci 18 pf 0 ilen 3 fcs 0 xce OBEX : Disconnect cmd ( f ): len 3 ACL data : handle 11 flags 0 x02 dlen 8 L2CAP ( d ): cid 0 x0041 len 4 [ psm 3] RFCOMM ( d ): UIH : cr 0 dlci 18 pf 0 ilen 0 fcs 0 x14 ACL data : handle 11 flags 0 x02 dlen 9 L2CAP ( d ): cid 0 x0041 len 5 [ psm 3] RFCOMM ( d ): UIH : cr 0 dlci 18 pf 1 ilen 0 fcs 0 x8 credits 1 ACL data : handle 11 flags 0 x02 dlen 8 L2CAP ( d ): cid 0 x0041 len 4 [ psm 3] RFCOMM ( d ): UIH : cr 0 dlci 18 pf 0 ilen 0 fcs 0 x14 Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 45 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO < ACL data : handle 11 flags 0 x02 dlen 8 L2CAP ( d ): cid 0 x0041 len 4 [ psm 3] RFCOMM ( s ): DISC : cr 1 dlci 18 pf 1 ilen 0 fcs 0 xd3 > HCI Event : Number of Completed Packets (0 x13 ) plen 5 > ACL data : handle 11 flags 0 x02 dlen 8 L2CAP ( d ): cid 0 x0041 len 4 [ psm 3] RFCOMM ( s ): UA : cr 1 dlci 18 pf 1 ilen 0 fcs 0 xf9 < ACL data : handle 11 flags 0 x02 dlen 8 L2CAP ( d ): cid 0 x0041 len 4 [ psm 3] RFCOMM ( s ): DISC : cr 1 dlci 0 pf 1 ilen 0 fcs 0 xfd < ACL data : handle 11 flags 0 x02 dlen 12 L2CAP ( s ): Disconn req : dcid 0 x0041 scid 0 x0041 > HCI Event : Number of Completed Packets (0 x13 ) plen 5 > ACL data : handle 11 flags 0 x02 dlen 8 L2CAP ( d ): cid 0 x0041 len 4 [ psm 3] RFCOMM ( s ): UA : cr 1 dlci 0 pf 1 ilen 0 fcs 0 xd7 > ACL data : handle 11 flags 0 x02 dlen 12 L2CAP ( s ): Disconn rsp : dcid 0 x0041 scid 0 x0041 < HCI Command : Disconnect (0 x01 |0 x0006 ) plen 3 > HCI Event : Command Status (0 x0f ) plen 4 > HCI Event : Disconn Complete (0 x05 ) plen 4 4.2.3.4. Descubrimientos de servicio Para el descubrimiento de servicio utilizamos sdptool : # sudo sdptool sdptool - SDP tool v4 .51 Usage : sdptool [ options ] < command > [ command parameters ] Options : -h Display help -i Specify source interface Commands : search Search for a service browse Browse all available services records Request all records add Add local service del Delete local service get Get local service setattr Set / Add attribute to a SDP record setseq Set / Add attribute sequence to a SDP record Services : DID SP DUN LAN FAX OPUSH FTP PRINT HS HSAG HF HFAG SAP PBAP NAP GN PANU HCRP HID KEYB WIIMOTE CIP CTP A2SRC A2SNK AVRCT AVRTG UDIUE UDITE SEMCHLA SR1 SYNCML SYNCMLSERV ACTIVESYNC HOTSYNC PALMOS NOKID PCSUITE NFTP NSYNCML NGAGE APPLE ISYNC Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 46 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO vemos un ejemplo: # sudo sdptool browse 00:1 A :89:64:67:7 F Browsing 00:1 A :89:64:67:7 F ... Service Name : Dial - up networking Service RecHandle : 0 x10026 Service Class ID List : " Dialup Networking " (0 x1103 ) " Generic Networking " (0 x1201 ) Protocol Descriptor List : " L2CAP " (0 x0100 ) " RFCOMM " (0 x0003 ) Channel : 1 Language Base Attr List : code_ISO639 : 0 x656e encoding : 0 x6a base_offset : 0 x100 Profile Descriptor List : " Dialup Networking " (0 x1103 ) Version : 0 x0100 Service Name : Nokia PC Suite Service RecHandle : 0 x10027 Service Class ID List : " Serial Port " (0 x1101 ) Protocol Descriptor List : " L2CAP " (0 x0100 ) " RFCOMM " (0 x0003 ) Channel : 15 Language Base Attr List : code_ISO639 : 0 x656e encoding : 0 x6a base_offset : 0 x100 Service Name : COM 1 Service RecHandle : 0 x10028 Service Class ID List : " Serial Port " (0 x1101 ) Protocol Descriptor List : " L2CAP " (0 x0100 ) " RFCOMM " (0 x0003 ) Channel : 3 Language Base Attr List : code_ISO639 : 0 x656e encoding : 0 x6a base_offset : 0 x100 Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 47 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO Service Name : Voice Gateway Service RecHandle : 0 x10029 Service Class ID List : " Handsfree Audio Gateway " (0 x111f ) " Generic Audio " (0 x1203 ) Protocol Descriptor List : " L2CAP " (0 x0100 ) " RFCOMM " (0 x0003 ) Channel : 13 Language Base Attr List : code_ISO639 : 0 x656e encoding : 0 x6a base_offset : 0 x100 Profile Descriptor List : " Handsfree " (0 x111e ) Version : 0 x0105 Service Name : Audio Gateway Service RecHandle : 0 x1002a Service Class ID List : " Headset Audio Gateway " (0 x1112 ) " Generic Audio " (0 x1203 ) Protocol Descriptor List : " L2CAP " (0 x0100 ) " RFCOMM " (0 x0003 ) Channel : 12 Language Base Attr List : code_ISO639 : 0 x656e encoding : 0 x6a base_offset : 0 x100 Profile Descriptor List : " Headset " (0 x1108 ) Version : 0 x0100 Service Name : OBEX Object Push Service RecHandle : 0 x10031 Service Class ID List : " OBEX Object Push " (0 x1105 ) Protocol Descriptor List : " L2CAP " (0 x0100 ) " RFCOMM " (0 x0003 ) Channel : 9 " OBEX " (0 x0008 ) Language Base Attr List : code_ISO639 : 0 x656e encoding : 0 x6a base_offset : 0 x100 Profile Descriptor List : " OBEX Object Push " (0 x1105 ) Version : 0 x0100 Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 48 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO Service Name : OBEX File Transfer Service RecHandle : 0 x10032 Service Class ID List : " OBEX File Transfer " (0 x1106 ) Protocol Descriptor List : " L2CAP " (0 x0100 ) " RFCOMM " (0 x0003 ) Channel : 10 " OBEX " (0 x0008 ) Language Base Attr List : code_ISO639 : 0 x656e encoding : 0 x6a base_offset : 0 x100 Profile Descriptor List : " OBEX File Transfer " (0 x1106 ) Version : 0 x0100 Service Name : SyncML Client Service RecHandle : 0 x10034 Service Class ID List : UUID 128: 00000002 -0000 -1000 -8000 -0002 ee000002 Protocol Descriptor List : " L2CAP " (0 x0100 ) " RFCOMM " (0 x0003 ) Channel : 11 " OBEX " (0 x0008 ) Language Base Attr List : code_ISO639 : 0 x656e encoding : 0 x6a base_offset : 0 x100 Service Name : Music - Player Service Provider : Nokia Service RecHandle : 0 x10035 Service Class ID List : " Audio Source " (0 x110a ) Protocol Descriptor List : " L2CAP " (0 x0100 ) PSM : 25 " AVDTP " (0 x0019 ) uint16 : 0 x100 Language Base Attr List : code_ISO639 : 0 x656e encoding : 0 x6a base_offset : 0 x100 Profile Descriptor List : " Advanced Audio " (0 x110d ) Version : 0 x0100 Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 49 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO Service Name : Media Player Service Provider : Nokia Service RecHandle : 0 x10036 Service Class ID List : " AV Remote Target " (0 x110c ) Protocol Descriptor List : " L2CAP " (0 x0100 ) PSM : 23 " AVCTP " (0 x0017 ) uint16 : 0 x100 Language Base Attr List : code_ISO639 : 0 x656e encoding : 0 x6a base_offset : 0 x100 Profile Descriptor List : " AV Remote " (0 x110e ) Version : 0 x0100 Service Name : Media Player Service Provider : Nokia Service RecHandle : 0 x10037 Service Class ID List : " AV Remote " (0 x110e ) Protocol Descriptor List : " L2CAP " (0 x0100 ) PSM : 23 " AVCTP " (0 x0017 ) uint16 : 0 x100 Language Base Attr List : code_ISO639 : 0 x656e encoding : 0 x6a base_offset : 0 x100 Profile Descriptor List : " AV Remote " (0 x110e ) Version : 0 x0100 Service Name : SIM ACCESS Service RecHandle : 0 x10038 Service Class ID List : " SIM Access " (0 x112d ) " Generic Telephony " (0 x1204 ) Protocol Descriptor List : " L2CAP " (0 x0100 ) " RFCOMM " (0 x0003 ) Channel : 4 Language Base Attr List : code_ISO639 : 0 x656e encoding : 0 x6a base_offset : 0 x100 Profile Descriptor List : Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 50 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO " SIM Access " (0 x112d ) Version : 0 x0101 Esto proporciona toda la información que necesitamos acerca de todos los servicios presentes en el dispositivo, en este caso el teléfono móvil. 4.2.4. Contruir nuestro propio sniffer Bluetooth Es posible construir nuestro propio sniffer Bluetooth a partir de un adaptador USB Bluetooth convencional. Entre todas las cosas que podríamos hacer con un sniffer, resulta interesante poder sniffar durante el emparejamiento de dos dispositivos Bluetooth y obtener la clave de enlace que comparten. El procedimiento para construir nuestro propio sniffer Bluetooth a partir de un adaptador USB Bluetooth convencional está perfectamente documentado en Internet, por lo que esta será una sencilla explicación práctica. El inconveniente es el adaptador Bluetooth que debe tener algunas características especiales. El adaptador Bluetooth necesita cumplir dos requerimientos para poder ser convertido en un sniffer Bluetooth (pondremos unas capturas a modo de ejemplo): 1. Chipset Cambridge Silicon Radio (CSR). Ver figuras 4.2, 4.3 2. BC4 externo o flash. Los adaptadores Bluetooth con memoria ROM no sirven. Ver figura 4.4 a) El segundo adaptador (BC4 EXT) sirve, el primero (BC2 EXT) no es muy seguro de que funcione. Se necesita conseguir las siguientes herramientas: 1) bccmd: permite modificar la configuración del firmware. 2) dfutool: permite flashear el adaptador y actualizar el firmware. b) Se pueden obtener vía bluez-cvs, aquí se explica cómo: # sudo apt - get install libbluetooth2 libbluetooth2 - dev libusb -0.1 -4 libusb - dev # cvs -d : pserver : anonymous@cvs . bluez . org :/ cvsroot / bluez login # cvs -d : pserver : anonymous@cvs . bluez . org :/ cvsroot / bluez co utils # cd utils / tools # gcc - lusb - lbluetooth csr . c csr_3wire . c csr_bcsp . c csr_h4 . c csr_hci . c csr_usb . c ubcsp . c bccmd . c -o bccmd # gcc - lusb - lbluetooth csr . c dfutool . c -o dfutool 3. También hace falta descargarse[9] e instalar el paquete Frontline Test Equipment FTS4BT versión <= 5.6.9.0, que contiene el firmware airsnifferdev4*bc4.dfu, que luego se utiliza para actualizar el adaptador Bluetooth. a) El procedimiento es simple. En primer lugar, la herramienta FTS4BT requiere cierta configuración para poder reconocer el adaptador como sniffer hardware. Hay que cambiar el id de producto (debería ser 0x0002) y el id de fabricante (debería ser 0x0a12). Ver figura 4.5 Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 51 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO 4. Después, es recomendable hacer backup del firmware existente en el adaptador Bluetooth antes de flashearlo y cargarle el firmware airsnifferdev4*bc4.dfu. Ver figuras 4.6, 4.7. 5. Si se utiliza el firmware airsnifferdev5*bc4.dfu el adaptador puede quedar inservible así que es importante obtener la versión correcta de FTS4BT (la que contiene airsnifferdev4*bc4.dfu). 6. Tras haber realizado con éxito estas operaciones, se puede observar que el adaptador Bluetooth se encuentra en modo RAW. Los bytes RX y TX deberían ir en aumento. Ver figura 4.8. 7. También se puede comprobar que funciona ejecutando frontline, que permite enviar comandos a un sniffer hardware. El tiempo debería ir creciendo. Ver figura 4.9. Figura 4.2: Adaptador Bluetooth que soporta el cambio de firmware Figura 4.3: Chipset Cambridge Silicon Radio Figura 4.4: Parámetros del adaptador Bluetooth Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 52 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO Figura 4.5: Configuración de la herramienta FTS4BT Figura 4.6: Backup I Figura 4.7: Backup II Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 53 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO Figura 4.8: Modo RAW Figura 4.9: Comprobando que funciona bien ejecutando frontline 4.3. Análisis de Intercambio de Tramas Bluetooth En el siguiente cuadro se puede ver un análisis exhaustivo de las fases de una conexión y envío de datos exitosa. Se ha marcado por colores cada fase de la conexión de ejemplo entre un ordenador y un teléfono móvil. Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 54 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 55 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 56 CAPÍTULO 4. EJEMPLOS Y CASOS DE USO PRÁCTICO Miguel Ángel Cuevas Cepeda y Pablo Carrillo Álvarez 57 Bibliografía [1] Comunicaciones Inalámbricas. Autor David Roldán Martínez. Editorial Ra-Ma (2004) 621.396.7 ROL-3 1 [2] Página oficial sobre el SIG de Bluetoothhttp://bluetooth.com/Spanish/SIG/Pages/default.aspx (document), 1.2.2.1 [3] Página oficial del estándar 802.15. http://www.ieee802.org/15/ 2, 3 [4] Perfiles Bluetooth de SIG: http://www.bluetooth.com/English/Technology/Works/Pages/Profiles_Overview.a 2.6 [5] Perfil de control del Teléfono.http://www.palowireless.com/infotooth/glossary.asp#SR 2.6.18 [6] Ataque Hello Moto.http://trifinite.org/Downloads/helomoto.tgz 3.3.3 [7] Herramienta cu, del paquete Taylor UUCP.http://www.airs.com/ian/uucp-doc/uucp.html 3 [8] Herramientas de BlueZ.http://www.bluez.org/download.html 4.2.2 [9] Firmware para sniffer Bluetooth.http://www.fte.com/ 3 [10] Funcionamiento de RFCOMM.http://authors.phptr.com/bluetooth/bray/pdf/cr_ch10.pdf 2.2.4 [11] Para la elaboración de este documento y su presentación se ha hecho uso de LYX y LATEX. http://www.lyx.org 58