References:
Time Protection: The Missing OS Abstraction, Qian Ge, Yuval Yarom, Tom Chothia, and Gernot Heiser. 2019. In Proceedings of the Fourteenth EuroSys Conference 2019 (Dresden, Germany) (EuroSys ’19). ACM, New York, NY, USA, Article 1, 17 pages. https://doi.org/10.1145/3302424.3303976;
“No security without time protection: We need a new hardware-software contract.”, Ge, Qian, Yuval Yarom, and Gernot Heiser. In Proceedings of the 9th Asia-Pacific Workshop on Systems, pp. 1-9. 2018.
“Microarchitectural timing channels result from competition for hardware resources that are functionally transparent to software.”
“The instruction-set architecture(ISA), i.e. the hardware-software contract, abstracts these resources away, as they are irrelevant for functional correctness. However, the abstraction leaks, as it affects observable execution speed, leading to timing channels.”
These hardware resources under competition include two categories:
Microarchitectural state. Leverages temporal and spatial locality to improve average-case performance.
Stateless interconnects: Time sharing cannot produce interference on these, while concurrent access can be observed as a reduction of available bandwith.
Partition support for spatially/concurrently sharing
Resetting support for temporal/non-partitionable sharing
x86:
wbinvd
instruction: flushes the complete cache hierachy;invpcid
in 64-bit mode (reload CR3
and CR0
in 32-bit mode, to invalidate both non-global and global mappings)MSR 0x1A4
[Viswanathan 2014]Arm
DCCISW
ICIALLU
TLBIALL
: flush the TLB;BPIALL
: flush the branch predictor;Channels that cannot be closed making full use of any reset mechanisms provided the architecture.
Channels exploiting L1 I-cache, Branch target buffer, and Branch history buffer.
Prime+Probe –> communication between Trojan and spy.
Channels:
(Partition or Reset)
On stateful resources: partitioning spatially or temporally
Spatial partitioning:
P
, cache size of S
, associativity w
:
S/wP
.Temporal partitioning: by time slices
Augmented ISA: aISA.
For all shared hardware state, they should be able to be reset or partitioned:
If you could revise
the fundmental principles of
computer system design
to improve security...
... what would you change?