Welche Cipher für OpenVPN

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36
 

Welche Cipher für OpenVPN

Post by theomega »

Hallo Leute,
folgende Situation:
Zwei Server beim gleichen Hoster, im gleichen RZ, jedoch in anderen Racks. Einer der Server ist Datenbank-Server, der andere ist Webserver, die beiden müssen also eine Verbindungen herstellen.
Sicherheitshalber will ich das ganze über OpenVPN laufen lassen, man weiß ja nie welche KOnfigurationsfehler die Hoster machen. Vermutlich ist es ein bischen paranoid, aber egal.

Das Problem ist: Da ziemlich viele Daten übertragen werden braucht OpenVPN ziemlich viel CPU-Zeit, um nicht zu sagen es frisst ziemlich Leistung.

Deshalb hatte ich darüber nachgedacht evtl den Cipher zu ändern und auf einen Performanteren Algo zu gehen. Momentan wird Blowfish mit 128bit Länge eingesetzt, welche der Alternativen ist noch gut und ist ein guter Kompromiss zwischen Performance und Sicherheit?

Zur Auswahl stehen:
DES-CBC 64 bit default key (fixed)
RC2-CBC 128 bit default key (variable)
DES-EDE-CBC 128 bit default key (fixed)
DES-EDE3-CBC 192 bit default key (fixed)
DESX-CBC 192 bit default key (fixed)
BF-CBC 128 bit default key (variable)
RC2-40-CBC 40 bit default key (variable)
CAST5-CBC 128 bit default key (variable)
RC2-64-CBC 64 bit default key (variable)
AES-128-CBC 128 bit default key (fixed)
AES-192-CBC 192 bit default key (fixed)
AES-256-CBC 256 bit default key (fixed)

Wer hat mir nen Tipp?

Es geht erstmal garnicht um den Durchsatz sondern mehr um die CPU-Last.
Nach der Tabelle ( http://www.vpnforum.de/wiki//index.php/ ... gkeitstest ) soll es ja AES bringen wenn es um den Durchsatz geht, lohnt sich der test?


Danke
TO
User avatar
daemotron
Administrator
Administrator
Posts: 2643
Joined: 2004-01-21 17:44
 

Re: Welche Cipher für OpenVPN

Post by daemotron »

AES ist (normalerweise) deutlich schneller, mithin einer der schnellsten symmetrischen Algorithmen überhaupt. DES ist keine gute Idee; zumindest die Standard-Implementierung ist alles andere als sicher. Blowfish mit nur 128 Bit ist eher unüblich, normalerweise wird dieser Algorithmus in Verbindung mit längeren Schlüsseln (z. B. 448 Bit) eingesetzt - damit dürfte er aber von der Performance vollends abgeschlagen sein. Ich würde zu AES-128 greifen. Damit hast Du den performantesten Algorithmus gewählt - und von den 128 Bit mehr bei AES-256 würde die Sicherheit höchstens insoweit profitieren, dass es eben ein paar Jährchen länger dauert, bis die Rechnerleistung so weit gestiegen ist, dass ein Brute Force in akzeptabler Zeit zum Erfolg führt. Die Frage ist aber, was jemand in n Jahren mit den MySQL-Queries aus 2007 dann noch anfangen kann... vorausgesetzt, er hat sie überhaupt mitgeschnitten.

Zu Deiner zweiten Frage: Ich hab's in der Praxis nicht überprüft, aber wenn der Durchsatz größer ist, sollte eigentlich bei einer gegebenen Datenmenge entweder die Übertragung schneller vonstatten gehen, oder bei konstanter Zeit weniger CPU-Zyklen auf die Ver-/Entschlüsselung entfallen. In beiden Fällen sollten Dir aber am Ende mehr CPU-Zyklen für andere Aufgaben zur Verfügung stehen...

P. S. bevor hier ein falscher Eindruck entsteht: Weder für AES noch für Blowfish konnte bis jetzt ein Angriffsverfahren mit kürzerer Laufzeit als Brute Force nachgewiesen werden. Üblicherweise wird Blowfish aber mit größeren Schlüssellängen als AES eingesetzt, von daher ist Brute Force noch schwieriger.
User avatar
nyxus
Posts: 626
Joined: 2002-09-13 08:41
Location: Lübeck
 

Re: Welche Cipher für OpenVPN

Post by nyxus »

jfreund wrote:... mit längeren Schlüsseln (z. B. 448 Bit) eingesetzt - damit dürfte er aber von der Performance vollends abgeschlagen sein.
Ich würde jetzt nicht meine Hand ins Feuer legen; meine aber, daß die Geschwindigkeit von Blowfish unabhängig von der Schlüssellänge ist (16 Runden bei langen wie kurzen Schlüsseln vorausgesetzt). AES hingegen wird bei längeren Schlüsseln langsamer.
User avatar
daemotron
Administrator
Administrator
Posts: 2643
Joined: 2004-01-21 17:44
 

Re: Welche Cipher für OpenVPN

Post by daemotron »

Du hast recht, die Anzahl der Runden ist bei Blowfish konstant. Aber um die eigentlichen Verschlüsselungsoperationen durchzuführen, müssen Schlüssel, Daten und Salt auf nativ von der CPU/ALU verarbeitbare Datentypen partitioniert werden (i. d. R. 32 oder 64 Bit). Die dafür eingesetzten Algorithmen haben AFAIR eine Komplexität O(n), so dass der Berechnungsaufwand pro Runde linear (sprungfix an der Registerlängengrenze) mit der Schlüssellänge wächst.

//EDIT//
Sorry, hab mich geirrt. Blowfish arbeitet mit einer konstanten Anzahl S-Boxen (4 pro Runde) mit konstanter Größe (je 256 x 32 Bit), deren Inhalt schlüsselabhängig verändert wird. Auch die Anzahl und Länge der Runden-Schlüssel ist konstant (18 x 32 Bit). Damit dürfte Blowfish tatsächlich O(1) in Bezug auf die Schlüssellänge sein.