envoyproxy / envoyproxy/envoy

Fully support (Upstream|Downstream)TlsContext config in QUIC

Open
#25,418 3 comments 0 reactions 0 assignees View on GitHub
enhancement no stalebot quiche
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 20h
Merged PRs (30d)
437

Description

Currently not all config knobs in https://github.com/envoyproxy/envoy/blob/main/api/envoy/extensions/transport_sockets/tls/v3/tls.proto take effect in QUIC listener. Below are the ones which do not take effect and are not hidden behind #not-implemented-hide:

UpstreamTlsContext:
allow_renegotiation: not supported by QUICHE.
max_session_keys: needs plumbing. Envoy is hard-coded with the QUICHE default [kDefaultMaxEntries (1024)](https://github.com/google/quiche/blob/bac04054bccb2a249d4705ecc94a646404d41c1b/quiche/quic/core/crypto/quic_client_session_cache.cc#L13) in quic_client_session_cache.cc

DownstreamTlsContext:
require_client_certificate: needs plumbing. Explicitly disabled by https://github.com/envoyproxy/envoy/pull/24011
one of session_ticket_keys, session_ticket_keys_sds_secret_config, disable_stateless_session_resumption: needs plumbing. Session resumption is currently disabled by the default EnvoyQuicProofSource implementation.
session_timeout: not applicable, the boring SSL interface is only used for TLS 1.2 or earlier.
ocsp_staple_policy: OCSP response is not supported by QUICHE.
full_scan_certs_on_sni_mismatch: needs plumbing. Envoy always picks the first cert chain in the config.

CommonTlsContext:
tls_(minimum|maximum)_protocol_version: not applicable as QUIC only supports TLS 1.3.
ecdh_curves: needs plumbing. QUICHE supports the same default ones.
alpn_protocols: not applicable as the QUIC version supported in Envoy only allows "h3".
custom_handshaker: not applicable. Envoy can config similar feature via a [custom quic crypto stream](https://github.com/envoyproxy/envoy/blob/84ca17add2171c04876aaf345762f03b4d6c86b8/api/envoy/config/listener/v3/quic_config.proto#L60) and [proof source](https://github.com/envoyproxy/envoy/blob/84ca17add2171c04876aaf345762f03b4d6c86b8/api/envoy/config/listener/v3/quic_config.proto#L65).
key_log: boring SSL keylog is not supported by QUICHE.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.