EAP-TLS server: Disable TLS v1.3 by default

The current EAP peer implementation is not yet ready for the TLS v1.3
changes with EAP-TTLS, EAP-PEAP, and EAP-FAST, so disable TLS v1.3 for
this EAP method for now.

While the current EAP-TLS implementation is more or less complete for
TLS v1.3, there has been no interoperability testing with other
implementations, so disable for by default for now until there has been
chance to confirm that no significant interoperability issues show up
with TLS version update. tls_flags=[ENABLE-TLSv1.3] configuration
parameter can be used to enable TLS v1.3 (assuming the TLS library
supports it; e.g., when using OpenSSL 1.1.1).

Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2018-05-01 22:12:37 +03:00
parent e8a7af9a38
commit d501c27cfe
2 changed files with 13 additions and 0 deletions

View file

@ -2140,6 +2140,11 @@ static unsigned int parse_tls_flags(const char *val)
{ {
unsigned int flags = 0; unsigned int flags = 0;
/* Disable TLS v1.3 by default for now to avoid interoperability issue.
* This can be enabled by default once the implementation has been fully
* completed and tested with other implementations. */
flags |= TLS_CONN_DISABLE_TLSv1_3;
if (os_strstr(val, "[ALLOW-SIGN-RSA-MD5]")) if (os_strstr(val, "[ALLOW-SIGN-RSA-MD5]"))
flags |= TLS_CONN_ALLOW_SIGN_RSA_MD5; flags |= TLS_CONN_ALLOW_SIGN_RSA_MD5;
if (os_strstr(val, "[DISABLE-TIME-CHECKS]")) if (os_strstr(val, "[DISABLE-TIME-CHECKS]"))
@ -2152,6 +2157,8 @@ static unsigned int parse_tls_flags(const char *val)
flags |= TLS_CONN_DISABLE_TLSv1_2; flags |= TLS_CONN_DISABLE_TLSv1_2;
if (os_strstr(val, "[DISABLE-TLSv1.3]")) if (os_strstr(val, "[DISABLE-TLSv1.3]"))
flags |= TLS_CONN_DISABLE_TLSv1_3; flags |= TLS_CONN_DISABLE_TLSv1_3;
if (os_strstr(val, "[ENABLE-TLSv1.3]"))
flags &= ~TLS_CONN_DISABLE_TLSv1_3;
if (os_strstr(val, "[SUITEB]")) if (os_strstr(val, "[SUITEB]"))
flags |= TLS_CONN_SUITEB; flags |= TLS_CONN_SUITEB;
if (os_strstr(val, "[SUITEB-NO-ECDH]")) if (os_strstr(val, "[SUITEB-NO-ECDH]"))

View file

@ -10,6 +10,7 @@
#include "utils/common.h" #include "utils/common.h"
#include "crypto/sha1.h" #include "crypto/sha1.h"
#include "crypto/tls.h"
#include "radius/radius_client.h" #include "radius/radius_client.h"
#include "common/ieee802_11_defs.h" #include "common/ieee802_11_defs.h"
#include "common/eapol_common.h" #include "common/eapol_common.h"
@ -125,6 +126,11 @@ void hostapd_config_defaults_bss(struct hostapd_bss_config *bss)
#ifdef CONFIG_MBO #ifdef CONFIG_MBO
bss->mbo_cell_data_conn_pref = -1; bss->mbo_cell_data_conn_pref = -1;
#endif /* CONFIG_MBO */ #endif /* CONFIG_MBO */
/* Disable TLS v1.3 by default for now to avoid interoperability issue.
* This can be enabled by default once the implementation has been fully
* completed and tested with other implementations. */
bss->tls_flags = TLS_CONN_DISABLE_TLSv1_3;
} }