public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: "Theodore Ts'o" <tytso@mit.edu>
To: Adhemerval Zanella Netto <adhemerval.zanella@linaro.org>
Cc: Rich Felker <dalias@libc.org>,
	Florian Weimer <fweimer@redhat.com>,
	Yann Droneaud <ydroneaud@opteya.com>,
	"Jason A. Donenfeld" <Jason@zx2c4.com>,
	libc-alpha@sourceware.org, linux-crypto@vger.kernel,
	Michael@phoronix.com, jann@thejh.net
Subject: Re: arc4random - are you sure we want these?
Date: Wed, 27 Jul 2022 08:32:07 -0400	[thread overview]
Message-ID: <YuEwR0bJhOvRtmFe@mit.edu> (raw)
In-Reply-To: <a5b6307d-6811-61b6-c13d-febaa6ad1e48@linaro.org>

On Wed, Jul 27, 2022 at 08:34:17AM -0300, Adhemerval Zanella Netto wrote:
> The only thing I am kinda worried is we will need to be judicious if
> we aim to use arc4random internally for hardening, since on some pattern
> usage and kernels we might hit some performance issues.  For instance,
> we will need to tune down some internal parameters for a glibc testing
> because now on a somewhat recent kernel (5.15.0-41-generic) I am seeing
> a 10 runtime increase which the change to use getrandom.  Jason has
> told it has been fixed upstream, but taking in consideration the box
> is an updated Ubuntu 22.04, it might take some time to have this fix
> propagated on all kernels out there.

What I'd suggest is that we be a realistic about specific use cases.
Are we talking about scientific simulations?  You don't want to be
using be using secure random number generation for that anyway,
because most reputable scientists have this thing about repeatable
experiments.

Are we talking about key generation?  How many keys per second is it
really realistic that such a system would need to support?.  How many
SSL connections would it be *able* to support?  And since a secure web
server or VPN gateway is going to be on the network, then you're going
to want the latest kernel fixes, since there have been quite a some
Really Bad Security vulnerabilities that have been fixed just in the
past week (especially if you care about FEDRAMP or PCI compliance) at
which point, you'll get the new and improved getrandom(2).

But even if you didn't take the latest kernels, I think you will find
that if you actually benchmark how many queries per second a real-life
secure web server or VPN gateway, even the original 5.15.0 /dev/random
driver was plenty fast enough for real world cryptographic use cases.
Sure, maybe numbers would look small on a low-end ARM system --- but
how many secure web transactions or IPSEC/wireguard connections could
such a low-end ARM system really support, *anyway*?

One of the dirty little secrets of web sites who live and die by
clickbait performance benchmark articles for advertising revenue is
how rarely real life workloads really are bottlenecked by things like,
say, file system or /dev/random benchmarks.  Reading those articles
are *fun*, for people who like to say that their systems' metrics are
longer/faster/stronger/whatever, but it's rare that they actually
impact real world use cases.  More often than not, the bottleneck is
elsewhere.

Cheers,

					- Ted

