BEZEICHNUNG

crypto-policies - Überblick über systemweite Krypto-Richtlinien

BESCHREIBUNG

Die Sicherheit kryptographischer Komponenten des Betriebssystems bleibt im Laufe der Zeit nicht konstant. Algorithmen, wie kryptographisches Hashen und Verschlüsseln, haben typischerweise eine Lebensdauer, nach der sie als zu riskant oder sogar klar unsicher betrachtet werden. Das bedeutet, das solche Einstellungen aus den Voreinstellungen stufenweise herausgenommen oder komplett deaktiviert werden müssen, falls sie ein nicht reparierbares Problem hervorrufen würden.
 
Während in der Vergangenheit die Algorithmen nicht konsistent deaktiviert wurden und verschiedene Anwendungen verschiedene Richtlinien zugrunde legten, erlauben es die systemweiten Krypto-Richtlinien, denen die Krypto-Kernkomponenten folgen, das konsistente und systemweite Markieren von Algorithmen als veraltet und deren Deaktivierung.
 
Die einzelnen Richtlinienstufen ( DEFAULT, LEGACY, FUTURE und FIPS) sind im Paket enthalten. In der Zukunft wird es auch einen Mechanismus zur leichten Erstellung und dem leichten Einsatz von Richtlinien, die vom Systemadministrator oder einem Drittparteienlieferanten definiert wurden, geben.
 
Zur Begründung siehe RFC 7457 für eine Liste von Angriffen, die Nutzen aus veralteten Kryptoalgorithmen ziehen.

ABGEDECKTE ANWENDUNGEN

Crypto-policies gelten für die Konfiguration der kryptographischen Kern-Subsysteme und decken die Protokolle TLS, IKE, IPSec, DNSSec und Kerberos ab, d.h. die unterstützten sicheren Kommunikationsprotokolle im grundlegenden Betriebssystem.
 
Sobald eine Anwendung im Betriebssystem ausgeführt wird, folgt sie der Vorgabe oder der ausgewählten Richtlinie und lehnt es ab, auf Algorithmen und Protokolle zurückzufallen, die nicht innerhalb der Richtlinie liegen, außer der Anwender hat dies ausdrücklich erbeten. Das bedeutet, dass die Richtlinie auf das Standardverhalten der Anwendungen angewandt wird, wenn diese innerhalb der vom System bereitgestellten Konfiguration betrieben werden, der Benutzer dies aber für Anwendungen gezielt außer Kraft setzen kann.
 
Die Richtlinien stellen derzeit Einstellungen für die folgenden Anwendungen und Bibliotheken bereit:
 
BIND-DNS-Nameserver-Daemon
 
GnuTLS-TLS-Bibliothek
 
OpenJDK-Laufzeitumgebung
 
Kerberos 5-Bibliothek
 
Libreswan-IPsec- und IKE-Protokollimplementierung
 
NSS-TLS-Bibliothek
 
OpenSSH-SSH2-Protokollimplementierung
 
OpenSSL-TLS-Bibliothek
 
libssh-SSH2-Protokollimplementierung
 
Anwendungen, die die obigen Bibliotheken und Werkzeuge verwenden, sind von den kryptographischen Richtlinien abgedeckt, außer dies wird durch ausdrückliche Konfiguration unterbunden.

BEREITGESTELLTE RICHTLINIENSTUFEN

LEGACY
Diese Richtlinie stellt die maximale Kompatibilität mit herkömmlichen Systemen bereit; sie ist weniger sicher und unterstützt die Protokolle TLS 1.0, TLS 1.1 und SSH2 und neuere. Die Algorithmen DSA, 3DES und RC4 sind erlaubt, während die Parameter von RSA und Diffie-Hellman akzeptiert werden, wenn sie größer als 1023 bit sind. Diese Stufe stellt mindestens 64-Bit-Sicherheit bereit.
 
•MACs: alle HMAC mit SHA-1 oder besser und alle modernen MACs ( Poly1305 usw.)
 
•Kurven: alle Primzahlen >= 255 bit (einschließlich Bernstein-Kurven)
 
•Signaturalgorithmen: mit Hash SHA1 oder besser ( DSA erlaubt)
 
TLS-Chiffren: alle verfügbaren >= 112-bit-Schlüssel, >= 128-bit-Block (einschließlich RC4 und 3DES)
 
•Nicht-TLS-Chiffren: wie bei TLS-Chiffren mit hinzugefügtem Camellia
 
•Schlüsselaustausch: ECDHE, RSA, DHE
 
DH-Parametergröße: >= 1023
 
