Bug 1386824

Summary: random-seed size should be 4096 bytes in size
Product: Red Hat Enterprise Linux 7 Reporter: Steve Grubb <sgrubb>
Component: systemdAssignee: systemd-maint
Status: CLOSED ERRATA QA Contact: Branislav Blaškovič <bblaskov>
Severity: medium Docs Contact:
Priority: high    
Version: 7.3CC: bblaskov, jsynacek, mvadkert, sgrubb, systemd-maint-list
Target Milestone: rcKeywords: Patch, Regression
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: systemd-219-31.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-01 09:12:22 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1256920, 1383699    

Description Steve Grubb 2016-10-19 16:48:18 UTC
Description of problem:
Back on bz 1066517 it was agreed that systemd would base its random-seed size off of the /proc/sys/kernel/random/poolsize value. The formula was as follows:

read from /proc/poolsize = 4096 bits
calculate bytes = 512 bytes.
multiply by stephan's 2:1 ration = 1024 bytes
multiply by a safety factor of 4 (or 8) = 4096 bytes

Version-Release number of selected component (if applicable):
systemd-219-26.el7

How reproducible:
Always

Steps to Reproduce:
1. ls -l /var/lib/systemd/random-seed

Actual results:
512

Expected results:
4096

Additional info:
RHEL 6 correctly sets the size to 4096.

Comment 8 Jan Synacek 2017-01-23 09:39:22 UTC
I cannot see any agreement on 4096 in that bugzilla... Also, nobody answered Lennart's final question at https://bugzilla.redhat.com/show_bug.cgi?id=1066517#c73, when he asked what he was supposed to do after all the discussion... The whole point of the change seems to be a "better safe than sorry, but nobody actually knows if it's safer" approach. Is there an available demonstration where people can actually show how much difference it makes to change that particular random seed?

Comment 9 Steve Grubb 2017-01-23 15:02:07 UTC
The problem is that the algorithm used to mix the seed into the pool sometimes touches bits and locations more than once. This means a bigger seed is necessary to touch every bit in every location at least once. RHEL7 GA did this right. Somewhere along the way, a patch in systemd was dropped and now we have a regression.

Comment 10 Jan Synacek 2017-01-24 09:31:16 UTC
So you want us to reintroduce https://github.com/lnykryn/systemd-rhel/commit/20436a1eb3a468b7bc32fe1d36cb7c4029519052 again?

Comment 11 Steve Grubb 2017-01-24 18:55:36 UTC
Yes, that would solve the problem. Thanks.

Comment 12 Jan Synacek 2017-01-25 07:40:49 UTC
https://github.com/lnykryn/systemd-rhel/pull/84

Comment 14 Lukáš Nykrýn 2017-02-06 11:09:26 UTC
fix merged to upstream staging branch ->
https://github.com/lnykryn/systemd-rhel/commit/6a4ea99f07b32659362c9a1a38be8bec2bb0964c
-> post

Comment 17 errata-xmlrpc 2017-08-01 09:12:22 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:2297