Battery Status API: Warum Browser das Batterie-Tracking abgeschafft haben
Erfahren Sie mehr über die Geschichte der HTML5 Battery Status API, wie hochpräzise Batterieentladungsmetriken ein seitenübergreifendes Tracking ermöglichten und warum sie entfernt wurde.
Die unschuldige API, die zur Tracking-Gefahr wurde
Als das W3C die HTML5 Battery Status API (navigator.getBattery()) einführte, war das Ziel harmlos: Webanwendungen (wie Video-Editoren oder Spiele) sollten in der Lage sein, die Ressourcennutzung zu drosseln und Strom zu sparen, wenn ein Laptop oder mobiles Gerät nur noch wenig Akkuleistung hatte.
Sicherheitsforscher entdeckten jedoch bald, dass hochpräzise Batterieauslesungen eine schwerwiegende Datenschutzlücke darstellten.
Wie die Batterie-API einen kurzzeitigen Fingerabdruck erstellte
Die API legte vier Schlüsseleigenschaften offen:
battery.level(z.B. 0.542385...)battery.charging(wahr/falsch)battery.chargingTimebattery.dischargingTime(verbleibende Sekunden)
In Kombination ergaben diese vier Werte Millionen unterschiedlicher Kombinationen. Da die Batterieentladung kontinuierlich und vorhersehbar ist, konnten Tracking-Skripte einem Benutzer folgen, der innerhalb eines 30-Minuten-Fensters zwischen Inkognito-Tabs wechselte oder über verschiedene Browser auf demselben Gerät navigierte.
Browser-Abkehr und Lektionen für den Datenschutz
Die Browser-Anbieter erkannten diese Bedrohung und ergriffen entschlossene Maßnahmen:
- Mozilla Firefox: Die Battery Status API wurde in Firefox 52 vollständig entfernt.
- Apple WebKit (Safari): Hat die API aufgrund von Fingerprinting-Bedenken nie implementiert.
- Google Chromium: Die Genauigkeit wurde eingeschränkt und unaufgeforderter Zugriff abgelehnt.
Diese Fallstudie zeigt, warum moderne Datenschutzdiagnosen wie Geräteinformationen und Browser-Fingerabdruck alle Hardware-APIs des Browsers prüfen.
WebRTC Leak Test
Test if your real IP address is leaking through your browser even behind a VPN.