RSA-Schlüsselgröße: >= 1023
 
DSA-Parametergröße: >= 1023
 
TLS-Protokolle: TLS >= 1.0, DTLS >= 1.0
DEFAULT
Die Richtlinie DEFAULT ist eine vernünftige Vorgaberichtlinie gemäß heutigen Standards. Sie erlaubt die Protokolle TLS 1.0, TLS 1.1, TLS 1.2 und TLS 1.3 sowie IKEv2 und SSH2. Die Parameter von Diffie-Hellman werden akzeptiert, falls sie mindestens 1023 bit lang sind. Die Stufe stellt mindestens 80-Bit-Sicherheit bereit.
 
•MACs: alle HMAC mit SHA-1 oder besser und alle modernen MACs ( Poly1305 usw.)
 
•Kurven: alle Primzahlen >= 255 bit (einschließlich Bernstein-Kurven)
 
•Signatur-Algorithmen: mit SHA-1-Hash oder besser (kein DSA)
 
TLS-Chiffren: >= 128-bit-Schlüssel, >= 128-bit-Block ( AES, ChaCha20, einschließlich AES-CBC)
 
•nicht-TLS-Chiffren: wie bei TLS-Chiffren mit hinzugefügtem Camellia
 
•Schlüsselaustausch: ECDHE, RSA, DHE (kein DHE-DSS)
 
DH-Parametergröße: >= 1023
 
RSA-Schlüsselgrößen: >= 2048
 
TLS-Protokolle: TLS >= 1.0, DTLS >= 1.0
NEXT
Die NEXT-Richtlinie ist eine Richtlinie, die für die zukünftige Veröffentlichung des Betriebssystems vorbereitet wurde, so dass sie leicht getestet werden kann. Sie erlaubt die Protokolle TLS 1.2 und TLS 1.3 sowie IKEv2 und SSH2. Die Parameter für RSA und Diffie-Hellman werden akzeptiert, falls sie größer als 2047 bit sind. Die Stufe stellt mindestens 112-Bit-Sicherheit bereit, mit der Ausnahme von SHA-1-Signaturen, die für DNSSec und andere noch verbreitete veraltete Anwendung von SHA-1-Signaturen benötigt werden.
 
•MACs: alle HMAC mit SHA-1 oder besser und alle modernen MACs ( Poly1305 usw.)
 
•Kurven: alle Primzahlen >= 255 bit (einschließlich Bernstein-Kurven)
 
•Signatur-Algorithmen: mit SHA-1-Hash oder besser (kein DSA)
 
TLS-Chiffren: >= 128-bit-Schlüssel, >= 128-bit-Block ( AES, ChaCha20, einschließlich AES-CBC)
 
•nicht-TLS-Chiffren: wie bei TLS-Chiffren mit hinzugefügtem Camellia
 
•Schlüsselaustausch: ECDHE, RSA, DHE (kein DHE-DSS)
 
DH-Parametergröße: >= 2048
 
RSA-Schlüsselgrößen: >= 2048
 
TLS-Protokolle: TLS >= 1.2, DTLS >= 1.2
FUTURE
Eine konservative Sicherheitsstufe, von der angenommen wird, dass sie allen zukünftigen Angriffen in der nächsten Zeit widerstehen wird. Diese Stufe erlaubt keine Verwendung der SHA-1-Signaturalgorithmen. Diese Stufe stellt auch einige (unvollständige) Vorbereitungen für Post-Quanten-Verschlüsselungsunterstützung in Form von symmetrischen 256-bit-Verschlüsselungsanforderungen bereit. Die Parameter für RSA und Diffie-Hellman werden akzeptiert, wenn sie größer als 3071 bit sind. Die Stufe stellt mindestens 128-bit-Sicherheit bereit.
 
•MACs: alle HMAC mit SHA-256 oder besser und alle modernen MACs ( Poly1305 usw.)
 
•Kurven: alle Primzahlen >= 255 bit (einschließlich Bernstein-Kurven)
 
•Signatur-Algorithmen: mit SHA-256-Hash oder besser (kein DSA)
 
TLS-Chiffren: >= 256-bit-Schlüssel, >= 128-bit-Block, nur Chiffren mit authentifizierter Verschlüsselung (AE)
 
•nicht-TLS-Chiffren: wie bei TLS-Chiffren mit hinzugefügten nicht-AE-Chiffren und Camellia
 
•Schlüsselaustausch: ECDHE, DHE (kein DHE-DSS, kein RSA)
 
DH-Parametergröße: >= 3072
 
RSA-Schlüsselgrößen: >= 3072
 
