
Ein Standard-BLE-Tag ist ein muenzgrosses Beacon, das man an Schluessel, Laptop, Palette oder ein Patientenarmband klipst, um es spaeter wiederzufinden. Dieselbe Bequemlichkeit ist zugleich die Gefahr: legt man es jemandem unbemerkt in die Tasche, wird daraus ein Tracking-Geraet. Nach einer Reihe von Missbrauchsfaelen veroeffentlichten Apple und Google eine gemeinsame Spezifikation (2023-2024) zur “Erkennung unerwuenschter Verfolgung”, die jedes Tag — nicht nur Erstausruester — einhalten muss, damit Smartphones es dulden. Dieser Artikel behandelt die technische Seite: wie ein Tag erkennt, dass es sich vom Besitzer getrennt hat, wie es einen Fremden statt des Besitzers warnt, und die Kryptografie, mit der ein Finder-Telefon eine Position meldet, ohne je zu erfahren, wem das Tag gehoert.
Das Bedrohungsmodell in zwei Rollen
Es gibt genau zwei relevante Parteien:
- Besitzer — das gekoppelte Telefon, das legitimerweise mit dem Tag paart und normalerweise in der Naehe bleibt.
- Nicht-Besitzer — eine Person, die das Tag unwissentlich mit sich fuehrt (das Opfer), oder ein Vorbeigehender, dessen Telefon es einfach hoeren kann (der Finder).
Ein korrekt funktionierendes Tag geht davon aus, dass der Besitzer die meiste Zeit in der Naehe ist. Der gefaehrliche Zustand ist *getrennt*: das Tag bewegt sich durch die Welt, aber das Telefon des Besitzers ist nicht dabei. Diesen Zustand zu erkennen und den Nicht-Besitzer statt des Besitzers zu warnen, ist die ganze Aufgabe des Anti-Tracking-Schutzes.
Trennungserkennung: “Ist mein Besitzer da?”
Das Tag kann den Besitzer nicht ueber das Internet fragen — es ist rein BLE und kann ausserhalb jedes Gateways sein. Also leitet es die Anwesenheit des Besitzers lokal ab:
1. Das Telefon des Besitzers sendet waehrend der Kopplung periodisch ein authentifiziertes Anwesenheitstoken — ein signiertes, rotierendes BLE-Paket, das das Tag erkennt.
2. Das Tag hoert in den Werbe-Luecken mit. Jedes Intervall empfaengt es das Token (Besitzer da) oder nicht (ein Fehlversuch).
3. Es fuehrt einen Fehlzaehler. Ueberschreitet die Zahl einen Schwellwert *und* meldet der Beschleunigungssensor Bewegung, wechselt es in den Zustand getrennt.
Das Bewegungs-Gate ist wichtig. Ein Tag, das zu Hause auf einem Regal liegt, waehrend der Besitzer verreist, darf keine Alarmsirene ausloesen — es gibt kein Opfer. Ein Tag, das stundenlang mit einem Fremden unterwegs ist, sollte es. Typische Schwellwerte: 8-24 h kumulierte Abwesenheit bei Bewegung vor der ersten Warnung.
Eine minimale Erkennungsschleife:
def tick(tag, owner_token_seen, accel_motion):
if owner_token_seen:
tag.miss_counter = 0
tag.separated = False
return
tag.miss_counter += 1
if tag.miss_counter > ABSENCE_LIMIT and accel_motion:
tag.separated = True
Zwei Wege, wie das Tag den Fremden warnt
Ist es getrennt, muss das Tag den *Nicht-Besitzer* warnen, nicht den Besitzer:
1. Lautsprecher im Geraet. Ein kleiner piezo- oder magnetischer Wandler gibt einen Ton aus. Die plattformuebergreifende Spezifikation verlangt effektiv einen Schall von etwa >= 60 dB in 0,3 m, ausgegeben innerhalb eines begrenzten Fensters (haelufig 8-24 h nach der Trennung). Deshalb hat jedes Consumer-Tag einen Wandler, den man nicht still entfernen kann.
2. Warnung auf dem Telefon des Nicht-Besitzers. Jedes Telefon-Betriebssystem kann ein *unbekanntes* Tag markieren, das mit ihm unterwegs war. Das Telefon zeigt eine Benachrichtigung, bietet “Ton abspielen”, “Zuletzt gesehen” und Hinweise zum Deaktivieren. Damit das herstelleruebergreifend funktioniert, muss das Tag ein Trennungs-Flag in seiner normalen BLE-Nutzlast senden, das jedes System parsen kann.
| Faehigkeit | Telefon des Besitzers | Telefon des Fremden (Nicht-Besitzer) |
|---|---|---|
| Sieht Tag-Position | Ja (live + Verlauf) | Nur “in deiner Naehe gesehen” |
| Kann Ton abspielen | Ja (jederzeit) | Ja (nach Trennungsfenster) |
| Erhaelt Warnung | Nein (ist Besitzer) | Ja (Unbekannt-Tracker-Warnung) |
| Kann Tag deaktivieren | Ja (Entkoppeln) | Begrenzt (physisch / OS-Ablauf) |
Offline-Suche: Krypto, das den Besitzer verbirgt
Der raffinierte Teil ist, *wie ein Telefon eines Fremden die Position des Tags an den Besitzer meldet, ohne dass eine Seite die Identitaet der anderen erfaehrt*. Das ist das “Find My” / Offline-Such-Modell:
- Das Tag haelt einen Master-Private-Key. Fuer jedes Zeitintervall *i* (oft eine Stunde) leitet es einen frischen Public Key `PK_i = Derive(master_priv, i)` ab und sendet ihn — oder einen kurzen Hash davon — im Werbe-Paket.
- Ein Finder-Telefon, das `PK_i` hoert, liest seine eigene GNSS/Wi-Fi-Position, verschluesselt `(position, zeitstempel)` mit `PK_i` und laedt den Ciphertext auf einen Relay-Server. Kein Konto, keine Identitaet.
- Der Besitzer, der `master_priv` und das aktuelle Intervall *i* kennt, berechnet den passenden Private Key neu, holt den Ciphertext und entschluesselt die Position.
Die Privatsphaereneigenschaft: der Relay-Server sieht nur undurchsichtige Ciphertexte. Er kann zwei Funde desselben Tags nicht verknuepfen (Schluessel rotieren) und den Besitzer nicht erfahren. Nur der Master-Key des Besitzers verbindet die Reports.
Technische Einschraenkungen auf einem winzigen Tag
Hier wird es fuer ein Knopfzellen-Geraet schwierig:
- Krypto-Kosten. Eine ECC-Skalarmultiplikation auf einem Cortex-M0+/M4 dauert hunderte Millisekunden bis Sekunden und zieht mA-Strom. Schluessel jede Stunde auf einer CR2032 zu rotieren und neu abzuleiten, ist unpraktisch; Tags cachen daher das aktuelle `PK_i` und berechnen es nur an der Intervallgrenze neu — haeufig wird die schwere Ableitung auf das Telefon des Besitzers ausgelagert, das einen kleinen Batch kuenftiger Schluessel vorab berechnet und ueber die gekoppelte Verbindung pusht.
- Taktdrift. Die Schluesselrotation ist zeitlich indexiert. Verliert das Tag die Stromversorgung (Batterie ziehen), wird sein Intervallindex zurueckgesetzt, und der Besitzer kann Reports nicht entschluesseln, bis das Telefon den Index erneut synchronisiert. Die Firmware muss den Index in nichtfluechtigem Speicher sichern und Drift tolerieren.
- Fehlalarm-Kontrolle. Ist das Telefon des Besitzers kurz ausser BLE-Reichweite, darf das Tag nicht ausloesen. Fehlzaehler + Bewegungs-Gate + langer Abwesenheitsgrenzwert halten Fehlalarme selten.
- Manipulationsschutz. Lautsprecher und Trennungs-Flag muessen firmwareseitig schwer abschaltbar sein; ein konformes Tag bietet keinen “Still-Modus”, der die Trennung ueberlebt.
Eine grobe Stromentschaetzung fuer ein Tag mit Anti-Tracking:
| Aktivitaet | Strom | Taktung |
|---|---|---|
| Beschleunigungssensor (Bewegung) | 5-50 uA | 1 Hz |
| Token-Hoeren des Besitzers (RX) | 3-6 mA | wenige ms / Werbe-Luecke |
| Schluessel-Cache bereitstellen (BLE) | 1-3 mA | sporadisch |
| Lautsprecher-Warnung | 20-80 mA | Bursts, selten |
| Basis-Werbung | 5-50 uA | durchgehend |
Die dominierende Dauerlast ist der Beschleunigungssensor und das periodische RX-Hoeren; alles andere ist selten. Eine CR2032 haelt dennoch Monate, weil Trennungszustand und Lautsprecher Ausnahmen sind, kein Alltag.
Was ein OEM fuer ein konformes Tag umsetzen muss
Wer ein BLE-Tag baut, das von Personen getragen wird, braucht mindestens diese Firmware-Flaeche:
1. Authentifizierte Besitzer-Anwesenheitserkennung (signiertes, rotierendes Token vom gekoppelten Telefon).
2. Trennungs-Timer + Bewegungs-Gate mit dem spezifizierten Abwesenheitsfenster.
3. Hoerbare Warnung, die dB-/Latenzanforderung erfuellt, nicht entfernbar.
4. Trennungs-Flag im BLE-Werbe-Paket, damit jedes OS eine Unbekannt-Tracker-Warnung zeigen kann.
5. Offline-Such-Schluesselrotation (bei Beitritt zu einem Such-Netz) mit Index-Persistenz ueber Reboots.
Ist das Tag stattdessen ein *industrielles Asset-Tag* unter staendiger Gateway-Aufsicht, ist derselbe Missbrauch moeglich, wenn ein Mitarbeiter es in eine Jacke steckt. Viele Flotten loesen das, indem sie den Flotten-Server als “Besitzer” behandeln: der Server bestaetigt die Anwesenheit ueber den Gateway-Link, und ein Tag, das den Kontakt zum Limit verliert, zeigt dasselbe Trennungsverhalten — nur dass die Warnung an die Security statt an ein Telefon geht.
Fazit
Anti-Tracking-Schutz ist keine Checkbox. Es ist eine Zustandsmaschine (Besitzer da -> abwesend -> getrennt), ein nicht zum Schweigen zu bringender Lautsprecher, ein herstelleruebergreifendes Flag und optionale Kryptografie, die den Besitzer anonym laesst. Baut es von Anfang an ein, denn Smartphone-Betriebssysteme behandeln nicht konforme Tags heute als feindselig und warnen Nutzer beim bloßen Anblick.
