[gnutls-help] Priority strings, changing available ciphers
Alexander Sosedkin
asosedkin at redhat.com
Mon Jun 1 16:25:36 CEST 2026
On Mon, Jun 1, 2026 at 3:53 PM Sander Smeenk <ssmeenk at freshdot.net> wrote:
> I'm having a hard time figuring out 'priority strings' to disable
> certain cipher suites that are no longer deemed secure.
>
> GnuTLS 3.8.3, Exim 4.98.
>
> My current priority string is:
> '-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.3:PFS:SECURE256:%SERVER_PRECEDENCE'
>
> First off, running `gnutls-cli --list --priority ...` on that string
> shows eight TLS1.0 ciphers in the list. I would not expect that, given
> -VERS-ALL and only 1.2 and 1.3 being enabled again.
>
> According to 'sslyze', this results in these ciphers on my MX:
> | * TLS 1.2 Cipher Suites:
> | TLS_RSA_WITH_AES_256_GCM_SHA384 256
> | TLS_RSA_WITH_AES_256_CCM 256
> | TLS_RSA_WITH_AES_256_CBC_SHA 256
> | TLS_RSA_WITH_AES_128_GCM_SHA256 128
> | TLS_RSA_WITH_AES_128_CCM 128
> | TLS_RSA_WITH_AES_128_CBC_SHA 128
> | TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 256 ECDH: secp256r1 (256 bits)
> | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 256 ECDH: secp256r1 (256 bits)
> | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 256 ECDH: secp256r1 (256 bits)
> | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 128 ECDH: secp256r1 (256 bits)
> | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 128 ECDH: secp256r1 (256 bits)
> | TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 256 DH (3072 bits)
> | TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 256 DH (3072 bits)
> | TLS_DHE_RSA_WITH_AES_256_CCM 256 DH (3072 bits)
> | TLS_DHE_RSA_WITH_AES_256_CBC_SHA 256 DH (3072 bits)
> | TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 128 DH (3072 bits)
> | TLS_DHE_RSA_WITH_AES_128_CCM 128 DH (3072 bits)
> | TLS_DHE_RSA_WITH_AES_128_CBC_SHA 128 DH (3072 bits)
> |
> | * TLS 1.3 Cipher Suites:
> | TLS_CHACHA20_POLY1305_SHA256 256 ECDH: secp256r1 (256 bits)
> | TLS_AES_256_GCM_SHA384 256 ECDH: secp256r1 (256 bits)
> | TLS_AES_128_GCM_SHA256 128 ECDH: secp256r1 (256 bits)
> | TLS_AES_128_CCM_SHA256 128 ECDH: secp256r1 (256 bits)
>
> >From this list i want to disable these ciphers:
> | TLS_DHE_RSA_AES_256_CBC_SHA1 0x00, 0x39 TLS1.0
> | TLS_DHE_RSA_AES_128_CBC_SHA1 0x00, 0x33 TLS1.0
> | TLS_ECDHE_RSA_AES_256_CBC_SHA1 0xc0, 0x14 TLS1.0
> | TLS_ECDHE_RSA_AES_128_CBC_SHA1 0xc0, 0x13 TLS1.0
> | TLS_RSA_AES_256_GCM_SHA384 0x00, 0x9d TLS1.2
> | TLS_RSA_AES_256_CCM 0xc0, 0x9d TLS1.2
> | TLS_RSA_AES_256_CBC_SHA1 0x00, 0x35 TLS1.0
> | TLS_RSA_AES_128_GCM_SHA256 0x00, 0x9c TLS1.2
> | TLS_RSA_AES_128_CCM 0xc0, 0x9c TLS1.2
> | TLS_RSA_AES_128_CBC_SHA1 0x00, 0x2f TLS1.0
Have you checked that it actually lets you connect with these?
> But i seem to only have 'coarse' controls over the available cipher suite.
> For example i can only '-AES-256-GCM', which removes five ciphers from
> the set. Not just the RSA_AES_256_SHA384 one.
>
> Am i right to note that GnuTLS does not allow for such intricate
> configuration of available ciphers?
It does not, and neither do most of the other TLS libraries.
Usually it's a specific algorithm the system operator doesn't trust in general,
not specific combinations of them.
E.g., your intent looks like a `:-RSA:-SHA1` to me at a cursory glance,
so are you sure you need ciphersuite-grained control for your usecase?
> Exim... my MX
Email is one curious case historically utilizing opportunistic encryption,
has the internet finally moved past the times of unencrypted SMTP
and into TLS algorithm tightening? =)
More information about the Gnutls-help
mailing list