TLS-Protokolle: TLS >= 1.2, DTLS >= 1.2
FIPS
Eine Stufe, die die FIPS 140-2-Anforderungen erfüllt. Diese Richtlinie wird intern vom Werkzeug fips-mode-setup(8) verwandt, das das System in den FIPS 140-2-Konformitätsmodus umschalten kann. Diese Stufe stellt mindestens 112-bit-Sicherheit bereit.
 
•MACs: alle HMAC mit SHA1 oder besser
 
•Kurven: alle Primzahlen >= 256 bit
 
•Signatur-Algorithmen: mit SHA-256-Hash oder besser (kein DSA)
 
TLS-Chiffren: >= 128-bit Schlüssel, >= 128-bit-Block ( AES, einschließlich AES-CBC)
 
•nicht-TLS-Chiffren: wie bei TLS-Chiffren
 
•Schlüsselaustausch: ECDHE, DHE (kein DHE-DSS, kein RSA)
 
DH-Parametergröße: >= 2048
 
RSA-Parametergröße: >= 2048
 
TLS-Protokolle: TLS >= 1.2, DTLS >= 1.2
EMPTY
Alle kryptographischen Algorithmen sind deaktiviert (nur zur Fehlersuche, verwenden Sie das nicht).

KRYPTO-RICHTLINIEN-DEFINITIONSFORMAT

Die Kryptorichtlinien-Definitionsdateien haben eine einfache Syntax, die der Syntax einer INI-Datei Schlüssel = Wert folgt und folgende besondere Eigenschaften hat:
 
•Kommentare werden durch ein #-Zeichen angezeigt. Alles, was diesem Zeichen auf der Zeile folgt, wird ignoriert.
 
•Rückwärtsschrägstrichzeichen \, denen sofort ein Zeilenendezeichen folgt, stellen eine Zeilenfortführung dar. Die nachfolgende Zeile wird an die aktuelle Zeile angehängt, nachdem der Rückwärtsschrägstrich und das Zeilenendezeichen entfernt wurden.
 
•Gültige Typen können entweder dezimale Ganzzahlen, beliebige Zeichenketten oder Listen von Zeichenketten ohne Leerraumzeichen sein, die durch eine beliebige Anzahl von Leerraumzeichen getrennt werden.
 
Die erlaubten Schlüssel sind:
 
mac: Liste der erlaubten MAC-Algorithmen
 
group: Liste der erlaubten Gruppen oder elliptischen Kurven für den Schlüsselaustausch
 
hash: Liste der erlaubten kryptographischen Algorithmen für Hashes (Nachrichtenzusammenfassungen)
 
sign: Liste der erlaubten Signaturalgorithmen
 
tls_cipher: Liste der erlaubten symmetrischen Verschlüsselungsalgorithmen (einschließlich der Modi) für die Anwendung mit dem TLS-Protokoll
 
cipher: Liste der erlaubten symmetrischen Verschlüsselungsalgorithmen (einschließlich der Modi) für die Anwendung mit den anderen Protokollen
 
key_exchange: Liste der erlaubten Schlüsselaustauschalgorithmen
 
protocol: Liste der erlaubten TLS- und DTLS-Protokollversionen
 
ike_protocol: Liste der erlaubten IKE-Protokollversionen
 
min_tls_version: Niedrigste erlaubte TLS-Protokollversion
 
min_dtls_version: Niedrigste erlaubte DTLS-Protokollversion
 
min_dh_size: Ganzzahlwert der minimalen Anzahl an Bits der Parameter für den DH-Schlüsselaustausch
 
min_dsa_size: Ganzzahlwert der minimalen Anzahl an Bits für DSA-Schlüssel
 
min_rsa_size: Ganzzahlwert der minimalen Anzahl an Bits für RSA-Schlüssel
 
sha1_in_certs: Wert von 1, falls SHA1 in Zertifikatssignaturen erlaubt ist und 0 andernfalls (gilt nur für das GnuTLS Backend)
 
Die vollständigen Richtliniendateien habe die Endung .pol, die Richtlinien-Moduldefinitionsdateien haben die Endung .pmod. In den Richtlinien-Moduldateien müssen nicht alle oben aufgeführten Werte für alle Schlüssel gesetzt sein.
 
Die Listen, die in der Grundlage (den vollständigen Richtlinen) gesetzt sind, werden durch die in den Moduldateien festgelegten Listen wie folgt verändert:
 
-Listeneintrag: Der Listeneintrag wird aus der in der grundlegenden Datei festgelegten Liste entfernt.
 
