{"id":3923,"date":"2022-12-20T17:28:25","date_gmt":"2022-12-20T20:28:25","guid":{"rendered":"http:\/\/lode.uno\/linux-man\/index.php\/2022\/12\/20\/cryptopolicies-man7\/"},"modified":"2022-12-20T17:28:25","modified_gmt":"2022-12-20T20:28:25","slug":"cryptopolicies-man7","status":"publish","type":"post","link":"https:\/\/lode.uno\/linux-man\/2022\/12\/20\/cryptopolicies-man7\/","title":{"rendered":"CRYPTO&minus;POLICIES (man7)"},"content":{"rendered":"<h1 align=\"center\">CRYPTO\u2212POLICIES<\/h1>\n<p> <a href=\"#NAME\">NAME<\/a><br \/> <a href=\"#DESCRIPTION\">DESCRIPTION<\/a><br \/> <a href=\"#COVERED APPLICATIONS\">COVERED APPLICATIONS<\/a><br \/> <a href=\"#PROVIDED POLICY LEVELS\">PROVIDED POLICY LEVELS<\/a><br \/> <a href=\"#CRYPTO POLICY DEFINITON FORMAT\">CRYPTO POLICY DEFINITON FORMAT<\/a><br \/> <a href=\"#COMMANDS\">COMMANDS<\/a><br \/> <a href=\"#NOTES\">NOTES<\/a><br \/> <a href=\"#HISTORY\">HISTORY<\/a><br \/> <a href=\"#FILES\">FILES<\/a><br \/> <a href=\"#SEE ALSO\">SEE ALSO<\/a><br \/> <a href=\"#AUTHOR\">AUTHOR<\/a> <\/p>\n<hr>\n<h2>NAME <a name=\"NAME\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">crypto-policies \u2212 system\u2212wide crypto policies overview<\/p>\n<h2>DESCRIPTION <a name=\"DESCRIPTION\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">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.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">While in the past the algorithms were not disabled in a consistent way and different applications applied different policies, the system\u2212wide crypto\u2212policies followed by the crypto core components allow consistently deprecating and disabling algorithms system\u2212wide.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The individual policy levels (<b>DEFAULT<\/b>, <b>LEGACY<\/b>, <b>FUTURE<\/b>, and <b>FIPS<\/b>) are included in the <b>crypto\u2212policies(7)<\/b> 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.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">For rationale, see <b>RFC 7457<\/b> for a list of attacks taking advantage of legacy crypto algorithms.<\/p>\n<h2>COVERED APPLICATIONS <a name=\"COVERED APPLICATIONS\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">Crypto\u2212policies apply to the configuration of the core cryptographic subsystems, covering <b>TLS<\/b>, <b>IKE<\/b>, <b>IPSec<\/b>, <b>DNSSec<\/b>, and <b>Kerberos<\/b> protocols; i.e., the supported secure communications protocols on the base operating system.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">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\u2212provided configuration but the user can override it on an application\u2212specific basis.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The policies currently provide settings for these applications and libraries:<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>BIND<\/b> DNS name server daemon<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>GnuTLS<\/b> TLS library<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>OpenJDK<\/b> runtime environment<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>Kerberos 5<\/b> library<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>Libreswan<\/b> IPsec and IKE protocol implementation<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>NSS<\/b> TLS library<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>OpenSSH<\/b> SSH2 protocol implementation<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>OpenSSL<\/b> TLS library<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>libssh<\/b> SSH2 protocol implementation<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Applications using the above libraries and tools are covered by the cryptographic policies unless they are explicitly configured not to be so.<\/p>\n<h2>PROVIDED POLICY LEVELS <a name=\"PROVIDED POLICY LEVELS\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>LEGACY<\/b><\/p>\n<p style=\"margin-left:17%;\">This policy ensures maximum compatibility with legacy systems; it is less secure and it includes support for <b>TLS 1.0<\/b>, <b>TLS 1.1<\/b>, and <b>SSH2<\/b> protocols or later. The algorithms <b>DSA<\/b>, <b>3DES<\/b>, and <b>RC4<\/b> are allowed, while <b>RSA<\/b> and <b>Diffie\u2212Hellman<\/b> parameters are accepted if larger than 1023 bits. The level provides at least 64\u2212bit security.<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 MACs: all <b>HMAC<\/b> with <b>SHA\u22121<\/b> or better + all modern MACs (<b>Poly1305<\/b> etc.)<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 Curves: all prime >= 255 bits (including Bernstein curves)<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 Signature algorithms: with <b>SHA1<\/b> hash or better (<b>DSA<\/b> allowed)<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>TLS<\/b> Ciphers: all available >= 112\u2212bit key, >= 128\u2212bit block (including <b>RC4<\/b> and <b>3DES<\/b>)<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 Non\u2212TLS Ciphers: same as <b>TLS<\/b> ciphers with added <b>Camellia<\/b><\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 Key exchange: <b>ECDHE<\/b>, <b>RSA<\/b>, <b>DHE<\/b><\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>DH<\/b> params size: >= 1023<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>RSA<\/b> keys size: >= 1023<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>DSA<\/b> params size: >= 1023<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>TLS<\/b> protocols: <b>TLS<\/b> >= 1.0, <b>DTLS<\/b> >= 1.0<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>DEFAULT<\/b><\/p>\n<p style=\"margin-left:17%;\">The <b>DEFAULT<\/b> policy is a reasonable default policy for today\u2019s standards. It allows the <b>TLS 1.2<\/b>, and <b>TLS 1.3<\/b> protocols, as well as <b>IKEv2<\/b> and <b>SSH2<\/b>. The <b>Diffie\u2212Hellman<\/b> parameters are accepted if they are at least 2048 bits long. The level provides at least 112\u2212bit security with the exception of allowing <b>SHA\u22121<\/b> signatures in DNSSec where they are still prevalent.<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 MACs: all <b>HMAC<\/b> with <b>SHA\u22121<\/b> or better + all modern MACs (<b>Poly1305<\/b> etc.)<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 Curves: all prime >= 255 bits (including Bernstein curves)<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 Signature algorithms: with <b>SHA\u2212224<\/b> hash or better (no <b>DSA<\/b>)<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>TLS<\/b> Ciphers: >= 128\u2212bit key, >= 128\u2212bit block (<b>AES<\/b>, <b>ChaCha20<\/b>, including <b>AES\u2212CBC<\/b>)<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 non\u2212TLS Ciphers: as <b>TLS<\/b> Ciphers with added <b>Camellia<\/b><\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 key exchange: <b>ECDHE<\/b>, <b>RSA<\/b>, <b>DHE<\/b> (no <b>DHE\u2212DSS<\/b>)<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>DH<\/b> params size: >= 2048<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>RSA<\/b> keys size: >= 2048<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>TLS<\/b> protocols: <b>TLS<\/b> >= 1.2, <b>DTLS<\/b> >= 1.2<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>NEXT<\/b><\/p>\n<p style=\"margin-left:17%;\">The <b>NEXT<\/b> policy is just an alias to the <b>DEFAULT<\/b> policy.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>FUTURE<\/b><\/p>\n<p style=\"margin-left:17%;\">A conservative security level that is believed to withstand any near\u2212term future attacks. This level does not allow the use of <b>SHA\u22121<\/b> in signature algorithms. The level also provides some (not complete) preparation for post\u2212quantum encryption support in form of 256\u2212bit symmetric encryption requirement. The <b>RSA<\/b> and <b>Diffie\u2212Hellman<\/b> parameters are accepted if larger than 3071 bits. The level provides at least 128\u2212bit security.<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 MACs: all <b>HMAC<\/b> with <b>SHA\u2212256<\/b> or better + all modern MACs (<b>Poly1305<\/b> etc.)<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 Curves: all prime >= 255 bits (including Bernstein curves)<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 Signature algorithms: with <b>SHA\u2212256<\/b> hash or better (no <b>DSA<\/b>)<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>TLS<\/b> Ciphers: >= 256\u2212bit key, >= 128\u2212bit block, only Authenticated Encryption (AE) ciphers<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 non\u2212TLS Ciphers: same as <b>TLS<\/b> ciphers with added non AE ciphers and <b>Camellia<\/b><\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 key exchange: <b>ECDHE<\/b>, <b>DHE<\/b> (no <b>DHE\u2212DSS<\/b>, no <b>RSA<\/b>)<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>DH<\/b> params size: >= 3072<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>RSA<\/b> keys size: >= 3072<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>TLS<\/b> protocols: <b>TLS<\/b> >= 1.2, <b>DTLS<\/b> >= 1.2<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>FIPS<\/b><\/p>\n<p style=\"margin-left:17%;\">A level that conforms to the <b>FIPS 140\u22122<\/b> requirements. This policy is used internally by the <b>fips\u2212mode\u2212setup(8)<\/b> tool which can switch the system into the <b>FIPS 140\u22122<\/b> compliance mode. The level provides at least 112\u2212bit security.<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 MACs: all <b>HMAC<\/b> with <b>SHA1<\/b> or better<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 Curves: all prime >= 256 bits<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 Signature algorithms: with <b>SHA\u2212256<\/b> hash or better (no <b>DSA<\/b>)<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>TLS<\/b> Ciphers: >= 128\u2212bit key, >= 128\u2212bit block (<b>AES<\/b>, including <b>AES\u2212CBC<\/b>)<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 non\u2212TLS Ciphers: same as <b>TLS<\/b> Ciphers<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 key exchange: <b>ECDHE<\/b>, <b>DHE<\/b> (no <b>DHE\u2212DSS<\/b>, no <b>RSA<\/b>)<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>DH<\/b> params size: >= 2048<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>RSA<\/b> params size: >= 2048<\/p>\n<p style=\"margin-left:23%; margin-top: 1em\">\u2022 <b>TLS<\/b> protocols: <b>TLS<\/b> >= 1.2, <b>DTLS<\/b> >= 1.2<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>EMPTY<\/b><\/p>\n<p style=\"margin-left:17%;\">All cryptographic algorithms are disabled (used for debugging only, do not use).<\/p>\n<h2>CRYPTO POLICY DEFINITON FORMAT <a name=\"CRYPTO POLICY DEFINITON FORMAT\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">The crypto policy definiton files have a simple syntax following an <b>INI<\/b> file <i>key<\/i> = <i>value<\/i> syntax with these particular features:<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 Comments are indicated by <i>#<\/i> character. Everything on the line following the character is ignored.<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 Backslash <i><\/i> character followed immediately with the end\u2212of\u2212line character indicates line continuation. The following line is concatenated to the current line after the backslash and end\u2212of\u2212line characters are removed.<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 Value types can be either decimal integers, arbitrary strings, or lists of strings without whitespace characters separated by any number of whitespaces.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The allowed keys are:<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>mac<\/b>: List of allowed MAC algorithms<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>ssh_group<\/b>: Optional; list of allowed groups or elliptic curves for key exchanges for use with the SSH protocol. If absent, the value is derived from <b>group<\/b>.<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>group<\/b>: List of allowed groups or elliptic curves for key exchanges for use with other protocols<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>hash<\/b>: List of allowed cryptographic hash (message digest) algorithms<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>sign<\/b>: List of allowed signature algorithms<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>tls_cipher<\/b>: Optional; list of allowed symmetric encryption algorithms (including the modes) for use with the TLS protocol. If absent, the value is derived from <b>cipher<\/b>.<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>ssh_cipher<\/b>: Optional; list of allowed symmetric encryption algorithms (including the modes) for use with the SSH protocol. If absent, the value is derived from <b>cipher<\/b>.<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>cipher<\/b>: List of allowed symmetric encryption algorithms (including the modes) for use with other protocols<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>key_exchange<\/b>: List of allowed key exchange algorithms<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>protocol<\/b>: List of allowed TLS and DTLS protocol versions (ignored by <b>OpenSSL<\/b> and <b>NSS<\/b> back ends)<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>ike_protocol<\/b>: List of allowed IKE protocol versions<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>min_tls_version<\/b>: Lowest allowed TLS protocol version (used only by <b>OpenSSL<\/b> a and <b>NSS<\/b> back ends)<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>min_dtls_version<\/b>: Lowest allowed DTLS protocol version (used only by <b>NSS<\/b> back end)<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>min_dh_size<\/b>: Integer value of minimum number of bits of parameters for <b>DH<\/b> key exchange<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>min_dsa_size<\/b>: Integer value of minimum number of bits for <b>DSA<\/b> keys<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>min_rsa_size<\/b>: Integer value of minimum number of bits for <b>RSA<\/b> keys<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>sha1_in_certs<\/b>: Value of 1 if <b>SHA1<\/b> allowed in certificate signatures, 0 otherwise (Applies to <b>GnuTLS<\/b> back end only.)<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>sha1_in_dnssec<\/b>: Value of 1 if <b>SHA1<\/b> allowed in DNSSec protocol even if it is not present in the <b>hash<\/b> and <b>sign<\/b> lists, 0 otherwise (Applies to <b>BIND<\/b> back end only.)<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>arbitrary_dh_groups<\/b>: Value of 1 if arbitrary group in <b>Diffie\u2212Hellman<\/b> is allowed, 0 otherwise<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>ssh_certs<\/b>: Value of 1 if <b>OpenSSH<\/b> certificate authentication is allowed, 0 otherwise<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>ssh_etm<\/b>: Value of 1 if <b>OpenSSH<\/b> EtM (encrypt\u2212then\u2212mac) extension is allowed, 0 otherwise<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The full policy definition files have suffix .pol, the policy module definition files have suffix .pmod. The policy module files do not have to have values set for all the keys listed above.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The lists as set in the base (full policy) are modified by the lists specified in the module files in following way:<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>\u2212<\/b><i>list\u2212item<\/i>: The <i>list\u2212item<\/i> is removed from the list specified in the base policy.<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>+<\/b><i>list\u2212item<\/i>: The <i>list\u2212item<\/i> is inserted at the beginning of the list specified in the base policy. The inserts are done in the order of appearance in the policy module file so the actual order in the final list will be reversed.<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <i>list\u2212item<\/i><b>+<\/b>: The <i>list\u2212item<\/i> is appended to the end of the list specified in the base policy.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">To completely override a list value in a module file just use <i>list\u2212items<\/i> without any sign. Combining <i>list\u2212items<\/i> with and without signs in a single list value assignment is not allowed however an existing list value can be modified in multiple further assignments.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Non\u2212list key values in the policy module files are simply overriden.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The keys marked as <b>Optional<\/b> can be omitted in the policy definition files. In that case, the values will be derived from the base keys. Note that, this value propagation only applies to the policy definition files. In the policy module files, each key that needs modification must be explicitly specified.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>Policy file placement and naming:<\/b><\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The policy files shipped in packages are placed in \/usr\/share\/crypto\u2212policies\/policies and the policy modules in \/usr\/share\/crypto\u2212policies\/policies\/modules.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The locally configured policy files are placed in \/etc\/crypto\u2212policies\/policies and the policy modules in \/etc\/crypto\u2212policies\/policies\/modules.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The policy and policy module files must have names in upper\u2212case except for the .pol and .pmod suffix as the update\u2212crypto\u2212policies command always converts the policy name to upper\u2212case before searching for the policy on the filesystem.<\/p>\n<h2>COMMANDS <a name=\"COMMANDS\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>update\u2212crypto\u2212policies(8)<\/b><\/p>\n<p style=\"margin-left:17%;\">This command manages the policies available to the various cryptographic back ends and allows the system administrator to change the active cryptographic policy level.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>fips\u2212mode\u2212setup(8)<\/b><\/p>\n<p style=\"margin-left:17%;\">This command allows the system administrator to enable, or disable the system FIPS mode and also apply the <b>FIPS<\/b> cryptographic policy level which limits the allowed algorithms and protocols to these allowed by the FIPS 140\u22122 requirements.<\/p>\n<h2>NOTES <a name=\"NOTES\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>Exceptions<\/b><\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>Go\u2212language<\/b> applications do not yet follow the system\u2212wide policy.<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>GnuPG\u22122<\/b> application does not follow the system\u2212wide policy.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">In general only the data\u2212in\u2212transit is currently covered by the system\u2212wide policy.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">If the system administrator changes the system\u2212wide policy level with the <b>update\u2212crypto\u2212policies(8)<\/b> command it is advisable to restart the system as the individual back\u2212end 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\u2212end libraries are restarted.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>Removed cipher suites and protocols<\/b><\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The following cipher suites and protocols are completely removed from the core cryptographic libraries listed above:<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>DES<\/b><\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 All export grade cipher suites<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>MD5<\/b> in signatures<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>SSLv2<\/b><\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>SSLv3<\/b><\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 All <b>ECC<\/b> curves smaller than 224 bits<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 All binary field <b>ECC<\/b> curves<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>Cipher suites and protocols disabled in all policy levels<\/b><\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">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:<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>DH<\/b> with parameters < 1024 bits<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>RSA<\/b> with key size < 1024 bits<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>Camellia<\/b><\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>ARIA<\/b><\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>SEED<\/b><\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>IDEA<\/b><\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 Integrity only ciphersuites<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>TLS CBC mode<\/b> ciphersuites using <b>SHA\u2212384<\/b> HMAC<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>AES\u2212CCM8<\/b><\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 all <b>ECC<\/b> curves incompatible with <b>TLS 1.3<\/b>, including secp256k1<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>IKEv1<\/b><\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>Notable irregularities in the individual configuration generators<\/b><\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>OpenSSL<\/b>: The minimum length of the keys and some other parameters are enforced by the @SECLEVEL value which does not provide a fine granularity. The list of <b>TLS<\/b> ciphers is not generated as an exact list but by subtracting from all the supported ciphers for the enabled key exchange methods. For that reason there is no way to disable a random cipher. In particular all <b>AES\u2212128<\/b> ciphers are disabled if the <b>AES\u2212128\u2212GCM<\/b> is not present in the list; all <b>AES\u2212256<\/b> ciphers are disabled if the <b>AES\u2212256\u2212GCM<\/b> is not present. The <b>CBC<\/b> ciphers are disabled if there isn\u2019t <b>HMAC\u2212SHA1<\/b> in the hmac list and <b>AES\u2212256\u2212CBC<\/b> in the cipher list. To disable the <b>CCM<\/b> ciphers both <b>AES\u2212128\u2212CCM<\/b> and <b>AES\u2212256\u2212CCM<\/b> must not be present in the cipher list.<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>GnuTLS<\/b>: The minimum length of the keys and some other parameters are enforced by min\u2212verification\u2212profile setting in the <b>GnuTLS<\/b> configuration file which does not provide fine granularity.<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>OpenSSH<\/b>: <b>DH<\/b> group 1 is always disabled on server even if the policy allows 1024 bit <b>DH<\/b> groups in general. The OpenSSH configuration option HostKeyAlgorithms is set only for the <b>SSH<\/b> server as otherwise the handling of the existing known hosts entries would be broken on client.<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">\u2022 <b>Libreswan<\/b>: The <b>key_exchange<\/b> parameter does not affect the generated configuration. The use of regular <b>DH<\/b> or <b>ECDH<\/b> can be limited with appropriate setting of the <b>group<\/b> parameter.<\/p>\n<h2>HISTORY <a name=\"HISTORY\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">The <b>ECDHE\u2212GSS<\/b> and <b>DHE\u2212GSS<\/b> algorithms are newly introduced and must be specified in the base policy for the SSH GSSAPI key exchange methods to be enabled. Previously the legacy SSH GSSAPI key exchange methods were automatically enabled when the <b>SHA1<\/b> hash and <b>DH<\/b> parameters of at least 2048 bits were enabled.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Before the introduction of the <b>custom crypto policies<\/b> support it was possible to have an completely arbitrary crypto policy created as a set of arbitrary back\u2212end config files in \/usr\/share\/crypto\u2212policies\/<POLICYNAME> directory. With the introduction of the <b>custom crypto policies<\/b> it is still possible but there must be an empty (possibly with any comment lines) <POLICYNAME>.pol file in \/usr\/share\/crypto\u2212policies\/policies so the update\u2212crypto\u2212policies command can recognize the arbitrary custom policy.<\/p>\n<h2>FILES <a name=\"FILES\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">\/etc\/crypto\u2212policies\/back\u2212ends<\/p>\n<p style=\"margin-left:17%;\">The individual cryptographical back\u2212end configuration files. Usually linked to the configuration shipped in the crypto\u2212policies package unless a configuration from local.d is added.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">\/etc\/crypto\u2212policies\/config<\/p>\n<p style=\"margin-left:17%;\">The active crypto\u2212policies level set on the system.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">\/etc\/crypto\u2212policies\/local.d<\/p>\n<p style=\"margin-left:17%;\">Additional configuration shipped by other packages or created by the system administrator. The contents of the <back\u2212end>\u2212file.config is appended to the configuration from the policy back end as shipped in the crypto\u2212policies package.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">\/usr\/share\/crypto\u2212policies\/policies<\/p>\n<p style=\"margin-left:17%;\">System policy definition files.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">\/usr\/share\/crypto\u2212policies\/policies\/modules<\/p>\n<p style=\"margin-left:17%;\">System subpolicy module definition files.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">\/etc\/crypto\u2212policies\/policies<\/p>\n<p style=\"margin-left:17%;\">Custom policy definition files as configured by the system administrator.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">\/etc\/crypto\u2212policies\/policies\/modules<\/p>\n<p style=\"margin-left:17%;\">Custom subpolicy module definition files as configured by the system administrator.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">\/usr\/share\/crypto\u2212policies\/<'POLICYNAME'><\/p>\n<p style=\"margin-left:17%;\">Pre\u2212generated back\u2212end configurations for policy <i>POLICYNAME<\/i>.<\/p>\n<h2>SEE ALSO <a name=\"SEE ALSO\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">update\u2212crypto\u2212policies(8), fips\u2212mode\u2212setup(8)<\/p>\n<h2>AUTHOR <a name=\"AUTHOR\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">Written by Tom\u00c3\u00a1\u00c5\u00a1 Mr\u00c3\u00a1z.<\/p>\n<hr>\n","protected":false},"excerpt":{"rendered":"<p>  crypto-policies \u2212 system\u2212wide crypto policies overview <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[971],"tags":[973,1016,972],"class_list":["post-3923","post","type-post","status-publish","format-standard","hentry","category-7-miscelanea","tag-973","tag-crypto-policies","tag-man7"],"gutentor_comment":0,"_links":{"self":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/posts\/3923","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/comments?post=3923"}],"version-history":[{"count":0,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/posts\/3923\/revisions"}],"wp:attachment":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/media?parent=3923"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/categories?post=3923"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/tags?post=3923"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}