Обсуждение: Fine-tune TLS 1.3 cipher suites and curves lists

Поиск
Список
Период
Сортировка

Fine-tune TLS 1.3 cipher suites and curves lists

От
Seraphime Kirkovski
Дата:

Hi all,

 

I’m a security engineer and I’m looking into restricting the set of allowed ciphers on Postgres and configure a concrete set of curves on our postgres instances.

 

I see in the source code that only TLS 1.2 and bellow cipher lists can be configured:

 

https://github.com/postgres/postgres/blob/master/src/backend/libpq/be-secure-openssl.c#L281

 

and Postgres relies on the OpenSSL defaults for TLS 1.3 ciphersuites.

 

My first question is whether there is a reason not to support setting TLS 1.3 cipher suites through configuration ? Maybe there are Postgres builds with BoringSSL ? (Just speculating ?)

 

Another thing I was curious about is why does postgres opts to support setting only a single elliptic group (https://github.com/postgres/postgres/blob/master/src/backend/libpq/be-secure-openssl.c#L1303) instead of calling out to an SSL function like SSL_CTX_set1_curves_list ?

 

Would the community be interested in seeing patches for setting TLS 1.3 ciphersuites and expanding the configuration option for EC settings to support lists instead of single values ? 

 

Thanks,

Seraphime Kirkovski       

 

Re: Fine-tune TLS 1.3 cipher suites and curves lists

От
Daniel Gustafsson
Дата:
> On 17 Jul 2023, at 15:16, Seraphime Kirkovski <skirkovski@vmware.com> wrote:

> I see in the source code that only TLS 1.2 and bellow cipher lists can be configured:
>
> https://github.com/postgres/postgres/blob/master/src/backend/libpq/be-secure-openssl.c#L281
>
> and Postgres relies on the OpenSSL defaults for TLS 1.3 ciphersuites.
>
> My first question is whether there is a reason not to support setting TLS 1.3 cipher suites through configuration ?
Maybethere are Postgres builds with BoringSSL ? (Just speculating ?) 

I think the main raison is that noone has done it, and noone has requested it.
I have no way if knowing for certain, but I doubt too many postgres users
change this setting.

> Another thing I was curious about is why does postgres opts to support setting only a single elliptic group
(https://github.com/postgres/postgres/blob/master/src/backend/libpq/be-secure-openssl.c#L1303)instead of calling out to
anSSL function like SSL_CTX_set1_curves_list ? 
>
> Would the community be interested in seeing patches for setting TLS 1.3 ciphersuites and expanding the configuration
optionfor EC settings to support lists instead of single values ?  

I would be interested in seeing them, and would offer to review them.

The main challenge is IMO to properly document these settings such that
postgres users know what they are, and when they should think about changing
them.  Postgres also supports very old OpenSSL versions, so any change and
setting must in some way make sense for those installations (which may be a
no-op, a warning at startup for non-applicable settings, or something else).

--
Daniel Gustafsson