Tracking is one of the serious privacy issues users are facing on a daily basis. If a party wants to get your personal information, it may get quite creative in the ways to obtain it. One of the most recent methods of non-standard data collection is through the so-called Battery Status API, an HTML5 standard for browsers.
What Is a Battery Status API?
The Battery Status API, more often referred to as the Battery API, provides information about the system’s battery charge level and lets you be notified by events that are sent when the battery level or charging status change. This can be used to adjust your app’s resource usage to reduce battery drain when the battery is low, or to save changes before the battery runs out in order to prevent data loss. (via developer.mozilla.org)
Researchers from Princeton University have now proved that the Battery API also allows a site owner to ask for the specific device’s current battery level or charging status. This potential privacy risk which was brought to light last year is now becoming a real concern.
A little-known feature of the HTML5 specification means that websites can find out how much battery power a visitor has left on their laptop or smartphone – and now, security researchers have warned that that information can be used to track browsers online, the Guardian wrote back then.
Interestingly, the authors of the standard didn’t think it would start a fingerprinting issue. However, it later turned out that the highly-detailed readings can actually administer a pseudo-unique identifier for every device.
Two Scripts Exploit the Battery Status API to Fingerprint Users
Steven Englehardt and Arvind Narayanan, Princeton researchers, discovered two scripts that employ the Battery API to fingerprint users online.
Their discoveries are part of a large-scale, ongoing investigation that is entirely focused on tracking. Researchers use a special privacy tool called OpenWPM (running on Firefox) which identifies tracking techniques across the Internet.
One of the scripts mentioned above retrieves the current charge level of the device and adds it to other fingerprint details and the user’s local IP address. The other script retrieves the current charging status, the charge level, and the amount of remaining time to recharge.
One of the original researchers that first stumbled upon this problem, Lukasz Olejnik, says that those readings could be exploited for other means as well:
Additionally, some companies may be analyzing the possibility of monetizing the access to battery levels. When battery is running low, people might be prone to some – otherwise different – decisions. In such circumstances, users will agree to pay more for a service.
To face this privacy issue, some browser vendors are considering the option to restrict or completely remove access to battery readout mechanisms.