Change default min TLS version to TLS 1.0
diff --git a/ChangeLog b/ChangeLog
index 09c5b2f..206a3a8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -41,6 +41,7 @@
* Remove r and s from ecdsa_context
Default behavior changes
+ * The default minimum TLS version is now TLS 1.0.
* RC4 is now blacklisted by default in the SSL/TLS layer, and excluded from the
default ciphersuite list returned by ssl_list_ciphersuites()
* Support for receiving SSLv2 ClientHello is now disabled by default at
diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h
index fa20c7f..09aaf37 100644
--- a/include/mbedtls/ssl.h
+++ b/include/mbedtls/ssl.h
@@ -1718,7 +1718,7 @@
/**
* \brief Set the minimum accepted SSL/TLS protocol version
- * (Default: SSL_MIN_MAJOR_VERSION, SSL_MIN_MINOR_VERSION)
+ * (Default: TLS 1.0)
*
* \note Input outside of the SSL_MAX_XXXXX_VERSION and
* SSL_MIN_XXXXX_VERSION range is ignored.
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index fb943dc..73aefc8 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -4953,8 +4953,8 @@
/*
* Sane defaults
*/
- ssl->min_major_ver = SSL_MIN_MAJOR_VERSION;
- ssl->min_minor_ver = SSL_MIN_MINOR_VERSION;
+ ssl->min_major_ver = SSL_MAJOR_VERSION_3;
+ ssl->min_minor_ver = SSL_MINOR_VERSION_1; /* TLS 1.0 */
ssl->max_major_ver = SSL_MAX_MAJOR_VERSION;
ssl->max_minor_ver = SSL_MAX_MINOR_VERSION;
diff --git a/programs/ssl/ssl_client1.c b/programs/ssl/ssl_client1.c
index b9735b4..45a6902 100644
--- a/programs/ssl/ssl_client1.c
+++ b/programs/ssl/ssl_client1.c
@@ -161,9 +161,6 @@
ssl_set_authmode( &ssl, SSL_VERIFY_OPTIONAL );
ssl_set_ca_chain( &ssl, &cacert, NULL, "mbed TLS Server 1" );
- /* SSLv3 is deprecated, set minimum to TLS 1.0 */
- ssl_set_min_version( &ssl, SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1 );
-
ssl_set_rng( &ssl, ctr_drbg_random, &ctr_drbg );
ssl_set_dbg( &ssl, my_debug, stdout );
ssl_set_bio_timeout( &ssl, &server_fd, net_send, net_recv, NULL, 0 );
diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c
index 9259976..67d2955 100644
--- a/programs/ssl/ssl_client2.c
+++ b/programs/ssl/ssl_client2.c
@@ -83,7 +83,7 @@
#define DFL_ALLOW_LEGACY -2
#define DFL_RENEGOTIATE 0
#define DFL_EXCHANGES 1
-#define DFL_MIN_VERSION SSL_MINOR_VERSION_1
+#define DFL_MIN_VERSION -1
#define DFL_MAX_VERSION -1
#define DFL_ARC4 -1
#define DFL_AUTH_MODE -1
@@ -250,8 +250,8 @@
USAGE_RECSPLIT \
"\n" \
" arc4=%%d default: (library default: 0)\n" \
- " min_version=%%s default: \"\" (ssl3)\n" \
- " max_version=%%s default: \"\" (tls1_2)\n" \
+ " min_version=%%s default: (library default: tls1)\n" \
+ " max_version=%%s default: (library default: tls1_2)\n" \
" force_version=%%s default: \"\" (none)\n" \
" options: ssl3, tls1, tls1_1, tls1_2, dtls1, dtls1_2\n" \
"\n" \
@@ -1197,17 +1197,17 @@
}
#endif
- if( opt.min_version != -1 )
+ if( opt.min_version != DFL_MIN_VERSION )
{
ret = ssl_set_min_version( &ssl, SSL_MAJOR_VERSION_3, opt.min_version );
- if( ret != 0 && opt.min_version != DFL_MIN_VERSION )
+ if( ret != 0 )
{
polarssl_printf( " failed\n ! selected min_version is not available\n" );
goto exit;
}
}
- if( opt.max_version != -1 )
+ if( opt.max_version != DFL_MAX_VERSION )
{
ret = ssl_set_max_version( &ssl, SSL_MAJOR_VERSION_3, opt.max_version );
if( ret != 0 )
diff --git a/programs/ssl/ssl_fork_server.c b/programs/ssl/ssl_fork_server.c
index 451b1a8..72d74b2 100644
--- a/programs/ssl/ssl_fork_server.c
+++ b/programs/ssl/ssl_fork_server.c
@@ -258,10 +258,6 @@
ssl_set_endpoint( &ssl, SSL_IS_SERVER );
ssl_set_authmode( &ssl, SSL_VERIFY_NONE );
- /* SSLv3 is deprecated, set minimum to TLS 1.0 */
- ssl_set_min_version( &ssl, SSL_MAJOR_VERSION_3,
- SSL_MINOR_VERSION_1 );
-
ssl_set_rng( &ssl, ctr_drbg_random, &ctr_drbg );
ssl_set_dbg( &ssl, my_debug, stdout );
ssl_set_bio_timeout( &ssl, &client_fd, net_send, net_recv, NULL, 0 );
diff --git a/programs/ssl/ssl_mail_client.c b/programs/ssl/ssl_mail_client.c
index 2a20fbd..55d7f87 100644
--- a/programs/ssl/ssl_mail_client.c
+++ b/programs/ssl/ssl_mail_client.c
@@ -602,9 +602,6 @@
* but makes interop easier in this simplified example */
ssl_set_authmode( &ssl, SSL_VERIFY_OPTIONAL );
- /* SSLv3 is deprecated, set minimum to TLS 1.0 */
- ssl_set_min_version( &ssl, SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1 );
-
ssl_set_rng( &ssl, ctr_drbg_random, &ctr_drbg );
ssl_set_dbg( &ssl, my_debug, stdout );
ssl_set_bio_timeout( &ssl, &server_fd, net_send, net_recv, NULL, 0 );
diff --git a/programs/ssl/ssl_pthread_server.c b/programs/ssl/ssl_pthread_server.c
index ece8ad2..9702ab1 100644
--- a/programs/ssl/ssl_pthread_server.c
+++ b/programs/ssl/ssl_pthread_server.c
@@ -168,9 +168,6 @@
ssl_set_endpoint( &ssl, SSL_IS_SERVER );
ssl_set_authmode( &ssl, SSL_VERIFY_NONE );
- /* SSLv3 is deprecated, set minimum to TLS 1.0 */
- ssl_set_min_version( &ssl, SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1 );
-
ssl_set_rng( &ssl, ctr_drbg_random, &ctr_drbg );
ssl_set_dbg( &ssl, my_mutexed_debug, stdout );
diff --git a/programs/ssl/ssl_server.c b/programs/ssl/ssl_server.c
index 34cfa8c..2e4fcd8 100644
--- a/programs/ssl/ssl_server.c
+++ b/programs/ssl/ssl_server.c
@@ -197,9 +197,6 @@
ssl_set_endpoint( &ssl, SSL_IS_SERVER );
ssl_set_authmode( &ssl, SSL_VERIFY_NONE );
- /* SSLv3 is deprecated, set minimum to TLS 1.0 */
- ssl_set_min_version( &ssl, SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1 );
-
ssl_set_rng( &ssl, ctr_drbg_random, &ctr_drbg );
ssl_set_dbg( &ssl, my_debug, stdout );
diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c
index c2beec7..f3e2955 100644
--- a/programs/ssl/ssl_server2.c
+++ b/programs/ssl/ssl_server2.c
@@ -99,7 +99,7 @@
#define DFL_RENEGO_DELAY -2
#define DFL_RENEGO_PERIOD -1
#define DFL_EXCHANGES 1
-#define DFL_MIN_VERSION SSL_MINOR_VERSION_1
+#define DFL_MIN_VERSION -1
#define DFL_MAX_VERSION -1
#define DFL_ARC4 -1
#define DFL_AUTH_MODE -1
@@ -316,8 +316,8 @@
USAGE_ETM \
"\n" \
" arc4=%%d default: (library default: 0)\n" \
- " min_version=%%s default: \"ssl3\"\n" \
- " max_version=%%s default: \"tls1_2\"\n" \
+ " min_version=%%s default: (library default: tls1)\n" \
+ " max_version=%%s default: (library default: tls1_2)\n" \
" force_version=%%s default: \"\" (none)\n" \
" options: ssl3, tls1, tls1_1, tls1_2, dtls1, dtls1_2\n" \
"\n" \
@@ -1734,17 +1734,17 @@
}
#endif
- if( opt.min_version != -1 )
+ if( opt.min_version != DFL_MIN_VERSION )
{
ret = ssl_set_min_version( &ssl, SSL_MAJOR_VERSION_3, opt.min_version );
- if( ret != 0 && opt.min_version != DFL_MIN_VERSION )
+ if( ret != 0 )
{
polarssl_printf( " failed\n ! selected min_version is not available\n" );
goto exit;
}
}
- if( opt.max_version != -1 )
+ if( opt.max_version != DFL_MIN_VERSION )
{
ret = ssl_set_max_version( &ssl, SSL_MAJOR_VERSION_3, opt.max_version );
if( ret != 0 )