Análisis del Estándar Bluetooth
Texto completo
(2) Universidad Central “Marta Abreu” de Las Villas. Facultad de Ingeniería Eléctrica. Departamento de Telecomunicaciones y Electrónica.. TRABAJO DE DIPLOMA Análisis del Estándar Bluetooth. Autor: Humberto Samir Miguel Senra. e-mail: [email protected]. Tutor: MSc. David Beltrán Casanova e-mail: [email protected]. Santa Clara Escriba aquí el Año de la defensa "Escriba aquí el nombre del año de la defensa".
(3) Hago constar que el presente trabajo de diploma fue realizado en la Universidad Central “Marta Abreu”, de Las Villas como parte de la culminación de estudios de la especialidad de Ingeniería en Automática, autorizando a que el mismo sea utilizado por la Institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos, ni publicados sin autorización de la Universidad.. Firma del Autor Los abajo firmantes certificamos que el presente trabajo ha sido realizado según acuerdo de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada.. Firma del Tutor. Firma del Jefe de Departamento donde se defiende el trabajo. Firma del Responsable de Información Científico-Técnica.
(4) i. PENSAMIENTO. El hombre encuentra a Dios detrás de cada puerta que la ciencia logra abrir. Albert Einstein.
(5) ii. AGRADECIMIENTOS. Agradezco a Dios por la vida, a mi mamá por haberme ayudado y aguantado toda una vida, a mi abuelo Salvador por haberme comprendido y ayudado, a toda mi familia por haberme apoyado en todo, a todos mis compañeros por la ayuda prestada durante estos años, a mi tutor y en especial a mi amigo Carlos Miguel Bustillo por haberme ayudado en la elaboración de este trabajo. ………...Gracias a todos………….
(6) iii. RESUMEN. El avance tecnológico ha conllevado a desarrollar las comunicaciones inalámbricas, una de las tecnologías más implementadas es Bluetooth ya que tiene una buena respuesta al ruido por usar las técnicas de espectro extendido, dándole la posibilidad de trabajar en medios hostiles, aunque de pequeño alcance. Otra de sus ventajas y una de las más importantes es su seguridad, dando la posibilidad de ser utilizada en lugares donde la seguridad sea primordial. Dado el gran auge que tiene esta técnica de comunicación inalámbrica se hace necesario el estudio de la misma. Este trabajo se basa en analizar el estándar Bluetooth y cómo los dispositivos negocian sus roles al iniciarse la conexión, con el fin de mejorar y actualizar la asignatura Comunicaciones Móviles. Para llevar a cabo esta tarea hay que analizar el principio de funcionamiento de Bluetooth y escuchar el principio de conexión de los dispositivos donde se hacen las negociaciones..
(7) iv. TABLA DE CONTENIDOS. PENSAMIENTO .....................................................................................................................i AGRADECIMIENTOS ......................................................................................................... ii RESUMEN ........................................................................................................................... iii INTRODUCCIÓN .................................................................................................................. 1 CAPÍTULO 1. 1.1. FUNDAMENTOS DE BLUETOOTH...................................................... 3. Estructura de Bluetooth. ........................................................................................... 3. 1.1.1. Bluetooth tiene una estructura por niveles llamados niveles de la pila. Bluetooth.(Bruce Hopkins, 2003, Beasley, 2009, Tablado, 2012, Figueira, 2011) ........ 5 1.1.2 1.2. Comparación de la Pila Bluetooth con el modelo de referencia OSI ............. 14. Monitoreo usando la tecnología Bluetooth. ........................................................... 14. 1.2.1. Capturar tramas de Bluetooth. ........................................................................ 17. Formas para Capturar tramas: ....................................................................................... 17 CAPÍTULO 2.. APLICACIONES. DE. LOS. SNIFFER,. FUNCIONAMIENTO Y. ANÁLISIS DE TRAMAS .................................................................................................... 26 2.1. ¿Qué es un sniffer? ................................................................................................. 26. 2.1.1 2.2. Diferentes tipios de Sniffers. ........................................................................... 27. Análisis de Tramas. ................................................................................................ 28. CAPÍTULO 3. 3.1. OBTENCIÓN Y ANÁLISIS DE LOS RESULTADOS ......................... 41. Procedimiento para llegar a los resultados obtenidos. ........................................... 41.
(8) v 3.2. Análisis de las tramas obtenidas. .................................................................... 46. CONCLUSIONES Y RECOMENDACIONES ................................................................... 54 Conclusiones: .................................................................................................................... 54 Recomendaciones ............................................................................................................. 55 REFERENCIAS BIBLIOGRÁFICAS ................................................................................. 56 ANEXOS .............................................................................................................................. 57.
(9) INTRODUCCIÓN. INTRODUCCIÓN. Dada la necesidad de la asignatura Comunicaciones Moviles de introducir en su plan de estudio nuevas técnicas de comunicaciones inalámbricas se hace necesario el estudio y análisis de los estándares de este tipo de redes. En este trabajo se analiza el estándar Bluetooth, tecnología de comunicaciones inalámbricas usada por numerosos dispositivos como teléfonos, impresoras, agendas, entre otros. No es aplicado en dispositivos comerciales solamente, sino también en comunicaciones industriales para la transmisión de datos recogidos por sensores ya que éste brinda seguridad. Para poder contribuir con la asignatura hay que analizar el estándar, entonces: ¿Cómo obtener información sobre los procesos de conexión del estándar Bluetooth? Esto da paso a diversas interrogantes: ¿Qué sistemas se utilizan en la actualidad para el monitoreo de las redes Bluetooth? ¿Cuál de estos sistemas es el que brinda mayor posibilidad de aplicación para los intereses de la Facultad? Por ello, el objetivo general de este trabajo es mostrar a través de un sniffer el funcionamiento del estándar Bluetooth al inicio de la conexión. Específicamente: 1. Obtener mediante un sniffer paquetes provenientes de un dispositivo Bluetooth. 2. Analizar los paquetes obtenidos con el sniffer. El informe está estructurado en un cuerpo de tres capítulos que recogen en esencia el orden metodológico siguiente: introducción, estado del arte de Bluetooth, descripción de sus especificaciones técnicas, anotación del procedimiento para la captura de información y. 1.
(10) INTRODUCCIÓN análisis de la información obtenida. Le siguen conclusiones, referencias bibliográficas y anexos. A continuación se resume brevemente el contenido de los capítulos. Capítulo 1: Fundamento de Bluetooth Se dedica a proporcionar un análisis teórico del estándar: 1.. Cómo está estructurado el protocolo Bluetooth.. 2.. Principales características del estándar.. 3.. Diferentes técnicas usadas para la captura de información.. Capítulo 2: Aplicación de los sniffer, funcionamiento y análisis de tramas En este capítulo se muestra que funcionalidad tienen los sniffer, algunos sniffer que pueden ser usados para la captura de información y se hace un análisis general de las posibles tramas que se puedan capturar y que roll posee cada una de ellas a la hora de establecer una conexión. Capítulo 3: Obtención y análisis de los resultados En este capítulo se explica la forma en que se obtuvieron los resultados y se analiza cada uno de estos con el objetivo de explicar el establecimiento de la conexión en Bluetooth, mostrando así una serie de mensajes al inicio de la conexión antes explicados en el capítulo 1.. 2.
(11) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH. 3. CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH. Bluetooth es una norma que define un estándar global de comunicación inalámbrica, que posibilita la transmisión de voz y datos entre diferentes equipos mediante un enlace por radiofrecuencia. La. tecnología. Bluetooth. comprende. hardware,. software. y. requerimientos. de. interoperabilidad, para su desarrollo ha sido necesaria la participación de los principales fabricantes de los sectores de las telecomunicaciones y la informática, tales como: Ericsson, Nokia, Toshiba, IBM, Intel y otros. Posteriormente se han ido incorporando muchas más compañías, y se prevé que próximamente los hagan también empresas de sectores tan variados como: automatización industrial, maquinaria y entretenimiento, fabricantes de juguetes, electrodomésticos, etc., con lo que en poco tiempo se presentará un panorama de total conectividad de equipos tanto en casa como en el trabajo. Bluetooth provee un camino fácil para la computación móvil, para la comunicación entre dispositivos y para conectarse a Internet a altas velocidades, sin el uso de cables. Además, se busca facilitar la sincronización de datos de computadoras móviles, teléfonos celulares y manejadores de dispositivos. La Tecnología Bluetooth es de pequeña escala, bajo costo y se caracteriza por usar enlaces de radio de corto alcance entre móviles y otros dispositivos, como teléfonos celulares, puntos de accesos de red (access points) y computadoras. Tiene la capacidad de atravesar paredes y maletines, por lo cual es ideal tanto para el trabajo móvil, como el trabajo en oficinas. 1.1. Estructura de Bluetooth.. Bluetooth es un estándar de comunicaciones para redes inalámbricas de tipo personales (Wireless Personal Area Networks), permite la interconexión de múltiples variedades de.
(12) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH dispositivos, posee un rango de alrededor de 10 m sin obstáculo para dispositivos pequeños que no poseen mucha potencia, mientras que para los dispositivos que manejan mayor potencia pueden llegar a 100 m, poseen una transferencia aproximadamente de 1 Mbps, permite comunicaciones sincrónicas (Voz) y asincrónica (Datos), utiliza modelos de comunicación Maestro-Esclavo e implementa sistemas de Autentificación y Encriptación. Desde un punto de vista de tecnología de transmisión, Bluetooth está basado en la tecnología clásica del escenario inalámbrico conocida como spread spectrum (espectro extendido), con la técnica de frequency hopping (salto de frecuencia): estos sistemas de salto de frecuencia dividen la banda de frecuencia en varios canales de salto (hopping); en el transcurso de la conexión se produce una transición brusca (salto o hopping) de un canal a otro de forma seudo aleatoria. Desde un punto de vista de arquitectura, Bluetooth se basa en el concepto de picored, un concepto genérico en las redes de área personal que se refiere a la capacidad de varios equipos para configurarse como una red; de una forma más estricta, la picored se puede definir como la red de corto alcance formada por dos o más unidades (hasta 7 esclavos y un maestro) o equipos que comparten un canal, es decir, que funcionan de forma síncrona y siguiendo la misma frecuencia de salto(Miguel Ángel Cuevas Cepeda, 2011). La picored se diferencia de otras redes similares de su entorno mediante la secuencia de salto de frecuencia. Las picorredes se comunican entre sí mediante TDD (Time División Duplex)(Pérez N., 2011), estas se pueden enlazar de forma ad-hoc generando lo que se conoce como red de dispersión o scatternet: estas scatternets permiten que se pueda producir la comunicación entre configuraciones flexibles de forma continua; estas redes pueden actuar también como enlace inalámbrico a redes de datos ya existentes. Las picoredes dentro de una scatternet deben tener diferentes frecuencias de salto y para comunicarse entre ellas usan TDM (Multiplexación por división del tiempo)(Ahmad, 2005). El chip Bluetooth está formado por un transceiver de radiofrecuencia, una unidad de control de enlace banda-base conjuntamente con el software de gestión y un subsistema de antena; a los equipos que incluyen este chip y verifican las especificaciones Bluetooth se les conoce, en la literatura internacional, como productos Bluetooth enabled.(IEEE, 2011). 4.
(13) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH 1.1.1 Bluetooth tiene una estructura por niveles llamados niveles de la pila Bluetooth.(Bruce Hopkins, 2003, Beasley, 2009, Tablado, 2012, Figueira, 2011) 1. Nivel de Radio. 2. Nivel de Banda Base. 3. Nivel de Protocolo de control del enlace (Link Management Protocol LMP). 4. Nivel de Interfaz de control del host (Host Controller Interface HCI). 5. Nivel de Control de la capa de enlace y protocolo de la capa de adaptación (Link Layer Control and Adaptation layer Protocol L2CAP). 6. Nivel de Comunicación por Radio Frecuencia (Radio Frecuency Comunication RFCOMM). 7. Nivel de Servicio de descubrimiento de Protocolo (Service Discovery Protocol SDP). Nivel de Radio: Esta capa es la encargada de controlar los niveles de potencia y los saltos de frecuencia. La descripción de esta capa se limita: 1. Recepción de una trama de bits de la subcapa MAC y la transmisión de una trama de bits vía onda de radio hacia una estación asociada. 2. Recepción de ondas de radio de alguna estación asociada y la conversión de esta a una trama de bits que se transmite hacia la MAC. Salto de Frecuencia:. 5.
(14) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH. Rango de frecuencias que usa Bluetooth: Localización. Ancho de Banda. USA, Europa y la mayoría 2.4-2.4835 GHz. Canales de RF F= 2402+K MHz, k=0..78. de los países Francia. 2.4465-2.4835 GHz. F= 2453+k MHz, k=0..22. Rango de Potencia que usa Bluetooth: Tipo de potencia. Potencia Máxima. Potencia Mínima. 1. 100mW (20dBm). 1mW (0dBm). 2. 2.5mW (4dBm). 0.25mW (-6dBm). 3. 1mW (0dBm). N/A. Tipo 1 son mayormente usados en aeropuertos (100 metros). Tipo 2 Son usados en zonas de menor área (20 metros). Tipo 3 Son los usados comúnmente (10 metros).(Bruce Hopkins, 2003). Características de modulación: Bluetooth usa la modulación GFSK (Gaussian Frequency Shift Keying) con un índice de modulación de 0.28 y 0.35. En este tipo de modulación un 1 lógico representa una desviación positiva de frecuencia y un 0, una desviación negativa (Figura 1.1). Esta modulación es una modulación FSK, pero con la diferencia de que esta usa un filtro gaussiano para poder reducir el Ancho de Banda.. 6.
(15) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH. Figura 1.1: Desviación de frecuencia con respecto al tiempo.(Fuente: (IEEE, 2011)). El error de cruce por cero es la diferencia de tiempo entre el período ideal de símbolo y el tiempo de cruce real. Este debe ser menor del 0.125 del período de un símbolo.(IEEE, 2011, Freznel, 2012) Nivel Banda Base: Este nivel se encarga de: 1. Sincronización entre los dispositivos. 2. Transmisión de información. 3. Corrección de errores. 4. División lógica de canales. 5. Decodificación de datos. Bluetooth posee 2 tipos de conexiones fundamentales:(A.Moreno, 2011) 1.. Asincrónicas no orientadas a la conexión (Asincronous Connectioless ACL).. 2.. Sincrónicas orientadas a la conexión (Sincronous Qriented Connection SCO).. Enlaces ACL (Conmutación de paquetes): Un maestro tiene la capacidad de establecer varias conexiones simultáneas y determinar qué esclavo puede transmitir, entre el Maestro y un esclavo solo puede existir una conexión ACL y se pueden realizar Broadcast ACL.. 7.
(16) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH. 8. Existen diferentes tipos de paquetes ACL: 1. Alta razón de datos (Data High rate DH). 2. Razón media de datos (Data Medium rate) permite una menor velocidad, pero incluye protección contra errores adicionales. Enlaces SCO (Conmutación de circuitos): Posee enlace simétrico entre el dispositivo Maestro y el Esclavo, con un ancho de banda reservado. El dispositivo Maestro soporta hasta 3 conexiones simultáneas SCO, estos paquetes SCO no se retransmiten lo que puede provocar pérdidas de información ya que SCO fue pensado en aplicaciones con necesidades críticas como Audio, este tipo de conexión reserva ranuras de tiempo (Slot). Configuraciones de los canales: 1.. Un canal asincrónico (721 kbps de bajada y 57.6 kbps de subida o 433.9 kbps simétricos).. 2.. Hasta 3 canales de voz sincrónicos simultáneos de 64 kbps.. 3.. Un canal que soporta simultáneamente datos asincrónicos y voz síncrona.. Estructura del paquete Bluetooth:(Juzgado, 2010). 68 a 72 bits de código de acceso 54 bits de cabecera. 1.. 0 a 2745 bits da carga útil. El Código de Acceso (Access Code) se utiliza para el sincronismo. Identifica si el paquete proviene o es enviado a un maestro.. 2.. 3.. La cabecera (Header) contiene información sobre: . Reconocimiento (ACK) de paquetes enviados.. . Identificación del paquete en envíos desordenados.. . Control de flujo. Retención de envío en un extremo.. . Dirección de destino del paquete.. . Control de errores para la cabecera.. La carga útil (Payload) puede contener campos de voz, de datos o ambos. Los paquetes SCO tienen un tamaño de payload fijo de 30 bytes..
(17) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH Un paquete puede ocupar más de un slot y como máximo hasta 5 slots. Luego de la carga útil viene un campo llamado suma de chequeo (CRC), de 16 bits con el objetivo de verificar si todos los datos llegaron correctamente a su destino. Los paquetes SCO no poseen este campo ya que por lo general sobre estos se montan tramas de voz y no es tolerable tener retardos debido al procesamiento de este campo.(Cacho, 2003) Corrección de errores: Existen 3 tipos de esquemas de corrección de errores, que son de proporción 1/3, 2/3 o 1: 1.. En el de 1/3 cada bit se repite 3 veces como redundancia.. 2.. En el de 2/3 se utiliza un algoritmo para codificar 10 bit en 15 bit.. 3.. En el de 1, un paquete se retransmite hasta que llega un ACK del destino.. Control del enlace: Estado del Controlador (STANDBY y CONECTION)(Beasley, 2009, Juzgado, 2010) Page. Este subestado lo utiliza para activar y conectarse con un esclavo. El mensaje consiste en transmitir el código de acceso del esclavo (DAC) en diferentes canales de salto.. Page Scan. En este subestado el esclavo está escuchando su código de acceso (DAC) la duración de una ventana de escaneo. Solo escucha en una frecuencia de salto.. Slave Response. El esclavo responde al mensaje page del maestro en este estado. El esclavo entra en estado Conexión después de recibir el paquete FHS del maestro.. Master Response. El maestro alcanza este estado después que el esclavo le responda la petición de page. El maestro entonces envía el mensaje FHS y si le responde el esclavo entra en estado de Conexión.. Inquiry. Este estado se utiliza para descubrir la identidad de los dispositivos Bluetooth en la zona de cobertura. El dispositivo que lanza la petición recibe la dirección Bluetooth y el reloj de todos los dispositivos que responden a la petición.. Inquiry Scan. En este estado los dispositivos están escuchando peticiones de Inquiry de otros dispositivos.. Inquiry Response. A un inquirí sólo responden los esclavos. Se envía un paquete FHS que contiene el código de acceso, el reloj y más información.. 7 secundarios de STANDBY.. 9.
(18) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH. Active. Los dispositivos eslavos o maestros pueden enviar o recibir. Los dos están sincronizados.. Sniff. El esclavo en este subestado solo escucha en los slots de tiempo en los que se pueden enviar sus mensajes, es un modo de ahorro de energía, pero manteniendo la funcionalidad.. Hold. En este subestado puede no aceptar paquetes ACL y quedarse en modo de bajo consumo, para habilitar el canal para otros usos.. Park. El esclavo que no quiere participar en el canal de la picored, pero sin estar sincronizado con ese canal. Es otro modo de ahorro de energía en el que hay muy poca actividad.. 4 secundarios de CONNECTION. Proceso de establecimiento de la conexión:. Principales medidas de seguridad: 1.. Una rutina de pregunta-respuesta para autentificación.. 2.. Una corriente cifrada de datos, para encriptación.. 3.. Generación de claves de sesión (que puede cambiarse durante la conexión).. 10.
(19) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH Para los algoritmos de seguridad son usadas 3 entidades: 1. La dirección Bluetooth (pública). 2. La clave de usuario (secreta). 3. El número aleatorio (diferente para cada nueva transmisión). Nivel LMP: Este nivel traduce los comandos del nivel superior (HCI) a niveles inferiores (Banda Base).(Ahmad, 2005). Las operaciones son: 1.. Unir esclavos a una PICORED.. 2.. Parar conexiones para liberar esclavos de una PICORED.. 3.. Configurar enlaces, controlando roles maestro/esclavo.. 4.. Establecer enlaces ACL y SCO.. 5.. Cortar conexiones.. 6.. Pasar conexiones a modo ahorro de energía.. Nivel HCI: Esta capa es una interfaz que une a un dispositivo Bluetooth con un determinado host. Todos los datos y comandos pasan a través de esta interfaz. Esta realiza la separación entre el hardware y el software que corre en una máquina, quedando en los niveles inferiores los dispositivos físicos y en los superiores el host (Figura 1.2).. Figura 1.2: Nivel HCI separa el Software del Hardware.(Fuente: (Cacho, 2003)). Las ventajas que proporciona la capa HCI es que permite mezclar capas superiores e inferiores. Se pueden tener conectados en la misma máquina diferentes dispositivos sin tener que modificar nada en las capas superiores. Al enviar el host las capas superiores se puede hacer el dispositivo Bluetooth con procesadores más ligeros, con menos memoria y así abaratar su costo.. 11.
(20) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH Nivel L2CAP: Esta capa toma datos de las capas superiores y los trasmite a las capas inferiores. Proporciona multiplicación de varias capas superiores que pueden ser diferentes protocolos sobre un único enlace ACL, segmentación y re-ensamblaje de paquetes de gran tamaño y calidad de servicio para niveles superiores.(Bruce Hopkins, 2003) Los paquetes L2CAP contienen (Figura 1.3): 1. Longitud del campo de datos. 2. Identificador del canal usado. 3. Datos.. Figura 1.3: Formato de los paquetes L2CAP.(Fuente: (Cacho, 2003)). Los paquetes de comando L2CAP contienen: 1.. OpCode que es el código del comando.. 2.. Identifier, usado para emparejar peticiones y respuestas.. 3.. Longitud de los Datos.. 4.. Datos.. Figura 1.4: Formato de los paquetes de comando L2CAP.(Fuente: (Cacho, 2003)). Se pueden enviar varios comandos dentro del mismo paquete L2CAP, siempre que no se exceda el tamaño de la unidad máxima de transmisión (Maximum Transmision Unit MTU) que es de 65.535 bytes.. 12.
(21) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH Nivel RFCOMM: Es un protocolo que implementa una emulación de puertos series RS-232 sobre un canal L2CAP. Este nivel puede emular hasta 60 puertos serie concurrentemente dependiendo de la capa L2CAP. Esto es variable en función de la implementación de dispositivo. También provee control de flujo sobre canales individuales, pero no provee control de errores.(Bruce Hopkins, 2003). Pueden existir dos tipos de dispositivos: 1. Tipo 1: Puerto serie emulado interno. Se provee una interfaz de programación de aplicaciones (Aplication programing interfaces API), para que las aplicaciones puedan usarse en ese puerto serie. 2. Tipo 2: Estos dispositivos tienen un puerto serie físico RS-232 que se puede conectar a otro dispositivo. La conexión L2CAP tiene que estar montada previamente a la conexión RFCOMM. Los datos que se envían en el protocolo RFCOMM van en la carga útil de los paquetes L2CAP. Sobre este puerto serie, se puede montar una conexión punto a punto usando PPP (point-topoint), y sobre esta conexión montar IP. Esta es una de las opciones para montar IP sobre Bluetooth. Nivel SDP: Este nivel permite descubrir que servicios tienen disponibles los dispositivos Bluetooth vecinos, trabaja con un esquema de petición-respuesta. Se envía una unidad de dato de protocolo (Protocol Data Unit PDU) y se recibe otra PDU.(Cacho, 2003, Bruce Hopkins, 2003).. 13.
(22) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH 1.1.2 Comparación de la Pila Bluetooth con el modelo de referencia OSI. 1.2. Monitoreo usando la tecnología Bluetooth.. Gran parte de los datos de Bluetooth siguen siendo confidenciales en la práctica debido a la dificultad de las escuchas. Se presenta mecanismos para hacerlo, por lo tanto, la eliminación de los datos son propiedades de la confidencialidad del protocolo. Como una medida adicional de seguridad, los dispositivos funcionan a menudo en " el modo oculto " con el fin de ocultar su identidad y proporcionar control de acceso. Bluetooth es una tecnología extendida, utilizada en muchos dispositivos que reciben y transmiten datos confidenciales. Por ejemplo, prácticamente todos los teléfonos móviles modernos tienen capacidad para soportar Bluetooth, lo que les permite comunicarse con un kit manos libres portátil o un ordenador. Los datos transmitidos a través de Bluetooth son a menudo sensibles, como datos de voz o archivos privados, por lo tanto, la confidencialidad de los paquetes Bluetooth es un asunto relevante. Si fuera posible espiar Bluetooth, los atacantes podrían, por ejemplo, tener la capacidad de interceptar tablas de direcciones cuando hay una sincronización entre un teléfono y el ordenador, rompiendo así todos los requisitos de confidencialidad de estos dispositivos. Para ofrecer privacidad, Bluetooth es compatible con el cifrado opcional en la capa de enlace. Este esquema ha demostrado ser vulnerable si el atacante es capaz de escuchar el procedimiento de emparejamiento, lo cual es necesario antes de que los dos dispositivos puedan configurar un enlace encriptado(Wool., 2005). Así, tanto los encriptados y los enlaces no cifrados se verían amenazados por los atacantes con capacidad de escucha. El seguimiento de una conexión Bluetooth no es una tarea trivial. 14.
(23) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH y diversos aspectos del protocolo añaden implícitamente la seguridad y la dificultad de espionaje. Hay dos principales obstáculos a superar cuando se trata de Bluetooth para escuchar a escondidas: salto de frecuencia y los datos encriptados. Bluetooth envía cada paquete en diferentes frecuencias y saltos de 1.600 veces por segundo. El atacante no conoce la secuencia de salto por lo tanto le es imposible seguir una conversación entera, a menos que todo el espectro de 79 canales se controle al mismo tiempo, lo que no es práctico. El segundo obstáculo es que los datos codificados hacen imposible que el atacante inspeccione la carga, o de hecho los encabezados de Bluetooth, aunque es posible determinar los parámetros necesarios para calcular la secuencia de salto y los datos codificados, proporcionando así un mecanismo práctico para el espionaje de Bluetooth. El modo oculto de Bluetooth actúa de manera similar a un firewall, convirtiéndose en un dispositivo oculto sin que sea necesario que se revele su dirección MAC. De ahí que sólo los dispositivos de confianza tienen el conocimiento de la dirección MAC antes de conectarse a un dispositivo oculto. Esta forma de protección se utiliza a menudo en los dispositivos con los PIN codificado (por lo general 0000) con el fin de proporcionar control de acceso. El espionaje de paquetes Bluetooth en gran medida se reduce a dos variables dentro de cada dispositivo Bluetooth, la dirección MAC y el reloj. La dirección MAC es un único identificador asignado al dispositivo de la misma forma que las direcciones MAC de hardware de red más moderna. El reloj es de 3.2 KHz con un contador que almacena un número de 28 bits, y que se actualiza aproximadamente cada 23 horas. Bluetooth utiliza salto de frecuencia sobre 79 canales para minimizar las interferencias y (usualmente) salta una vez cada 625 μs, enviando paquetes por canal. El salto secuencial está determinado por la dirección MAC del dispositivo maestro y su reloj. El dispositivo maestro es el que inicia la conexión, y el esclavo es el conectado. La transferencia de datos a menudo se lleva a cabo alternando saltos, dejando los saltos intermedios para los reconocimientos, como se muestra en la figura 1.5.. 15.
(24) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH. Figura 1.5: La transferencia de datos es a menudo unidireccional con reconocimientos. 16. en. intervalos de tiempo de transmisión en la que intervienen. f(t) es la frecuencia en el momento t, calculada a partir de la reloj y la dirección MAC.(Fuente: (Andrea Bittau, 2011)). La decodificación está determinada por seis bits del reloj del dispositivo maestro. Con esta información y la dirección MAC, se puede calcular el salto secuencial y sintonizar el canal de radio correcto, y entonces, decodificar los paquetes recibidos. La Dirección MAC no puede ser fácilmente descubierta desde Bluetooth porque los paquetes no contienen la dirección completa si no la parte inferior en tres bytes, conocida como la parte más baja de la dirección (LAP). El reloj no está presente en los paquetes estándar. Hay un paquete (FHS), utilizado durante la conexión handshake, que contiene toda la información necesaria (MAC y el reloj) para escuchar en una conexión. Desafortunadamente la obtención de este paquete requiere la escucha en el comienzo de una relación y ser sintonizado en la desconocida frecuencia correcta, que muy probablemente no es posible en la práctica. Para obtener el reloj se puede establecer una conexión a un dispositivo para hacer eso, la dirección MAC es necesaria. Por lo tanto, gran parte de la dificultad de las escuchas Bluetooth proviene del secreto de la dirección MAC..
(25) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH. 17. 1.2.1 Capturar tramas de Bluetooth.. Formas para Capturar tramas: 1.. Usando dispositivos de Hardware y Software con capacidad de capturar tramas sin necesidad de autentificarse previamente.. 2.. Usando un dispositivo Bluetooth Dongle con capacidad de modificar el Firmware (Memoria reprogramable) para ser usado en el modo promiscuo.. 3.. Haciendo un sniffer en el nivel HCI.. Usando dispositivos de Hardware y Software con capacidad de capturar tramas sin necesidad de autentificarse previamente: Hay tres problemas con el espionaje Bluetooth en la práctica. En primer lugar, dongles Bluetooth estándar no tienen un concepto de modo "promiscuo", por lo que se debe hacer uso de un hardware especial, como la radio definida por software. En segundo lugar, se tiene que decodificar los datos desde todos los teléfonos Bluetooth que codifican datos por defecto. En tercer lugar, determinar la dirección MAC del maestro ya que esto permite calcular el patrón de saltos. Con el fin de capturar paquetes, se usa una herramienta del Software libre Linux GNU Radio. A continuación, se aplicará una técnica para que los datos codificados no requieran el conocimiento del reloj. En el uso de esta técnica se escaparán algunos fragmentos del reloj como un efecto secundario, y estos son suficientes para que un atacante pueda decodificar los datos. Luego se aplicará un mecanismo para determinar la totalidad de la dirección MAC de un dispositivo después de espiar un paquete y transmitir menos de 256 paquetes. Una vez obtenida la dirección MAC pueden conectarse al dispositivo con el fin de determinar su reloj completo, que facilita toda la información necesaria para seguir su patrón de salto. Con el fin de interceptar los paquetes de Bluetooth de una conexión arbitraria, se requiere un dispositivo de radio y fue elegido el Universal Software Radio Peripheral (USRP). El USRP es el dispositivo de hardware asociado con GNU Radio, que establece la creación de un. open source framework para la implementación de dispositivos de radio. con el. software. Este software se utiliza para modular los paquetes Bluetooth en proceso que habían sido recibidos por el USRP hardware. El dispositivo consiste en un USRP de una.
(26) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH. 18. placa base, la cual tiene un (Conversor dígito-analógico) DAC y un (conversor Analógicodígito) ADC dentro, y tarjetas hijas que son capaces de recibir y transmitir, a veces, a más de una banda específica de frecuencias. Para espiar los paquetes de Bluetooth se utiliza la placa hija. que está bloqueada para la banda libre de 2.48 GHz ISM en la que los. dispositivos Bluetooth operan. Hay dos problemas que deben resolverse cuando se escucha con la USRP. En primer lugar, el demodulador de parámetros es necesario que se establezca de manera adecuada para que los datos Bluetooth puedan ser recuperados en el canal que se está escuchando. En segundo lugar, debido a que la frecuencia de conexión de Bluetooth salta, el radio debe ser capaz de controlar otros canales también para escuchar todas las conversaciones y no sólo los paquetes que están de paso por el canal en el que la USRP pasó a ser sintonizada. Hay dos enfoques a este último problema. Una solución es escuchar todos los canales de Bluetooth en paralelo. El otro enfoque, es hacer resintonizar el USRP con el fin de seguir la secuencia de saltos. Un USRP con una placa hija 2.48 GHz puede ser ajustado para cualquier canal Bluetooth. Con el fin de interceptar un paquete que es suficiente para que permanezca atento a un solo canal y esperar los próximos paquetes. Dado que la tasa de salto de canal es tan alta (1600 saltos/s), la espera de un segundo es algo más que suficiente para interceptar un paquete. Sin embargo, el ajuste de la frecuencia no es suficiente ya que el demodulador tiene que estar configurado. Los datos Bluetooth son modulados en GFSK, que no es estrictamente con el apoyo de las herramientas GNU Radio demodulación. Hay en el demodulador una manipulación de desplazamiento mínimo gaussiano (GMSK), y esto se ajusta para permitir la demodulación de paquetes de Bluetooth. GMSK es una variante de GFSK en que el cambio de frecuencia utilizado para representar los datos se mantienen a un mínimo. Los principales parámetros para el demodulador son el índice de modulación y la tasa de símbolo. Estos se encuentran con la ayuda de los paquetes de depuración de CSR y una versión modificada del osciloscopio software GNU Radio, que permite muestrear los parámetros de símbolo que se calcula de un paquete recibido. El osciloscopio modificado permite utilizar los archivos de entrada, que conducen a una gran muestra siendo recortada hasta que salió un archivo de muestra que contiene un solo paquete. El paquete se midió en aproximadamente. 400 μs de longitud, con una frecuencia de muestreo de. 4000000. muestras por segundo. El paquete se sabe que es de 366 bits de longitud, con algunas.
(27) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH muestras por símbolo con valor de cuatro. El índice de modulación (μ), da una medida de la desviación de la frecuencia de la señal modulada, se deriva de la especificación Bluetooth, que permite una amplia gama desde 0,28 hasta 0,35, es de señalar que con 0,32 se producen buenos resultados. Por lo tanto, los parámetros necesarios para la demodulación Bluetooth con GMSK GNU Radio demodulador son los siguientes: • Modulación índice (μ): 0,32. • Razón de modulación (muestras / símbolo): 4. El ancho de banda de la USRP es de aproximadamente 5 MHz y es más grande que un canal Bluetooth. Esto hace que sea posible escuchar múltiples canales vecinos. El uso de filtros de traducción, que forman parte del conjunto de herramientas de la Radio GNU, es capaz de recibir los paquetes de manera confiable de hasta 2 MHz a cada lado de la frecuencia central. Los filtros de la traducción pueden cambiar la frecuencia central de la señal en el software, lo que permite controlar múltiples canales de forma simultánea, siempre y cuando estén dentro del ancho de banda del receptor, en este caso aproximadamente 5 MHz. Esto equivale a cinco canales que alguien pueda espiar con una placa hija. Cada USRP puede tener dos tarjetas hijas, y por lo tanto se puede escuchar hasta diez canales con un dispositivo USRP. Es posible que una conexión tenga un número limitado de canales debido a problemas de regulación. De hecho, el parámetro Bluetooth Adaptive Frequency Hopping (AFH) se puede utilizar para seleccionar los canales disponibles, con un mínimo de veinte canales. Por lo tanto, con un hombre en el plan de ataque, puede ser posible volver a configurar una conexión existente a usar sólo veinte canales y en este caso sólo dos USRPs sería necesario para escuchar a escondidas todos los paquetes en cuestión. Para escuchar toda la gama de los 79 canales de Bluetooth, ocho dispositivos USRP son necesarios. Todos los 79 canales tienen que ser filtrados, monitoreados, y luego los paquetes con prioridad deben ser ordenados antes de que los datos puedan ser leídos por ellos. Esto aumenta enormemente la potencia de procesamiento necesaria, aunque los datos capturados pueden ser procesados en línea o por un cluster de máquinas. Los paquetes de pedidos son necesarios cuando se utilizan múltiples USRPs porque los datos se almacenan de manera variable antes de ser entregados y por lo tanto, puede resultar que los paquetes de los múltiples dispositivos se reciban fuera de orden. El tratamiento de estos paquetes es facilitado por la técnica de obtención de la señal de reloj de. 19.
(28) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH cada paquete, ya que actúa como un número de secuencia y por lo tanto, permite un cierto orden de los paquetes. Más información sobre pedidos puede estar disponible a partir de datos o cabeceras de las capas más arriba en el stack de protocolos. Los dispositivos Bluetooth vuelven a sintonizar sus radios a 1600 veces por segundo con el fin de comunicarse entre sí. La tarjeta hija de 2.48 GHz es capaz de sintonizar dentro de 200 μs, que no es lo suficientemente rápido como para seguir un salto del patrón de Bluetooth, ya que cada franja dura 600 μs. Saltando con un retraso de 200 μs podría causar que como máximo la tercera parte de cada paquete se pierda. Hay varias soluciones a este problema en función de las necesidades del atacante. El atacante puede elegir qué tiempo de 200 μs de la ranura perder. Por ejemplo, si el principio del paquete no tiene ningún dato sensible, entonces el atacante sintonizaría el extremo de la ranura de tiempo para atrapar la cola del paquete. De lo contrario el re-sintonizar podría ocurrir antes del final de la ranura de tiempo para capturar la cabeza del siguiente paquete. Si el atacante conoce que los paquetes espiados fueron cortos, es decir, que ocupan sólo la mitad de un intervalo de tiempo, el volver a sintonizar podría ocurrir justo después del final de cada paquete, y no en el final de la ranura de tiempo. Esto deja tiempo suficiente para que el atacante vuelva a sintonizar la siguiente frecuencia y capturar con éxito el inicio del siguiente paquete. Ejemplo, los paquetes cortos que contienen información sensible son pulsaciones de teclas de un teclado Bluetooth. Puede ser el caso de que una sola dirección de conexión contenga los datos sensibles. Por ejemplo, un archivo de descarga tendrá los datos entrantes y reconocimientos salientes. Bluetooth utiliza un esquema de alternancia para la recepción y la transmisión de datos. Por lo tanto, si una sola dirección tiene que ser espiada, el atacante tiene una ranura de tiempo completa con el fin de volver a sintonizar y el USRP es lo suficientemente rápido como para esto. Si todas las conexiones tienen que ser espiadas, dos tarjetas hijas son necesarias, y pueden ser instalados en una sola USRP. En este caso, una tarjeta hija escucha la ranura de tiempo actual, mientras que la otra se resintonizaría a la próxima ranura de tiempo. Estos roles serán conmutados y alternados entre las dos juntas a lo largo de toda la conexión. El principal obstáculo en cualquier implementación práctica de salto de frecuencia, es la amortiguación y la naturaleza asíncrona de la estructura de Radio GNU. Esto introduce un retraso que no es constante, y con frecuencia lo suficientemente grande como para permitir. 20.
(29) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH que múltiples paquetes sean recibidos antes de que los datos del buffer reciban ningún análisis o procesamiento de módulo. El retraso significa que el software no tiene la posibilidad de sincronizar el salto del dispositivo que está siendo atacado, pero ajusta el reloj con los paquetes recibidos con el fin de compensar la deriva. Uno de los objetivos de GNU Radio es permitir un flujo directo de procesamiento de datos a través del software, eliminando la demora en el procesamiento, lo que significa que el salto de frecuencia puede ser posible con las futuras revisiones de GNU Radio. Los paquetes que los dispositivos Bluetooth transmiten son "Codificados", esto significa que los datos de la cabecera y la carga útil son intercalados antes de la transmisión. La codificación es fijada por los 6 bits menos significativos del reloj, que sólo son conocidos por los dispositivos involucrados en la comunicación. La codificación se realiza en todos los paquetes, independientemente del nivel superior de protocolo. Se trata de un XOR con una Secuencia seudo-aleatoria con los datos del paquete. La secuencia es producida con un valor de seis bits derivados del reloj como entrada de información al registro de desplazamiento de re-alimentación lineal (LFSR). Esto significa que hay un total de 64 posibles valores de partida para el LFSR, que es un conjunto lo suficientemente pequeño a fuerza bruta. El mecanismo es generar los 64 candidatos de paquetes no codificados y luego validar qué paquete es el correcto usando otros campos del paquete, como el ID de enlace (normalmente 1) o el CRC calculado sobre la carga útil (que se puede comprobar). En este proceso también se obtienen seis bits del reloj, lo que puede ser utilizado para la eliminación de la codificación de los paquetes futuros. El reloj, una vez descubierto, se puede mantener sincronizado utilizando el contador de ciclos de la CPU. Para cada valor posible del reloj, un encabezado de un paquete se produce. Ahora se tendrá que determinar cuál es el candidato correcto. Cada encabezado contiene el estado de conexión, tales como la identificación de enlace, que es constante a lo largo de la duración de una conexión y por lo tanto, será el mismo en cada paquete. Durante un número de paquetes estos valores constantes se verán, lo que permite filtrar hasta que se encuentre el candidato correcto. Otra técnica consiste en buscar las correlaciones entre los paquetes tales, como si el valor del reloj avanza como se esperaba, dada la recepción de paquetes de tiempo. El método más práctico para determinar si el paquete codificado es el correcto es el control de la carga útil CRC. Con este método,. 21.
(30) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH los resultados errados son poco probables, como el CRC, que se inicia con un byte de cero y el UAP, como es el HEC, por lo que los falsos positivos corresponden a que coincidan con los 16 bits de la inicialización del CRC (1 de cada 65.536) y ocho de esos bits tendría que coincidir con la inicialización de HEC. Hay una advertencia, ya que no todos los teléfonos Bluetooth transportan paquetes con carga útil CRC. Sin embargo para el control los datos enviados entre dispositivos utilizan los tipos de paquetes DM1 que tiene un CRC, y que estos paquetes son muy frecuentes, por lo que no es un problema la obtención de tales paquetes en la práctica. Para determinar la secuencia de salto de canal, es necesario conocer la Dirección MAC y el reloj del maestro. De estos dos parámetros sólo la dirección MAC es necesaria, ya que con su conocimiento, el reloj se puede determinar mediante el establecimiento de una conexión con el dispositivo. Esta técnica para obtener el reloj funcionará incluso si el dispositivo está en modo oculto. Obtener la dirección MAC también es útil para atacar a los dispositivos que se basan en el secreto del control de acceso y, a menudo este es su único mecanismo de protección. La dirección MAC se divide en tres partes la llamada parte de la dirección inferior (LAP), parte de la dirección superior (UAP) y parte de la dirección no significativa (NAP). Las longitudes de estas piezas son tres bytes, uno y dos, respectivamente, como muestra en la Figura 1.6.. Figura 1.6: Las tres partes de una dirección MAC Bluetooth. (Fuente: (Andrea Bittau, 2011)). Determinar la parte inferior de la dirección (LAP) es sencillo ya que está presente en los encabezados de paquetes Bluetooth. Cuando los datos en bruto se reciben de la Radio GNU, el inicio de un paquete tiene que ser encontrado. Al inicio de cada paquete Bluetooth, como se muestra en la Figura 1.7, tiene un patrón constante de 72 bits, llamado el código de acceso, y puede ser utilizado con el fin de encontrar los paquetes, que contiene el LAP de 24 bits a lo largo de su 34 bits de control y 14 bits de sincronización y detección de errores.. 22.
(31) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH Así, el LAP se puede leer simplemente de un paquete y validado por la suma de comprobación. El resto de la dirección MAC no se transmite en paquetes y requiere de inteligencia para el descubrimiento de la misma. La parte de la dirección superior (UAP) no se almacena dentro de cada paquete, y sólo se transmite como parte del procedimiento del protocolo de enlace. Sin embargo, cada paquete tiene un encabezado con un campo de error, la cual se calcula a partir de la UAP. Ahora es posible revertir esta suma de comprobación con el fin de revelar la UAP. El campo de comprobación de errores toma la forma de un código de error de cabecera (HEC), que se calcula con los 10 bits de datos del encabezado, Figura 1.7. El registro utilizado para esta prueba se inicia con los 8 bits del UAP. El cálculo del HEC se basa en el registro de desplazamiento de realimentación lineal (LFSR), que se inicia con la UAP del dispositivo maestro. Cada bit de la cabecera se introduce en el LFSR y el contenido del registro se añade al final de la cabecera. El LFSR se inicializa con la HEC, y cada bit de la cabecera se procesa a la inversa. El estado final del registro será el valor con el que el LFSR se ha inicializado, es decir, la UAP del dispositivo maestro.(Andrea Bittau, 2011). Figura 1.7: Formato de un paquete de Bluetooth, mostrando el Código de Acceso, encabezado con HEC y la carga útil con el CRC. Las partes relevantes del paquete LAP y la extracción de la UAP también se muestran. (Fuente: (Andrea Bittau, 2011)). Los otros dos bytes de la dirección MAC se refiere a la parte de la dirección no significativa (NAP). Ninguna de la información en el paquete se basa en la NAP por lo que no hay manera de determinarla a partir de los paquetes recibidos. En la práctica, de los dos bytes del NAP, el primero es casi siempre cero. Por lo tanto, el byte restante puede ser de bruta fuerza mediante el envío de más de 256 pings a todas las posibles combinaciones de direcciones MAC restante. Sin embargo, es posible hacer conjeturas con respecto a este byte en lugar de ciega fuerza bruta. Los tres primeros bytes de la dirección MAC (NAP + UAP) corresponden al proveedor del dispositivo. Los rangos de direcciones MAC son. 23.
(32) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH asignados por el IEEE a los vendedores con el fin de dividir el espacio de nombres para que las colisiones de direcciones sean evitadas. Una lista completa de los rangos de direcciones está disponible y conocida como el Organizationally Unique Identifier (OUI)(Colectivo de Autores, 2007). El valor de la UAP se puede utilizar para filtrar los posibles candidatos de la lista de la OUI. Más candidatos se pueden descartar al adivinar el tipo de dispositivo espiado. Por ejemplo, cuando escuchas los teléfonos móviles, las direcciones MAC que pertenecen a Nokia tienen más probabilidad de ser correcta que las asignadas a Sun Microsystems. De hecho, hay relativamente pocos vendedores Bluetooth, y en la práctica un conjunto muy limitado de vendedores generalizados. Usando esta técnica suele producir menos treinta candidatos, que puede ser descubierto por fuerza bruta rápidamente. En lugar de utilizar la lista de OUI, un conjunto de muestras más pequeñas pueden ser generadas mediante el uso de una base de datos de prefijos de direcciones MAC común en dispositivo Bluetooth. El algoritmo que sigue es un resumen de cómo determinar la dirección MAC de un paquete espiado.(Andrea Bittau, 2011) 1.. Determinar la LAP desde el código de acceso.. 2.. Utilizar técnicas de inversión HEC para obtener la UAP.. 3.. Utilizar la lista de la OUI para encontrar vendedores que terminan con la UAP y ordenarlos (por ejemplo, Nokia y la primera RSE).. 4.. Fuerza bruta al candidato mediante un conjunto de envío de un ping adivinando la dirección MAC.. Teniendo conocimiento de la dirección MAC del Master y su reloj se puede conocer el patrón de saltos ya que los valores de los códigos seudo-aleatorios dependen de las direcciones MAC y la fase del código del reloj. Usando un dispositivo Bluetooth Dongle con capacidad de modificar el Firmware (Memoria reprogramable) para ser usado en el modo promiscuo: Está técnica está pensada en dispositivos convencional de mayor disponibilidad para el público. Logrando cambiar el firmware del dispositivo se puede poner en modo promiscuo con el objetivo de capturar tramas vecinas. Estando conectado con el dispositivo master de la conexión y actualizado el firmware la interfaz deja de descartar paquetes para mostrarlo.(Tablado, 2008).. 24.
(33) CAPÍTULO 1. FUNDAMENTOS DE BLUETOOTH. Haciendo un sniffer en el nivel HCI: Usando el sniffer que ofrece el sistema operativo Linux que se basa en una captura de paquetes en el nivel HCI se pueden obtener las tramas para analizar el proceso de conexión y negociación del canal. El inconveniente de este tipo de sniffer es que solo se pueden obtener tramas que vienen dirigidas hacia el dispositivo con el que se está haciendo el sniffer, pero desde el punto de vista de este trabajo no es un obstáculo ya que el objetivo es analizar las tramas Bluetooth y todos los procesos de una conexión. Se escogió esta técnica ya que el dispositivo con que se cuenta posee una memoria ROM y no se puede cambiar el firmware para ponerlo en modo promiscuo.(Karger, 2011).. 25.
(34) CAPÍTULO 2. APLICACIÓN DE LOS SNIFFER, FUNCIONAMIENTOY ANÁLISIS DE TRAMAS. CAPÍTULO 2. APLICACIONES DE LOS SNIFFER, FUNCIONAMIENTO Y ANÁLISIS DE TRAMAS. En este capítulo se explicará qué funcionalidad tienen los sniffer y algunos ejemplos de sniffer que existen con su principio de funcionamiento. Posteriormente se analizarán qué objetivos persiguen las posibles tramas de Bluetooth a capturar. 2.1. ¿Qué es un sniffer?. Un sniffer es un software que configura las tarjetas en “modo promiscuo” y permite capturar el tráfico que se genera en una red. Este tráfico lo captura y lo muestra por tipología del mismo. Algunos incluyen, además, un software que analiza y muestra con estadísticas y gráficas el comportamiento del tráfico capturado. En cualquier caso, existen múltiples herramientas con las que analizar estas capturas. Con un estudio detallado de la red se puede ahorrar en costes al aprovechar más las tecnologías en uso y a la hora de invertir permite focalizar la inversión. Estos estudios son esenciales, también, para localizar brechas de seguridad y las peores maneras de uso de los usuarios. No hace falta, por tanto, tener grandes conocimientos de seguridad, sí un software sniffer – existen gratuitos en internet – y dedicarle tiempo al estudio posterior a la toma de datos con un manual de puertos al lado. Desde el punto de vista educativo permite estudiar cómo es el proceso de conexión y la información que se transmite en las cabeceras. Más allá de que el programa en cuestión permite capturar automáticamente contraseñas enviadas en texto plano y nombres de usuario de la Red, también puede ser utilizado, en muchas ocasiones, para atacar sistemas a posteriori. Además, también realiza una medición. 26.
(35) CAPÍTULO 2. APLICACIÓN DE LOS SNIFFER, FUNCIONAMIENTOY ANÁLISIS DE TRAMAS del tráfico, mediante el cual es posible descubrir cuellos de botella en algún lugar de la red o permiten analizar la información real que se transmite por la red. Cabe señalar que los sniffers sólo tienen efecto en redes que comparten el medio de transmisión, tales como: UTP, FTP o STP, o en redes Wi-Fi, el uso de un switch, en lugar de un hub, incrementa la seguridad de la red ya que limita el uso de sniffers al dirigirse las tramas únicamente a sus correspondientes destinatarios.(Alberto Macho González, 2007) 2.1.1. Diferentes tipios de Sniffers.. TCPDUMP: Tcpdump muestra las cabeceras de los paquetes que captura de un interfaz de red dada y permite monitorizar tráfico de red en tiempo real. Los filtros que se pueden crear para mostrar tan sólo la información que interesa, hacen de tcpdump una herramienta potente para el análisis de tráfico en redes de comunicaciones. Tcpdump permite examinar todas las conversaciones, incluyendo mensajes de broadcast SMB (Server Message Block). Mientras que sus capacidades en detección de errores están principalmente a nivel de capa de red OSI, todavía se puede usar su salida para obtener una idea general de que están intentando hacer el servidor y el cliente. En Windows, en lugar del tcpdump se usa el Windump. DARKSTAT: Darkstat es una herramienta para monitorear una red, que analiza el tráfico de la misma y genera un informe estadístico en formato HTML, basándose en los datos obtenidos. Entre las observaciones que realiza el programa permite: realizar la estadística de direcciones que se generan en la comunicación entre hosts, el tráfico que se produce, y los diferentes números de puerto usados por los diversos protocolos. Adicionalmente, el programa permite obtener un breve resumen y gráficos por períodos de tiempo de los paquetes analizados desde que se empieza a ejecutar el programa. KISMET: Kismet. es. un. sniffer. específico. para. Linux,. para. redes. inalámbricas.. Específicamente, es un detector de la red 802.11 capa 2. Funciona correctamente con los dos principales tipos de tarjetas inalámbricas, es decir, trabajará con. 27.
(36) CAPÍTULO 2. APLICACIÓN DE LOS SNIFFER, FUNCIONAMIENTOY ANÁLISIS DE TRAMAS cualquier tarjeta sin hilos que apoye modo de supervisión básico y puede “escuchar” 802.11b, 802.11a y el tráfico 802.11g. Kismet identifica redes de modo pasivo, recogiendo paquetes y detecta redes nombradas estándares y redes ocultas. ETHEREAL O WIRESHARK: Ethereal que ahora se llama Wireshark, es un potente analizador libre de protocolos de redes, funciona bajo Unix, Mac OS X y Windows. Permite capturar los datos directamente de una red u obtener la información a partir de una captura en disco (puede leer más de 20 tipos de formato distintos). Destaca también por su impresionante soporte de más de 300 protocolos, gracias sin duda a la licencia GPL y sus más de 200 colaboradores de todo el mundo. La potencia y posibilidades del Ethereal son excelentes. Este sniffer es el que se usa en este trabajo para visualizar la captura obtenida. 2.2. Análisis de Tramas.. Período de Comandos Inquiry Mode: Tabla 2.1: Comandos y parámetros del período inquiry mode. Comandos. OCF. Parámetros de Comandos. Parámetro de retorno. HCI_Periodic_inquiry. 0x0003. Max_Peridic_Length. Status. _Mode. Min_Periodic_length LAP Inquiry_length Num_Responses. El comando Periodic_Inquiry_Mode configura el dispositivo Bluetooth para entrar en el modo de encuesta periódica que realiza una consulta automática. Max_Period_Length y Min_Period_Length define el intervalo de tiempo entre dos investigaciones consecutivas,. 28.
(37) CAPÍTULO 2. APLICACIÓN DE LOS SNIFFER, FUNCIONAMIENTOY ANÁLISIS DE TRAMAS desde el comienzo de una investigación hasta el inicio de la investigación siguiente. El controlador utilizará este rango para determinar un nuevo tiempo aleatorio entre dos consultas consecutivas por cada una. El parámetro de entrada contiene la LAP, desde el que se consulta el código de acceso cuando se deriva del procedimiento de investigación. El parámetro Inquiry_Length especifica la duración total del Inquiry_Mode y, cuando el tiempo expira, la investigación se detendrá. El parámetro Num_Responses especifica el número de respuestas que pueden ser recibidas antes de que la investigación se detenga. Este comando se completa cuando el proceso de investigación ha sido iniciado por el dispositivo Bluetooth, y el evento Command Complete se envía desde el controlador del host. Cuando cada uno de los períodos del proceso de indagación se ha completado, el controlador enviará el evento Inquiry Complete al host que indica que el último proceso de investigación periódica ha terminado. Cuando un dispositivo Bluetooth responde al mensaje de consulta de evento tendrá que notificar al host del descubrimiento. Nota: Max_Period_Length> Min_Period_Length> Inquiry_Length. Evento Inquiry Result With RSSI: Tabla 2.2: Evento Inquiry Result y su código asociado. Evento. Código de Evento. Parámetros de Eventos. Inquiry Result with RSSI. 0x22. Num_Responses BDD_ADDR Page_Scan_Repetition_Mode Reserved Class_of_Device Clock_Offset RSSI. El resultado de Investigación con el evento RSSI indica que un dispositivo Bluetooth o varios dispositivos Bluetooth han respondido hasta el momento durante el proceso de. 29.
(38) CAPÍTULO 2. APLICACIÓN DE LOS SNIFFER, FUNCIONAMIENTOY ANÁLISIS DE TRAMAS investigación en curso. Este evento será enviado desde el controlador del host en el menor tiempo, con una respuesta de investigación desde un dispositivo remoto, se recibe si el dispositivo remoto sólo es compatible con el esquema de paginación. Este controlador pone en cola estas respuestas de consulta y envía. información de los múltiples dispositivos. Bluetooth en un solo evento Inquiry Responce. El evento se puede utilizar para devolver uno o más respuestas de la encuesta en un solo evento. El parámetro RSSI se mide durante el paquete FHS (sincronización de salto de frecuencia) devuelto por cada esclavo. Este evento sólo se genera si el parámetro modo de Investigación del comando Write_Inquiry_Mode se establece en 0x01 (formato de investigación de resultados con RSSI). Comando Remote Name Request: Tabla 2.3: Comando Remote Name Request y sus parámetros. Comando. OCF. Parámetros de Comandos. HCI_Remote_Name_. 0x0019. BD_ADDR. Request. Parámetro de retorno. Page_Scan_Repetition_Mode Reserved Clock_Offset. El comando Remote_Name_Request se utiliza para obtener el nombre de usuario confiable de otro dispositivo Bluetooth. El nombre del usuario confiable se utiliza para que se pueda distinguir un dispositivo Bluetooth de otro. El parámetro de comando BD_ADDR se utiliza para identificar el dispositivo del cual se va a obtener el nombre. El parámetro Page_Scan_Repetition_Mode especifica el modo page de repetición soportado por el dispositivo remoto con la BD_ADDR. Esta es la información que fue adquirida durante el proceso de investigación. El parámetro Clock_Offset es la diferencia entre su propio reloj y el reloj del dispositivo remoto con BD_ADDR. Solamente 2 bits, de 16 se usan para la diferencia, y se le asigna a este parámetro como bits del 0 al 14 respectivamente. Un. 30.
(39) CAPÍTULO 2. APLICACIÓN DE LOS SNIFFER, FUNCIONAMIENTOY ANÁLISIS DE TRAMAS Clock_Offset_Valid_Flag, ubicado en el bit 15 del parámetro del comando Clock_Offset, se utiliza para indicar si la diferencia horaria es válido o no. Nota: si no existe ninguna conexión entre el dispositivo local y el dispositivo correspondiente a la BD_ADDR, una conexión de enlace de capa temporal se establecerá para obtener el nombre del dispositivo remoto. Evento (s) generado: Cuando el controlador recibe el comando Remote_Name_Request, envía el estado de los comandos del host. Cuando el Administrador del Enlace ha cumplido con los mensajes LMP para obtener el nombre remoto, el controlador del dispositivo Bluetooth local enviará un evento Remote_Name_Request_Complete para el host. Nota: en ningún caso el evento Command_Complete será enviado por el Controlador para indicar. que. este. comando. se. ha. completado.. En. cambio,. sólo. el. evento. Remote_Name_Request_Complete indicará que este comando se ha completado. Evento Command Status: Tabla 2.4: Evento Command Status y sus parámetros. Evento. Código de Evento. Parámetros de Eventos. Cammand Status. 0x0F. Status Num_HCI_Command_Packets Command_Opcode. Command Status se utiliza para indicar que el comando descrito por el parámetro Command_Opcode ha sido recibido, y que el controlador está realizando actualmente la tarea de este comando. Este evento es necesario para proporcionar mecanismos de operación asincrónica, lo que hace posible evitar que el host espere un comando para terminar. Si el comando no puede comenzar a ejecutarse (un error de parámetro puede haber ocurrido, o el comando no puede ser permitido), el parámetro de evento de estado contendrá el código de error correspondiente, y no hay event_complete ya que el comando. 31.
(40) CAPÍTULO 2. APLICACIÓN DE LOS SNIFFER, FUNCIONAMIENTOY ANÁLISIS DE TRAMAS no se ha iniciado. El parámetro de evento Num_HCI_Command_Packets permite que el controlador indique el número de paquetes de comandos HCI que el host pueda enviar al controlador. Si el controlador requiere que el host detenga el envío de comandos, el parámetro de evento Num_HCI_Command_Packets se pone a cero. Para indicar al host que el controlador está listo para recibir los paquetes de comandos HCI, el controlador genera un evento de estado de los comandos con el 0x00 y el Estado Command_Opcode 0x0000, el parámetro de evento Num_HCI_Command_Packets se establece en 1 o más. Command_Opcode, 0x0000 es un NOP (no operación) y puede utilizarse para cambiar el número de paquetes pendientes de comandos HCI, que el host puede enviar antes de esperar. Evento Remote Name Request Complete: Tabla 2.5: Evento Remote Name Request Complete y sus parámetros. Evento. Código de Evento. Remote Name Request Complete 0x007. Parámetros de Eventos Status BDD_ADDR Remote_Name. El evento Remote Name Req Completed se utiliza para indicar que una solicitud de nombre a distancia ha sido completada. El parámetro de evento remote_name es una cadena UTF-8 (8-bit Unicode Transformation Format) codificado con un máximo de 248 octetos de longitud. El parámetro de evento remote_name será terminada en nulo (0x00) si la cadena UTF-8 codificado es inferior a 248 octetos. El parámetro de evento BD_ADDR se utiliza para identificar el dispositivo con su nombre de usuario.. 32.
(41) CAPÍTULO 2. APLICACIÓN DE LOS SNIFFER, FUNCIONAMIENTOY ANÁLISIS DE TRAMAS Comando Create Connection: Tabla 2.6: Comando Create Connection y sus parámetros. Camando. OCF. Parámetros de Comandos. HCI_Create_. 0x0005. BD_ADDR. Connection. Parámetro de Retorno. Packet_Type Page_Scan_Repetition_Mode Reserved Clock_Offset Allow_Role_Switch. Este comando hará que el Administrador del Enlace cree una conexión con el dispositivo Bluetooth con el BD_ADDR especificado por los parámetros de comando. Este comando hace que el dispositivo Bluetooth local inicie el proceso de página para crear una conexión de nivel de enlace. El Administrador del Enlace determinará cómo la nueva conexión anterior se ha establecido. Esta conexión ACL está determinada por el estado actual del dispositivo, su picored, y el estado del dispositivo que se conecta. El parámetro de comando Packet_Type especifica qué tipos de paquetes del Administrador del Enlace deberán utilizar para la conexión de ACL. Al enviar paquetes de datos HCI con conexiones ACL el Administrador del Enlace sólo utilizará el tipo de paquete (s) especificado por el parámetro del comando Packet_Type o el siempre permitido paquete tipo DM1. Múltiples tipos de paquetes pueden ser especificados por el parámetro Packet_Type mediante la detección del bit conocido o el funcionamiento de los diferentes tipos de paquetes. El Administrador del Enlace puede elegir qué tipo de paquete se utilizará en la lista de tipos de paquetes aceptables. El parámetro Page_Scan_Repetition_Mode especifica el recorrido del modo page de repetición con el apoyo del dispositivo remoto con la BD_ADDR especificada. El parámetro Clock_Offset es la diferencia entre su propio reloj y el reloj del dispositivo remoto con la BD_ADDR. Solamente 2 bits de 16 se usan para la diferencia, y se le asigna a este parámetro como bits de 0 a 14 respectivamente. Un Clock_Offset_Valid_Flag, que se. 33.
(42) CAPÍTULO 2. APLICACIÓN DE LOS SNIFFER, FUNCIONAMIENTOY ANÁLISIS DE TRAMAS encuentra en el bit 15 del parámetro Clock_Offset, se utiliza para indicar si la diferencia horaria es válido o no. El administrador del enlace para esta conexión es devuelto en el evento Connection Complete. El parámetro Allow_Role_Switch especifica si el dispositivo local acepta o rechaza la solicitud de un interruptor de función de maestro-esclavo cuando las peticiones de sus dispositivos remotos le piden la configuración de la conexión (en el parámetro Función del comando Accept_Connection_Request) (antes de que el controlador local devuelva un evento de conexión completa). Evento (s) generado: Cuando el controlador recibe el comando crear una conexión, el controlador envía el caso de estado de los comandos del host. Además, cuando el LM (Master del enlace) determina la conexión establecida, el Controlador, de los dispositivos Bluetooth que forman la conexión, envía un evento de Connection Complete a cada host. El evento de conexión completa contiene el identificador de conexión si esta operación es exitosa. Evento Connection Complete: Tabla 2.7: Evento Connection Complete y sus parámetros. Evento. Código de Evento. Parámetro de Evento. Connection Complete. 0x03. Status Connection_Handle BD_ADDR Link_Type Encryption_Mode. El evento de conexión completa indica a ambos hosts que forman la conexión que una nueva conexión ha sido establecida. Este suceso también indica al host, que emitió el mensaje crear una conexión, solicitud Accept_Connection o comando Reject_Connection_ _Request y luego recibió un evento de estado de los comandos, si el comando ha fallado o se ha realizado correctamente.. 34.
(43) CAPÍTULO 2. APLICACIÓN DE LOS SNIFFER, FUNCIONAMIENTOY ANÁLISIS DE TRAMAS Comando Read Remote Supported Feactures: Tabla 2.8: Comando Read Remote Supported Features y sus parámetros. Comando. OCF. Parámetro de Comando. HCI_Read_Remote_. 0x001B. Connection_Handle. Parámetro de Retorno. Supported_Features. Este comando solicita una lista de las características soportadas por el dispositivo remoto identificado por el parámetro Connection_Handle. El Connection_Handle debe ser un Connection_Handle para una conexión ACL. El evento Read Remote Supported Features devolverá una lista de las características de LMP. Evento (s) generado: Cuando el controlador recibe el comando Read_Remote_Supported_Features, el controlador envía el estado de los comandos del host. Cuando el Administrador de Enlace ha cumplido con los mensajes LMP para determinar las características remotas, el controlador del dispositivo Bluetooth local enviará una lectura remota de eventos completa de características compatibles con el host. La lectura remota de eventos compatibles completa de características contiene el estado de este comando, y los parámetros que describen las características compatibles del dispositivo remoto. Idea inconclusa. Nota: en ningún caso el evento Command_Complete será enviado por el Controlador para indicar que este comando se ha completado. En su lugar el evento Read_Remote_ _Supported_Features indicará que este comando se ha completado. Evento Max Slots Change: Tabla 2.9: Evento Max Slots Change y sus parámetros. Evento. Código de Evento. Parámetros de Eventos. Max Slots Change. 0x1B. Connection_Handle LMP_Max_Slots. 35.
(44) CAPÍTULO 2. APLICACIÓN DE LOS SNIFFER, FUNCIONAMIENTOY ANÁLISIS DE TRAMAS. Este evento se utiliza para notificar al host acerca del parámetro LMP_Max_Slots cuando cambia el valor de estos parámetros. Se envía cada vez que la longitud máxima permitida, en número de Slots por paquetes de banda base de transmisión del dispositivo local, sufre cambios. El Connection_Handle será un Connection_Handle para una conexión ACL. Comando Read Remote Version Information: Tabla 2.10: Comando Read Remote Version Information y sus parámetros. Comando. OCF. Parámetro de comando. HCI_Read_Remote. 0x001D Connection_Handle. Retorno de Parámetro. _Information. Este comando obtiene los valores de información de la versión del dispositivo Bluetooth remoto identificado por el parámetro Connection_Handle. El Connection_Handle debe ser un Connection_Handle para una conexión ACL. Evento (s) generado: Cuando el controlador recibe el comando Read_Remote_Version_Information, el controlador envía el caso de estado de los comandos del host. Cuando el Administrador del Enlace ha cumplido con los mensajes LMP para determinar la información de la versión a distancia,. el. controlador. del. Read_Remote_Version_Information. dispositivo del. host.. Bluetooth El. local. evento. enviará. el. evento. Read_Remote_Version_. _Information contiene el estado de este comando, y los parámetros que describen la versión y la subversión del LMP utilizado por el dispositivo remoto. Nota: en ningún caso el evento Command_Complete será enviado por el controlador para indicar que este comando se ha completado. En cambio el evento Read_Remote_ _Version_Information, indicará que este comando se ha completado.. 36.
Figure
Outline
Documento similar
En su natal Caracas, donde se formó Bello como latinista, no pudo tener la oportunidad de aprender griego. Cuando nació, ya hacía 14 años que los jesuitas habían sido
"No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería
[r]
Primeros ecos de la Revolución griega en España: Alberto Lista y el filohelenismo liberal conservador español 369 Dimitris Miguel Morfakidis Motos.. Palabras de clausura
o esperar la resolución expresa" (artículo 94 de la Ley de procedimiento administrativo). Luego si opta por esperar la resolución expresa, todo queda supeditado a que se
A diferencia del comando cadena.inicia_con, este comando nos permite buscar en una cadena de texto si esta termina con un carácter especificado y devuelve un valor buelano. Este
Las características del trabajo con grupos que se debería llevar a cabo en los Servicios Sociales de Atención Primaria (SSAP), en términos de variabilidad o estabilidad