MultiTLS is a middleware based on diversity and tunneling mechanisms that allows keeping communication channels secure even when new vulnerabilities are discovered. MultiTLS creates a secure communication channel through the encapsulation of k TLS channels, where each one uses a different cipher suite.
Secure channel with cipher diversity
- Linux
- Docker
$ docker build -t multitls .
Add additional notes about how to deploy this on a live system
Start two new containers from the previous built image: one for the server and another for the client:
$ docker create -i multitls --name multitls-client
$ docker create -i multitls --name multitls-server
Then, start each container in a different terminal:
$ docker start -a -i multitls-client
$ docker start -a -i multitls-client
$ multiTLS -s <port-number> <number-of-tunnels> <cert-1> <cafile-1> <cert-2> <cafile-2>
$ multiTLS -c <port-number> <number-of-tunnels> <IPServer> <cert-1> <cafile-1> <cert-2> <cafile-2>
In the server container with an IP address 192.169.1.1 execute:
$ multiTLS -s 11444 2 cert-1.pem cafile-1.crt cert-2.pem cafile-2.ctr
In the client container execute:
$ multiTLS -c 11444 2 192.169.1.1 cert-1.pem cafile-1.crt cert-2.pem cafile-2.ctr
In the server container with an IP address 192.169.1.1 execute:
$ socat - tcp-listen:11445
In the client container execute:
$ socat tcp:192.169.1.1:11445 echo
- OpenSSL - The full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols
- socat - Multipurpose relay (SOcket CAT)
- Ricardo Moura - Development of the protocol
- Ricardo Lopes - Improvements and maintenance
This project is licensed under the MIT License - see the LICENSE.md file for details