Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:virtualisierung_entropien

Virtualisierung Entropien

Ein Computer erzeugt Zufallszahlen entweder mit einer entsprechenden Hardwarelösung oder über „zufällige“ Ereignisse wie Interrupts z.B. weil der Mauszeiger sich bewegt hat.

Zufallszahlen werden verbraucht, wenn z.B. Kryptographie-Schlüssel erzeugt werden. Inzwischen verbraucht aber auch jeder Prozeßstart Eintropien, weil aus /dev/random gelesen wird und so Entropien verbraucht werden.

Speziell auf virtuellen Maschinen steht oft nicht genügend Entropie bereit, um beim Thema Kryptographie z.B. effizient Schlüssel in kurzer Zeit zu generieren.

Nachfolgender Befehl gibt die aktuell verfügbaren Entropien aus:

# cat /proc/sys/kernel/random/entropy_avail
183

:!: HINWEIS - Ein Wert zwischen 0 und 200 ist bedenklich!

Abhilfe kann hier der Dienst/Daemon haveged (HArdware Volatile Entropy Gathering and Expansion Daemon) schaffen, de er dieses Problem löst, indem er Zufallszahlen tatsächlich unvorhersehbar, zufällig produziert und nicht vorhersehbar zufällig wie unter /dev/urandom.

haveged läuft als Dienst/Daemon und überwacht die verfügbare Anzahl von Zufalls-Bits. Wird ein eingestellter Schwellwert unterschritten, erzeugt haveged neue Zufalls-Bits. Der Zugewinn durch die höhere Entropie überwiegt bei weitem die Last, die haveged zusätzlich auf das System bringt.

Ab hier werden zur Ausführung nachfolgender Befehle root-Rechte benötigt. Um der Benutzer root zu werden, melden Sie sich bitte als root-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root:

$ su -
Password:

Herunterladen

Nachfolgend soll das Drittanbieter-Repository EPEL, wie unter nachfolgendem internen Link dargestellt, eingebunden werden:

Installation

Nachfolgendes rpm-Paket ist zur Installation erforderlich:

  • haveged - ist im epel-Repository des Drittanbieters EPEL enthalten

Die Installation von haveged, kann durch ausführen des nachfolgenden Befehls durchgeführt werden:

# yum install haveged
Loaded plugins: changelog, priorities
base                                                     | 3.6 kB     00:00     
epel                                                     | 4.3 kB     00:00     
extras                                                   | 3.4 kB     00:00     
icinga-stable-release                                    | 2.5 kB     00:00     
updates                                                  | 3.4 kB     00:00     
125 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package haveged.x86_64 0:1.9.1-1.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package           Arch             Version                Repository      Size
================================================================================
Installing:
 haveged           x86_64           1.9.1-1.el7            epel            61 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 61 k
Installed size: 181 k
Is this ok [y/d/N]: y
Downloading packages:
haveged-1.9.1-1.el7.x86_64.rpm                             |  61 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : haveged-1.9.1-1.el7.x86_64                                   1/1 
  Verifying  : haveged-1.9.1-1.el7.x86_64                                   1/1 

Installed:
  haveged.x86_64 0:1.9.1-1.el7                                                  

Complete!

Die Installation von haveged, kann durch ausführen des nachfolgenden Befehls durchgeführt werden:

# rpm -qil haveged
Name        : haveged
Version     : 1.9.1
Release     : 1.el7
Architecture: x86_64
Install Date: Thu 10 Nov 2016 04:25:21 PM CET
Group       : System Environment/Daemons
Size        : 185694
License     : GPLv3+
Signature   : RSA/SHA256, Thu 20 Feb 2014 04:41:19 AM CET, Key ID 6a2faea2352c64e5
Source RPM  : haveged-1.9.1-1.el7.src.rpm
Build Date  : Thu 20 Feb 2014 01:12:49 AM CET
Build Host  : buildvm-25.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.irisa.fr/caps/projects/hipsor/
Summary     : A Linux entropy source using the HAVEGE algorithm
Description :
A Linux entropy source using the HAVEGE algorithm

Haveged is a user space entropy daemon which is not dependent upon the
standard mechanisms for harvesting randomness for the system entropy
pool. This is important in systems with high entropy needs or limited
user interaction (e.g. headless servers).