+Listeneintrag: Der Listeneintrag wird am Anfang der in der grundlegenden Datei festgelegten Liste eingefügt. Die Einfügungen erfolgen in der Reihenfolge des Auftauchens in der Richtlinienmoduldatei, so dass die abschließende Reihenfolge in der Liste invertiert sein wird.
 
Listeneintrag oder Listeneintrag +: Der Listeneintrag wird am Ende der in der grundlegenden Datei festgelegten Liste angehängt.
 
Werte, die keine Listen sind, werden aus den Richtliniendateien heraus einfach außer Kraft gesetzt.

BEFEHLE

update-crypto-policies(8)
Dieser Befehl verwaltet die für die verschiedenen kryptographischen Backends verfügbaren Richtlinien und erlaubt es dem Systemverwalter, die aktive Stufe der kryptographischen Richtlinien zu ändern.
fips-mode-setup(8)
Dieser Befehl erlaubt es dem Systemadministrator, den System-FIPS-Modus zu aktivieren oder deaktivieren und auch die kryptographische Richtlinienstufe FIPS anzuwenden, die die erlaubten Algorithmen und Protokolle auf die in der FIPS 140-2 geforderten beschränkt.

ANMERKUNGEN

Ausnahmen:
 
•Anwendungen in der Sprache Go folgen der systemweiten Richtlinie noch nicht.
 
GnuPG-2-Anwendungen folgen der systemweiten Richtlinie nicht.
 
Im Allgemeinen werden nur übertragene Daten bei der systemweiten Richtlinie abgedeckt.
 
Falls der Systemadministrator die systemweite Richtlinienstufe mit dem Befehl update-crypto-policies(8) ändert, wird empfohlen, das System neu zu starten, da die einzelnen zugrundeliegenden Bibliotheken ihre Konfigurationsdateien normalerweise während ihrer Initialisierung lesen. Die Änderungen der Richtlinienstufe finden daher in den meisten Fällen nur statt, wenn die Anwendungen, die die zugrundeliegenden Bibliotheken verwenden, neu gestartet werden.
 
Entfernte Chiffre-Suiten und Protokolle
 
Die folgenden Chiffre-Suiten und Protokolle sind vollständig aus den oben aufgeführten kryptographischen Kern-Bibliotheken entfernt:
 
DES
 
•Alle für den Export geeigneten Chiffre-Suiten
 
MD5 in Signaturen
 
SSLv2
 
SSLv3
 
•Alle ECC-Kurven kleiner als 224 bit
 
•Alle Binärfeld-ECC-Kurven
 
Chiffren-Suiten und Protokolle, die auf allen Richtlinien-Stufen deaktiviert sind
 
Die folgenden Chiffren-Suiten und Protokolle sind verfügbar, aber in allen Krypto-Richtlinien-Stufen deaktiviert. Sie können nur durch explizite Konfiguration von einzelnen Anwendungen aktiviert werden:
 
DH mit Parametern < 1024 bit
 
RSA mit Schlüsselgrößen < 1024 bit
 
Camellia
 
ARIA
 
SEED
 
IDEA
 
•Reine Integritäts-Chiffre-Suiten
 
TLS CBC-Modus-Chiffre-Suiten, die SHA-384 HMAC verwenden
 
AES-CCM8
 
•Alle ECC, die inkompatibel zu TLS 1.3 sind, einschließlich secp256k1
 
IKEv1

DATEIEN

/etc/crypto-policies/back-ends
Die einzelnen kryptographischen Backend-Konfigurationsdateien. Normalerweise werden sie auf die im Paket crypto-policies ausgelieferte Konfiguration verlinkt, außer eine Konfiguration aus local.d wird hinzugefügt.
/etc/crypto-policies/config
Die aktiv auf dem System gesetzte Krypto-Richtlinien-Stufe.
/etc/crypto-policies/local.d
Zusätzliche Konfiguration, die von anderen Paketen ausgeliefert oder vom Systemadministrator erstellt wurde. Die Inhalte der <back-end>-file.config wird an die Konfiguration vom Richtlinien-Backend, wie es vom Paket crypto-policies ausgeliefert wurde, angehängt.

SIEHE AUCH

update-crypto-policies(8), fips-mode-setup(8)

AUTOR

Geschrieben von Tomáš Mráz.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <[email protected]> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer

Recommended readings

Pages related to crypto-policies you should read also:

Questions & Answers

Helpful answers and articles about crypto-policies you may found on these sites:
Stack Overflow Server Fault Super User Unix & Linux Ask Ubuntu Network Engineering DevOps Raspberry Pi Webmasters Google Search