diff --git a/docs/architecture/tls13-experimental.md b/docs/architecture/tls13-experimental.md index 8848d66261..0dceeebaf3 100644 --- a/docs/architecture/tls13-experimental.md +++ b/docs/architecture/tls13-experimental.md @@ -133,17 +133,23 @@ MVP definition (1) This is just for comparison. - (2) The MVP sends one shared secret corresponding to the configured preferred - group. The preferred group is the group of the first curve in the list of - allowed curves as defined by the configuration. The allowed curves are - by default ordered as follow: `secp256r1`, `x25519`, `secp384r1` - and finally `secp521r1`. This default order is aligned with the - list of mandatory-to-implement groups (in absence of an application - profile standard specifying otherwise) defined in section 9.1 of the - specification. The list of allowed curves can be changed through the - `mbedtls_ssl_conf_curves()` API. + (2) The MVP sends only one shared secret corresponding to the configured + preferred group. This could end up with connection failure if the + server does not support our preferred curve, as the MVP does not implement + HelloRetryRequest. The preferred group is the group of the first curve in + the list of allowed curves as defined by the configuration. The allowed + curves are by default ordered as follows: `x25519`, `secp256r1`, + `secp384r1` and finally `secp521r1`. Note that, in the absence of an + application profile standard specifying otherwise, section 9.1 of the + specification rather promotes curve `secp256r1` to be supported over + curve `x25519`. The MVP would, however, rather keep the preference order + currently promoted by Mbed TLS as this applies to TLS 1.2 as well, and + changing the order only for TLS1.3 would be potentially difficult. + In the unlikely event a server does not support curve `x25519` but does + support curve `secp256r1`, curve `secp256r1` can be set as the preferred + curve through the `mbedtls_ssl_conf_curves()` API. - (3) The MVP proposes only TLS 1.3 and does not support version negociation. + (3) The MVP proposes only TLS 1.3 and does not support version negotiation. Out-of-protocol fallback is supported though if the Mbed TLS library has been built to support both TLS 1.3 and TLS 1.2: just set the maximum of the minor version of the SSL configuration to