SSL Tunneling vs. Load Balancer

Alles was in keine andere Systemkategorie passt
philippd
Posts: 1
Joined: 2010-03-08 11:33

SSL Tunneling vs. Load Balancer

Post by philippd » 2010-03-08 14:20

Hallo,


ich benötige einmal einen Rat von den Hardwarespezialisten in Bezug auf TLS / SSL Verschlüsselung.

Ziel ist es eine Verbindung zwischen Clientapplikation und Server zu verschlüsseln. Client und Server kommunizieren über TCP, benutzen jedoch nicht das HTTP(S) Protokoll, sondern ein proprietäres Protokoll, welches von Haus aus nicht für verschlüsselte Verbindungen konzipiert ist.

Zum Testen, ob eine Verschlüsselung überhaupt möglich ist, haben wir mit dem SSL Wrapper Stunnel gearbeitet. Serverseitig wurde eine Stunnel Server eingerichtet, auf Clientseite ein Stunnel Client.
Die Verbindung über das Netzwerk konnte nachweislich verschlüsselt werden und dabei problemlos mit dem eigenen Protokoll gearbeitet werden.

Dies entspricht auch meinem "Weltbild", da SSL ja eigentlich auf dem Transport Layer des TCP/IP Protokollstacks abgewickelt wird und somit unabhängig von der Anwendung im Application Layer ist.

Im nächsten Schritt haben wir nun versucht, die Serverseite von Stunnel durch die in einem Loadbalancer integrierte SSL Serverfunktion zu ersetzen. Dieser Versuch schlug jedoch mit dem Fehler "SSL_accept: 140760FC: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol" fehl.


Nun meine Frage: Arbeiten Loadbalancer als Endpunkt für eine SSL Verbindung in der Regel auf einer höheren Schicht als der Transportschicht? Sind diese also in der Regel protokollabhängig?



Vielen Dank
Philipp

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: SSL Tunneling vs. Load Balancer

Post by daemotron » 2010-03-08 18:11

Um das genau zu beantworten, müsste man wissen, was für ein Loadbalancer das genau ist, incl. eingesetzter Firmware-Version. Grundsätzlich muss zumindest der SSL-Handshake vollzogen werden können, da dieser wie von Dir korrekt beschrieben nur eine aufgebaute TCP-Verbindung voraussetzt.

Die Fehlermeldung lässt darauf schließen, dass im Handshake etwas schief geht (CLIENT_HELLO ist ein Schritt im SSL-Handshake). Um das zu diagnostizieren, kannst Du mit OpenSSL per Shell eine reine TCP-Verbindung zum Loadbalancer aufbauen und einen Handshake durchführen lassen. Wenn es dabei knallt, sollte Dir OpenSSL verraten, in welchem Schritt das Problem liegt.
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time