
Occhiali per rilevare smart-glasses che hanno fotocamere. Ray-BANNED.
Occhiali per rilevare smart-glasses con fotocamere
Sto sperimentando 2 approcci principali:
Finora, il fingerprinting di dispositivi specifici basato sul bluetooth (BLE) sembra l'approccio più semplice e affidabile. L'immagine qui sotto è la prima versione, che riproduce il jingle 'segreto trovato' di The Legend of Zelda quando rileva un annuncio BLE dai Meta Raybans.

Sto essenzialmente trattando questo README come un diario di bordo, quindi conterrà i miei approcci/idee attuali.
Inviando IR sulle lenti delle fotocamere, possiamo sfruttare il fatto che il sensore CMOS di una fotocamera riflette la luce direttamente verso la sorgente (chiamato 'retro-riflettività' / 'effetto occhio di gatto') per identificare le fotocamere.

Non è esattamente un'idea nuova. Alcuni ricercatori nel 2005 usarono questa proprietà per creare 'ambienti resistenti alla cattura' quando gli smartphone con fotocamera stavano guadagnando popolarità.
C'è anche una ricerca recente (2024) che ha scoperto come classificare le singole fotocamere in base alle loro retro-riflessioni.
Ora abbiamo tra le mani una situazione simile a quella dei ricercatori del 2005, in cui gli occhiali intelligenti con fotocamere nascoste sembrano diventare sempre più popolari. Quindi voglio creare un paio di occhiali per identificarli. Purtroppo, da quello che posso dire, la maggior parte della ricerca esistente in questo ambito registra i dati con una fotocamera e poi usa ML, un sacco di angoli controllati, ecc. per distinguere tra superfici riflettenti normali e fotocamere.
Mi sentirei piuttosto sciocco se la mia soluzione usasse una propria fotocamera. Quindi eviterò di farlo. Invece penso che probabilmente dovrò fare affidamento sulla costanza delle mie 'sweep' e sulla creazione di un buon classificatore basato sui dati del segnale. Per esempio, qui puoi vedere che la fotocamera posteriore del mio smartphone sembra produrre picchi rapidi e ampi, mentre lo schermo lucido crea un'onda più prolungata.


Dopo aver testato alcuni Meta Raybans, ho scoperto che questa configurazione non sarà sufficiente. Ecco un test di alcune sweep dell'area della fotocamera + la stessa area quando la lente è coperta. Puoi vedere che la forma d'onda è simile a quella vista nel test precedente (picco breve per la fotocamera, più ampio altrimenti), ma è estremamente incoerente e la forza del segnale è molto debole. Questo è stato fatto a circa 4 pollici di distanza dai LED. Non ho notato molte differenze passando da LED da 940nm a 850nm.

Quindi, almeno con l'hardware attuale che è facile per me reperire, probabilmente non è abbastanza per differenziare con precisione.
Un'altra idea che ho avuto è creare un 'pattern' di sweep designato. L'utente (che indossa gli occhiali rilevatori) eseguirebbe uno schema di scansione specifico del bersaglio. Usando le forme d'onda catturate da questi dati, forse possiamo fare il fingerprinting dei raybans in modo più accurato. Ad esempio, spazzando attraverso gli occhiali del bersaglio con un approccio 'sinistra, destra, su, giù'. Ho testato questo confrontando i risultati dei Meta raybans con alcuni aviator che avevo in giro. Penso che l'idea alla base di questo approccio sia solida (in realtà è leggera), ma potrebbe richiedere più lavoro.

Per il prototipo, sto usando:

TODO IR:
sperimentare con pattern di sweep
concentrarsi sulle informazioni spettrali, provare a combinare dati di diverse lunghezze d'onda
collimazione?
Trevor (autore dell'articolo sulla classificazione delle fotocamere) ha menzionato a novembre che se gli occhiali avessero il LiDAR potrei semplicemente cercare quegli impulsi. I ray-bans non sembrano averlo, ma altri occhiali intelligenti potrebbero. Questo blog pubblicato a dicembre ha una ricerca interessante sul rilevamento delle fotocamere iPhone con questo approccio: https://www.atredis.com/blog/2025/11/20/designing-a-passive-lidar-detection-sensor
Questo è stato più complicato di quanto pensassi inizialmente! Il mio approccio attuale è fare il fingerprinting dei Meta Raybans tramite gli annunci Bluetooth low-energy (BLE). Ma sono riuscito a rilevare il traffico BLE solo durante 1) l'associazione (pairing) 2) l'accensione. A volte vedo anche l'annuncio quando vengono tolti dalla custodia (già accesi), ma non in modo costante.

L'obiettivo è rilevarli durante l'uso quando comunicano con il telefono associato, ma per vedere questo tipo di traffico BLE diretto dovrei prima vedere il pacchetto CONNECT_REQ che contiene informazioni su quali canali di comunicazione saltare in sincronia (intervallo di hop, incremento di hop). Questo può essere fatto con un nRF52840 + il firmware ble-sniffer, ma non nega il fatto che devi comunque vedere quella connessione iniziale per iniziare a sniffare.
Un po' più di contesto sul BLE:
Quando viene acceso o messo in modalità pairing (o a volte quando viene tolto dalla custodia), posso rilevare il dispositivo tramite i dati del produttore pubblicizzati e gli UUID dei servizi. Queste sono parti dei dati di advertising.
0x01AB è un ID assegnato da SIG specifico per Meta (assegnato dall'ente di standardizzazione Bluetooth), e 0xFD5F nello UUID del servizio è assegnato anch'esso a Meta. Nel codice puoi vedere gli altri numeri che sto usando per il fingerprinting.
Per quanto riguarda il traffico Bluetooth classico (BTC), sfortunatamente l'hardware sembra un po' più impegnativo (leggi: costoso). Quindi se voglio intraprendere questa strada, probabilmente mi servirà una soluzione più intelligente.
Cattura quando gli occhiali sono accesi:
[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']
TODO Reti:
NOTA: i ray-bans che stavo usando per i test non sono attualmente disponibili, quindi sono un po' bloccato :(
Ringrazio Trevor Seets e Junming Chen per i loro consigli rispettivamente su ottica e BLE. E anche Sohail per avermi prestato i meta raybans per i test.
Quest'opera è distribuita con una licenza Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.