[Security-sig] PEP: Make os.urandom() blocking on Linux (version 2)

Victor Stinner victor.stinner at gmail.com
Thu Jun 23 17:37:56 EDT 2016


2016-06-23 23:27 GMT+02:00 Victor Stinner <victor.stinner at gmail.com>:
> Use Case 1: init script
> -----------------------
>
> Use a Python 3 script to initialize the system, like systemd-cron. If
> the script blocks, the system initialize is stuck too.
>
> The issue #26839 is a good example of this use case.

For me, such script must not require secure secret.

An application which require to generate a secure secret must run
later, when the system is fully initialized.

What do you think?


> Use Case 2: web server
> ----------------------
>
> Run a Python 3 web server serving web pages using HTTP and HTTPS
> protocols. The server is started as soon as possible.
>
> The first target of the hash DoS attack was web server: it's important
> that the hash secret cannot be easily guessed by an attacker.

Maybe I should elaborate this point to explain that the specific case
of hash secret is more in the practicability side than on the security
side.

*IMO* reading the non-blocking /dev/urandom is enough for the hash
secret. From what I read, even if the system urandom is not considered
as initialized, urandom is able to generate "good enough" entropy. So
the hash secret is not easily predictable.

Maybe I should read Ted Tso's emails to elaborate this point ;-)


> Embedded devices
> ----------------
>
> A solution for embedded devices is to plug an hardware RNG.

Honestly, I'm not fully convinced by my own solution :-) I'm not sure
that all embedded devices are "extensible".

Victor


More information about the Security-SIG mailing list