
Brille, um Smart-Glasses mit Kameras zu erkennen. Ray-BANNED
Brille zur Erkennung von Smart Glasses mit Kameras
Ich experimentiere mit 2 Hauptansätzen:
Bisher sieht das Fingerprinting bestimmter Geräte auf Basis von Bluetooth (BLE) wie der einfachste und zuverlässigste Ansatz aus. Das Bild unten zeigt die erste Version, die den 'Secret Found'-Jingle aus The Legend of Zelda abspielt, wenn sie eine BLE-Werbung von Meta Ray-Bans erkennt.

Ich behandle dieses README im Wesentlichen wie ein Logbuch, daher enthält es meine aktuellen Ansätze/Ideen.
Indem wir IR auf Kameralinsen senden, können wir uns die Tatsache zunutze machen, dass der CMOS-Sensor einer Kamera Licht direkt zur Quelle zurückreflektiert (sog. 'Retroreflexion' / 'Katzenaugen-Effekt'), um Kameras zu identifizieren.

Das ist nicht gerade eine neue Idee. Einige Forscher nutzten diese Eigenschaft bereits 2005, um 'aufnahmeresistente Umgebungen' zu schaffen, als Smartphones mit Kameras an Popularität gewannen.
Es gibt sogar neuere Forschung (2024), die herausgefunden hat, wie einzelne Kameras anhand ihrer Retroreflexionen klassifiziert werden können.
Wir haben jetzt eine ähnliche Situation wie die Forscher von 2005 vor uns, in der Smart Glasses mit versteckten Kameras immer beliebter zu werden scheinen. Deshalb möchte ich eine Brille entwickeln, die diese erkennt. Leider zeichnet nach meinem Kenntnisstand der Großteil der vorhandenen Forschung in diesem Bereich Daten mit einer Kamera auf und nutzt dann ML, eine Vielzahl kontrollierter Winkel usw., um zwischen normalen reflektierenden Oberflächen und Kameras zu unterscheiden.
Ich würde mich ziemlich albern fühlen, wenn meine Lösung eine eigene Kamera verwenden würde. Das werde ich also vermeiden. Stattdessen denke ich, dass ich mich wahrscheinlich auf konsistente 'Sweeps' verlassen und einen guten Klassifikator auf Basis der Signaldaten erstellen muss. Zum Beispiel kann man hier sehen, dass die rückseitige Kamera meines Smartphones schnelle und große Spitzen zu erzeugen scheint, während das glänzende Display eine länger anhaltende Welle erzeugt.


Nachdem ich einige Meta Ray-Bans testen konnte, stellte ich fest, dass dieses Setup nicht ausreichen wird. Hier ist ein Test einiger Sweeps über den Kamerabereich plus desselben Bereichs, wenn die Linse abgedeckt ist. Man sieht, dass die Wellenform der aus dem früheren Test ähnelt (kurze Spitze für die Kamera, sonst breiter), aber sie ist extrem inkonsistent und die Signalstärke ist sehr schwach. Das war aus etwa 4 Zoll Entfernung von den LEDs. Ich bemerkte kaum einen Unterschied beim Wechsel zwischen 940nm- und 850nm-LEDs.

Mit der aktuellen Hardware, die für mich leicht zugänglich ist, reicht das wahrscheinlich nicht aus, um genau zu unterscheiden.
Eine weitere Idee, die ich hatte, ist ein festgelegtes Sweep-'Muster'. Der Nutzer (der die Detektorbrille trägt) würde ein bestimmtes Scanmuster des Ziels ausführen. Mithilfe der aus diesen Daten erfassten Wellenformen können wir die Ray-Bans vielleicht genauer fingerprinten. Zum Beispiel, indem man in einem 'links, rechts, hoch, runter'-Muster über die Gläser des Ziels wischt. Ich habe das getestet, indem ich die Ergebnisse der Meta Ray-Bans mit einigen Aviators verglich, die ich herumliegen hatte. Ich denke, die Idee hinter diesem Ansatz ist solide (eigentlich ist es Licht), aber es braucht vielleicht noch mehr Feinschliff.

Für das Prototyping verwende ich:

IR-TODOs:
mit Sweep-Mustern experimentieren
Spektralinformationen fokussieren, versuchen, Daten aus einigen verschiedenen Wellenlängen zu kombinieren
Kollimation?
Trevor (Autor des Papiers zur Kamera-Klassifizierung) erwähnte im November, dass man, falls die Brille über LiDAR verfügt, einfach nach diesen Pulsen suchen könnte. Die Ray-Bans scheinen das nicht zu haben, aber andere Smart Glasses vielleicht. Dieser im Dezember veröffentlichte Blog enthält einige coole Forschungsergebnisse zur Erkennung von iPhone-Kameras mit diesem Ansatz: https://www.atredis.com/blog/2025/11/20/designing-a-passive-lidar-detection-sensor
Das war kniffliger als ich anfangs dachte! Mein aktueller Ansatz besteht darin, die Meta Ray-Bans über Bluetooth-Low-Energy-Werbung (BLE) zu fingerprinten. Aber ich konnte BLE-Traffic bisher nur während 1) des Pairings 2) des Einschaltens erkennen. Manchmal sehe ich die Werbung auch, wenn sie aus der Hülle genommen werden (während sie bereits eingeschaltet sind), aber nicht konsistent.

Das Ziel ist, sie während der Nutzung zu erkennen, wenn sie mit dem gekoppelten Telefon kommunizieren. Um diese Art von gerichtetem BLE-Traffic zu sehen, müsste ich allerdings zuerst das CONNECT_REQ-Paket sehen, das Informationen darüber enthält, welche der Kommunikationskanäle synchron durchsprungen werden (Hop-Intervall, Hop-Inkrement). Das ist mit einem nRF52840 + der ble-sniffer-Firmware möglich, ändert aber nichts an der Tatsache, dass man immer noch diese anfängliche Verbindung sehen muss, um mit dem Sniffing zu beginnen.
Ein wenig mehr Hintergrund zu BLE:
Wenn das Gerät eingeschaltet oder in den Pairing-Modus versetzt wird (oder manchmal, wenn es aus der Hülle genommen wird), kann ich es anhand der beworbenen Herstellerdaten und Service-UUIDs erkennen. Diese sind Teile der Werbedaten.
0x01AB ist eine Meta-spezifische, von der SIG zugewiesene ID (vergeben durch das Bluetooth-Standardgremium), und 0xFD5F in der Service-UUID ist ebenfalls Meta zugeordnet. Im Code siehst du die anderen Nummern, die ich für das Fingerprinting verwende.
Was den klassischen Bluetooth-Verkehr (BTC) angeht, scheint die Hardware leider etwas aufwendiger zu sein (sprich: teurer). Wenn ich diesen Weg also gehen will, brauche ich hier wahrscheinlich eine cleverere Lösung.
Mitschnitt beim Einschalten der Brille:
[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']
NETZWERK-TODOs:
HINWEIS: Die Ray-Bans, die ich zum Testen verwendet habe, sind derzeit nicht verfügbar, daher bin ich etwas blockiert :(
Danke an Trevor Seets und Junming Chen für ihre Ratschläge zu Optik bzw. BLE. Außerdem an Sohail für das Ausleihen der Meta Ray-Bans zum Testen.
Dieses Werk ist lizenziert unter einer Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.