P.S.  The newer /dev/random drier would probably help out people who do things
like "dd if=/dev/urandom of=/dev/expensive-ssd-where-it-would-be-way-faster-
and-less-destructive-of-write-wearout-to-use-hdparm-security-erase bs=4k" ---
but that's not really relevant to the glibc arc4random() discussion.  :-)

  reply	other threads:[~2022-07-27 12:32 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <YtwgTySJyky0OcgG@zx2c4.com>
2022-07-23 16:25 ` Jason A. Donenfeld
2022-07-23 17:18   ` Paul Eggert
2022-07-24 23:55     ` Jason A. Donenfeld
2022-07-25 20:31       ` Paul Eggert
2022-07-23 17:39   ` Adhemerval Zanella Netto
2022-07-23 22:54     ` Jason A. Donenfeld
2022-07-25 15:33     ` Rich Felker
2022-07-25 15:59       ` Adhemerval Zanella Netto
2022-07-25 17:41         ` Rich Felker
2022-07-25 16:18       ` Sandy Harris
2022-07-25 16:40       ` Florian Weimer
2022-07-25 16:49         ` Adhemerval Zanella Netto
2022-07-25 16:51         ` Jason A. Donenfeld
2022-07-25 17:44         ` Rich Felker
2022-07-25 18:33           ` Cristian Rodríguez
2022-07-25 18:49             ` Rich Felker
2022-07-27  1:54               ` Theodore Ts'o
2022-07-27  2:16                 ` Rich Felker
2022-07-27  2:45                   ` Theodore Ts'o
2022-07-27 11:34                 ` Adhemerval Zanella Netto
2022-07-27 12:32                   ` Theodore Ts'o [this message]
2022-07-27 12:49                     ` Florian Weimer
2022-07-27 20:15                       ` Theodore Ts'o
2022-07-27 21:59                         ` Rich Felker
2022-07-28  0:30                           ` Theodore Ts'o
2022-07-28  0:39                         ` Cristian Rodríguez
2022-07-27 15:39                   ` Rich Felker
2022-07-23 19:04   ` Cristian Rodríguez
2022-07-23 22:59     ` Jason A. Donenfeld
2022-07-24 16:23       ` Cristian Rodríguez
2022-07-24 21:57         ` Jason A. Donenfeld
2022-07-25 10:14     ` Florian Weimer
2022-07-25 10:11   ` Florian Weimer
2022-07-25 11:04     ` Jason A. Donenfeld
2022-07-25 12:39       ` Florian Weimer
2022-07-25 13:43         ` Jason A. Donenfeld
2022-07-25 13:58           ` Cristian Rodríguez
2022-07-25 16:06           ` Rich Felker
2022-07-25 16:43             ` Florian Weimer
2022-07-26 14:27         ` Overwrittting AT_RANDOM after use (was Re: arc4random - are you sure we want these?) Yann Droneaud
2022-07-26 14:35         ` arc4random - are you sure we want these? Yann Droneaud
2022-07-25 13:25       ` Jeffrey Walton
2022-07-25 13:48         ` Jason A. Donenfeld
2022-07-25 14:56     ` Rich Felker
2022-07-25 22:57   ` [PATCH] arc4random: simplify design for better safety Jason A. Donenfeld
2022-07-25 23:11     ` Jason A. Donenfeld
2022-07-25 23:28     ` [PATCH v2] " Jason A. Donenfeld
2022-07-25 23:59       ` Eric Biggers
2022-07-26 10:26         ` Jason A. Donenfeld
2022-07-26  1:10       ` Mark Harris
2022-07-26 10:41         ` Jason A. Donenfeld
2022-07-26 11:06           ` Florian Weimer
2022-07-26 16:51           ` Mark Harris
2022-07-26 18:42             ` Jason A. Donenfeld
2022-07-26 19:18               ` Adhemerval Zanella Netto
2022-07-26 19:24               ` Jason A. Donenfeld
2022-07-26  9:55       ` Florian Weimer
2022-07-26 11:04         ` Jason A. Donenfeld
2022-07-26 11:07           ` [PATCH v3] " Jason A. Donenfeld
2022-07-26 11:11             ` Jason A. Donenfeld
2022-07-26 11:12           ` [PATCH v2] " Florian Weimer
2022-07-26 11:20             ` Jason A. Donenfeld
2022-07-26 11:35               ` Adhemerval Zanella Netto
2022-07-26 11:33       ` Adhemerval Zanella Netto
2022-07-26 11:54         ` Jason A. Donenfeld
2022-07-26 12:08           ` Jason A. Donenfeld
2022-07-26 12:20           ` Jason A. Donenfeld
2022-07-26 12:34           ` Adhemerval Zanella Netto
2022-07-26 12:47             ` Jason A. Donenfeld
2022-07-26 13:11               ` Adhemerval Zanella Netto
2022-07-26 13:30     ` [PATCH v4] " Jason A. Donenfeld
2022-07-26 15:21       ` Yann Droneaud
2022-07-26 16:20       ` Adhemerval Zanella Netto
2022-07-26 18:36         ` Jason A. Donenfeld
2022-07-26 19:08       ` [PATCH v5] " Jason A. Donenfeld
2022-07-26 19:58         ` [PATCH v6] " Jason A. Donenfeld
2022-07-26 20:17           ` Adhemerval Zanella Netto
2022-07-26 20:56             ` Adhemerval Zanella Netto
2022-07-28 10:29           ` Szabolcs Nagy
2022-07-28 10:36             ` Szabolcs Nagy
2022-07-28 11:01               ` Adhemerval Zanella

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YuEwR0bJhOvRtmFe@mit.edu \
    --to=tytso@mit.edu \
    --cc=Jason@zx2c4.com \
    --cc=Michael@phoronix.com \
    --cc=adhemerval.zanella@linaro.org \
    --cc=dalias@libc.org \
    --cc=fweimer@redhat.com \
    --cc=jann@thejh.net \
    --cc=libc-alpha@sourceware.org \
    --cc=linux-crypto@vger.kernel \
    --cc=ydroneaud@opteya.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).