On 17/08/13 14:46 PM, Ben Laurie wrote:



On 17 August 2013 06:01, ianG <i...@iang.org <mailto:i...@iang.org>> wrote:

    On 17/08/13 10:57 AM, Peter Gutmann wrote:

        Nico Williams <n...@cryptonector.com
        <mailto:n...@cryptonector.com>> writes:

            It might be useful to think of what a good API would be.


        The problem isn't the API, it's the fact that you've got two
        mutually
        exclusive requirements, the security geeks want the (P)RNG to
        block until
        enough entropy is available, everyone else wants execution to
        continue without
        being blocked.  In other words a failure of security is
        preferred to a failure
        of functionality.  Until you resolve that conflict, no API
        (re)design is going
        to help you.



    (not answering the posts sepcifically but) the rule of thumb I've
    always used is this:

    If you don't care so much about security then use the tools that are
    provided, and suffer an occasional glitch.  Don't worry too much
    about the glitches coz your business already told you, you don't
    care too much about the security / randomness.  All those
    cypherpunkian arguments can go to hell, you've got customers to care
    for.

    OTOH, if you care a lot, then you have to write your own.  The
    design is now very well established.  Many sources -> mixer/pool ->
    deterministic PRNG.  It's really not that hard, this is an intern
    level project, folks.

    In result, if you care enough to argue about random v. urandom then
    you already put yourself in the second camp, and your problem is
    solved. Just use urandom and collect some other sources yourself.
      You no longer care.


That's terrible advice. Implement your own crypto of any sort widely
leads to complete fail, as we see repeatedly.


:) Perhaps the distinction is that, if you care, when you "repeatedly fail" then you can repeatedly fix it. OTOH, if you're using external crypto, you're up the creek without a paddle.


Also, if there are other sources, why are they not being fed in to the
system PRNG?


I agree in principle, but reality slaps us around a bit:

Linux and BSD can't agree on the basic definitions of urandom and random. Some don't agree whether Intel's RNG is safe or not for Linux purposes. Zooko & Jon don't agree whether open source is a sufficient / necessary proof.

And, as you say, FIPS don't agree with anyone:

> Amusing story: FIPS 140 requires self-tests on the PRNG. There was a
> bug in FIPS OpenSSL once where the self-test mode got stuck on and so
> no entropy was fed into the PRNG.
>
> Also, back when I was doing FIPS 140 they made me remove some of the
> entropy feeds into the PRNG - particularly ones that protect against
> pool duplication over forks.





iang

_______________________________________________
cryptography mailing list
cryptography@randombit.net
http://lists.randombit.net/mailman/listinfo/cryptography

Reply via email to