<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Samuel,<div><br></div><div>Thanks for these useful insights.</div><div><br></div><div>We're not a security software company and our usage of these passwords isn't critical.</div><div>Anyway, we want to learn if possible.</div><div><br></div><div><div><blockquote type="cite"><div>First, random:uniform is not cryptographically secure, which means is<br>somewhat predictable. As already mentioned use any other generator<br>meant to be secure as the one in crypto or the ssl library.<br></div></blockquote></div><div><blockquote type="cite"><div>Even using a secure pseudrandom generator:<br><br>Your first implementation destroys the security, as you are creating a<br>seed for each random number an attacker just needs to guess the seed<br>sequence, not the pseudorandom sequence. In your case you had a side<br>effect of generating collisions, but that was not the worst problem.<br></div></blockquote><div><br></div><div>Yup. Sverker response was very clear to this regard!</div><div><br></div><blockquote type="cite"><div>The second implementation is more secure in that sense, but still the<br>original seed is guessable. An attacker can generate possible password<br>sequences by bruteforce just tying possible now tuples around the time<br>he thinks the real seed was created.<br></div></blockquote><div><br></div>So, how one can generate a secure un-predicatable seeds?</div><div><br><blockquote type="cite"><div>So, if you want to create passwords difficult to guess, you need at<br>least a cryptographically secure PRG, which will give you an<br>unpredictable sequence of bytes, and an unguessable seed, which will<br>give prevent any attacker from creating the same sequence of bytes<br>again an completely break all your passwords.<br></div></blockquote><br></div><div>We also moved to "Tiny Mersenne Twister" (<a href="https://github.com/jj1bdx/tinymt-erlang">https://github.com/jj1bdx/tinymt-erlang</a>) instead of using</div><div>the standard random:uniform since the last Yaws security alert (<a href="http://erlang.org/pipermail/erlang-questions/2012-June/067626.html">http://erlang.org/pipermail/erlang-questions/2012-June/067626.html</a>).</div><div>Is this sufficient or should we also find a way to generate a unpredicatble seed for it?</div><div><br></div>
<div>Regards,</div><div>Zabrane</div></div><div><br></div></body></html>