View Issue Details

IDProjectCategoryView StatusLast Update
0011263GNUnettransport servicepublic2026-03-19 12:27
Reporterschanzen Assigned To 
PriorityhighSeverityminorReproducibilityhave not tried
Status newResolutionopen 
Target Version1.0.0 
Summary0011263: QUIC+TLS+ECH Communicator
DescriptionOur current two QUIC/HTTP3 communicators should be consolidated into a single QUIC communicator.
That communicator should speak QUIC (https://datatracker.ietf.org/doc/html/rfc9000) TLS 1.3 (https://datatracker.ietf.org/doc/html/rfc8446) with ECH (https://datatracker.ietf.org/doc/rfc9849/)

That should be our transport and security baseline for GNUnet communication.

Libraries:
QUIC+TLS: https://github.com/ngtcp2/ngtcp2
For ECH, the OpenSSL backend of ngtcp2 can be used, ECH is support on OpenSSL >4.0
Maybe introducing a different TLS dependency can facilitate integration speed, as OpenSSL major version bumps in OSes take time.
TagsNo tags attached.

Activities

schanzen

2026-03-19 12:24

administrator   ~0028186

Example client and server ECH configuration of OpenSSL: https://github.com/openssl/openssl/blob/master/demos/sslecho/echecho.c

How to get OpenSSL context handle in ngtcp2: https://github.com/ngtcp2/ngtcp2/blob/main/examples/tls_client_session_ossl.cc

schanzen

2026-03-19 12:27

administrator   ~0028187

Last edited: 2026-03-19 12:27

It is necessary to convert the HELLOs we know (in particular the EdDSA keys) into something that can be used in the ECH (see RFC9849).
This should be straight forward.

Then we need to figure out which key to use for the TLS handshake (or rather the key used in the presented certificate).
We could design a HELLO that encodes another key in the HELLO that serves as the certificate key or the HPKE key for the ECH.
It would probably make more sense to encode the ECH key, as it needs to be X25519 (not EdDSA), and the EdDSA can be naturally used in TLS self-signed certs.

Issue History

Date Modified Username Field Change
2026-03-19 12:23 schanzen New Issue
2026-03-19 12:23 schanzen Priority normal => high
2026-03-19 12:24 schanzen Note Added: 0028186
2026-03-19 12:27 schanzen Note Added: 0028187
2026-03-19 12:27 schanzen Note Edited: 0028187