M 2.270 Planung des SSL-Einsatzes beim Apache Webserver (zusätzlich)
Verantwortlich für Initiierung: Leiter IT IT-Sicherheitsmanagement
Verantwortlich für Umsetzung: IT-Sicherheitsmanagement Administrator
SSL (Secure Sockets Layer) bzw. TLS (Transport Layer Security) ist ein Transportprotokoll, das kryptographische Mechanismen zur Gewährleistung von Integrität, Vertraulichkeit und Authentizität übertragener Daten nutzt (siehe M 5.66 Verwendung von SSL).
Einsatzmöglichkeiten von SSL beim Apache-Webserver
Es gibt zwei Szenarien, in denen SSL zum Einsatz kommen kann:
Im ersten Szenario verfügt nur der WWW-Server über ein Zertifikat. Der WWW-Client kann dann aufgrund dieses Zertifikates den WWW-Server authentisieren. Im Rahmen des SSL-Protokolles wird dann ein verschlüsselter und integritätsgeschützter Kanal etabliert, über den im folgenden die Daten zwischen WWW-Server und WWW-Client ausgetauscht werden können.
Im zweiten Szenario verfügt auch der Benutzer des WWW-Servers über ein eigenes Zertifikat, so dass im Rahmen des SSL-Protokolles eine gegenseitige Authentisierung erfolgen kann.
Der Einsatz von SSL in Verbindung mit einem WWW-Server erfordert eine sorgfältige Planung, bei der eine ganze Reihe von Aspekten berücksichtigt werden müssen. Beim Einsatz von SSL im ersten Szenario etwa kommen die folgenden Aspekte zum Tragen:
- Der WWW-Server benötigt ein SSL-Zertifikat, das für ihn von einer Zertifizierungsstelle ausgestellt wurde.
- Bei der Auswahl dieser Zertifizierungsstelle muss berücksichtigt werden, dass die WWW-Clients, die auf den WWW-Server zugreifen sollen, über das entsprechende Wurzelzertifikat dieser Zertifizierungsstelle verfügen müssen.
- Das SSL-Zertifikat eines Servers muss regelmäßig erneuert werden. Neben der Laufzeit des Zertifikates selbst muss hier auch die Laufzeit des Wurzelzertifikates berücksichtigt werden.
- Ein SSL-Zertifikat kann auch selbst erzeugt werden, beispielsweise mit dem OpenSSL Paket. Da solche Eigen-Zertifikate nicht von einer der Zertifizierungsstellen stammen, die normalerweise den Browsern bekannt sind, bekommen die Besucher in diesem Fall jedoch meist beim Zugriff eine Warnung angezeigt. Dies kann dadurch behoben werden, dass das zum Ausstellen des Server-Zertifikats benutzte Zertifikat manuell auf den Browsern installiert wird. Bei einer Nutzung eines SSL-gesicherten Webservers im Intranet kann dies eine berücksichtigenswerte Option sein.
Wird SSL im zweiten Szenario auch zur Client-Authentisierung genutzt, so muss im Prinzip eine vollständige Public-Key-Infrastruktur geplant werden. Folgende Aspekte müssen dabei berücksichtigt werden:
- Für die einzelnen Benutzer müssen SSL-Zertifikate erstellt und verteilt werden.
- Die Gültigkeitsdauer der Benutzer-Zertifikate muss ebenso berücksichtigt werden, wie das Szenario eines Schlüsselwechsels der eingesetzten Zertifizierungsstelle.
- Die Richtlinien der für die Benutzer-Zertifikate genutzten Zertifizierungsstelle müssen konform zu den Anforderungen an die Authentisierung der Benutzer sein.
- Es muss in Betracht gezogen werden, dass der private SSL-Schlüssels eines Benutzers kompromittiert sein könnte. Daher sollte es auch Möglichkeiten geben, diese zu sperren. Dies kann durch Prüfen gegen eine Positivliste (noch gültige Zertifikate) oder durch Verwendung einer Negativliste (gesperrte Zertifikate) geschehen.
Prinzipiell besteht die Möglichkeit, SSL-Benutzerzertifikate nicht nur zur Authentisierung zu nutzen, sondern darüber hinaus auch Zugriffsrechte in Abhängigkeit von einzelnen Einträgen des Zertifikates zu vergeben (z. B. der Zugehörigkeit zu einer bestimmten Abteilung). Soll diese Möglichkeit genutzt werden, so muss darauf geachtet werden, dass
- die relevanten Einträge bei der Zertifizierung von Benutzern korrekt vorgenommen werden und
- die Zertifikate gesperrt werden, sobald die relevanten Einträge ungültig werden (z. B. wenn Mitarbeiter die Institution verlassen oder die Abteilung wechseln).
Können diese Voraussetzungen nicht gewährleistet werden, so ist im Rahmen der Definition einer Sicherheitsrichtlinie für den Webserver festzuhalten, dass Zugriffsrechte nicht auf der Basis von Zertifikatsfeldern eingerichtet werden dürfen.
Im Rahmen der Planung müssen schließlich die notwendigen Abläufe und Zuständigkeiten definiert werden. Die Planung ist zu dokumentieren. Die Dokumentation der Planung sollte getroffene Entscheidungen und die Beweggründe, die für diese Entscheidungen ausschlaggebend waren, klar herausstellen.
Verfügbare Implementierungen von SSL beim Apache-Webserver
Ab der Version 2.0 des Apache-Webservers wird SSL mit dem Modul mod_ssl vom Apache-Webserver direkt unterstützt. In der Version 1.3 ist keine Implementierung von SSL enthalten, sondern es ist eine Erweiterung des Apache-Webservers notwendig. Es existieren gibt zwei verschiedene Open-Source-Implementierungen von SSL: Apache-SSL (http://www.apache-ssl.org) und mod_ssl (http://www.modssl.org). Beide verwenden für die kryptographischen Algorithmen und die Realisierung des SSL-Protokolles selbst das Open-Source Paket OpenSSL (http://www.openssl.org). Die prinzipiellen Unterschiede zwischen den beiden Implementierungen bestehen in der Art der Integration von OpenSSL in den Apache-Webserver sowie in den verfügbaren Konfigurationsmöglichkeiten.
Vor der Verwendung von SSL muss daher im Rahmen der Planung (siehe M 2.269 Planung des Einsatzes eines Apache Webservers ) entschieden werden, welche Implementierung genutzt werden soll. Diese Entscheidung
kann unter Berücksichtigung funktionaler Gesichtspunkte getroffen werden.
Bei der Planung des Einsatzes von SSL muss auch berücksichtigt werden, dass es in diesem Fall in der Regel notwendig sein wird, den Apache-Webserver aus den Quelltexten selbst zu kompilieren, da SSL in den meisten Binärdistributionen nicht enthalten ist.
Serverzertifikat
Der private Schlüssel des Server-Zertifikats sollte aus Sicherheitsgründen durch eine Passphrase geschützt sein. Dies bedeutet, dass die Passphrase beim Neustart des Servers eingegeben werden muss. Ein automatischer unbeaufsichtigter Neustart des Servers ist somit nicht möglich. Dieser Aspekt muss bei der Planung des Betriebs berücksichtigt werden.
Ergänzende Kontrollfragen:
- Ist geklärt, welche Art von Zertifikat für den WWW-Server benötigt wird?
- Wird SSL auch zur Benutzer-Authentisierung verwendet? Falls ja, sind die entsprechenden Rahmenbedingungen erfüllt?
- Ist festgelegt, welche Implementierung von SSL eingesetzt werden soll?