2015 IEEE Symposium on Security and Privacy 2015
DOI: 10.1109/sp.2015.44
|View full text |Cite
|
Sign up to set email alerts
|

On Subnormal Floating Point and Abnormal Timing

Abstract: Abstract-We identify a timing channel in the floating point instructions of modern x86 processors: the running time of floating point addition and multiplication instructions can vary by two orders of magnitude depending on their operands. We develop a benchmark measuring the timing variability of floating point operations and report on its results. We use floating point data timing variability to demonstrate practical attacks on the security of the Firefox browser (versions 23 through 27) and the Fuzz differe… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
119
0

Year Published

2016
2016
2022
2022

Publication Types

Select...
5
3
2

Relationship

0
10

Authors

Journals

citations
Cited by 116 publications
(119 citation statements)
references
References 37 publications
0
119
0
Order By: Relevance
“…Since these workloads contain no data dependent behavior, performance will be constant after the first couple of iterations. Checks were used to ensure no IEEE NaN or subnormal numbers occurred, which can have a significant impact on timing [3].…”
Section: Systemmentioning
confidence: 99%
“…Since these workloads contain no data dependent behavior, performance will be constant after the first couple of iterations. Checks were used to ensure no IEEE NaN or subnormal numbers occurred, which can have a significant impact on timing [3].…”
Section: Systemmentioning
confidence: 99%
“…To defend against these attacks, modern crypto implementations use constant-time algorithms, also known as dataoblivious algorithms [2,7,12,13,19,25,28,52,54,56,66,71,74,77,93]. Constant-time algorithms are carefully written so that each instruction's execution does not reveal the data it operates on over any microarchitectural side channel.…”
Section: Cache-based Side Channels Attacks and Defensesmentioning
confidence: 99%
“…For syntactic convenience, we define the existing i32 and i64 WebAssembly type annotations as denoting public (integer) values, with new annotations s32 and s64 representing secret (integer) values. Floating point types are always considered public, since most floating point operations are variable-time and vulnerable to timing attacks [Andrysco et al 2015[Andrysco et al , 2018Kohlbrenner and Shacham 2017].…”
Section: Typing and Value Typesmentioning
confidence: 99%