Skip to content

inesc-id/MultiTLS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MultiTLS command line interface

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.

Getting Started

Secure channel with cipher diversity

Prerequisites

  • Linux
  • Docker

Installing

$ docker build -t multitls .

Run the examples

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 usage

VM-Server

$ multiTLS -s <port-number> <number-of-tunnels> <cert-1> <cafile-1> <cert-2> <cafile-2>

VM-Client

$ multiTLS -c <port-number> <number-of-tunnels> <IPServer> <cert-1> <cafile-1> <cert-2> <cafile-2>

MultiTLS simpe execution example

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

Example of an ECHO Application

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

Built With

  • OpenSSL - The full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols
  • socat - Multipurpose relay (SOcket CAT)

Contributors

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments