Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikkel Krautz <mikkel@krautz.dk>2015-09-26 23:19:20 +0300
committerMikkel Krautz <mikkel@krautz.dk>2015-09-26 23:33:49 +0300
commit8bd3f76a8ea3d8751c0305cfcaaa3592d2ffa9b2 (patch)
treeae2b78600bb8e09f5f9c25a6804f41ff5aff7e75 /src/murmur/murmur.pro
parentb6276544a1f46f186bf929f4b27b616245b013ce (diff)
Murmur: add support for EDH cipher suites, and for specifying Diffie-Hellman parmeters.
This change allows server admins to specify Diffie-Hellman parameters for Murmur to use. This is done using the sslDHParams option in the config file. Diffie-Hellman parameters can also be set on a per-server basis using the sslDHParams option. Note: the functionality implemented in this change requires the QSslDiffieHellmanParameters class in Qt, which has not yet landed upstream in the Qt 5 'dev' branch. This means that the functionality discussed in this change will, for now, only work in binaries provided by the Mumble project, or binaries that are built using our build environments, and not binaries that link against any released versions of Qt at present. This change modifies the default TLS cipher suite string to add EDH+aRSA+AESGCM, DHE-RSA-AES256-SHA and DHE-RSA-AES128-SHA. This yields the following ciphers, in TLS/RFC notation: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 TLS_DHE_RSA_WITH_AES_256_CBC_SHA TLS_DHE_RSA_WITH_AES_128_CBC_SHA This change also allows Murmur servers to provide forward secrecy to older clients, such as our own pre-built binaries before 1.2.9. It also provides forward secrecy for users that use Mumble 1.2.x versions on Linux distros, and other Unix-like systems. This is because Mumble 1.2.x on Unix-like systems builds against Qt 4, which limits the connection to TLS 1.0. Before this change, Murmur was not able to negotiate an ephemeral Diffie-Hellman key exchange for those clients. This is now possible.
Diffstat (limited to 'src/murmur/murmur.pro')
-rw-r--r--src/murmur/murmur.pro16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/murmur/murmur.pro b/src/murmur/murmur.pro
index 79480e762..dda41f164 100644
--- a/src/murmur/murmur.pro
+++ b/src/murmur/murmur.pro
@@ -168,4 +168,20 @@ bonjour {
}
}
+# Check for QSslDiffieHellmanParameters availability, and define
+# USE_QSSLDIFFIEHELLMANPARAMETERS preprocessor if available.
+#
+# Can be disabled with no-qssldiffiehellmanparameters.
+!CONFIG(no-qssldiffiehellmanparameters):exists($$[QT_INSTALL_HEADERS]/QtNetwork/QSslDiffieHellmanParameters) {
+ # ...but only if we're inside a Mumble build environment for now.
+ # If someone decides to put a Mumble snapshot into a distro, this
+ # could break the build in the future, with newer versions of Qt,
+ # if the API of QSslDiffieHellmanParameters changes when it is
+ # upstreamed.
+ MUMBLE_PREFIX=$$(MUMBLE_PREFIX)
+ !isEmpty(MUMBLE_PREFIX) {
+ DEFINES += USE_QSSLDIFFIEHELLMANPARAMETERS
+ }
+}
+
include(../../symbols.pri)