Der Akkustand verrät über dich und dein Gerät eine ganze Menge. Sicherheitsforscher warnten bereits im letzten Jahr vor dieser Überwachungsmöglichkeit durch Tracking-Dienste. Nun belegt eine neue Studie, dass diese Technik mittlerweile in freier Wildbahn eingesetzt wird. Nur ein weiterer kleiner Zacken in der Tracking-Krone.
Das Online-Tracking hat in den letzten 20 Jahren drastisch zugenommen. Vorwiegend setzt die Werbeindustrie auf diese Techniken, um uns im Internet auf Schritt und Tritt zu verfolgen. Sie wollen so viel wie möglich über uns erfahren – unsere Vorlieben, unsere Wünsche und unsere Geheimnisse. Dabei greifen sie zu immer neuen Methoden, um uns im Web eindeutig identifizieren zu können. Egal ob Drittanbieter-Cookies, EverCookies, Canvas Fingerprinting oder Hardware Fingerprinting. Alles wird genutzt. Sogar Schnittstellen, die eigentlich niemals für das Tracking gedacht waren. Mittels der wenig bekannten Battery Status API in der HTML5-Spezifikation kann der Akkustand uns verraten – sogar seitenübergreifend.
Der Nutzen der Battery Status API
Manch einer fragt sich sicherlich, wozu das gut sein soll, dass eine Website meinen Akkustatus abfragen kann. Das möchte ich kurz anhand eines einfachen Beispiels erklären. Stellt euch vor, diese Schnittstelle kommt bei einem webbasierenden E-Mail-Client zum Einsatz. Die Battery Status API bietet vier Attribute, die mittels JavaScript abgefragt werden können.
- charging: Wird das Gerät geladen oder nicht
- level: Wie viel Akkuleistung hat das Gerät noch. Es wird ein Wert zwischen 0 und 1.0 zurückgegeben. Beispiel: 0.6 sind verbleibende 60 Prozent Akkuleistung
- chargingtime: Zeit in Sekunden bis zur vollständigen Akkuladung
- dischargingTime: Zeit in Sekunden bis der Akku leer ist und das System herunterfährt
Mithilfe der vier Events chargingchange, chargingtimechange, dischargingtimechange und levelchange können die Zustandsänderungen beobachtet und protokolliert werden. Damit lässt sich nun beispielsweise festlegen, in welchen Zeitintervallen und in welchem Zustand (Akku laden/Akku entladen) der E-Mail-Client nach neuen Nachrichten sucht. Bei vollem Akku wird sicherlich häufiger abgerufen, als bei einem niedrigen Akkustand.
Genauso interessant ist die API (Programmierschnittstelle) aber ebenso für alle anderen Websitebetreiber. Denn damit lassen sich etwa Akkufresser, wie beispielsweise Videos usw. bei einem geringen Akkustand beispielsweise auszublenden. Damit kann der Nutzer die Website weiterhin verwenden, wenn auch leicht eingeschränkt. Aber es ist ja zu seinem Vorteil.
Die Battery Status API funktioniert derzeit in Firefox, Chrome, Opera sowie auch in den mobilen Versionen und ist standardmäßig aktiviert. Microsoft arbeitet derzeit an einer Umsetzung in seinem Edge-Browser. Ob Apple diese Funktion in Safari eines Tages implementieren wird, ist unklar. Eine genaue Auflistung, in welchen Browsern die API funktioniert, findet ihr bei Caniuse.
Tracking mithilfe der Schnittstelle möglich
Doch dieser Vorteil kippt leider auch schnell ins Negative. 2015 warnten vier französische und belgische Sicherheitsforscher davor, dass diese Battery Status API ebenfalls für das Tracking verwendet werden könne. Laut ihren Untersuchungen (PDF) sei es möglich, die gesammelten Daten in einem Log zu speichern. Dabei kommt ein eindeutiges Profil heraus, dass es erlaube, ein Gerät innerhalb einer kurzen Zeitspanne genau zu identifizieren – sogar websiteübergreifend.
Stellen wir uns vor: Ein Benutzer ruft eine Nachrichtenseite auf, wo ein Tracking-Skript eines Werbeunternehmens den Akkustatus überwacht. Fast zeitgleich ruft derselbe User am selben Gerät über eine VPN-Verbindung eine Pornoseite auf, die ebenfalls das gleiche Tracking-Skript einsetzt. Das Werbeunternehmen kann nun genau identifizieren, dass es sich bei beiden Aufrufen um dasselbe Gerät und somit dieselbe Person handeln muss. Auch wenn die IPs unterschiedlich sind.
Denn das Log liefert identische Werte. Für die Ermittlung bedarf es auch nur zweier Events: der verbleibenden Zeit bis der Akku leer ist und der Akkuleistung in Prozent. Um ein Tracking zu verhindern, gaben die Forscher als mögliche Lösung an, dass eine leichte Rundung der Werte genügen würde. Die Funktionalität der API wäre damit nicht eingeschränkt.
Tracking-Skripte nutzen diese Methode bereits
Zwei Forscher der Princeton University haben versucht, das Ausmaß des aktuellen Trackings zu untersuchen. Ein Entwurf der Studie (PDF) stammt vom 11. Juli 2016 und zeigt unter anderem auch, dass die Battery Status API in zwei Tracking-Skripten bereits in freier Wildbahn eingesetzt wird. Die Warnung der vier Sicherheitsforscher hat sich also bestätigt. Zwei klingt jetzt nicht viel, aber wir gehen mal davon aus, dass diese Zahl wächst. Denn es funktioniert scheinbar sehr gut. Koppelt man diese Daten nun noch mit anderen gängigen Tracking-Praktiken, wird das Ganze nochmal effizienter. Ihr könnt ja mal testen, was die Battery Status API über euch so verrät: Battery Status API Demo
Der Demo fehlt lediglich die Log-Funktion, verrät aber den aktuellen Zustand über euren Akku. Bei Geräten mit fester Stromquelle spielt diese Tracking-Möglichkeit keine Rolle, da die Werte bei all diesen Geräten konstant bleiben.
Battery Status API abschalten bzw. verhindern
Was könnt ihr nun gegen diese Tracking-Methode tun? Lasst es mich mal so ausdrücken: Nutzer von Firefox, Edge, IE und Safari sind die strahlenden Sieger. Chrome- und Opera-Freunde schauen etwas traurig und sind im Grunde die Verlierer. Es bleibt zu hoffen, dass die W3C die Battery Status API eines Tages entschärft und damit das Tracking unterbindet. Derweil helfen folgende Methoden:
Firefox: Battery Status API über about:config deaktivieren
Firefox-Nutzer haben es einfach – egal ob Desktop- oder Mobile-Browser.
- Öffnet Firefox
- Tippt in die Adresszeile „about:config“ ein
- Bestätigt den Hinweis mit „Ich werde vorsichtig sein, versprochen!“
- Gebt in die Suchleiste „dom.battery.enabled“ ein
- Klickt doppelt auf den Eintrag und setzt ihn damit auf „false“
Schon ist die Battery Status API in Firefox deaktiviert.
Chrome & Opera: JavaScript abschalten
Chrome- und Opera-Nutzer können die Schnittstelle nicht abschalten oder einfach so über irgendeine Einstellung blockieren. Hier hilft nur der vollständige Verzicht auf JavaScript im Browser. Das hat dann aber leider auch zur Folge, dass Webseiten mitunter nicht mehr richtig funktionieren und Ausnahmen hinzugefügt werden müssen.
Chrome
- Chrome öffnen
- In die Adresszeile „chrome://settings“ eingeben
- Ganz nach unten Scrollen und auf „Erweiterte Einstellungen anzeigen“ klicken
- Unter dem Punkt Privatsphäre auf Inhaltseinstellungen gehen
- Beim Punkt JavaScript den Eintrag „Keiner Seite erlauben, JavaScript auszuführen“ auswählen
- Eventuelle Websites als Ausnahme hinzufügen, um ihnen die Ausführung von JavaScript zu erlauben oder zu verbieten
Opera
Nur ein weiterer kleiner Zacken in der Tracking-Krone
Die Battery Status API ist nur ein weiteres kleines Häufchen Sand im großen Sandkasten der Tracking-Möglichkeiten. Innerhalb der letzten 20 Jahre hat sich in dem Bereich sehr viel getan. Anfangs konnte man sich noch gut dagegen wehren bzw. es stellte nur eine sehr geringe Gefahr für die eigene Privatsphäre dar. 1996 lag die durchschnittliche Anzahl der Drittanbieter-Anfragen bei den größten Webseiten unter eins, 10 Jahre später bei ca. 1,5 und heute kommen durchschnittlich mindestens vier Tracker zum Einsatz. Und ein Ende ist leider nicht in Sicht, wie eine aktuelle Studie amerikanischer Sicherheitsforscher belegt.
Das Portfolio der Tracker ist groß und sie lassen sich immer wieder neue Tricks einfallen. Mittlerweile reicht es nicht mehr, nur die Cookies und den Browserverlauf zu löschen. Selbst ein VPN schützt nur bedingt bis kaum vor der Identifizierung. Gerade Canvas und Hardware Fingerprinting machen uns das Leben schwer. Bei beiden Methoden wird einem Browser eine eindeutige Kennung verpasst. Canvas Fingerprinting lässt sich aber mit einem Addon, wie CanvasBlocker für Firefox oder CanvasFingerprintBlock für Chrome leicht verhindern. Kann ja jeder selbst mal testen.
Beim Hardware-Fingerprinting ist dies mitunter schwieriger. Im Firefox lässt sich zwar sehr vieles deaktivieren, aber eben nicht alles. Die Identifizierung lässt sich somit auf ein Mindestmaß einschränken, jedoch nicht völlig abschalten. Nutzer anderer Browser haben dagegen kaum Optionen das Senden hardwarespezifischer Informationen zu verhindern.
Was bringt die Zukunft?
Jedenfalls nichts Gutes, wenn das zügellose Datensammeln nicht gestoppt wird. Es geht mehr um die Art und Weise, als um den Umstand selbst, dass Daten gesammelt werden. Diese Maßlosigkeit alles angreifen zu wollen, egal ob der Nutzer das will oder nicht, geht für mich entschieden zu weit. Ein Vertrauensverhältnis gibt es schon lange nicht mehr, ist aber auf lange Sicht bitter nötig. Es braucht klare Regeln und Transparenz über die Datenerhebung und -nutzung.
Ansonsten ziehen sich noch mehr User in ihren digitalen Käfig zurück, was auch nicht der Sinn der Sache sein kann. Dadurch wird jeglicher Fortschritt gehemmt oder schlimmer noch verhindert. Uns droht der digitale Stillstand durch digitale Abschottung.