Comparison

core/certmanager.lua @ 13503:8b68e8faab52

core.certmanager: Include ffdhe2048 from RFC 7919 as default DH param This removes one manual (yet undocumented) step that was supposed to be done to get a complete 'intermediate' configuration. This file can be found on the Internet by searching for "ffdhe2048" and can be verified by comparing the hexadecimal representation of p from the RFC with the output of `openssl asn1parse`. Given the preference and prevalence of ECDHE, it seems likely that few would have noticed this.
author Kim Alvefur <zash@zash.se>
date Fri, 12 Jul 2024 15:06:42 +0200
parent 13303:05c0ac580552
child 13703:99d2100d2918
comparison
equal deleted inserted replaced
13502:61da4491eebc 13503:8b68e8faab52
211 "!aNULL", -- Ciphers that does not authenticate the connection 211 "!aNULL", -- Ciphers that does not authenticate the connection
212 }; 212 };
213 dane = tls.features.capabilities.dane and configmanager.get("*", "use_dane") and { "no_ee_namechecks" }; 213 dane = tls.features.capabilities.dane and configmanager.get("*", "use_dane") and { "no_ee_namechecks" };
214 } 214 }
215 215
216 -- https://datatracker.ietf.org/doc/html/rfc7919#appendix-A.1
217 local ffdhe2048 = [[
218 -----BEGIN DH PARAMETERS-----
219 MIIBCAKCAQEA//////////+t+FRYortKmq/cViAnPTzx2LnFg84tNpWp4TZBFGQz
220 +8yTnc4kmz75fS/jY2MMddj2gbICrsRhetPfHtXV/WVhJDP1H18GbtCFY2VVPe0a
221 87VXE15/V8k1mE8McODmi3fipona8+/och3xWKE2rec1MKzKT0g6eXq8CrGCsyT7
222 YdEIqUuyyOP7uWrat2DX9GgdT0Kj3jlN9K5W7edjcrsZCwenyO4KbXCeAvzhzffi
223 7MA0BM0oNC9hkXL+nOmFg/+OTxIy7vKBg8P+OxtMb61zO7X8vC7CIAXFjvGDfRaD
224 ssbzSibBsu/6iGtCOGEoXJf//////////wIBAg==
225 -----END DH PARAMETERS-----
226 ]]
227
216 local mozilla_ssl_configs = { 228 local mozilla_ssl_configs = {
217 -- https://wiki.mozilla.org/Security/Server_Side_TLS 229 -- https://wiki.mozilla.org/Security/Server_Side_TLS
218 -- Version 5.7 as of 2023-07-09 230 -- Version 5.7 as of 2023-07-09
219 modern = { 231 modern = {
220 protocol = "tlsv1_3"; 232 protocol = "tlsv1_3";
223 curveslist = { "X25519"; "prime256v1"; "secp384r1" }; 235 curveslist = { "X25519"; "prime256v1"; "secp384r1" };
224 ciphersuites = { "TLS_AES_128_GCM_SHA256"; "TLS_AES_256_GCM_SHA384"; "TLS_CHACHA20_POLY1305_SHA256" }; 236 ciphersuites = { "TLS_AES_128_GCM_SHA256"; "TLS_AES_256_GCM_SHA384"; "TLS_CHACHA20_POLY1305_SHA256" };
225 }; 237 };
226 intermediate = { 238 intermediate = {
227 protocol = "tlsv1_2+"; 239 protocol = "tlsv1_2+";
228 dhparam = nil; -- ffdhe2048.txt 240 dhparam = ffdhe2048;
229 options = { cipher_server_preference = false }; 241 options = { cipher_server_preference = false };
230 ciphers = { 242 ciphers = {
231 "ECDHE-ECDSA-AES128-GCM-SHA256"; 243 "ECDHE-ECDSA-AES128-GCM-SHA256";
232 "ECDHE-RSA-AES128-GCM-SHA256"; 244 "ECDHE-RSA-AES128-GCM-SHA256";
233 "ECDHE-ECDSA-AES256-GCM-SHA384"; 245 "ECDHE-ECDSA-AES256-GCM-SHA384";