TCP ISNs and Temperature induced clock skews

Information

ID: 543
PHID: PHID-TASK-rtniwyl47csulx7w7ex4
Author: HulaHoop
Status at Migration Time: open
Priority at Migration Time: Normal

Description

Attack summary:

QoS acts as a countermeasure by preventing flows on an anonymity-network node from interfering with each other. However, an inevitable result is that when a flow is running at less than its reserved capacity, CPU load on the node will be reduced. This induces a temperature decrease, which affects the frequency of the crystal oscillator driving the system clock. This effect can be measured remotely by requesting timestamps and deriving clock skew. This vector is not low hanging fruit [2] but it would be good to shut down for those who need higher assurance.

(The NFQUEUE-based fix for the latency is great beause this was a more practical real world attack)

TCP ISNs are not possible to block and needed for security anyway. Are a part of all modern OSs.

The only practical solution listed in the paper/slides [1]

23C3 Slide 30:

Run CPU at full load - Inefficient and must be done with care since different types of tasks can have varying temperature effects

Deployment: on host out of reach of malicious code in vm.


Considerations:

Can disabling c-states accomplish the same?

Yes.

Ethan:

However, the suggestion of disabling c-states more or less obsolesces this suggestion, as the stress solution could easily decrease battery life by 2-3x, whereas I’ve never seen wattage even double from disabling c-states.


[1] https://events.ccc.de/congress/2006/Fahrplan/attachments/1211-23c3hotornotpres.pdf

[2]

Another option with Linux is to use TCP sequence numbers, which are the sum of a cryptographic result and a 1 MHz clock. Over short periods, the high h gives good results, but as the cryptographic function is re-keyed every 5 minutes, maintaining long term clock skew figures is non-trivial.


Comments


HulaHoop

2016-08-24 11:53:46 UTC


HulaHoop

2016-08-27 18:48:43 UTC


HulaHoop

2016-08-29 12:03:46 UTC


ethanwhite

2016-08-30 02:35:53 UTC


HulaHoop

2016-09-01 16:59:36 UTC


ethanwhite

2016-09-07 21:37:25 UTC


HulaHoop

2016-09-07 23:44:02 UTC


ethanwhite

2016-09-27 02:28:46 UTC


HulaHoop

2016-09-27 16:03:42 UTC


HulaHoop

2016-09-28 23:52:06 UTC


HulaHoop

2016-09-29 14:32:34 UTC


HulaHoop

2016-10-04 22:09:06 UTC


HulaHoop

2017-01-08 23:09:36 UTC


HulaHoop

2017-01-11 18:22:22 UTC


HulaHoop

2017-01-12 02:27:32 UTC


HulaHoop

2019-04-05 18:55:35 UTC


Patrick

2019-04-05 20:20:06 UTC


HulaHoop

2019-10-07 01:13:22 UTC


Patrick

2019-11-16 10:19:28 UTC