3 ms·
That is very interesting! I worked on a similar idea (but on the malware side… :-p) a few years back. The idea of our paper [1] is that if programs could run an
by p4bl0 12y ago
That is very interesting! I worked on a similar idea (but on the malware side… :-p) a few years back. The idea of our paper [1] is that if programs could run and at the same time produce a functionally equivalent to themselves program that uses different instructions (to do the same thing), then power fingerprinting these programs would be very hard, as each execution's power trace would be different.
We implemented a prototype of the idea (in Lisp, for simplicity) which can take any program and outputs an equivalent one which uses a Quine-like [2] construction to execute the original program and at the same time output a new different version of itself (but the size of the obtained code was quickly exploding in our proof-of-concept prototype, so it was not very real-world).
[1] http://pablo.rauzy.name/research.html#wistp11 http://pablo.rauzy.name/research.html#wistp11
[2] https://en.wikipedia.org/wiki/Quine_%28computing%29 https://en.wikipedia.org/wiki/Quine_%28computing%29
- schoen 12y agoWow, you seem to have been way ahead of this project! It seems like this is a kind of equivalent to constant-time operations -- but constant-power operations? Is that also relevant to defending against DPA? Should we think of the proposed technique as a new application of DPA? (Is Cryptography Research going to sue them?)
- p4bl0 12y ago> Wow, you seem to have been way ahead of this project! Not really, like I said the idea is similar but as fabulist pointed out [1], they have a whitelist approach so I'm not really sure that our idea could systematically break their system. > It seems like this is a kind of equivalent to constant-time operations -- but constant-power operations? You get the right intuition, but no. There are constant-power countermeasures but this is not it. You see, there are two types of side-channel countermeasures: palliatives and curatives. Palliative countermeasures, like the one we discussed in the paper I mentioned in my previous comment, attempt to make the attack more difficult by blurring the information the attacker has access to using randomness, but there is no theoretical foundation behind. By contrast, curative countermeasures aim at providing a leak-free implementation based on a security rationale. There are two strategies to achieve this: the first one is to make the leakage as decorrelated as possible from the sensitive data (masking), and the second one is to make the leakage constant, irrespective of the sensitive data (balancing). So your idea of constant-power exists, it is called balancing. I worked on this kind of countermeasures at assembly code level [2] if you are interested, and there are many other very interesting papers in the references to go through. > Is that also relevant to defending against DPA? Yes, it is mostly relevant against DPA. Actually constant-power operations are good against DPA, but absolutely not against PFP (what the linked post describes) since it makes it easier: it's always the same power trace! > Should we think of the proposed technique as a new application of DPA? (Is Cryptography Research going to sue them?) Since it seems to be done live I would rather say SPA (Simple Power Analysis) than DPA, but I guess the safer is to say that it is a (possibly new) application of the power side channel analysis. (I don't know.) [1] https://news.ycombinator.com/item?id=9122672 https://news.ycombinator.com/item?id=9122672 [2] http://pablo.rauzy.name/research.html#formaldpl http://pablo.rauzy.name/research.html#formaldpl
- strgrd 12y agoI'm sure it won't be long before malware creators find a way to obfuscate power profiles. How do you visualize the power profile of a specific program (can you)? Could you use a simple power analyzer to potentially detect malware, or do you need something more refined?
- fabulist 12y agoThis project takes a whitelist approach, rather than a blacklist approach. Malware authors could certainly turn their programs into random GOTO spaghetti in order to obtain a unique power consumption pattern. But this approach is to fingerprint the pattern of normal operations, and raise an alarm when the device starts doing abnormal things.
- p4bl0 12y ago> How do you visualize the power profile of a specific program (can you)? Could you use a simple power analyzer to potentially detect malware, or do you need something more refined? I don't really know. Most power analysis side channel attacks focus on embedded systems where only the target code runs. But recently, TAU researchers did very cool stuff with power analysis on laptops running a normal OS [1] and their presentation at CHES last year was very impressive. [1] http://www.tau.ac.il/~tromer/handsoff/ http://www.tau.ac.il/~tromer/handsoff/