<div dir="ltr">Hi all,<div><br></div><div>I'm CTO at PrivateWave, developing solutions for secure telephony.</div><div><br></div><div>Recently, android SecureRandom PRNG proved to be seriously flawed (<a href="http://android-developers.blogspot.it/2013/08/some-securerandom-thoughts.html">http://android-developers.blogspot.it/2013/08/some-securerandom-thoughts.html</a>) because, by default, it is not properly initialized with "good" entropy.</div>
<div><br></div><div>The weakness is very critical, because initial state is practically affected only by process ID: when an application starts with the same PID, it generates the very same sequence of pseudo-random numbers.</div>
<div><br></div><div>Many bitcoin applications suffered this issue and some bucks has been lost.</div><div><br></div><div>Are you aware of some lists of flawed applications, not only related to bitcoin, but also in other cryptography and security domain?</div>
<div><br></div><div>Our product, PrivateGSM, is not affected and I want to express here my thanks to Philip Zimmermann, who I had the pleasure and the honor to work with some years ago, when we was advisor in PrivateWave's scientific board and we jointly worked on the first mobile ZRTP client and designed a bitstream variant of ZRTP protocol, so called ZRTP/S.<br>
</div><div><br></div><div>He insisted a lot on initializing PRNG with good entropy, such as noise from microphone, not trusting OS. Now I can fully and better appreciate that hint: thanks Phil.</div><div><br></div><div><br>
</div><div>I'd like to share with you the results of some tests we run on android devices to assert the weakness of SecureRandom, without proper initialization.<br></div><div><br></div><div>Flawed: after a few hundreds runs, PIDs start duplicating and the very same sequence is generated:<br>
<div><ul><li>Android Simulator 4.2</li><li>Galaxy Nexus 4.3</li><li>Samsung Galaxy S4 4.2.2</li><li>HTC One X 4.1.1</li><li>Motorola Razr 4.1.2</li></ul><div><br></div></div><div>Apparently not flawed: despite PIDs duplicates, random does not repeats.</div>
<div><ul><li>Samsung Galaxy Note II 4.1.2</li><li>Samsung Galaxy S3 4.1.2</li><li>Samsung Galaxy SII 4.1.2</li><li>Motorola Defy Cyanogen 10.1</li></ul><div><br></div></div></div><div>Then, we decided to continue our tests to assert the quality of SecureRandom: DieHard test proved a good quality of sequence generated with SecureRandom...</div>
<div><br></div><div>...as long as you you start in the right way :-)</div><div><br></div><div><br></div><div>Marco</div></div>