Practical Exploitation of Insecure Randomness
Breaking V8’s Math.random, practically
whoami
@d0nutptr
Math.random: Under the hood
Math.random: Under the hood
Prior Work?
Prior Work?
Prior Work?
Z3
Z3 in action
So plug-in XS128+ and solve??
Challenge 1: Math.floor
Challenge 1: Math.floor
Adding Math.floor to the solver
Symbolically Perform XS128+
Calculate the u64 (converted to a double later)
Tell Z3 that this should equal the next known value
Expected, known value
From previous slide
Simulating Math.floor in Z3 - IEEE 754 😰
Simulating Math.floor (by cheating)
Simulating Math.floor in Z3
Challenge 2: Double Trouble
Sept 24, 2018
Problem 3: Cache miss-take
How Math.random *REALLY* works...
How Math.random *REALLY* works...
How Math.random *REALLY* works...
Implications?
Enough Theory, Let’s do a Demo
My Socials
@d0nutptr
@d0nutptr