BLE bajo microscopio 4

imagen

BLE bajo el microscopio. Parte 4


Algunas palabras sobre la lista blanca.

Dio la casualidad de que durante mucho tiempo me alejé del tema de BLE. Pero volvió :-) Hoy quiero tocar el tema de la lista blanca. ¿Para qué es esto? Si solo queremos que ciertos teléfonos funcionen con nuestro dispositivo, mientras que otros no, entonces lo que necesitamos es lista blanca.

Para comenzar a discutir este tema tendrá que retroceder un poco. Para que los dispositivos comiencen el intercambio de datos, es necesario realizar el procedimiento de conexión. Escribí sobre esto en artículos anteriores. Y aquí es muy importante no confundir el concepto de apego y emparejamiento. En caso de unirse, después de romper la conexión, nos olvidamos de con quién hablamos. En caso de apareamiento, recordamos a la pareja. Entonces, por ejemplo, conectamos nuestro teléfono con auriculares bluetooth. Tales dispositivos ahora se denominan enlazados. Ahora, al escanear el éter, la conexión al dispositivo conectado ocurrirá sin intervención humana.

¿Por qué estoy hablando de todo esto? El hecho es que la lista blanca se forma a partir de una lista de dispositivos relacionados. Esto es lo primero que debes recordar. En segundo lugar, debe comprender cómo se forma el emparejamiento de dispositivos. Hay dos formas El primero es por dirección MAC, el segundo usando teclas. ¿Por qué es todo tan complicado? El hecho es que al principio se suponía que era vinculante solo por la dirección MAC. Pero, cuando se transmiten paquetes por el aire, es visible para todos. Debido a esto, escaneando el aire y usando programas especiales, un atacante puede cambiar fácilmente la dirección MAC en su teléfono. Como resultado, incluso cuando se utiliza la lista blanca, puede acceder a su dispositivo. Para evitar que esto suceda, se utiliza otro método de emparejamiento de dispositivos: el uso de claves irk (Clave de resolución de identidad). A diferencia de la dirección MAC, la longitud de la clave es de 16 bytes y, con el intercambio de datos estándar, no son visibles en el aire. Su intercambio tiene lugar en un lugar seguro, excluyendo la escucha. Además, la especificación BLE4.2 describe otra característica. Aquí está al pie de la letra:

6.1 INTERVALO DE GENERACIÓN DE DIRECCIÓN PRIVADA

Se generará una dirección privada utilizando la generación de dirección privada resoluble (consulte la Sección 1.3.2.2). La capa de enlace establecerá un temporizador determinado por el host. Se generará una nueva dirección privada cuando expire el temporizador. Si se restablece la capa de enlace, se generará una nueva dirección privada y se iniciará el temporizador con cualquier valor dentro del rango permitido.

Nota: Si la dirección privada se genera con frecuencia, los tiempos de establecimiento de la conexión pueden verse afectados. Se recomienda configurar el temporizador en 15 minutos.

En resumen, el dispositivo BLE puede transmitir no su propia dirección pública, sino una dirección privada privada, que se recomienda cambiar cada 15 minutos. Por lo tanto, recordarlos no tiene sentido. Recuerde, solo necesita una dirección estática pública y aleatoria. En el depurador, se ve así:



Aquí vale la pena señalar que el valor del contador addr_count en la imagen de la izquierda es 0x01, y el contador irk_count en la imagen de la derecha es 0x02. El hecho es que conecté dos teléfonos al dispositivo con Android 4.4 (Bluetooth 4.0) y Android 8.1 (Bluetooth 4.1). Es decir el primero se comunica por dirección MAC y el segundo ya usa claves irk. Además, até el teléfono con Android 8.1 dos veces. Mi dispositivo no lo reconoció y los vio como dos teléfonos diferentes.

Hay un buen artículo en el sitio que descifra las abreviaturas y ofrece una visión general de la tecnología BLE. Además, quiero señalar que puede haber imprecisiones en el texto, porque No trato este tema tanto como me gustaría. Por lo tanto, los comentarios constructivos son bienvenidos.

Pecherskikh Vladimir

Source: https://habr.com/ru/post/es434746/


All Articles