
Gafas para detectar gafas inteligentes que tienen cámaras. Ray-BANNED
Gafas para detectar gafas inteligentes que tienen cámaras
Estoy experimentando con 2 enfoques principales:
Hasta ahora, la identificación de dispositivos específicos basada en bluetooth (BLE) parece ser el enfoque más fácil y fiable. La imagen de abajo es la primera versión, que reproduce el sonido de 'secreto encontrado' de The Legend of Zelda cuando detecta un anuncio BLE de las Meta Raybans.

Básicamente estoy tratando este README como un cuaderno de bitácora, por lo que contendrá mis enfoques/ideas actuales.
Al enviar IR a las lentes de las cámaras, podemos aprovechar el hecho de que el sensor CMOS de una cámara refleja la luz directamente hacia la fuente (llamado 'retroreflectividad' / 'efecto ojo de gato') para identificar cámaras.

Esto no es exactamente una idea nueva. Algunos investigadores en 2005 usaron esta propiedad para crear 'entornos resistentes a la captura' cuando los teléfonos inteligentes con cámaras estaban ganando popularidad.
Incluso hay investigaciones recientes (2024) que descubrieron cómo clasificar cámaras individuales basándose en sus retroreflexiones.
Ahora tenemos una situación similar a la de aquellos investigadores de 2005, donde las gafas inteligentes con cámaras ocultas parecen estar ganando popularidad. Así que quiero crear un par de gafas para identificarlas. Desafortunadamente, por lo que puedo decir, la mayoría de las investigaciones existentes en este ámbito registran datos con una cámara y luego usan ML, un montón de ángulos controlados, etc., para diferenciar entre superficies reflectantes normales y cámaras.
Me sentiría bastante tonto si mi solución usara su propia cámara. Así que evitaré eso. En cambio, creo que probablemente tendré que confiar en ser consistente con mis 'barridos' y crear un buen clasificador basado en datos de señal. Por ejemplo, puedes ver aquí que la cámara trasera de mi teléfono inteligente parece producir picos rápidos y grandes, mientras que la pantalla brillante crea una onda más prolongada.


Después de probar unas Meta Raybans, descubrí que esta configuración no va a ser suficiente. Aquí hay una prueba de algunos barridos del área de la cámara + la misma área cuando la lente está cubierta. Puedes ver que la forma de onda es similar a la que vi en la prueba anterior (pico corto para la cámara, más ancho en otros casos), pero es extremadamente inconsistente y la fuerza de la señal es muy débil. Esto fue desde aproximadamente 4 pulgadas de distancia de los LED. No noté mucha diferencia al intercambiar entre LED de 940nm y 850nm.

Así que al menos con el hardware actual al que tengo fácil acceso, esto probablemente no sea suficiente para diferenciar con precisión.
Otra idea que tuve es crear un 'patrón' de barrido designado. El usuario (usando las gafas detectoras) realizaría un patrón de escaneo específico del objetivo. Usando las formas de onda capturadas de estos datos, tal vez podamos identificar de manera más precisa las raybans. Por ejemplo, barriendo las gafas del objetivo en un enfoque de 'izquierda, derecha, arriba, abajo'. Probé esto comparando los resultados de las Meta raybans con unas aviadoras que tenía por aquí. Creo que la idea detrás de este enfoque es sólida (en realidad es luz), pero podría necesitar más trabajo.

Para prototipado, estoy usando:

Pendientes IR:
¡Esto ha sido más complicado de lo que pensé inicialmente! Mi enfoque actual aquí es identificar las Meta Raybans mediante anuncios Bluetooth de baja energía (BLE). Pero, solo he podido detectar tráfico BLE durante 1) emparejamiento 2) encendido. A veces también veo el anuncio cuando se sacan del estuche (ya encendidas), pero no de manera consistente.

El objetivo es detectarlas durante su uso cuando se están comunicando con el teléfono emparejado, pero para ver este tipo de tráfico BLE dirigido, primero necesitaría ver el paquete CONNECT_REQ que contiene información sobre qué canales de comunicación saltar en sincronía (intervalo de salto, incremento de salto). Esto se puede hacer con un nRF52840 + el firmware ble-sniffer, pero eso no niega el hecho de que todavía necesitas ver esa conexión inicial para comenzar a esnifar.
Un poco más de contexto sobre BLE:
Cuando se encienden o se ponen en modo de emparejamiento (o a veces cuando se sacan del estuche), puedo detectar el dispositivo a través de los datos de fabricante anunciados y los UUID de servicio. Estas son partes de los datos de anuncio.
0x01AB es un ID asignado por SIG específico de Meta (asignado por el organismo de estándares Bluetooth), y 0xFD5F en el UUID de servicio también está asignado a Meta. En el código puedes ver los otros números que estoy usando para la identificación.
Para cualquier tráfico de bluetooth clásico (BTC), desafortunadamente el hardware parece un poco más complicado (léase: caro). Así que si quiero seguir por esta ruta, probablemente necesitaré una solución más ingeniosa aquí.
captura cuando las gafas están encendidas:
[01:07:06] RSSI: -59 dBm
Address: XX:XX:XX:XX:XX:XX
Name: Unknown
META/LUXOTTICA DEVICE DETECTED!
Manufacturer: Meta (0x01AB)
Service UUID: Meta (0xFD5F) (0000fd5f-0000-1000-8000-00805f9b34fb)
Manufacturer Data:
Company ID: Meta (0x01AB)
Data: 020102102716e4
Service UUIDs: ['0000fd5f-0000-1000-8000-00805f9b34fb']
Pendientes de REDES:
NOTA: las ray-bans que estaba usando para las pruebas no están disponibles actualmente, así que estoy un poco bloqueado :(
Gracias a Trevor Seets y Junming Chen por sus consejos en óptica y BLE (respectivamente). También a Sohail por prestarme las meta raybans para probar.
Este trabajo está licenciado bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional.