Practical Effect of the Predictability of Android OpenSSL PRNG

Soo Hyeon KIM  Daewan HAN  Dong Hoon LEE  

Publication
IEICE TRANSACTIONS on Fundamentals of Electronics, Communications and Computer Sciences   Vol.E98-A   No.8   pp.1806-1813
Publication Date: 2015/08/01
Online ISSN: 1745-1337
DOI: 10.1587/transfun.E98.A.1806
Type of Manuscript: PAPER
Category: Cryptography and Information Security
Keyword: 
SSL/TLS,  android,  OpenSSL,  PRNG,  SecureRandom,  

Full Text: PDF(1.7MB)>>
Buy this Article




Summary: 
The built-in Pseudo Random Number Generator (PRNG) of OpenSSL on Android platform is important for producing the encryption keys and nonce needed for SSL/TLS communication. In addition, it is also widely used in generating random numbers for many applications irrelevant to SSL. We demonstrated that the initial OpenSSL PRNG state of Android apps can be restored practically, and claimed that a PreMasterSecret (PMS) can be recovered in certain apps using the RSA key agreement scheme at CCS2013. In this paper, we investigate more deeply the practical effect of the predictability of OpenSSL PRNG. First, we precisely analyze, and reduce the complexity of a PMS recovery attack on SSL with the RSA key exchange by analyzing the ASLR mechanism of Android. As a result, we show that the PMS can be recovered in O(246) computations with a probability of 25%. Next, we show that the attack is also applicable to the PMS of the ECDH key exchange by analyzing the heap memory pattern. We confirmed experimentally that the PMS can be recovered in real-time with a probability of 20%. Finally, we show the relation between the predictability of OpenSSL PRNG and the vulnerability of Android SecureRandom java class.