
Das IT-Magazin der ORDIX AG mit Fachbeiträgen zu Datenbanken, Unix und Java/XML.
Dieser Verschlüsselungs-Dienst setzt aufgrund der eingesetzten Verfahren eine hohe Rechenleistung voraus. Am zeitaufwendigsten bei der Verschlüsselung ist die Handshake-Phase, bei der die Schlüssel für die Verbindung ausgetauscht werden. Mit Performance-Verlust gegenüber unverschlüsseltem Netzverkehr ist also zu rechnen. Dies hat sich auch bei Messungen eines von ORDIX mitbetreuten Verkaufsportals bestätigt: Ab circa hundert gleichzeitigen Benutzerzugriffen mit SSL-Verschlüsselungen konnten die Zugriffszeiten für eine Kommunikation mit dem Kunden als inakzeptabel bezeichnet werden.
Da das Rechenverfahren immer gleich ist, liegt der Gedanke nahe, diese Berechnungen mit einer speziell für diese Aufgabe gebauten CPU erledigen zu lassen, anstatt eine normale CPU zu verwenden.
Um dieses Problem zu lösen, können Crypto-Karten (Hardware) eingesetzt werden, die die zusätzliche Rechenleistung für die Verschlüsselung zur Verfügung stellen. Dieser Artikel beschreibt, wie ein Webserver durch den Einsatz von Crypto-Karten bei Secure Socket Layer (SSL)-Transaktionen beschleunigt werden kann. Als Beispiel dient ein Apache-Webserver in der Version 1.3.20, der auf einem Solaris 8-Betriebssystem betrieben wird. Als Crypto-Karten werden die von SUN vertriebenen SUN Crypto Accelerator I Boards eingesetzt.
Diese Karte ist baugleich mit der von der Firma Rainbow (Type CS-200) hergestellten Crypto-Karte.
Dadurch ergibt sich für den Käufer ein Problem: SUN hat einige Software-Komponenten umbenannt, bzw. in andere Verzeichnisse verschoben. Nach Aussagen von SUN sollte die Karte mit Apache laufen und es steht auch ein Patch für Apache bereit. Leider wird Apache jedoch nicht vom SUN Support unterstützt - im Gegensatz zum iPlanet-Webserver. Wirklich ärgerlich wird die Sache dann, wenn man feststellt, dass der SUN-Patch für die uralte Openssl-Version 0.9.4 gedacht ist. Diese Version hat leider das Problem, dass sie nicht mit den heute oft verwendeten Super-SSL Zertifikaten zusammenarbeitet. Somit ist also eigene Forschungsarbeit angesagt. Im Folgenden wird gezeigt, wie es doch funktioniert.
Für den Betrieb der Crypto-Karten hat sich folgende Software bewährt:
Bei Openssl ist es wichtig, diese engine-Version einzusetzen. Nur diese unterstützt Crypto-Karten!
Da die oben beschriebene Software nicht in Binärform, sondern als C-Quellen ausgeliefert wird, müssen diese vor der Installation übersetzt werden. Um das Ganze zusammenzubauen, wird jetzt also noch ein C-Compiler benötigt.
| + SSL interface: mod_ssl/2.8.4 + SSL interface experimental code: enabled + SSL library version: OpenSSL 0.9.6b [engine] 9 Jul 2001 |
| Abb.1: Ausgaben von "make" beim Übersetzen des Apache. |
Beim Starten von Apache Servern erscheint folgendes im error.log [error] mod_ssl: Init: Failed to enable Crypto Device API `cswift'
Das hängt damit zusammen, dass SUN die Shared-Libs, die Rainbow unter /usr/lib ausliefert und welche somit im Pfad sind, leider in ein anderes Verzeichnis installiert hat, ohne dies irgendwo zu dokumentieren. Damit liegen die zwingend benötigten Programmteile in einem von der Software nicht durchsuchten Pfad. Ist dieses Problem behoben (z. B. durch einen symbolischen Link: ln _s /opt/SUNWconn/sunsecure/lib/libswift.so.5.2.2 /usr/lib/libswift.so), fährt der Apache Server ohne Fehler
| ||||||||||||||
| Abb.2: Liste der Referenzen. | ||||||||||||||
Durch den Einsatz von SUN Crypto-Karten wird die SSL-Verschlüsselung um Faktor fünf beschleunigt. Wenn man die Preise von Netra und die der Crypto-Karte berücksichtigt, ist dies eine durchaus lohnende Investition.
Michael Güting (info@ordix.de).