import crypto-policies-20190807-1.git9b1477b.el8
This commit is contained in:
parent
f73a9c7c88
commit
06e5f99c81
@ -1 +1 @@
|
|||||||
fde6f5eef3fa66d2b12ad3291cfef680727fdc42 SOURCES/crypto-policies-git9a35207.tar.gz
|
7800b6d56a63b575dfb7064bc33539af2c50d1cf SOURCES/crypto-policies-git9b1477b.tar.gz
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
SOURCES/crypto-policies-git9a35207.tar.gz
|
SOURCES/crypto-policies-git9b1477b.tar.gz
|
||||||
|
@ -1,71 +0,0 @@
|
|||||||
commit 2ff4c6d3791a0ad581181997ee5a04b83b7c7341
|
|
||||||
Author: Tomas Mraz <tmraz@fedoraproject.org>
|
|
||||||
Date: Thu Jan 31 16:23:52 2019 +0100
|
|
||||||
|
|
||||||
java: Allow incorrectly disabled RSA certificates in TLS
|
|
||||||
|
|
||||||
The FUTURE and NEXT policies incorrectly disabled RSA certificates,
|
|
||||||
allow them.
|
|
||||||
|
|
||||||
diff --git a/back-ends/java.pl b/back-ends/java.pl
|
|
||||||
index 0789251..325544a 100644
|
|
||||||
--- a/back-ends/java.pl
|
|
||||||
+++ b/back-ends/java.pl
|
|
||||||
@@ -72,7 +72,7 @@ my %key_exchange_not_map = (
|
|
||||||
'EXPORT' => 'RSA_EXPORT, DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_DSS_EXPORT, DH_RSA_EXPORT',
|
|
||||||
'DH' => 'DH_RSA, DH_DSS',
|
|
||||||
'ANON' => 'DH_anon, ECDH_anon',
|
|
||||||
- 'RSA' => 'RSA',
|
|
||||||
+ 'RSA' => 'TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_GCM_SHA256',
|
|
||||||
'DHE-RSA' => 'DHE_RSA',
|
|
||||||
'DHE-DSS' => 'DHE_DSS',
|
|
||||||
'ECDHE' => 'ECDHE',
|
|
||||||
diff --git a/tests/outputs/EMPTY-java.txt b/tests/outputs/EMPTY-java.txt
|
|
||||||
index 0011734..3cf0e2a 100644
|
|
||||||
--- a/tests/outputs/EMPTY-java.txt
|
|
||||||
+++ b/tests/outputs/EMPTY-java.txt
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
jdk.tls.ephemeralDHKeySize=0
|
|
||||||
jdk.certpath.disabledAlgorithms=MD2, SHA256, SHA384, SHA512, SHA3_256, SHA3_384, SHA3_512, SHA1, MD5, DSA, RSA keySize < 0
|
|
||||||
-jdk.tls.disabledAlgorithms=DH keySize < 0, SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2, ECDHE, RSA, DHE_RSA, DHE_DSS, RSA_EXPORT, DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_DSS_EXPORT, DH_RSA_EXPORT, DH_anon, ECDH_anon, DH_RSA, DH_DSS, ECDH, AES_256_GCM, AES_256_CCM, AES_128_GCM, AES_128_CCM, AES_256_CBC, AES_128_CBC, 3DES_EDE_CBC, DES_CBC, RC4_40, RC4_128, DES40_CBC, RC2, HmacSHA1, HmacSHA256, HmacSHA384, HmacSHA512, HmacMD5
|
|
||||||
+jdk.tls.disabledAlgorithms=DH keySize < 0, SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2, ECDHE, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_GCM_SHA256, DHE_RSA, DHE_DSS, RSA_EXPORT, DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_DSS_EXPORT, DH_RSA_EXPORT, DH_anon, ECDH_anon, DH_RSA, DH_DSS, ECDH, AES_256_GCM, AES_256_CCM, AES_128_GCM, AES_128_CCM, AES_256_CBC, AES_128_CBC, 3DES_EDE_CBC, DES_CBC, RC4_40, RC4_128, DES40_CBC, RC2, HmacSHA1, HmacSHA256, HmacSHA384, HmacSHA512, HmacMD5
|
|
||||||
jdk.tls.legacyAlgorithms=
|
|
||||||
diff --git a/tests/outputs/FIPS-java.txt b/tests/outputs/FIPS-java.txt
|
|
||||||
index 808778c..d9fe8aa 100644
|
|
||||||
--- a/tests/outputs/FIPS-java.txt
|
|
||||||
+++ b/tests/outputs/FIPS-java.txt
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
jdk.tls.ephemeralDHKeySize=2048
|
|
||||||
jdk.certpath.disabledAlgorithms=MD2, SHA1, MD5, DSA, RSA keySize < 2048
|
|
||||||
-jdk.tls.disabledAlgorithms=DH keySize < 2048, SSLv2, SSLv3, TLSv1, TLSv1.1, RSA, DHE_DSS, RSA_EXPORT, DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_DSS_EXPORT, DH_RSA_EXPORT, DH_anon, ECDH_anon, DH_RSA, DH_DSS, ECDH, 3DES_EDE_CBC, DES_CBC, RC4_40, RC4_128, DES40_CBC, RC2, HmacMD5
|
|
||||||
+jdk.tls.disabledAlgorithms=DH keySize < 2048, SSLv2, SSLv3, TLSv1, TLSv1.1, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_GCM_SHA256, DHE_DSS, RSA_EXPORT, DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_DSS_EXPORT, DH_RSA_EXPORT, DH_anon, ECDH_anon, DH_RSA, DH_DSS, ECDH, 3DES_EDE_CBC, DES_CBC, RC4_40, RC4_128, DES40_CBC, RC2, HmacMD5
|
|
||||||
jdk.tls.legacyAlgorithms=
|
|
||||||
diff --git a/tests/outputs/FUTURE-java.txt b/tests/outputs/FUTURE-java.txt
|
|
||||||
index fd2db04..9d57348 100644
|
|
||||||
--- a/tests/outputs/FUTURE-java.txt
|
|
||||||
+++ b/tests/outputs/FUTURE-java.txt
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
jdk.tls.ephemeralDHKeySize=3072
|
|
||||||
jdk.certpath.disabledAlgorithms=MD2, SHA1, MD5, DSA, RSA keySize < 3072
|
|
||||||
-jdk.tls.disabledAlgorithms=DH keySize < 3072, SSLv2, SSLv3, TLSv1, TLSv1.1, RSA, DHE_DSS, RSA_EXPORT, DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_DSS_EXPORT, DH_RSA_EXPORT, DH_anon, ECDH_anon, DH_RSA, DH_DSS, ECDH, AES_128_GCM, AES_128_CCM, AES_128_CBC, 3DES_EDE_CBC, DES_CBC, RC4_40, RC4_128, DES40_CBC, RC2, HmacSHA1, HmacMD5
|
|
||||||
+jdk.tls.disabledAlgorithms=DH keySize < 3072, SSLv2, SSLv3, TLSv1, TLSv1.1, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_GCM_SHA256, DHE_DSS, RSA_EXPORT, DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_DSS_EXPORT, DH_RSA_EXPORT, DH_anon, ECDH_anon, DH_RSA, DH_DSS, ECDH, AES_128_GCM, AES_128_CCM, AES_128_CBC, 3DES_EDE_CBC, DES_CBC, RC4_40, RC4_128, DES40_CBC, RC2, HmacSHA1, HmacMD5
|
|
||||||
jdk.tls.legacyAlgorithms=
|
|
||||||
diff -up crypto-policies/tests/java.pl.java-fix crypto-policies/tests/java.pl
|
|
||||||
--- crypto-policies/tests/java.pl.java-fix 2018-12-17 17:01:44.000000000 +0100
|
|
||||||
+++ crypto-policies/tests/java.pl 2019-02-08 10:05:28.152358692 +0100
|
|
||||||
@@ -45,14 +45,7 @@ foreach my $policy (@profiles::common::p
|
|
||||||
}
|
|
||||||
|
|
||||||
my $lines=`cat $TMPFILE2|wc -l`;
|
|
||||||
- if ("$policy" eq "EMPTY") {
|
|
||||||
- if ($lines >= 2) { # we allow the SCSV
|
|
||||||
- print "Empty policy has ciphersuites!\n";
|
|
||||||
- print "Policy: $tmp\n";
|
|
||||||
- system("cat $TMPFILE2");
|
|
||||||
- exit 1;
|
|
||||||
- }
|
|
||||||
- } else {
|
|
||||||
+ if ("$policy" ne "EMPTY") {
|
|
||||||
system("grep \"TLS_EMPTY_RENEGOTIATION_INFO_SCSV\" $TMPFILE2 >/dev/null 2>&1");
|
|
||||||
|
|
||||||
if ($? != 0) {
|
|
@ -1,232 +0,0 @@
|
|||||||
diff -up crypto-policies/back-ends/libreswan.pl.libreswan-fix crypto-policies/back-ends/libreswan.pl
|
|
||||||
--- crypto-policies/back-ends/libreswan.pl.libreswan-fix 2018-12-17 17:01:44.000000000 +0100
|
|
||||||
+++ crypto-policies/back-ends/libreswan.pl 2019-02-18 10:34:57.525777928 +0100
|
|
||||||
@@ -26,7 +26,9 @@ sub append {
|
|
||||||
|
|
||||||
my %group_map = (
|
|
||||||
'X448' => '',
|
|
||||||
- 'X25519' => '', #dh31 - not in f28
|
|
||||||
+ 'X25519' => '',
|
|
||||||
+# Disabled for now as it cannot be prioritized over others
|
|
||||||
+# 'X25519' => 'dh31',
|
|
||||||
'SECP256R1' => 'dh19',
|
|
||||||
'SECP384R1' => 'dh20',
|
|
||||||
'SECP521R1' => 'dh21',
|
|
||||||
@@ -38,31 +40,42 @@ my %group_map = (
|
|
||||||
'FFDHE-8192' => 'dh18'
|
|
||||||
);
|
|
||||||
|
|
||||||
+my %cipher_map = (
|
|
||||||
+ 'AES-256-CBC' => 'aes256',
|
|
||||||
+ 'AES-128-CBC' => 'aes128',
|
|
||||||
+ 'AES-256-GCM' => 'aes_gcm256',
|
|
||||||
+ 'AES-128-GCM' => 'aes_gcm128',
|
|
||||||
+ 'CHACHA20-POLY1305' => 'chacha20_poly1305',
|
|
||||||
+# Unused for IKEv2
|
|
||||||
+# '3DES-CBC' => '3des',
|
|
||||||
+);
|
|
||||||
+
|
|
||||||
my %cipher_prf_map = (
|
|
||||||
- 'AES-256-CBC-HMAC-SHA2-512' => 'aes256-sha2_512',
|
|
||||||
- 'AES-256-CBC-HMAC-SHA2-256' => 'aes256-sha2_256',
|
|
||||||
- 'AES-128-CBC-HMAC-SHA2-256' => 'aes128-sha2_256',
|
|
||||||
- 'AES-256-CBC-HMAC-SHA1' => 'aes256-sha1',
|
|
||||||
- 'AES-128-CBC-HMAC-SHA1' => 'aes128-sha1',
|
|
||||||
- 'AES-256-GCM-HMAC-SHA2-512' => 'aes_gcm256-sha2_512',
|
|
||||||
- 'AES-256-GCM-HMAC-SHA2-256' => 'aes_gcm256-sha2_256',
|
|
||||||
- 'AES-128-GCM-HMAC-SHA2-512' => 'aes_gcm128-sha2_512',
|
|
||||||
- 'AES-128-GCM-HMAC-SHA2-256' => 'aes_gcm128-sha2_256',
|
|
||||||
- 'CHACHA20-POLY1305-HMAC-SHA2-512' => 'chacha20_poly1305-sha2_512',
|
|
||||||
- 'CHACHA20-POLY1305-HMAC-SHA2-256' => 'chacha20_poly1305-sha2_256',
|
|
||||||
- '3DES-CBC-HMAC-SHA1' => '3des-sha1',
|
|
||||||
+ 'AES-256-CBC-HMAC-SHA2-512' => 'sha2_512',
|
|
||||||
+ 'AES-256-CBC-HMAC-SHA2-256' => 'sha2_256',
|
|
||||||
+ 'AES-128-CBC-HMAC-SHA2-256' => 'sha2_256',
|
|
||||||
+# Not needed for IKEv2
|
|
||||||
+# 'AES-256-CBC-HMAC-SHA1' => 'sha1',
|
|
||||||
+# 'AES-128-CBC-HMAC-SHA1' => 'sha1',
|
|
||||||
+ 'AES-256-GCM-HMAC-SHA2-512' => 'sha2_512',
|
|
||||||
+ 'AES-256-GCM-HMAC-SHA2-256' => 'sha2_256',
|
|
||||||
+ 'AES-128-GCM-HMAC-SHA2-512' => 'sha2_512',
|
|
||||||
+ 'AES-128-GCM-HMAC-SHA2-256' => 'sha2_256',
|
|
||||||
+ 'CHACHA20-POLY1305-HMAC-SHA2-512' => 'sha2_512',
|
|
||||||
+ 'CHACHA20-POLY1305-HMAC-SHA2-256' => 'sha2_256',
|
|
||||||
+# '3DES-CBC-HMAC-SHA1' => 'sha1',
|
|
||||||
);
|
|
||||||
|
|
||||||
my %cipher_mac_map = (
|
|
||||||
- 'AES-256-CBC-HMAC-SHA2-512' => 'aes256-sha2_512',
|
|
||||||
- 'AES-256-CBC-HMAC-SHA2-256' => 'aes256-sha2_256',
|
|
||||||
- 'AES-128-CBC-HMAC-SHA2-256' => 'aes128-sha2_256',
|
|
||||||
- 'AES-256-CBC-HMAC-SHA1' => 'aes256-sha1',
|
|
||||||
- 'AES-128-CBC-HMAC-SHA1' => 'aes128-sha1',
|
|
||||||
- 'AES-256-GCM-AEAD' => 'aes_gcm256',
|
|
||||||
- 'AES-128-GCM-AEAD' => 'aes_gcm128',
|
|
||||||
- 'CHACHA20-POLY1305-AEAD' => 'chacha20_poly1305',
|
|
||||||
- '3DES-CBC-HMAC-SHA1' => '3des-sha1',
|
|
||||||
+ 'AES-256-CBC-HMAC-SHA2-512' => 'sha2_512',
|
|
||||||
+ 'AES-256-CBC-HMAC-SHA2-256' => 'sha2_256',
|
|
||||||
+ 'AES-128-CBC-HMAC-SHA2-256' => 'sha2_256',
|
|
||||||
+ 'AES-256-CBC-HMAC-SHA1' => 'sha1',
|
|
||||||
+ 'AES-128-CBC-HMAC-SHA1' => 'sha1',
|
|
||||||
+ 'AES-256-GCM-AEAD' => '',
|
|
||||||
+ 'AES-128-GCM-AEAD' => '',
|
|
||||||
+ 'CHACHA20-POLY1305-AEAD' => '',
|
|
||||||
+# '3DES-CBC-HMAC-SHA1' => '3des-sha1',
|
|
||||||
);
|
|
||||||
|
|
||||||
my %protocol_map = (
|
|
||||||
@@ -147,35 +160,52 @@ sub generate_temp_policy() {
|
|
||||||
$tmp = '';
|
|
||||||
|
|
||||||
my $cipher;
|
|
||||||
+ my $cm;
|
|
||||||
my $group;
|
|
||||||
my $mac;
|
|
||||||
+ my $mm;
|
|
||||||
my $combo;
|
|
||||||
|
|
||||||
%mac_prio_map = %mac_ike_prio_map;
|
|
||||||
my @sorted_mac_list = sort compare @mac_list;
|
|
||||||
|
|
||||||
- foreach (@group_list) {
|
|
||||||
- $group = $group_map{$_};
|
|
||||||
- if (!defined($group) || $group eq '') {
|
|
||||||
+
|
|
||||||
+ foreach (@cipher_list) {
|
|
||||||
+ $cipher = $_;
|
|
||||||
+ $cm = $cipher_map{$cipher};
|
|
||||||
+ if (!defined($cm)) {
|
|
||||||
+# print STDERR "libreswan: unknown cipher: $cipher\n";
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
+ $combo = $cm."-";
|
|
||||||
+ foreach (@sorted_mac_list) {
|
|
||||||
+ $mac = $_;
|
|
||||||
|
|
||||||
- foreach (@cipher_list) {
|
|
||||||
- $cipher = $_;
|
|
||||||
- foreach (@sorted_mac_list) {
|
|
||||||
- $mac = $_;
|
|
||||||
-
|
|
||||||
- my $cm=$cipher."-".$mac;
|
|
||||||
- $combo = $cipher_prf_map{$cm};
|
|
||||||
-
|
|
||||||
- if (!defined($combo)) {
|
|
||||||
-# print STDERR "libreswan: unknown combo: $cipher-$mac\n";
|
|
||||||
- next;
|
|
||||||
- }
|
|
||||||
+ $mm = $cipher_prf_map{$cipher."-".$mac};
|
|
||||||
|
|
||||||
- append("${combo};${group}", \$tmp);
|
|
||||||
+ if (!defined($mm)) {
|
|
||||||
+# print STDERR "libreswan: unknown combo: $cipher-$mac\n";
|
|
||||||
+ next;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ $combo = $combo.$mm."+";
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ my $lastc = substr($combo, -1);
|
|
||||||
+ if ($lastc eq "-") {
|
|
||||||
+ next;
|
|
||||||
+ }
|
|
||||||
+ # Replace the last + with -
|
|
||||||
+ substr($combo, -1) = "-";
|
|
||||||
+ foreach (@group_list) {
|
|
||||||
+ $group = $group_map{$_};
|
|
||||||
+ if (!defined($group) || $group eq '') {
|
|
||||||
+ next;
|
|
||||||
+ }
|
|
||||||
+ $combo = $combo.$group."+";
|
|
||||||
+ }
|
|
||||||
+ substr($combo, -1) = '';
|
|
||||||
+ append("${combo}", \$tmp);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($tmp ne '') {
|
|
||||||
@@ -189,20 +219,35 @@ sub generate_temp_policy() {
|
|
||||||
$tmp = '';
|
|
||||||
foreach (@cipher_list) {
|
|
||||||
$cipher = $_;
|
|
||||||
+ $cm = $cipher_map{$cipher};
|
|
||||||
+ if (!defined($cm)) {
|
|
||||||
+# print STDERR "libreswan: unknown cipher: $cipher\n";
|
|
||||||
+ next;
|
|
||||||
+ }
|
|
||||||
+ $combo = $cm."-";
|
|
||||||
foreach (@sorted_mac_list) {
|
|
||||||
$mac = $_;
|
|
||||||
|
|
||||||
- my $cm=$cipher."-".$mac;
|
|
||||||
- $combo = $cipher_mac_map{$cm};
|
|
||||||
+ $mm = $cipher_mac_map{$cipher."-".$mac};
|
|
||||||
|
|
||||||
- if (!defined($combo)) {
|
|
||||||
+ if (!defined($mm)) {
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if ($tmp !~ $combo) {
|
|
||||||
- append("${combo}", \$tmp);
|
|
||||||
+ if ($mm eq '') {
|
|
||||||
+ # Special handling for AEAD
|
|
||||||
+ substr($combo, -1) = '+';
|
|
||||||
+ } else {
|
|
||||||
+ $combo = $combo.$mm."+";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ my $lastc = substr($combo, -1);
|
|
||||||
+ if ($lastc eq "-") {
|
|
||||||
+ next;
|
|
||||||
+ }
|
|
||||||
+ substr($combo, -1) = '';
|
|
||||||
+ append("${combo}", \$tmp);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($tmp ne '') {
|
|
||||||
diff -up crypto-policies/tests/outputs/DEFAULT-libreswan.txt.libreswan-fix crypto-policies/tests/outputs/DEFAULT-libreswan.txt
|
|
||||||
--- crypto-policies/tests/outputs/DEFAULT-libreswan.txt.libreswan-fix 2018-12-17 17:01:44.000000000 +0100
|
|
||||||
+++ crypto-policies/tests/outputs/DEFAULT-libreswan.txt 2019-02-18 10:34:57.526777910 +0100
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
conn %default
|
|
||||||
ikev2=insist
|
|
||||||
pfs=yes
|
|
||||||
- ike=aes_gcm256-sha2_512;dh19,aes_gcm256-sha2_256;dh19,chacha20_poly1305-sha2_512;dh19,chacha20_poly1305-sha2_256;dh19,aes256-sha2_512;dh19,aes256-sha2_256;dh19,aes256-sha1;dh19,aes_gcm128-sha2_512;dh19,aes_gcm128-sha2_256;dh19,aes128-sha2_256;dh19,aes128-sha1;dh19,aes_gcm256-sha2_512;dh20,aes_gcm256-sha2_256;dh20,chacha20_poly1305-sha2_512;dh20,chacha20_poly1305-sha2_256;dh20,aes256-sha2_512;dh20,aes256-sha2_256;dh20,aes256-sha1;dh20,aes_gcm128-sha2_512;dh20,aes_gcm128-sha2_256;dh20,aes128-sha2_256;dh20,aes128-sha1;dh20,aes_gcm256-sha2_512;dh21,aes_gcm256-sha2_256;dh21,chacha20_poly1305-sha2_512;dh21,chacha20_poly1305-sha2_256;dh21,aes256-sha2_512;dh21,aes256-sha2_256;dh21,aes256-sha1;dh21,aes_gcm128-sha2_512;dh21,aes_gcm128-sha2_256;dh21,aes128-sha2_256;dh21,aes128-sha1;dh21,aes_gcm256-sha2_512;dh14,aes_gcm256-sha2_256;dh14,chacha20_poly1305-sha2_512;dh14,chacha20_poly1305-sha2_256;dh14,aes256-sha2_512;dh14,aes256-sha2_256;dh14,aes256-sha1;dh14,aes_gcm128-sha2_512;dh14,aes_gcm128-sha2_256;dh14,aes128-sha2_256;dh14,aes128-sha1;dh14,aes_gcm256-sha2_512;dh15,aes_gcm256-sha2_256;dh15,chacha20_poly1305-sha2_512;dh15,chacha20_poly1305-sha2_256;dh15,aes256-sha2_512;dh15,aes256-sha2_256;dh15,aes256-sha1;dh15,aes_gcm128-sha2_512;dh15,aes_gcm128-sha2_256;dh15,aes128-sha2_256;dh15,aes128-sha1;dh15,aes_gcm256-sha2_512;dh16,aes_gcm256-sha2_256;dh16,chacha20_poly1305-sha2_512;dh16,chacha20_poly1305-sha2_256;dh16,aes256-sha2_512;dh16,aes256-sha2_256;dh16,aes256-sha1;dh16,aes_gcm128-sha2_512;dh16,aes_gcm128-sha2_256;dh16,aes128-sha2_256;dh16,aes128-sha1;dh16,aes_gcm256-sha2_512;dh18,aes_gcm256-sha2_256;dh18,chacha20_poly1305-sha2_512;dh18,chacha20_poly1305-sha2_256;dh18,aes256-sha2_512;dh18,aes256-sha2_256;dh18,aes256-sha1;dh18,aes_gcm128-sha2_512;dh18,aes_gcm128-sha2_256;dh18,aes128-sha2_256;dh18,aes128-sha1;dh18
|
|
||||||
- esp=aes_gcm256,chacha20_poly1305,aes256-sha2_512,aes256-sha1,aes256-sha2_256,aes_gcm128,aes128-sha1,aes128-sha2_256
|
|
||||||
+ ike=aes_gcm256-sha2_512+sha2_256-dh19+dh20+dh21+dh14+dh15+dh16+dh18,chacha20_poly1305-sha2_512+sha2_256-dh19+dh20+dh21+dh14+dh15+dh16+dh18,aes256-sha2_512+sha2_256-dh19+dh20+dh21+dh14+dh15+dh16+dh18,aes_gcm128-sha2_512+sha2_256-dh19+dh20+dh21+dh14+dh15+dh16+dh18,aes128-sha2_256-dh19+dh20+dh21+dh14+dh15+dh16+dh18
|
|
||||||
+ esp=aes_gcm256,chacha20_poly1305,aes256-sha2_512+sha1+sha2_256,aes_gcm128,aes128-sha1+sha2_256
|
|
||||||
diff -up crypto-policies/tests/outputs/FIPS-libreswan.txt.libreswan-fix crypto-policies/tests/outputs/FIPS-libreswan.txt
|
|
||||||
--- crypto-policies/tests/outputs/FIPS-libreswan.txt.libreswan-fix 2018-12-17 17:01:44.000000000 +0100
|
|
||||||
+++ crypto-policies/tests/outputs/FIPS-libreswan.txt 2019-02-18 10:34:57.526777910 +0100
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
conn %default
|
|
||||||
ikev2=insist
|
|
||||||
pfs=yes
|
|
||||||
- ike=aes_gcm256-sha2_512;dh19,aes_gcm256-sha2_256;dh19,aes256-sha2_512;dh19,aes256-sha2_256;dh19,aes256-sha1;dh19,aes_gcm128-sha2_512;dh19,aes_gcm128-sha2_256;dh19,aes128-sha2_256;dh19,aes128-sha1;dh19,aes_gcm256-sha2_512;dh20,aes_gcm256-sha2_256;dh20,aes256-sha2_512;dh20,aes256-sha2_256;dh20,aes256-sha1;dh20,aes_gcm128-sha2_512;dh20,aes_gcm128-sha2_256;dh20,aes128-sha2_256;dh20,aes128-sha1;dh20,aes_gcm256-sha2_512;dh21,aes_gcm256-sha2_256;dh21,aes256-sha2_512;dh21,aes256-sha2_256;dh21,aes256-sha1;dh21,aes_gcm128-sha2_512;dh21,aes_gcm128-sha2_256;dh21,aes128-sha2_256;dh21,aes128-sha1;dh21,aes_gcm256-sha2_512;dh14,aes_gcm256-sha2_256;dh14,aes256-sha2_512;dh14,aes256-sha2_256;dh14,aes256-sha1;dh14,aes_gcm128-sha2_512;dh14,aes_gcm128-sha2_256;dh14,aes128-sha2_256;dh14,aes128-sha1;dh14,aes_gcm256-sha2_512;dh15,aes_gcm256-sha2_256;dh15,aes256-sha2_512;dh15,aes256-sha2_256;dh15,aes256-sha1;dh15,aes_gcm128-sha2_512;dh15,aes_gcm128-sha2_256;dh15,aes128-sha2_256;dh15,aes128-sha1;dh15,aes_gcm256-sha2_512;dh16,aes_gcm256-sha2_256;dh16,aes256-sha2_512;dh16,aes256-sha2_256;dh16,aes256-sha1;dh16,aes_gcm128-sha2_512;dh16,aes_gcm128-sha2_256;dh16,aes128-sha2_256;dh16,aes128-sha1;dh16,aes_gcm256-sha2_512;dh18,aes_gcm256-sha2_256;dh18,aes256-sha2_512;dh18,aes256-sha2_256;dh18,aes256-sha1;dh18,aes_gcm128-sha2_512;dh18,aes_gcm128-sha2_256;dh18,aes128-sha2_256;dh18,aes128-sha1;dh18
|
|
||||||
- esp=aes_gcm256,aes256-sha2_512,aes256-sha1,aes256-sha2_256,aes_gcm128,aes128-sha1,aes128-sha2_256
|
|
||||||
+ ike=aes_gcm256-sha2_512+sha2_256-dh19+dh20+dh21+dh14+dh15+dh16+dh18,aes256-sha2_512+sha2_256-dh19+dh20+dh21+dh14+dh15+dh16+dh18,aes_gcm128-sha2_512+sha2_256-dh19+dh20+dh21+dh14+dh15+dh16+dh18,aes128-sha2_256-dh19+dh20+dh21+dh14+dh15+dh16+dh18
|
|
||||||
+ esp=aes_gcm256,aes256-sha2_512+sha1+sha2_256,aes_gcm128,aes128-sha1+sha2_256
|
|
||||||
diff -up crypto-policies/tests/outputs/FUTURE-libreswan.txt.libreswan-fix crypto-policies/tests/outputs/FUTURE-libreswan.txt
|
|
||||||
--- crypto-policies/tests/outputs/FUTURE-libreswan.txt.libreswan-fix 2018-12-17 17:01:44.000000000 +0100
|
|
||||||
+++ crypto-policies/tests/outputs/FUTURE-libreswan.txt 2019-02-18 10:34:57.527777893 +0100
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
conn %default
|
|
||||||
ikev2=insist
|
|
||||||
pfs=yes
|
|
||||||
- ike=aes_gcm256-sha2_512;dh19,aes_gcm256-sha2_256;dh19,chacha20_poly1305-sha2_512;dh19,chacha20_poly1305-sha2_256;dh19,aes256-sha2_512;dh19,aes256-sha2_256;dh19,aes_gcm256-sha2_512;dh20,aes_gcm256-sha2_256;dh20,chacha20_poly1305-sha2_512;dh20,chacha20_poly1305-sha2_256;dh20,aes256-sha2_512;dh20,aes256-sha2_256;dh20,aes_gcm256-sha2_512;dh21,aes_gcm256-sha2_256;dh21,chacha20_poly1305-sha2_512;dh21,chacha20_poly1305-sha2_256;dh21,aes256-sha2_512;dh21,aes256-sha2_256;dh21,aes_gcm256-sha2_512;dh15,aes_gcm256-sha2_256;dh15,chacha20_poly1305-sha2_512;dh15,chacha20_poly1305-sha2_256;dh15,aes256-sha2_512;dh15,aes256-sha2_256;dh15,aes_gcm256-sha2_512;dh16,aes_gcm256-sha2_256;dh16,chacha20_poly1305-sha2_512;dh16,chacha20_poly1305-sha2_256;dh16,aes256-sha2_512;dh16,aes256-sha2_256;dh16,aes_gcm256-sha2_512;dh18,aes_gcm256-sha2_256;dh18,chacha20_poly1305-sha2_512;dh18,chacha20_poly1305-sha2_256;dh18,aes256-sha2_512;dh18,aes256-sha2_256;dh18
|
|
||||||
- esp=aes_gcm256,chacha20_poly1305,aes256-sha2_512,aes256-sha2_256
|
|
||||||
+ ike=aes_gcm256-sha2_512+sha2_256-dh19+dh20+dh21+dh15+dh16+dh18,chacha20_poly1305-sha2_512+sha2_256-dh19+dh20+dh21+dh15+dh16+dh18,aes256-sha2_512+sha2_256-dh19+dh20+dh21+dh15+dh16+dh18
|
|
||||||
+ esp=aes_gcm256,chacha20_poly1305,aes256-sha2_512+sha2_256
|
|
||||||
diff -up crypto-policies/tests/outputs/LEGACY-libreswan.txt.libreswan-fix crypto-policies/tests/outputs/LEGACY-libreswan.txt
|
|
||||||
--- crypto-policies/tests/outputs/LEGACY-libreswan.txt.libreswan-fix 2018-12-17 17:01:44.000000000 +0100
|
|
||||||
+++ crypto-policies/tests/outputs/LEGACY-libreswan.txt 2019-02-18 10:34:57.527777893 +0100
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
conn %default
|
|
||||||
ikev2=insist
|
|
||||||
pfs=yes
|
|
||||||
- ike=aes_gcm256-sha2_512;dh19,aes_gcm256-sha2_256;dh19,chacha20_poly1305-sha2_512;dh19,chacha20_poly1305-sha2_256;dh19,aes256-sha2_512;dh19,aes256-sha2_256;dh19,aes256-sha1;dh19,aes_gcm128-sha2_512;dh19,aes_gcm128-sha2_256;dh19,aes128-sha2_256;dh19,aes128-sha1;dh19,3des-sha1;dh19,aes_gcm256-sha2_512;dh20,aes_gcm256-sha2_256;dh20,chacha20_poly1305-sha2_512;dh20,chacha20_poly1305-sha2_256;dh20,aes256-sha2_512;dh20,aes256-sha2_256;dh20,aes256-sha1;dh20,aes_gcm128-sha2_512;dh20,aes_gcm128-sha2_256;dh20,aes128-sha2_256;dh20,aes128-sha1;dh20,3des-sha1;dh20,aes_gcm256-sha2_512;dh21,aes_gcm256-sha2_256;dh21,chacha20_poly1305-sha2_512;dh21,chacha20_poly1305-sha2_256;dh21,aes256-sha2_512;dh21,aes256-sha2_256;dh21,aes256-sha1;dh21,aes_gcm128-sha2_512;dh21,aes_gcm128-sha2_256;dh21,aes128-sha2_256;dh21,aes128-sha1;dh21,3des-sha1;dh21,aes_gcm256-sha2_512;dh5,aes_gcm256-sha2_256;dh5,chacha20_poly1305-sha2_512;dh5,chacha20_poly1305-sha2_256;dh5,aes256-sha2_512;dh5,aes256-sha2_256;dh5,aes256-sha1;dh5,aes_gcm128-sha2_512;dh5,aes_gcm128-sha2_256;dh5,aes128-sha2_256;dh5,aes128-sha1;dh5,3des-sha1;dh5,aes_gcm256-sha2_512;dh14,aes_gcm256-sha2_256;dh14,chacha20_poly1305-sha2_512;dh14,chacha20_poly1305-sha2_256;dh14,aes256-sha2_512;dh14,aes256-sha2_256;dh14,aes256-sha1;dh14,aes_gcm128-sha2_512;dh14,aes_gcm128-sha2_256;dh14,aes128-sha2_256;dh14,aes128-sha1;dh14,3des-sha1;dh14,aes_gcm256-sha2_512;dh15,aes_gcm256-sha2_256;dh15,chacha20_poly1305-sha2_512;dh15,chacha20_poly1305-sha2_256;dh15,aes256-sha2_512;dh15,aes256-sha2_256;dh15,aes256-sha1;dh15,aes_gcm128-sha2_512;dh15,aes_gcm128-sha2_256;dh15,aes128-sha2_256;dh15,aes128-sha1;dh15,3des-sha1;dh15,aes_gcm256-sha2_512;dh16,aes_gcm256-sha2_256;dh16,chacha20_poly1305-sha2_512;dh16,chacha20_poly1305-sha2_256;dh16,aes256-sha2_512;dh16,aes256-sha2_256;dh16,aes256-sha1;dh16,aes_gcm128-sha2_512;dh16,aes_gcm128-sha2_256;dh16,aes128-sha2_256;dh16,aes128-sha1;dh16,3des-sha1;dh16,aes_gcm256-sha2_512;dh18,aes_gcm256-sha2_256;dh18,chacha20_poly1305-sha2_512;dh18,chacha20_poly1305-sha2_256;dh18,aes256-sha2_512;dh18,aes256-sha2_256;dh18,aes256-sha1;dh18,aes_gcm128-sha2_512;dh18,aes_gcm128-sha2_256;dh18,aes128-sha2_256;dh18,aes128-sha1;dh18,3des-sha1;dh18
|
|
||||||
- esp=aes_gcm256,chacha20_poly1305,aes256-sha2_512,aes256-sha1,aes256-sha2_256,aes_gcm128,aes128-sha1,aes128-sha2_256,3des-sha1
|
|
||||||
+ ike=aes_gcm256-sha2_512+sha2_256-dh19+dh20+dh21+dh5+dh14+dh15+dh16+dh18,chacha20_poly1305-sha2_512+sha2_256-dh19+dh20+dh21+dh5+dh14+dh15+dh16+dh18,aes256-sha2_512+sha2_256-dh19+dh20+dh21+dh5+dh14+dh15+dh16+dh18,aes_gcm128-sha2_512+sha2_256-dh19+dh20+dh21+dh5+dh14+dh15+dh16+dh18,aes128-sha2_256-dh19+dh20+dh21+dh5+dh14+dh15+dh16+dh18
|
|
||||||
+ esp=aes_gcm256,chacha20_poly1305,aes256-sha2_512+sha1+sha2_256,aes_gcm128,aes128-sha1+sha2_256
|
|
@ -1,55 +0,0 @@
|
|||||||
diff --git a/update-crypto-policies.8.txt b/update-crypto-policies.8.txt
|
|
||||||
index 7a1564c..3655ba8 100644
|
|
||||||
--- a/update-crypto-policies.8.txt
|
|
||||||
+++ b/update-crypto-policies.8.txt
|
|
||||||
@@ -32,24 +32,13 @@ SYNOPSIS
|
|
||||||
|
|
||||||
DESCRIPTION
|
|
||||||
-----------
|
|
||||||
-update-crypto-policies(8) is used to set the policy applicable for the
|
|
||||||
+*update-crypto-policies(8)* is used to set the policy applicable for the
|
|
||||||
various cryptographic back-ends, such as SSL/TLS libraries. That will
|
|
||||||
be the default policy used by these back-ends unless the application user
|
|
||||||
configures them otherwise.
|
|
||||||
|
|
||||||
-The available policies are restricted to the following profiles.
|
|
||||||
-
|
|
||||||
-* LEGACY: Ensures maximum compatibility with legacy systems (64-bit
|
|
||||||
- security)
|
|
||||||
-
|
|
||||||
-* DEFAULT: A reasonable default for today's standards (80-bit security).
|
|
||||||
-
|
|
||||||
-* FUTURE: A level that will provide security on a conservative level that is
|
|
||||||
- believed to withstand any near-term future attacks (112-bit security).
|
|
||||||
-
|
|
||||||
-* FIPS: Policy that enables only FIPS 140-2 approved or allowed algorithms.
|
|
||||||
-
|
|
||||||
-* EMPTY: All cryptographic algorithms are disabled (used for debugging only)
|
|
||||||
+The available policies are described in the *crypto-policies(7)* manual
|
|
||||||
+page.
|
|
||||||
|
|
||||||
The desired system policy is selected in /etc/crypto-policies/config
|
|
||||||
and this tool will generate the individual policy requirements for
|
|
||||||
@@ -201,10 +190,11 @@ In case of a parsing error no policies will be updated.
|
|
||||||
FILES
|
|
||||||
-----
|
|
||||||
/etc/crypto-policies/config::
|
|
||||||
- The file contains the current system policy. It should contain a string of one of the profiles listed above (e.g., DEFAULT).
|
|
||||||
+ The file contains the current system policy. It should contain a string of one of the
|
|
||||||
+ profiles listed in the *crypto-policies(7)* page (e.g., DEFAULT).
|
|
||||||
|
|
||||||
/etc/crypto-policies/back-ends::
|
|
||||||
- Contains the generated policies in separated files, and in a format readable by the supported back-ends.
|
|
||||||
+ Contains the generated policies in separated files, and in a format readable by the supported back ends.
|
|
||||||
|
|
||||||
/etc/crypto-policies/local.d::
|
|
||||||
Contains additional files to be appended to the generated policy
|
|
||||||
@@ -218,7 +208,7 @@ FILES
|
|
||||||
|
|
||||||
SEE ALSO
|
|
||||||
--------
|
|
||||||
-fips-mode-setup(8)
|
|
||||||
+crypto-policies(7), fips-mode-setup(8)
|
|
||||||
|
|
||||||
AUTHOR
|
|
||||||
------
|
|
File diff suppressed because it is too large
Load Diff
@ -1,254 +0,0 @@
|
|||||||
////
|
|
||||||
Copyright (C) 2019 Red Hat, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2.1 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
////
|
|
||||||
|
|
||||||
|
|
||||||
crypto-policies(7)
|
|
||||||
==================
|
|
||||||
:doctype: manpage
|
|
||||||
:man source: crypto-policies
|
|
||||||
|
|
||||||
|
|
||||||
NAME
|
|
||||||
----
|
|
||||||
crypto-policies - system-wide crypto policies overview
|
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTION
|
|
||||||
-----------
|
|
||||||
The security of cryptographic components of the operating system
|
|
||||||
does not remain constant over time. Algorithms, such as
|
|
||||||
cryptographic hashing and encryption, typically have a lifetime,
|
|
||||||
after which they are considered either too risky to use or plain insecure.
|
|
||||||
That means, we need to phase out such algorithms from the default
|
|
||||||
settings or completely disable them if they could cause an irreparable problem.
|
|
||||||
|
|
||||||
While in the past the algorithms were not disabled in a consistent way
|
|
||||||
and different applications applied different policies, the system-wide
|
|
||||||
crypto-policies followed by the crypto core components allow consistently
|
|
||||||
deprecating and disabling algorithms system-wide.
|
|
||||||
|
|
||||||
The individual policy levels (*DEFAULT*, *LEGACY*, *FUTURE*, and *FIPS*)
|
|
||||||
are included in the *crypto-policies(7)* package. In the future, there will
|
|
||||||
be also a mechanism for easy creation and deployment of policies defined
|
|
||||||
by the system administrator or a third party vendor.
|
|
||||||
|
|
||||||
For rationale, see *RFC 7457* for a list of attacks taking advantage of
|
|
||||||
legacy crypto algorithms.
|
|
||||||
|
|
||||||
COVERED APPLICATIONS
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
Crypto-policies apply to the configuration of the core cryptographic subsystems,
|
|
||||||
covering *TLS*, *IKE*, *IPSec*, *DNSSec*, and *Kerberos* protocols; i.e., the
|
|
||||||
supported secure communications protocols on the base operating system.
|
|
||||||
|
|
||||||
Once an application runs in the operating system, it follows the default
|
|
||||||
or selected policy and refuses to fall back to algorithms and protocols not
|
|
||||||
within the policy, unless the user has explicitly requested the application
|
|
||||||
to do so. That is, the policy applies to the default behavior of applications
|
|
||||||
when running with the system-provided configuration but the user can override
|
|
||||||
it on an application-specific basis.
|
|
||||||
|
|
||||||
The policies currently provide settings for these applications and libraries:
|
|
||||||
|
|
||||||
* *BIND* DNS name server daemon
|
|
||||||
* *GnuTLS* TLS library
|
|
||||||
* *OpenJDK* runtime environment
|
|
||||||
* *Kerberos 5* library
|
|
||||||
* *Libreswan* IPsec and IKE protocol implementation
|
|
||||||
* *NSS* TLS library
|
|
||||||
* *OpenSSH* SSH2 protocol implementation
|
|
||||||
* *OpenSSL* TLS library
|
|
||||||
|
|
||||||
Applications using the above libraries and tools are covered by the
|
|
||||||
cryptographic policies unless they are explicitly configured not to be so.
|
|
||||||
|
|
||||||
PROVIDED POLICY LEVELS
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
*LEGACY*::
|
|
||||||
This policy ensures maximum compatibility with legacy systems; it is
|
|
||||||
less secure and it includes support for *TLS 1.0*, *TLS 1.1*, and *SSH2*
|
|
||||||
protocols or later. The algorithms *DSA*, *3DES*, and *RC4* are allowed,
|
|
||||||
while *RSA* and *Diffie-Hellman* parameters are accepted if larger than 1023 bits.
|
|
||||||
The level provides at least 64-bit security.
|
|
||||||
|
|
||||||
* MACs: all *HMAC* with *SHA-1* or better + all modern MACs (*Poly1305*
|
|
||||||
etc.)
|
|
||||||
* Curves: all prime >= 255 bits (including Bernstein curves)
|
|
||||||
* Signature algorithms: with *SHA1* hash or better (*DSA* allowed)
|
|
||||||
* *TLS* Ciphers: all available >= 112-bit key, >= 128-bit block (including
|
|
||||||
*RC4* and *3DES*)
|
|
||||||
* Non-TLS Ciphers: same as *TLS* ciphers with added *Camellia*
|
|
||||||
* Key exchange: *ECDHE*, *RSA*, *DHE*
|
|
||||||
* *DH* params size: >= 1023
|
|
||||||
* *RSA* keys size: >= 1023
|
|
||||||
* *DSA* params size: >= 1023
|
|
||||||
* *TLS* protocols: *TLS* >= 1.0, *DTLS* >= 1.0
|
|
||||||
|
|
||||||
*DEFAULT*::
|
|
||||||
The *DEFAULT* policy is a reasonable default policy for today's standards,
|
|
||||||
compatible with *PCI-DSS* requirements. It allows the *TLS 1.2* and
|
|
||||||
*TLS 1.3* protocols, as well as *IKEv2* and *SSH2*. The *RSA* and
|
|
||||||
*Diffie-Hellman* parameters are accepted if larger than 2047 bits.
|
|
||||||
The level provides at least 112-bit security with the exception of *SHA-1*
|
|
||||||
signatures needed for *DNSSec* and other still prevalent legacy use of
|
|
||||||
*SHA-1* signatures.
|
|
||||||
|
|
||||||
* MACs: all *HMAC* with *SHA-1* or better + all modern MACs (*Poly1305*
|
|
||||||
etc.)
|
|
||||||
* Curves: all prime >= 255 bits (including Bernstein curves)
|
|
||||||
* Signature algorithms: with *SHA-1* hash or better (no *DSA*)
|
|
||||||
* *TLS* Ciphers: >= 128-bit key, >= 128-bit block (*AES*, *ChaCha20*,
|
|
||||||
including *AES-CBC*)
|
|
||||||
* non-TLS Ciphers: as *TLS* Ciphers with added *Camellia*
|
|
||||||
* key exchange: *ECDHE*, *RSA*, *DHE* (no *DHE-DSS*)
|
|
||||||
* *DH* params size: >= 2048
|
|
||||||
* *RSA* keys size: >= 2048
|
|
||||||
* *TLS* protocols: *TLS* >= 1.2, *DTLS* >= 1.2
|
|
||||||
|
|
||||||
*FUTURE*::
|
|
||||||
A conservative security level that is believed to withstand any near-term
|
|
||||||
future attacks. This level does not allow the use of *SHA-1* in signature
|
|
||||||
algorithms. The level also provides some (not complete) preparation for
|
|
||||||
post-quantum encryption support in form of 256-bit symmetric encryption
|
|
||||||
requirement. The *RSA* and *Diffie-Hellman* parameters are accepted if
|
|
||||||
larger than 3071 bits. The level provides at least 128-bit security.
|
|
||||||
|
|
||||||
* MACs: all *HMAC* with *SHA-256* or better + all modern MACs (*Poly1305*
|
|
||||||
etc.)
|
|
||||||
* Curves: all prime >= 255 bits (including Bernstein curves)
|
|
||||||
* Signature algorithms: with *SHA-256* hash or better (no *DSA*)
|
|
||||||
* *TLS* Ciphers: >= 256-bit key, >= 128-bit block, only Authenticated
|
|
||||||
Encryption (AE) ciphers
|
|
||||||
* non-TLS Ciphers: same as *TLS* ciphers with added non AE ciphers and
|
|
||||||
*Camellia*
|
|
||||||
* key exchange: *ECDHE*, *DHE* (no *DHE-DSS*, no *RSA*)
|
|
||||||
* *DH* params size: >= 3072
|
|
||||||
* *RSA* keys size: >= 3072
|
|
||||||
* *TLS* protocols: *TLS* >= 1.2, *DTLS* >= 1.2
|
|
||||||
|
|
||||||
|
|
||||||
*FIPS*::
|
|
||||||
A level that conforms to the *FIPS 140-2* requirements. This policy is used
|
|
||||||
internally by the *fips-mode-setup(8)* tool which can switch the system
|
|
||||||
into the *FIPS 140-2* compliance mode.
|
|
||||||
The level provides at least 112-bit security.
|
|
||||||
|
|
||||||
* MACs: all *HMAC* with *SHA1* or better
|
|
||||||
* Curves: all prime >= 256 bits
|
|
||||||
* Signature algorithms: with *SHA-256* hash or better (no *DSA*)
|
|
||||||
* *TLS* Ciphers: >= 128-bit key, >= 128-bit block (*AES*,
|
|
||||||
including *AES-CBC*)
|
|
||||||
* non-TLS Ciphers: same as *TLS* Ciphers
|
|
||||||
* key exchange: *ECDHE*, *DHE* (no *DHE-DSS*, no *RSA*)
|
|
||||||
* *DH* params size: >= 2048
|
|
||||||
* *RSA* params size: >= 2048
|
|
||||||
* *TLS* protocols: *TLS* >= 1.2, *DTLS* >= 1.2
|
|
||||||
|
|
||||||
*EMPTY*::
|
|
||||||
All cryptographic algorithms are disabled (used for debugging only, do not
|
|
||||||
use).
|
|
||||||
|
|
||||||
COMMANDS
|
|
||||||
--------
|
|
||||||
|
|
||||||
*update-crypto-policies(8)*::
|
|
||||||
This command manages the policies available to the various cryptographic
|
|
||||||
back ends and allows the system administrator to change the active
|
|
||||||
cryptographic policy level.
|
|
||||||
|
|
||||||
*fips-mode-setup(8)*::
|
|
||||||
This command allows the system administrator to enable, or disable the
|
|
||||||
system FIPS mode and also apply the *FIPS* cryptographic policy level
|
|
||||||
which limits the allowed algorithms and protocols to these allowed by
|
|
||||||
the FIPS 140-2 requirements.
|
|
||||||
|
|
||||||
|
|
||||||
NOTES
|
|
||||||
-----
|
|
||||||
|
|
||||||
*Exceptions:*
|
|
||||||
|
|
||||||
* *Go-language* applications do not yet follow the system-wide policy.
|
|
||||||
* *Libssh* applications do not yet follow the system-wide policy.
|
|
||||||
* *GnuPG-2* application does not follow the system-wide policy.
|
|
||||||
|
|
||||||
In general only the data-in-transit is currently covered by the system-wide
|
|
||||||
policy.
|
|
||||||
|
|
||||||
If the system administrator changes the system-wide policy level with
|
|
||||||
the *update-crypto-policies(8)* command it is advisable to restart the
|
|
||||||
system as the individual back-end libraries read the configuration files
|
|
||||||
usually during their initialization. The changes in the policy level
|
|
||||||
thus take place in most cases only when the applications using the back-end
|
|
||||||
libraries are restarted.
|
|
||||||
|
|
||||||
*Removed cipher suites and protocols*
|
|
||||||
|
|
||||||
The following cipher suites and protocols are completely removed from the
|
|
||||||
core cryptographic libraries listed above:
|
|
||||||
|
|
||||||
* *DES*
|
|
||||||
* All export grade cipher suites
|
|
||||||
* *MD5* in signatures
|
|
||||||
* *SSLv2*
|
|
||||||
* *SSLv3*
|
|
||||||
* All *ECC* curves smaller than 224 bits
|
|
||||||
* All binary field *ECC* curves
|
|
||||||
|
|
||||||
*Cipher suites and protocols disabled in all policy levels*
|
|
||||||
|
|
||||||
The following ciphersuites and protocols are available but disabled in all
|
|
||||||
crypto policy levels. They can be enabled only by explicit configuration
|
|
||||||
of individual applications:
|
|
||||||
|
|
||||||
* *DH* with parameters < 1024 bits
|
|
||||||
* *RSA* with key size < 1024 bits
|
|
||||||
* *Camellia*
|
|
||||||
* *ARIA*
|
|
||||||
* *SEED*
|
|
||||||
* *IDEA*
|
|
||||||
* Integrity only ciphersuites
|
|
||||||
* *TLS* *CBC mode* ciphersuites using *SHA-384* HMAC
|
|
||||||
* *AES-CCM8*
|
|
||||||
* all *ECC* curves incompatible with *TLS 1.3*, including secp256k1
|
|
||||||
* *IKEv1*
|
|
||||||
|
|
||||||
|
|
||||||
FILES
|
|
||||||
-----
|
|
||||||
/etc/crypto-policies/back-ends::
|
|
||||||
The individual cryptographical back-end configuration files.
|
|
||||||
Usually linked to the configuration shipped in the crypto-policies
|
|
||||||
package unless a configuration from *local.d* is added.
|
|
||||||
|
|
||||||
/etc/crypto-policies/config::
|
|
||||||
The active crypto-policies level set on the system.
|
|
||||||
|
|
||||||
/etc/crypto-policies/local.d::
|
|
||||||
Additional configuration shipped by other packages or created by
|
|
||||||
the system administrator. The contents of the *<back-end>-file.config*
|
|
||||||
is appended to the configuration from the policy back end as
|
|
||||||
shipped in the crypto-policies package.
|
|
||||||
|
|
||||||
|
|
||||||
SEE ALSO
|
|
||||||
--------
|
|
||||||
update-crypto-policies(8), fips-mode-setup(8)
|
|
||||||
|
|
||||||
|
|
||||||
AUTHOR
|
|
||||||
------
|
|
||||||
Written by Tomáš Mráz.
|
|
@ -1,9 +1,9 @@
|
|||||||
%global git_date 20181217
|
%global git_date 20190807
|
||||||
%global git_commit_hash 9a35207
|
%global git_commit_hash 9b1477b
|
||||||
|
|
||||||
Name: crypto-policies
|
Name: crypto-policies
|
||||||
Version: %{git_date}
|
Version: %{git_date}
|
||||||
Release: 6.git%{git_commit_hash}%{?dist}
|
Release: 1.git%{git_commit_hash}%{?dist}
|
||||||
Summary: Systemwide crypto policies
|
Summary: Systemwide crypto policies
|
||||||
|
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
@ -13,11 +13,6 @@ URL: https://gitlab.com/redhat-crypto/fedora-crypto-policies
|
|||||||
# directory.
|
# directory.
|
||||||
# For RHEL-8 we use the upstream branch next-default.
|
# For RHEL-8 we use the upstream branch next-default.
|
||||||
Source0: crypto-policies-git%{git_commit_hash}.tar.gz
|
Source0: crypto-policies-git%{git_commit_hash}.tar.gz
|
||||||
Source1: crypto-policies.7.txt
|
|
||||||
Source2: crypto-policies.7
|
|
||||||
Patch1: crypto-policies-manpage.patch
|
|
||||||
Patch2: crypto-policies-java-fix.patch
|
|
||||||
Patch3: crypto-policies-libreswan-fix.patch
|
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
BuildRequires: asciidoc
|
BuildRequires: asciidoc
|
||||||
@ -39,6 +34,9 @@ Requires: sed
|
|||||||
Requires(post): coreutils
|
Requires(post): coreutils
|
||||||
Requires(post): grep
|
Requires(post): grep
|
||||||
Requires(post): sed
|
Requires(post): sed
|
||||||
|
Conflicts: nss < 3.44.0
|
||||||
|
Conflicts: libreswan < 3.28
|
||||||
|
Conflicts: openssh < 8.0p1
|
||||||
# used by fips-mode-setup
|
# used by fips-mode-setup
|
||||||
Recommends: grubby
|
Recommends: grubby
|
||||||
|
|
||||||
@ -53,9 +51,6 @@ to enable or disable the system FIPS mode.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n %{name}
|
%setup -q -n %{name}
|
||||||
%patch1 -p1 -b .manpage
|
|
||||||
%patch2 -p1 -b .java-fix
|
|
||||||
%patch3 -p1 -b .libreswan-fix
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
make %{?_smp_mflags}
|
make %{?_smp_mflags}
|
||||||
@ -64,13 +59,10 @@ make %{?_smp_mflags}
|
|||||||
mkdir -p -m 755 %{buildroot}%{_datarootdir}/crypto-policies/
|
mkdir -p -m 755 %{buildroot}%{_datarootdir}/crypto-policies/
|
||||||
mkdir -p -m 755 %{buildroot}%{_sysconfdir}/crypto-policies/back-ends/
|
mkdir -p -m 755 %{buildroot}%{_sysconfdir}/crypto-policies/back-ends/
|
||||||
mkdir -p -m 755 %{buildroot}%{_sysconfdir}/crypto-policies/local.d/
|
mkdir -p -m 755 %{buildroot}%{_sysconfdir}/crypto-policies/local.d/
|
||||||
mkdir -p -m 755 %{buildroot}%{_mandir}/man7
|
|
||||||
mkdir -p -m 755 %{buildroot}%{_mandir}/man8
|
|
||||||
mkdir -p -m 755 %{buildroot}%{_bindir}
|
mkdir -p -m 755 %{buildroot}%{_bindir}
|
||||||
|
|
||||||
make DESTDIR=%{buildroot} DIR=%{_datarootdir}/crypto-policies MANDIR=%{_mandir}/man8 %{?_smp_mflags} install
|
make DESTDIR=%{buildroot} DIR=%{_datarootdir}/crypto-policies MANDIR=%{_mandir} %{?_smp_mflags} install
|
||||||
install -p -m 644 default-config %{buildroot}%{_sysconfdir}/crypto-policies/config
|
install -p -m 644 default-config %{buildroot}%{_sysconfdir}/crypto-policies/config
|
||||||
install -p -m 644 %{SOURCE2} %{buildroot}%{_mandir}/man7/crypto-policies.7
|
|
||||||
|
|
||||||
%check
|
%check
|
||||||
make check %{?_smp_mflags}
|
make check %{?_smp_mflags}
|
||||||
@ -103,15 +95,15 @@ make check %{?_smp_mflags}
|
|||||||
%{_bindir}/update-crypto-policies
|
%{_bindir}/update-crypto-policies
|
||||||
%{_bindir}/fips-mode-setup
|
%{_bindir}/fips-mode-setup
|
||||||
%{_bindir}/fips-finish-install
|
%{_bindir}/fips-finish-install
|
||||||
%{_mandir}/man7/crypto-policies.7.gz
|
%{_mandir}/man7/crypto-policies.7*
|
||||||
%{_mandir}/man8/update-crypto-policies.8.gz
|
%{_mandir}/man8/update-crypto-policies.8*
|
||||||
%{_mandir}/man8/fips-mode-setup.8.gz
|
%{_mandir}/man8/fips-mode-setup.8*
|
||||||
%{_mandir}/man8/fips-finish-install.8.gz
|
%{_mandir}/man8/fips-finish-install.8*
|
||||||
%{_datarootdir}/crypto-policies/LEGACY/*
|
%{_datarootdir}/crypto-policies/LEGACY
|
||||||
%{_datarootdir}/crypto-policies/DEFAULT/*
|
%{_datarootdir}/crypto-policies/DEFAULT
|
||||||
%{_datarootdir}/crypto-policies/FUTURE/*
|
%{_datarootdir}/crypto-policies/FUTURE
|
||||||
%{_datarootdir}/crypto-policies/FIPS/*
|
%{_datarootdir}/crypto-policies/FIPS
|
||||||
%{_datarootdir}/crypto-policies/EMPTY/*
|
%{_datarootdir}/crypto-policies/EMPTY
|
||||||
%{_datarootdir}/crypto-policies/default-config
|
%{_datarootdir}/crypto-policies/default-config
|
||||||
%{_datarootdir}/crypto-policies/reload-cmds.sh
|
%{_datarootdir}/crypto-policies/reload-cmds.sh
|
||||||
|
|
||||||
@ -119,6 +111,22 @@ make check %{?_smp_mflags}
|
|||||||
%license COPYING.LESSER
|
%license COPYING.LESSER
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Aug 7 2019 Tomáš Mráz <tmraz@redhat.com> - 20190807-1.git9b1477b
|
||||||
|
- gnutls: enable TLS-1.3 in the FIPS policy
|
||||||
|
|
||||||
|
* Mon Aug 5 2019 Tomáš Mráz <tmraz@redhat.com> - 20190613-2.git21ffdc8
|
||||||
|
- fix ownership of policy directories
|
||||||
|
- nss: enable X25519 in appropriate policies and conflict with old nss
|
||||||
|
- openssh: conflict with old incompatible openssh version
|
||||||
|
|
||||||
|
* Thu Jun 13 2019 Tomáš Mráz <tmraz@redhat.com> - 20190613-1.git21ffdc8
|
||||||
|
- openssh: add missing curve25519-sha256 to the key exchange list
|
||||||
|
- openssh: fix RSA certificate support
|
||||||
|
- fips-mode-setup: drop the kernel boot option if there is no separate
|
||||||
|
/boot drive
|
||||||
|
- fips-finish-install: regenerate all initramdisks
|
||||||
|
- add libssh configuration backend
|
||||||
|
|
||||||
* Mon Feb 18 2019 Tomáš Mráz <tmraz@redhat.com> - 20181217-6.git9a35207
|
* Mon Feb 18 2019 Tomáš Mráz <tmraz@redhat.com> - 20181217-6.git9a35207
|
||||||
- libreswan: Allow coalescing the IKE/IPSEC proposals
|
- libreswan: Allow coalescing the IKE/IPSEC proposals
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user