Um mit einem Browser, der den amerikanischen Exportbeschränkungen für Kryptografie unterliegt,
trotzdem sichere SSL-Verbindungen aufbauen zu können, gibt es eine offizielle Methode, die jedoch
ein Hintertürchen für eine andere Lösung offenhält.
Dabei wird vorgegangen, wie es in der Datei README.GlobalID des
mod_ssl-Package beschrieben ist. mod_ssl ermöglicht es, einen Apache-Web-Server so zu modifizieren,
das er als SSL-Webserver fungieren kann. Da das mod_ssl-Package europäischer Herkunft ist, unterliegt
es nicht den amerikanischen Exportbeschränkungen, dass heißt der Webserver ist voll 128 bit SSL
tauglich.
Das große Problem sind die Browser. Da die beiden meistverwendeten Browser Netscape und Internet-Explorer
beide amerikanischer Herkunft sind, unterliegen sie den Exportbeschränkungen und dürfen beide nur
SSL-Verschlüsselung mit 128 bit, wovon nur 40 bit geheim sind, anbieten. Mit einem Patch-Programm (Fortify)
ist es zwar möglich, zumindest die Netscape-Export-Browser, Version 3 und 4 sozusagen wieder zu
Nicht-Export-Browsern zu machen, jedoch ist dies keine benutzerfreundliche Variante, da ein Benutzer, der
auf mehreren Rechnern arbeitet, alle Browser patchen müsste. Da vor allem Banken und andere Firmen der
e-Commerce-Branche diese Lösung nicht akzeptabel fanden, drängten sie auf eine Lockerung des
Exportverbotes. Schließlich kam es zur Einführung der Global-Server-ID.
Die Global-Server-ID ist ein spezielles Zertifizierungs-Instituts-Zertifikat (CA-Zertifikat) der Firma VeriSign,
mit dem sie für derzeit $695,00 die Web-Server-Zertifikate von Banken und Firmen der e-Commerce-Branche
zertifiziert, damit diese ihren Kunden sichere Geschäfte anbieten können. Ein solches Zertifikat ist ein normales
X.509v3-CA-Zertifikat, mit zusätzlichen Feldern. Wichtig ist dabei das extKeyUsage-Feld. Erkennt ein Browser einen
so zertifizierten SSL-Server, so weiß er, dass er jetzt eine 128-bit-SSL-Verschlüsselung aufbauen darf.
Im Einzelnen funktioniert das folgendermaßen:
Der Exportbrowser baut mit dem SSL-Server eine SSL-Verbindung nach den Exportbeschränkungen auf. Bei
der Antwort des Servers liefert dieser sein Global-Server-ID-Zertifikat mit. Der Browser erkennt das Zertifikat
und baut erneut eine SSL-Verbindung zum Server auf, diesmal aber mit 128 bit.
Der Microsoft Internet-Explorer und der Netscape Communicator haben beide schon eine Liste bekannter CA's
mitgeliefert. Bei Microsoft heißt obiger Schritt SERVER GATED CRYPTOGRAPHY (SGC), bei Netscape
INTERNATIONAL STEP-UP. Schaut man sich beim Communicator die mitgelieferten CA-Zertifikate an, so stellt man
auf den ersten Blick keine Unterschiede fest. Unter Sicherheit - Zertifikate - Unterzeichner - Bearbeiten kann
man das VeriSign-Zertifikat mit anderen Zertifikaten vergleichen und findet keine verschiedenen Merkmale.
Nur wenn man sich Datenbank des Communicators näher anschaut, in der die Zertifikate gespeichert sind
(cert7.db, im DB/1.85-Format), stellt man fest, dass dieses spezielle Zertifikat in einigen internen Feldern andere
Werte gesetzt hat, als bei anderen CA's, was jedoch in der graphischen Darstellung nicht erscheint. Beim Internet-Explorer
mag dies ähnlich sein, hierzu sind mir aber keine genauen Angaben bekannt.
Der Communicator bietet nun auch die Möglichkeit, weitere CA's zu importieren, was im folgenden ausgenutzt werden soll.
Wenn man davon ausgeht, dass man oben genanntes Zertifikat der Firma VeriSign nicht bekommt, oder es sich nicht leisten kann,
gibt es noch eine etwas umständlichere Lösung, sich obige Gegebenheit vor Augen zu führen. Als erstes
benötigt man einen Webserver, der 128-bit-SSL-Verschlüsselung unterstüzt. Wenn man auf diesen Webserver
nun mit einem Standartbrowser zugreift, so erhält man nur eine Verschlüsselung nach Exportbeschränkungen.
Man sieht das unter Sicherheit - Seiteninformationen. Um eine 128-bit-SSL-Verbindung zu diesem Server aufbauen zu können,
muss man nur das Zertifikat der CA, die den Server zertifiziert hat importieren und bei diesem in der Datenbank die
internen Bits umsetzen, schon kann man eine sichere 128-bit-Verbindung mit dem Server aufbauen. Sicherlich ist diese
Variante nicht weniger umständlich, als ein Patch-Programm und muss auch bei jedem Browser separat ausgeführt
werden, aber sie ist anschaulicher.
Hier ist eine kleine Demo, die jeder gerne ausprobieren kann: