Crypto-Policies
Siehe auch
RHEL 8+ unterstützt systemweite Crypto-Policies: einmal festgelegt, werden die gewählten Verschlüsselungsalgorithmen, Ciphers, MACs etc. von einer steigenden Zahl an Bibliotheken und damit Programmen verwendet. Die Einrichtung ist zudem denkbar einfach und ohne Spezial-KnowHow mit nur einem Kommando machbar. Damit entfällt in vielen Teilen die unterschiedliche Crypto-Konfiguration einzelner Server-Prozesse. Steigen die Anforderungen an die Sicherheit, bringt ein Kommando das gesamte System auf einen neuen Stand.
Der Befehl dafür lautet update-crypto-policies
. Der Befehl generiert Crypto-Policies in /etc/crypto-policies/back-ends
, die bereits von folgenden Bibliotheken verwendet werden:
BIND
GnuTLS library
Libkrb5
Libreswan
NSS library
OpenJDK
OpenSSH
OpenSSL library
Anwendungen und Sprachen, die diese Bibliotheken verwenden, folgen damit automatisch den System-Policies. Beispiele dafür sind Apache httpd, Nginx, PHP und andere.
Tipp
Crypto-Policies für SSH werden durch ein Include-File bereitgestellt - bei der Konfiguration des SSH-Daemons sollte man dies zwecks Anwendungsreihenfolge der Parameter im Hinterkopf behalten.
Unter CentOS 8 sind vier Crypto-Policies definiert:
LEGACY: Maximale Kompatibilität zu Altsystemen
DEFAULT: Kompromiss zwischen Sicherheit und Kompatibilität
FIPS: Compliant zu FIPS140-2
FUTURE: Aktuell höchste Sicherheitsstufe, ältere Clients werden sich nicht mehr verbinden können
Diese Policies sind „one-size-fits-all“. Eine feinere Anpassung ist möglich, es lassen sich aber auch eigene Crypto-Policies auf der grünen Wiese erstellen.
Folgende Ciphersuites und Protokolle sind nicht mehr verfügbar:
All binary field ECC curves (seit RHEL 6)
All ECC curves < 224 bits (seit RHEL 6)
All export grade cipher suites (seit RHEL 7)
DES (seit RHEL 7)
MD5 in signatures (seit RHEL 7)
SSLv2 (seit RHEL 7)
SSLv3 (seit RHEL 8)
Noch möglich, aber in allen Policies abgeschaltet:
DH with parameters < 1024 bits
RSA with key size < 1024 bits
Camellia
ARIA
SEED
IDEA
Integrity-only cipher suites
TLS CBC mode cipher suites using SHA-384 HMAC
AES-CCM8
All ECC curves incompatible with TLS 1.3, including secp256k1
IKEv1 (seit RHEL 8)
Siehe auch
Crypto-Policies im Vergleich
LEGACY |
DEFAULT |
FIPS |
FUTURE |
|
---|---|---|---|---|
3DES |
yes |
no |
no |
no |
CBC mode ciphers |
yes |
yes |
yes |
no |
DH |
min. 1024-bit |
min. 2048-bit |
min. 2048-bit |
min. 3072-bit |
DSA |
yes |
no |
no |
no |
IKEv1 |
no |
no |
no |
no |
RC4 |
yes |
no |
no |
no |
RSA |
min. 1024-bit |
min. 2048-bit |
min. 2048-bit |
min. 3072-bit |
SHA-1 and SHA-224 signatures in certificates |
yes |
yes |
yes |
no |
SHA-1 in digital signatures |
yes |
yes |
no |
no |
Symmetric ciphers with keys < 256 bits |
yes |
yes |
yes |
no |
TLS v1.0 |
yes |
no |
no |
no |
TLS v1.1 |
yes |
no |
no |
no |
Crypto-Policy setzen
Welche Crypto-Policy wird gerade verwendet?
update-crypto-policies --show
Crypto-Policy auf FUTURE setzen:
update-crypto-policies --set FUTURE
reboot
update-crypto-policies --show
Crypto-Policy auf FIPS setzen:
fips-mode-setup --enable
# Kernel initramdisks are being regenerated. This might take some time.
reboot
fips-mode-setup --check
Achtung
Das EPEL-Repository funktioniert Stand 2020-12 unter der FUTURE Crypto-Policy nicht. Fehlermeldung: SSL certificate problem: CA certificate key too weak
. Das Problem ist, dass RSA-Keys > 3072 Bit verlangt werden. Das Zertifikat auf https://download.fedoraproject.org erfüllt dies, dessen Intermediate-Zertifikate von digicert jedoch nicht (diese sind bei 2048 Bit).
Die einzelnen Crypto-Settings lassen sich in den Policy-Dateien einsehen:
cat /usr/share/crypto-policies/policies/FUTURE.pol
Crypto-Policy anpassen
Erst ab CentOS 8.2 möglich: Um eine bestehende Crypto-Policy anzupassen, müssen sogenannte Modifier-Dateien mit der Endung pmod
und einem Dateinamen in Grossbuchstaben (!!) in /etc/crypto-policies/policies/modules
abgelegt werden. Zum Deaktivieren von Einstellungen wird ein Minuszeichen (-
), zum Aktivieren/Hinzufügen ein Pluszeichen (+
) vorangestellt.
Im Beispiel sollen in der DEFAULT-Policy die Key-Exchange-Mechanismen RSA und PSK abgeschaltet werden, da sie keine Perfect-Forward-Secrecy unterstützen. Zusätzlich werden noch weitere Veränderungen an der Crypto-Policy vorgenommen:
key_exchange = -RSA -PSK
sha1_in_certs = 0
min_rsa_size = 3072
cipher = -CAMELLIA-256-GCM -CAMELLIA-256-CBC -CAMELLIA-128-GCM -CAMELLIA-128-CBC
update-crypto-policies --show
# DEFAULT
update-crypto-policies --set DEFAULT:NO-PFS-KEX:MYCRYPTO1:NO-CAMELLIA-CIPHER
reboot
update-crypto-policies --show
Tipp
Am nachvollziehbarsten ist es, beispielsweise /usr/share/crypto-policies/policies/FUTURE.pol
nach /etc/crypto-policies/policies/modules/LINUXFABRIK-FUTURE.pmod
zu kopieren, anzupassen und diese per update-crypto-policies --set FUTURE:LINUXFABRIK-FUTURE
zu verwenden.
Built on 2024-11-18