Slide 37
Slide 37 text
Spectre Attacks (variant-1)
Flush + Reload で [array1 + r1] (=r2) の値を復元
37
Instruction Cache
Commit
# r1 = x’ (user_input)
slow op
cmp r1, array1_size
jge END
load r2, [array1 + r1]
shl r2, 12
load r3, [array2 + r2]
END:
Reorder Buffer
Decode
Rename
Branch
Predictoin
ALU Load
shl r2, 12
cmp r1, array1_size
slow operation
load r3, [array2 + r2]
load r2, [array1 + r1]
Schedule
Cache
Done
Pred
Corr
array2 + 0, 1, 2, …, 0xff
と順にアクセスすることで ,
r2 の値を復元できる
array1 + x’
array2 + r2