Skip to content

Commit

Permalink
SD-3987: add config option TLSv13_Ciphersuites (#749)
Browse files Browse the repository at this point in the history
* add config option TLSv13_Ciphersuites

* minor update

* minor update

* lastUpdated

* minor change from review comment
  • Loading branch information
juliebin authored Oct 26, 2023
1 parent bee3299 commit 86d01a4
Show file tree
Hide file tree
Showing 6 changed files with 80 additions and 10 deletions.
3 changes: 2 additions & 1 deletion content/momentum/4/config-options-summary.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
lastUpdated: "09/14/2021"
lastUpdated: "09/20/2023"
title: "Configuration Options Summary"
description: "This chapter lists all configuration options visible in the following scopes global domain host binding binding group security pathway pathway group listener listen peer threadpool debug flags and cluster as well as in the listener specific scope Module specific options are documented in the module documentation and options specific to..."
---
Expand Down Expand Up @@ -340,6 +340,7 @@ The `Version` column indicated the version(s) of Momentum that support the optio
| [tls_ca](/momentum/4/config/tls-ca) – Specify certificate authority for outbound mail | sending |   | 4.0 and later | binding, binding_group, domain, global |
| [tls_certificate](/momentum/4/config/tls-certificate) – Specify certificate to use for inbound and outbound mail | receiving and sending |   | 4.0 and later | binding, binding_group, domain, ecstream_listener, esmtp_listener, global, http_listener, listen, pathway, pathway_group, peer, xmpp_listener |
| [tls_ciphers](/momentum/4/config/tls-ciphers) – Specify allowable ciphers for TLS inbound and outbound sessions | receiving and sending |   | 4.0 and later | binding, binding_group, domain, ecstream_listener, esmtp_listener, global, http_listener, listen, pathway, pathway_group, peer, xmpp_listener |
| [tlsv13_ciphersuites](/momentum/4/config/tlsv13-ciphersuites) – Specify allowable TLSv1.3 ciphersuites for TLS inbound and outbound sessions | receiving and sending |   | 4.6 and later | binding, binding_group, domain, esmtp_listener, global, http_listener, listen, pathway, pathway_group, peer |
| [tls_client_ca](/momentum/4/config/tls-client-ca) – Specify certificate authority for inbound mail | receiving |   | 4.0 and later | ecstream_listener, esmtp_listener, global, http_listener, listen, pathway, pathway_group, peer, xmpp_listener |
| [tls_dhparams_file](/momentum/4/config/ref-tls-dhparams-file) – Specifies DHE parameters that add per-session randomness to the encryption | both |   | 4.0 and later | global |
| [tls_enable_dhe_ciphers](/momentum/4/config/ref-tls-enable-dhe-ciphers) – Controls whether or not DHE ciphers are available | both | true | 4.0 and later | global |
Expand Down
3 changes: 2 additions & 1 deletion content/momentum/4/config/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
lastUpdated: "09/14/2021"
lastUpdated: "09/20/2023"
title: "Category File"
type: "custom"
name: "Configuration Options Reference"
Expand Down Expand Up @@ -206,6 +206,7 @@ description: "This chapter provides the definitions of the configuration options
| [tls_ca](/momentum/4/config/tls-ca) | certificate authority for outbound mail |
| [tls_certificate](/momentum/4/config/tls-certificate) | certificate to use for inbound and outbound mail |
| [tls_ciphers](/momentum/4/config/tls-ciphers) | specify allowable ciphers for TLS inbound and outbound sessions |
| [tlsv13_ciphersuites](/momentum/4/config/tlsv13-ciphersuites) | specify allowable TLSv1.3 ciphersuites for TLS inbound and outbound sessions |
| [tls_client_ca](/momentum/4/config/tls-client-ca) | certificate authority for inbound mail |
| [tls_dhparams_file](/momentum/4/config/ref-tls-dhparams-file) | specifies the file of Diffie Hellman (DHE) parameters that add per-session randomness to the encryption. Default parameters are built in the product if none are specified. |
| [tls_enable_dhe_ciphers](/momentum/4/config/ref-tls-enable-dhe-ciphers) | controls whether or not Diffie Hellman (DHE) ciphers are available |
Expand Down
10 changes: 6 additions & 4 deletions content/momentum/4/config/tls-protocols.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
lastUpdated: "03/26/2020"
lastUpdated: "09/20/2023"
title: "tls_protocols"
description: "tls protocols allowable ciphers for TLS inbound and outbound sessions tls protocols baseprotocol additional protocols Configuration Change This option is available as of version 4 1 0 2 tls protocols specifies the allowable protocols for an Open SSL TLS session The available protocols are ALL SS Lv 2 SS Lv..."
---
Expand All @@ -18,7 +18,9 @@ tls_protocols — allowable ciphers for TLS inbound and outbound sessions

**Configuration Change. ** This option is available as of version 4.1.0.2\.

`tls_protocols` specifies the allowable protocols for an OpenSSL TLS session. The available protocols are `ALL`, `SSLv2`, `SSLv3`, `TLSv1.0`, `TLSv1.1`, and `TLSv1.2`. Each set can be enabled or disabled by prefixing its name with a “+” or “-“ respectively. The following example shows the SSLv2 and SSLv3 protocols being disabled:
`tls_protocols` specifies the allowable protocols for an OpenSSL TLS session. The available
protocols are `ALL`, `SSLv2`, `SSLv3`, `TLSv1.0`, `TLSv1.1`, `TLSv1.2` and `TLSv1.3` (since Momentum
4.6). Each set can be enabled or disabled by prefixing its name with a “+” or “-“ respectively. The following example shows the SSLv2 and SSLv3 protocols being disabled:

`TLS_Protocols = "+ALL:-SSLv2:-SSLv3"`

Expand All @@ -28,9 +30,9 @@ The default value is “+ALL”.

### Note

In Centos/RHEL 5, which are typically shipped with OpenSSL 0.98, TLSv1.1 and TLSv1.2 are not available.
In Centos/RHEL 5, which are typically shipped with OpenSSL 0.98, TLSv1.1, TLSv1.2 and TLSv1.3 are not available.

<a name="idp26999712"></a>
## Scope

`tls_ciphers` is valid in the binding, binding_group, domain, ecstream_listener, esmtp_listener, global, http_listener, listen, pathway, pathway_group and peer scopes.
`tls_protocols` is valid in the binding, binding_group, domain, ecstream_listener, esmtp_listener, global, http_listener, listen, pathway, pathway_group and peer scopes.
62 changes: 62 additions & 0 deletions content/momentum/4/config/tlsv13-ciphersuites.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
lastUpdated: "09/20/2023"
title: "tlsv13_ciphersuites"
description: "specify allowable ciphersuites for TLS inbound and outbound sessions when TLSv1.3 protocol is negotiated and used"
---

<a name="config.tlsv13_ciphersuites"></a>
## Name

tlsv13_ciphersuites — specify allowable TLSv1.3 ciphersuites for TLS inbound and outbound sessions

## Synopsis

`TLSv13_Ciphersuites = "<ciphersuite>[:<another ciphersuite>]"`

## Description

**Configuration Change. ** This option is available as of version 4.6, for SMTP reception, HTTP reception, and SMTP deliveries only.

This option specifies the allowable ciphersuites for a TLS session using TLSv1.3 protocol. The
allowable ciphersuites must be a subset of the available TLSv1.3 ciphersuites on the host system.

**OpenSSL**

When TLS_Engine is set to `openssl`, `TLSv13_Ciphersuites` specifies a "ciphersuite list", which is a
colon (":") separated list of the supported TLSv1.3 ciphersuite names in order of preference.
There are 5 valid TLSv1.3 ciphersuites that are supported by OpenSSL 1.1.1:
```
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_GCM_SHA256
TLS_AES_128_CCM_8_SHA256
TLS_AES_128_CCM_SHA256
```
By default (if not explicitly specified through this configuration option), only the first three are enabled.
On the host machine, `openssl11 ciphers -s -tls1_3` can show the default TLSv1.3 ciphersuites;
`openssl11 ciphers -tls1_3 -v -s -ciphersuites TLS_AES_128_CCM_8_SHA256:TLS_AES_128_CCM_SHA256` can
check whether the last two ciphersuites are supported if enabled.
For more information about the TLSv1.3 ciphersuites, see
[https://wiki.openssl.org/index.php/TLS1.3#Ciphersuites](https://wiki.openssl.org/index.php/TLS1.3#Ciphersuites).


* To set the option to all the 5 TLSv1.3 ciphersuites supported by OpenSSL 1.1.1:

```
TLSv13_Ciphersuites = "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_8_SHA256:TLS_AES_128_CCM_SHA256"
```

The default value (when this option is left unset) is
`"TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256"`.

**GNUTLS**

This option has no meaning for GNUTLS.


### Note
This option is new in Momentum 4.6.

## Scope

`tlsv13_ciphersuites` is valid in the binding, binding_group, domain, esmtp_listener, global, http_listener, listen, pathway, pathway_group and peer scopes.
6 changes: 4 additions & 2 deletions content/momentum/4/inbound-tls.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
lastUpdated: "03/26/2020"
lastUpdated: "09/20/2023"
title: "Inbound TLS"
description: "Transport Layer Security TLS can be easily configured on an SMTP listener using the following configuration snippet The following are the configuration options related to inbound TLS tls allow renegotiation tls certificate tls ciphers tls client ca tls dhparams file tls enable dhe ciphers tls key tls protocols tls verified..."
---
Expand Down Expand Up @@ -27,6 +27,8 @@ The following are the configuration options related to inbound TLS:

* [tls_ciphers](/momentum/4/config/tls-ciphers)

* [tlsv13_ciphersuites](/momentum/4/config/tlsv13-ciphersuites)

* [tls_client_ca](/momentum/4/config/tls-client-ca)

* [tls_dhparams_file](/momentum/4/config/ref-tls-dhparams-file)
Expand All @@ -41,4 +43,4 @@ The following are the configuration options related to inbound TLS:

* [tls_verify_mode](/momentum/4/config/tls-verify-mode)

If client certificate verification fails, the SMTP session does not terminate. The TLS status is stored in predefined context validation variables, so it is possible to drive TLS policy from policy scripts. You can use this to reject messages when client verification failed. For more information regarding the TLS-related context variables, see [“Global Predefined Connection Context Variables”](/momentum/4/4-policy-context-variables#policy.predefined-context-conn-global).
If client certificate verification fails, the SMTP session does not terminate. The TLS status is stored in predefined context validation variables, so it is possible to drive TLS policy from policy scripts. You can use this to reject messages when client verification failed. For more information regarding the TLS-related context variables, see [“Global Predefined Connection Context Variables”](/momentum/4/4-policy-context-variables#policy.predefined-context-conn-global).
6 changes: 4 additions & 2 deletions content/momentum/4/tls-option.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
lastUpdated: "03/26/2020"
lastUpdated: "09/20/2023"
title: "Outbound TLS"
description: "A recent initiative among the large IS Ps and receiving domains is to use Transport Layer Security protocol TLS by default for mail traffic TLS is a standard for providing cryptographic protection of communication sessions between two systems It is derived from the earlier standard Secure Sockets Layer SSL and..."
---
Expand Down Expand Up @@ -32,6 +32,8 @@ By default, TLS is disabled. To use TLS, you must change the `TLS` option in the

* [tls_ciphers](/momentum/4/config/tls-ciphers)

* [tlsv13_ciphersuites](/momentum/4/config/tlsv13-ciphersuites)

* [tls_dhparams_file](/momentum/4/config/ref-tls-dhparams-file)

* [tls_enable_dhe_ciphers](/momentum/4/config/ref-tls-enable-dhe-ciphers)
Expand Down Expand Up @@ -69,4 +71,4 @@ binding "customer-1" {

### <a name="tls_option.logging"></a> Logging Macros

A number of macros are available to enable logging of details about the TLS session used for a delivery attempt. To use these macros, you must load the tls_macros module. See [“tls_macros – TLS-related Logging”](/momentum/4/4-tls-macros).
A number of macros are available to enable logging of details about the TLS session used for a delivery attempt. To use these macros, you must load the tls_macros module. See [“tls_macros – TLS-related Logging”](/momentum/4/4-tls-macros).

0 comments on commit 86d01a4

Please sign in to comment.