package/mbedtls: make compression support a config option
authorJörg Krause <joerg.krause@embedded.rocks>
Mon, 6 Feb 2017 20:01:23 +0000 (21:01 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Mon, 6 Feb 2017 21:20:32 +0000 (22:20 +0100)
Enabling TLS compression may make mbedTLS vulnerable to the
CRIME attack [1]. It should not be enabled unless is is sure CRIME and
similar attacks are not applicable to the particulare situation.

As zlib is probably enabled in most systems, the user might end up with
a vulnerable system without knowing. So, instead of enabling compression
support if the zlib package is available, we make the compression support
a config option. This way, the user has to explicitly enable compression
support and is warned by the help text about the risk.

[1] https://tls.mbed.org/kb/how-to/deflate-compression-in-ssl-tls

Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/mbedtls/Config.in
package/mbedtls/mbedtls.mk

index 24f0f489d41a7b9f2bf2b226d7e1a4092baeae16..ed63f2da58fa95fd12de4cedf98c8fa918738029 100644 (file)
@@ -17,4 +17,16 @@ config BR2_PACKAGE_MBEDTLS_PROGRAMS
          This option enables the installation and the build of
          mbed TLS companion programs.
 
+config BR2_PACKAGE_MBEDTLS_COMPRESSION
+       bool "enable compression support"
+       select BR2_PACKAGE_ZLIB
+       help
+         Enable support for compression of the content data before it
+         enters the secure channel as described in RFC 3749.
+         
+         Warning: TLS compression may make you vulnerable to the CRIME
+         attack. You should not enable it unless you know for sure CRIME
+         and similar attacks are not applicable to your particular
+         situation.
+
 endif
index 7171af9f9830a4dc394e5ca932ac4fd3ee3bea48..198879da4d9e4cc4840f9f874a9b06af8e114fb6 100644 (file)
@@ -39,7 +39,7 @@ MBEDTLS_CONF_OPTS += \
        -DUSE_SHARED_MBEDTLS_LIBRARY=ON -DUSE_STATIC_MBEDTLS_LIBRARY=OFF
 endif
 
-ifeq ($(BR2_PACKAGE_ZLIB),y)
+ifeq ($(BR2_PACKAGE_MBEDTLS_COMPRESSION),y)
 MBEDTLS_CONF_OPTS += -DENABLE_ZLIB_SUPPORT=ON
 MBEDTLS_DEPENDENCIES += zlib
 define MBEDTLS_ENABLE_ZLIB