mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2025-05-04 22:12:16 +00:00
Reduce priority of 3DES ciphersuites
This commit is contained in:
parent
bdc807dbe8
commit
21ade06ef8
|
@ -21,6 +21,11 @@ Changes
|
||||||
produced by some optimizing compilers, showing up as failures in
|
produced by some optimizing compilers, showing up as failures in
|
||||||
e.g. RSA or ECC signature operations. Reported in #1722, fix suggested
|
e.g. RSA or ECC signature operations. Reported in #1722, fix suggested
|
||||||
by Aurelien Jarno and submitted by Jeffrey Martin.
|
by Aurelien Jarno and submitted by Jeffrey Martin.
|
||||||
|
* Ciphersuites based on 3DES now have the lowest priority by default.
|
||||||
|
|
||||||
|
Features
|
||||||
|
* Add MBEDTLS_REMOVE_3DES_CIPHERSUITES to allow removing 3DES ciphersuites
|
||||||
|
from the default list (inactive by default).
|
||||||
|
|
||||||
= mbed TLS 2.7.9 branch released 2018-12-21
|
= mbed TLS 2.7.9 branch released 2018-12-21
|
||||||
|
|
||||||
|
|
|
@ -556,6 +556,19 @@
|
||||||
*/
|
*/
|
||||||
#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
|
#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \def MBEDTLS_REMOVE_3DES_CIPHERSUITES
|
||||||
|
*
|
||||||
|
* Remove 3DES ciphersuites by default in SSL / TLS.
|
||||||
|
* This flag removes the ciphersuites based on 3DES from the default list as
|
||||||
|
* returned by mbedtls_ssl_list_ciphersuites(). However, it is still possible
|
||||||
|
* to enable (some of) them with mbedtls_ssl_conf_ciphersuites() by including
|
||||||
|
* them explicitly.
|
||||||
|
*
|
||||||
|
* Comment this macro to keep 3DES in the default ciphersuite list.
|
||||||
|
*/
|
||||||
|
#define MBEDTLS_REMOVE_3DES_CIPHERSUITES
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \def MBEDTLS_ECP_DP_SECP192R1_ENABLED
|
* \def MBEDTLS_ECP_DP_SECP192R1_ENABLED
|
||||||
*
|
*
|
||||||
|
|
|
@ -43,11 +43,11 @@
|
||||||
/*
|
/*
|
||||||
* Ordered from most preferred to least preferred in terms of security.
|
* Ordered from most preferred to least preferred in terms of security.
|
||||||
*
|
*
|
||||||
* Current rule (except rc4, weak and null which come last):
|
* Current rule (except RC4 and 3DES, weak and null which come last):
|
||||||
* 1. By key exchange:
|
* 1. By key exchange:
|
||||||
* Forward-secure non-PSK > forward-secure PSK > ECJPAKE > other non-PSK > other PSK
|
* Forward-secure non-PSK > forward-secure PSK > ECJPAKE > other non-PSK > other PSK
|
||||||
* 2. By key length and cipher:
|
* 2. By key length and cipher:
|
||||||
* AES-256 > Camellia-256 > AES-128 > Camellia-128 > 3DES
|
* AES-256 > Camellia-256 > AES-128 > Camellia-128
|
||||||
* 3. By cipher mode when relevant GCM > CCM > CBC > CCM_8
|
* 3. By cipher mode when relevant GCM > CCM > CBC > CCM_8
|
||||||
* 4. By hash function used when relevant
|
* 4. By hash function used when relevant
|
||||||
* 5. By key exchange/auth again: EC > non-EC
|
* 5. By key exchange/auth again: EC > non-EC
|
||||||
|
@ -105,11 +105,6 @@ static const int ciphersuite_preference[] =
|
||||||
MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
|
MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
|
||||||
MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
|
MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
|
||||||
|
|
||||||
/* All remaining >= 128-bit ephemeral suites */
|
|
||||||
MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,
|
|
||||||
MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
|
|
||||||
MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
|
|
||||||
|
|
||||||
/* The PSK ephemeral suites */
|
/* The PSK ephemeral suites */
|
||||||
MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384,
|
MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384,
|
||||||
MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM,
|
MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM,
|
||||||
|
@ -133,9 +128,6 @@ static const int ciphersuite_preference[] =
|
||||||
MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
|
MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
|
||||||
MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8,
|
MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8,
|
||||||
|
|
||||||
MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA,
|
|
||||||
MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA,
|
|
||||||
|
|
||||||
/* The ECJPAKE suite */
|
/* The ECJPAKE suite */
|
||||||
MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8,
|
MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8,
|
||||||
|
|
||||||
|
@ -183,11 +175,6 @@ static const int ciphersuite_preference[] =
|
||||||
MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
|
MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
|
||||||
MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
|
MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
|
||||||
|
|
||||||
/* All remaining >= 128-bit suites */
|
|
||||||
MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA,
|
|
||||||
MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,
|
|
||||||
MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,
|
|
||||||
|
|
||||||
/* The RSA PSK suites */
|
/* The RSA PSK suites */
|
||||||
MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384,
|
MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384,
|
||||||
MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384,
|
MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384,
|
||||||
|
@ -201,8 +188,6 @@ static const int ciphersuite_preference[] =
|
||||||
MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256,
|
MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256,
|
||||||
MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,
|
MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,
|
||||||
|
|
||||||
MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA,
|
|
||||||
|
|
||||||
/* The PSK suites */
|
/* The PSK suites */
|
||||||
MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384,
|
MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384,
|
||||||
MBEDTLS_TLS_PSK_WITH_AES_256_CCM,
|
MBEDTLS_TLS_PSK_WITH_AES_256_CCM,
|
||||||
|
@ -220,6 +205,16 @@ static const int ciphersuite_preference[] =
|
||||||
MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256,
|
MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256,
|
||||||
MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8,
|
MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8,
|
||||||
|
|
||||||
|
/* 3DES suites */
|
||||||
|
MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,
|
||||||
|
MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
|
||||||
|
MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
|
||||||
|
MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA,
|
||||||
|
MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA,
|
||||||
|
MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA,
|
||||||
|
MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,
|
||||||
|
MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,
|
||||||
|
MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA,
|
||||||
MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA,
|
MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA,
|
||||||
|
|
||||||
/* RC4 suites */
|
/* RC4 suites */
|
||||||
|
@ -1704,6 +1699,26 @@ const int *mbedtls_ssl_list_ciphersuites( void )
|
||||||
static int supported_ciphersuites[MAX_CIPHERSUITES];
|
static int supported_ciphersuites[MAX_CIPHERSUITES];
|
||||||
static int supported_init = 0;
|
static int supported_init = 0;
|
||||||
|
|
||||||
|
static int ciphersuite_is_removed( const mbedtls_ssl_ciphersuite_t *cs_info )
|
||||||
|
{
|
||||||
|
(void)cs_info;
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_REMOVE_ARC4_CIPHERSUITES)
|
||||||
|
if( cs_info->cipher == MBEDTLS_CIPHER_ARC4_128 )
|
||||||
|
return( 1 );
|
||||||
|
#endif /* MBEDTLS_REMOVE_ARC4_CIPHERSUITES */
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_REMOVE_3DES_CIPHERSUITES)
|
||||||
|
if( cs_info->cipher == MBEDTLS_CIPHER_DES_EDE3_ECB ||
|
||||||
|
cs_info->cipher == MBEDTLS_CIPHER_DES_EDE3_CBC )
|
||||||
|
{
|
||||||
|
return( 1 );
|
||||||
|
}
|
||||||
|
#endif /* MBEDTLS_REMOVE_3DES_CIPHERSUITES */
|
||||||
|
|
||||||
|
return( 0 );
|
||||||
|
}
|
||||||
|
|
||||||
const int *mbedtls_ssl_list_ciphersuites( void )
|
const int *mbedtls_ssl_list_ciphersuites( void )
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -1719,15 +1734,13 @@ const int *mbedtls_ssl_list_ciphersuites( void )
|
||||||
*p != 0 && q < supported_ciphersuites + MAX_CIPHERSUITES - 1;
|
*p != 0 && q < supported_ciphersuites + MAX_CIPHERSUITES - 1;
|
||||||
p++ )
|
p++ )
|
||||||
{
|
{
|
||||||
#if defined(MBEDTLS_REMOVE_ARC4_CIPHERSUITES)
|
|
||||||
const mbedtls_ssl_ciphersuite_t *cs_info;
|
const mbedtls_ssl_ciphersuite_t *cs_info;
|
||||||
if( ( cs_info = mbedtls_ssl_ciphersuite_from_id( *p ) ) != NULL &&
|
if( ( cs_info = mbedtls_ssl_ciphersuite_from_id( *p ) ) != NULL &&
|
||||||
cs_info->cipher != MBEDTLS_CIPHER_ARC4_128 )
|
!ciphersuite_is_removed( cs_info ) )
|
||||||
#else
|
{
|
||||||
if( mbedtls_ssl_ciphersuite_from_id( *p ) != NULL )
|
|
||||||
#endif
|
|
||||||
*(q++) = *p;
|
*(q++) = *p;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
*q = 0;
|
*q = 0;
|
||||||
|
|
||||||
supported_init = 1;
|
supported_init = 1;
|
||||||
|
|
|
@ -270,6 +270,9 @@ static const char *features[] = {
|
||||||
#if defined(MBEDTLS_REMOVE_ARC4_CIPHERSUITES)
|
#if defined(MBEDTLS_REMOVE_ARC4_CIPHERSUITES)
|
||||||
"MBEDTLS_REMOVE_ARC4_CIPHERSUITES",
|
"MBEDTLS_REMOVE_ARC4_CIPHERSUITES",
|
||||||
#endif /* MBEDTLS_REMOVE_ARC4_CIPHERSUITES */
|
#endif /* MBEDTLS_REMOVE_ARC4_CIPHERSUITES */
|
||||||
|
#if defined(MBEDTLS_REMOVE_3DES_CIPHERSUITES)
|
||||||
|
"MBEDTLS_REMOVE_3DES_CIPHERSUITES",
|
||||||
|
#endif /* MBEDTLS_REMOVE_3DES_CIPHERSUITES */
|
||||||
#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
|
#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
|
||||||
"MBEDTLS_ECP_DP_SECP192R1_ENABLED",
|
"MBEDTLS_ECP_DP_SECP192R1_ENABLED",
|
||||||
#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */
|
#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
# MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
|
# MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
|
||||||
# MBEDTLS_NO_PLATFORM_ENTROPY
|
# MBEDTLS_NO_PLATFORM_ENTROPY
|
||||||
# MBEDTLS_REMOVE_ARC4_CIPHERSUITES
|
# MBEDTLS_REMOVE_ARC4_CIPHERSUITES
|
||||||
|
# MBEDTLS_REMOVE_3DES_CIPHERSUITES
|
||||||
# MBEDTLS_SSL_HW_RECORD_ACCEL
|
# MBEDTLS_SSL_HW_RECORD_ACCEL
|
||||||
# MBEDTLS_RSA_NO_CRT
|
# MBEDTLS_RSA_NO_CRT
|
||||||
# MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
|
# MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
|
||||||
|
@ -89,6 +90,7 @@ MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
|
||||||
MBEDTLS_NO_PLATFORM_ENTROPY
|
MBEDTLS_NO_PLATFORM_ENTROPY
|
||||||
MBEDTLS_RSA_NO_CRT
|
MBEDTLS_RSA_NO_CRT
|
||||||
MBEDTLS_REMOVE_ARC4_CIPHERSUITES
|
MBEDTLS_REMOVE_ARC4_CIPHERSUITES
|
||||||
|
MBEDTLS_REMOVE_3DES_CIPHERSUITES
|
||||||
MBEDTLS_SSL_HW_RECORD_ACCEL
|
MBEDTLS_SSL_HW_RECORD_ACCEL
|
||||||
MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
|
MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
|
||||||
MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
|
MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
|
||||||
|
|
Loading…
Reference in a new issue