Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 3 Jul 2018 10:47:14 -0400
From: Rich Felker <dalias@...c.org>
To: Florian Weimer <fweimer@...hat.com>
Cc: musl@...ts.openwall.com
Subject: Re: arc4random/csprng

On Tue, Jul 03, 2018 at 03:36:59PM +0200, Florian Weimer wrote:
> On 07/02/2018 10:39 PM, Rich Felker wrote:
> >I haven't followed what's been happening with posix_random lately, but
> >glibc has adding the arc4random interfaces and it seems reasonable
> >that we should too, with the easy option to add the posix_random name
> >for it and whatever interface details POSIX decides on.
> 
> Note that it's probably not going to make it into glibc 2.28 at this point.

Now the race is on, I guess. ;-)

> >One topic I thought was a huge bikeshed was the whole fork-detection
> >or fork-safety thing, but apparently it's not for glibc and perhaps
> >other implementations because they've opted to make their csprng
> >lock-free and incurred a lot of complexity with safely replacing
> >pseudo-immutable state. I want to avoid most or all of this issue by
> >just using a proper lock, but it might still be necessary to do some
> >nasty hack for the case where fork is called from a signal handler
> >interrupting the csprng. The only way to avoid that entirely is to
> >block signals while the csprng runs, which is probably unjustifiably
> >slow.
> 
> The main lock (for non-current kernels) is needed for the fork
> detection counters.  Fork detection is required for compatibility
> with applications which call clone/fork system calls directly, so

How do you consider this supported usage at all? The tid in the TCB
will be invalid after such a call, and other things may be broken too.

IMO after syscall(SYS_fork or SYS_clone) the application is in an
async-signal (or even more restricted) context and certainly can't use
high level interfaces like arc4random.

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.