Haveged uses HAVEGE (HArdware Volatile Entropy Gathering and Expansion)
to maintain a 1M pool of random bytes used to fill /dev/random
whenever the supply of random bits in /dev/random falls below the low
water mark of the device. The principle inputs to haveged are the
sizes of the processor instruction and data caches used to setup the
HAVEGE collector. The haveged default is a 4kb data cache and a 16kb
instruction cache. On machines with a cpuid instruction, haveged will
attempt to select appropriate values from internal tables.
/usr/lib/systemd/system/haveged.service
/usr/lib64/libhavege.so.1
/usr/lib64/libhavege.so.1.1.0
/usr/sbin/haveged
/usr/share/doc/haveged
/usr/share/doc/haveged/AUTHORS
/usr/share/doc/haveged/COPYING
/usr/share/doc/haveged/ChangeLog
/usr/share/doc/haveged/README
/usr/share/doc/haveged/havege_sample.c
/usr/share/man/man8/haveged.8.gz

haveged Dienst/Daemon-Start einrichten

Um den haveged der als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:

# systemctl enable haveged
Created symlink from /etc/systemd/system/multi-user.target.wants/haveged.service to /usr/lib/systemd/system
/haveged.service.

Eine Überprüfung, ob beim Neustart des Server der haveged-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

# systemctl list-unit-files --type=service | grep -e haveged
haveged.service                             enabled
bzw.
# systemctl is-enabled haveged
enabled

Erster Start haveged

Um den haveged zu starten kann nachfolgender Befehl angewandt werden:

# systemctl start haveged

Eine Überprüfung ob der Start des haveged erfolgreich war kann mit nachfolgendem Befehl durchgeführt werden, welcher eine Ausgabe in etwa wie nachfolgende erzeugen sollte:

# systemctl status haveged
● haveged.service - Entropy Daemon based on the HAVEGE algorithm
   Loaded: loaded (/usr/lib/systemd/system/haveged.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2016-11-10 16:27:25 CET; 5s ago
     Docs: man:haveged(8)
           http://www.issihosts.com/haveged/
 Main PID: 4400 (haveged)
   CGroup: /system.slice/haveged.service
           └─4400 /usr/sbin/haveged -w 1024 -v 1 --Foreground

Nov 10 16:27:25 server20.idmz.tachtler.net systemd[1]: Started Entropy Daemon...
Nov 10 16:27:25 server20.idmz.tachtler.net systemd[1]: Starting Entropy Daemo...
Nov 10 16:27:26 server20.idmz.tachtler.net haveged[4400]: haveged: ver: 1.9.1...
Nov 10 16:27:26 server20.idmz.tachtler.net haveged[4400]: haveged: cpu: (VC);...
Nov 10 16:27:26 server20.idmz.tachtler.net haveged[4400]: haveged: tot tests(...
Nov 10 16:27:26 server20.idmz.tachtler.net haveged[4400]: haveged: fills: 0, ...
Hint: Some lines were ellipsized, use -l to show in full.

bzw. mit nachfolgendem Befehl, ob der Dienst/Daemon in der Prozessliste erscheint:

# ps aux | grep haveged
root      4400  0.8  0.3  12288  3860 ?        Ss   16:27   0:00 /usr/sbin/haveged -w 1024 -v 1 --Foreground
root      4492  0.0  0.0 112648   932 pts/0    R+   16:28   0:00 grep --color=auto haveged

Überprüfung Entropien

Vor der Installation von haveged konnte folgendes Ergebnis bei der Ermittlung der Entropien erzielt werden.

Nachfolgender Befehl gibt die aktuell verfügbaren Entropien VOR der Instalaltion von haveged aus:

# cat /proc/sys/kernel/random/entropy_avail
183

:!: HINWEIS - Ein Wert zwischen 0 und 200 ist bedenklich!

Nachfolgender Befehl gibt die aktuell verfügbaren Entropien NACH der Instalaltion von haveged aus:

# cat /proc/sys/kernel/random/entropy_avail
2263

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
tachtler/virtualisierung_entropien.txt · Zuletzt geändert: 2016/11/10 16:31 von klaus