A group of researchers has demonstrated that smartphone batteries can offer a side-channel attack vector by revealing what users do with their devices through analysis of power consumption.

Both snitching and exfiltration were described in this paper (PDF), accepted for July's Privacy Enhancing Technologies Symposium.

Nobody needs to panic yet, because the attack isn't yet more than a decently tested theory, and it would be rather hard to execute. But there's also a real-world implication because the paper shows how a too-free API can help attackers in ways its designers never imagined.

The paper, by researchers from University of Texas in Austin, the Hebrew University of Jerusalem, and the Israel Institute of Technology explained that a “poisoned” battery can gather enough information about power-hungry phone components to reveal user activity.

In their research, the boffins turned a battery into a snitch by implanting a microcontroller to sample power flowing in and out at a 1kHz sample rate.

The battery, they wrote, is a very attractive attack vector because “all the phone activity is exposed.” An attacker can correlate power flows with a keystroke, the context of the keystroke (is someone visiting a website at the time?) and “the events that preceded or followed it,” such as taking a photo or making a phone call.

“Together, these pieces of information reconstruct a coherent portrait of the user’s activity, dramatically amplifying the power of individual attacks,” the paper states.

The authors contend that reading the CPU and screens' power traces (and even those from the GPU or the DRAM in some cases) would reveal information about websites a user visited, or even what they were typing on the screen:

The power trace of the word "welcome"

As an attack, it's relatively clumsy. A miscreant would have to insert their poisoned battery – which is, however, feasible if you've had to hand a phone over to someone with legal authority or for repair. The attack also needs an offline AI to learn how to classify the power traces.

However, what's not theoretical is the exfiltration path – the Web Battery API, criticised as offering snitching options, and abandoned by Mozilla and Webkit for that reason.

Looking over the paper, privacy consultant Lukasz Olejnik summarised the exfiltration route: “All the victim user has to do is to visit a sink website that is reading the data. Malicious batteries can detect when the browser enters this special website, and enable the exfiltration mode.”

The paper noted that the update rate isn't limited in the browser the researchers tested (the built-in Chrome-based browser on a Huawei and two Samsung phones), making the manufacturer's design choice in the charger the factor that limited updates (exfiltration in the experiment was slow, at 0.17 bit/second, but the paper offers suggestions for improvement).

As Olejnik wrote last week: “there is no reason for browsers to allow frequent switches between charge/discharge events. So Privacy by Design methodology would advice here: cap the switch rate.” ®