Der 4D Web Server kann über das TLS Protokoll (Transport Layer Security) - dem Nachfolger von SSL (Secured Socket Layer) - im gesicherten Modus kommunizieren. Standardmäßig ist die in 4D unterstützte Mindestversion TLS 1.2.
Das TLS Protokoll (Nachfolger von SSL) sichert die Kommunikation zwischen zwei Anwendungen ab, das sind hauptsächlich Web Server und Browser. Diese Art von Protokoll ist weit verbreitet und mit den meisten Web Browsern kompatibel.
In der Netzwerkarchitektur reiht sich das TLS Protokoll ein zwischen TCP/IP auf niederer Ebene und dem HTTP Protokoll auf hoher Ebene.
Netzwerkarchitektur mit TLS:
Hinweis: Das TLS Protokoll eignet sich auch zum Absichern von Standard Client/Server Verbindungen sowie SQL Server Verbindungen. Weitere Informationen dazu finden Sie im Abschnitt Client/Server Verbindungen verschlüsseln des Handbuchs 4D Server und im Abschnitt Configuration of 4D SQL Server des Handbuchs 4D SQL Reference.
Das TLS Protokoll bürgt für die Identität von Sender und Empfänger, sowie für die Vertraulichkeit und Vollständigkeit der ausgetauschten Informationen:
Authentifizierung: Die Identität von Sender und Empfänger werden bestätigt.
Vertraulichkeit: Die gesendeten Daten sind verschlüsselt, damit sie für unbefugte Dritte nicht lesbar sind.
Integrität: Die empfangenen Daten wurden weder wissentlich noch versehentlich verändert.
Das Sicherheitsprinzip von TLS basiert auf Verschlüsselungsalgorithmen mit einem Schlüsselpaar, d.h. einem privaten und einem öffentlichen Schlüssel. Mit dem privaten Schlüssel werden die Daten verschlüsselt. Diesen bewahrt der Sender (Web Site) auf. Mit dem öffentlichen Schlüssel werden die Daten entschlüsselt. Er wird über das Zertifikat an den Empfänger weitergegeben (Web Browser). Für den Einsatz von TLS im Internet wird ein Herausgeber für das Zertifikat benötigt, z.B Verisign®. Der Herausgeber stellt der anfragenden Web Site gegen eine Gebühr ein Zertifikat aus, das die Identität des Servers garantiert und den öffentlichen Schlüssel zur Kommunikation im gesicherten Modus enthält.
Hinweis: Weitere Informationen über die Funktionsweise der Verschlüsselung und die Verwendung von öffentlichen und privaten Schlüsseln finden Sie unter dem Befehl ENCRYPT BLOB.
Für einen Server im gesicherten Modus ist ein digitales Zertifikat notwendig, ausgestellt von einer Zertifizierungsstelle. Es enthält verschiedene Informationen, wie die ID der Web Site und den öffentlichen Schlüssel zur Kommunikation mit der Site. Dieses Zertifikat wird an die Clients (Web Browser) übertragen werden, die sich an die Web Site anmelden. Wurde es identifiziert und angenommen, erfolgt die Kommunikation im gesicherten Modus.
Hinweis: Ein Browser akzeptiert nur die Zertifikate einer Zertifizierungsstelle, wenn sie in seinen Eigenschaften registriert ist.
Die Auswahl der Zertifizierungsstelle hängt von mehreren Faktoren ab. Je bekannter der Herausgeber ist, desto mehr Browser erkennen die Zertifikate an, die er ausstellt, desto höher ist aber auch die zu zahlende Gebühr.
Um ein digitales Zertifikat zu erhalten:
Generieren Sie über den Befehl GENERATE ENCRYPTION KEYPAIR einen privaten Schlüssel. Warnung: Aus Sicherheitsgründen muss der private Schlüssel geheim bleiben. Er muss immer auf dem Server Rechner verbleiben. Für den Web Server muss die Datei Key.pem im Ordner mit der Struktur der Datenbank liegen.
Senden Sie diese Anfrage an die ausgewählte Zertifizierungsstelle.Zum Ausfüllen der Anfrage müssen Sie sich unter Umständen mit der Zertifizierungsstelle in Verbindung setzen. Diese prüft die Echtheit der übermittelten Informationen. Die Anfrage des Zertifikats wird in einem BLOB im Format PEM (Privacy Enhanced Mail) generiert. Dieses Format autorisiert das Kopieren und Einfügen der Schlüssel in Textform und den Versand per E-Mail ohne das Risiko, dass ihr Inhalt verändert wird. Sie können also zum Beispiel das BLOB mit der Zertifikatsanfrage über den Befehl BLOB TO DOCUMENT in einem Textdokument sichern, es dann öffnen, seinen Inhalt kopieren und in ein E-Mail bzw. ein Web Formular einfügen, das für die Zertifizierungsstelle bestimmt ist.
Haben Sie Ihr Zertifikat erhalten, erstellen Sie ein Textdokument mit Namen „cert.pem“ und kopieren den Inhalt des Zertifikats in dieses Dokument. Sie erhalten das Zertifikat meist als E-Mail oder als HTML Formular. 4D akzeptiert alle für die jeweilige Plattform (PC, Mac OS, Linux...) kompatiblen Textformate. Das Zertifikat muss jedoch im PEM Format sein, z.B. PKCS codiert in base64. Hinweis: CR Zeichen nur für Zeilenende werden nicht unterstützt. Sie müssen CRLF oder LF verwenden.
Legen Sie das Dokument „cert.pem“ an die passende Stelle. Für den Web Server ist es der Ordner mit der Strukturdatei der Datenbank. Der Web Server kann jetzt im gesicherten Modus arbeiten. Ein Zertifikat ist im allgemeinen 6 - 12 Monate gültig.
Wollen Sie das TLS Protokoll mit dem 4D Web Server verwenden, müssen auf dem Server an verschiedenen Stellen folgende Komponenten installiert sein:
4DSLI.DLL (Windows) oder 4DSLI.bundle (Mac OS): Schnittstelle für die gesicherte Ebene (Secured Layer Interface) zum Verwalten von TLS. Diese Datei wird standardmäßig installiert, sie liegt: - Unter Windows neben der ausführbaren Datei von 4D oder 4D Server - Auf Mac im Unterordner Native Components des 4D bzw. 4D Server Pakets. Hinweis:4DSLI.DLL benötigen Sie auch für die Verschlüsselungsbefehle ENCRYPT BLOB und DECRYPT BLOB.
key.pem (Dokument mit dem Schlüssel zur privaten Verschlüsselung) und cert.pem (Dokument mit dem Zertifikat): - in 4D im lokalen Modus oder 4D Server müssen diese Dateien neben der Strukturdatei der Anwendung liegen, - in 4D im remote Modus müssen diese Dateien im Ordner für lokale Ressourcen der 4D Anwendung auf dem remote Rechner liegen. Weitere Informationen dazu finden Sie im Abschnitt Ordner 4D Client Database (Client Rechner). Sie müssen diese Dateien manuell auf den remote Rechner kopieren. Hinweis: 4D enthält standardmäßige key.pem und cert.pem Dateien. Für eine höhere Sicherheitsstufe raten wir dringend, diese Dateien durch ihre eigenen Zertifikate zu ersetzen.
Die Installation dieser Elemente ermöglicht, TLS für Verbindungen zum 4D Web Server zu verwenden. Damit der 4D Web Server TLS Verbindungen akzeptiert, müssen Sie HTTPS aktivieren. Gehen Sie dazu in den Datenbank-Eigenschaften auf die Seite Web>Konfiguration und markieren Sie die Option HTTPS aktivieren.
TLS Verbindungen sind standardmäßig erlaubt. Sie können diese Option deaktivieren, wenn Sie mit Ihrem Web Server keine TLS Funktionalitäten nutzen wollen oder auf demselben Rechner ein anderer Web Server mit gesicherter Verbindung operiert.
Für den HTTPS Port ist standardmäßig die Nummer 443 reserviert. Sie können diese Nummer im Eingabebereich HTTPS Port verändern, um beispielsweise die Sicherheit des Web Server zu erhöhen. Weitere Informationen dazu finden Sie im Abschnitt Web Server, Einstellungen. Der hier definierte HTTPS Port wird für die Standardverbindungen des Web Servers verwendet.
Hinweis: Die anderen Datenbank-Eigenschaften zum Verwalten des 4D Web Servers gelten immer, egal, ob der TLS Modus aktiviert bzw. nicht aktiviert ist. Das sind die Kennwörter, die Zeitspanne bis zum Abschalten der Verbindung (Timeout), die Größe des Cache, etc.
PFS bietet in Ihrer Kommunikation eine zusätzliche Sicherheitsebene. PFS benutzt keine vorgegebenen Austauschschlüssel, sondern erstellt Sitzungsschlüssel zwischen den kommunizierenden Parteien kooperativ mit Diffie-Hellman (DH) Algorithmen. Diese Art Schlüssel erstellt ein "gemeinsames Geheimnis" (shared secret), das eine Beeinträchtigung durch außenstehende Parteien unterbindet.
PFS ist automatisch aktiviert, wenn TLS auf dem 4D Web Server aktiv ist. Existiert die Datei dhparams.pem (Dokument mit dem privaten DH Schlüssel des Servers) noch nicht, generiert 4D sie automatisch mit der Schlüsselgröße 2048. Das kann beim ersten Erstellen dieser Datei ein paar Minuten dauern. Sie wird an dieselbe Stelle wie die Dateien key.pem und cert.pem gelegt (siehe Abschnitt TLS in 4D installieren und aktivieren).
Verwenden Sie eine eigene Cipher-Liste und wollen PFS aktivieren, müssen Sie prüfen, ob sie Eingaben mit DH oder ECDH (Elliptic-curve Diffie–Hellman) Algorithmen enthält.
Weitere Informationen dazu finden Sie unter dem Selektor SSL cipher list des Befehls SET DATABASE PARAMETER.
Damit eine Web Verbindung im gesicherten Modus ausgeführt wird, muss die vom Browser gesendete URL mit https statt http beginnen. In diesem Fall erscheint im Browser eine Meldung. Klickt der Benutzer auf OK, sendet der Web Server das Zertifikat an den Browser.
Browser und Web Server bestimmen dann, welcher Verschlüsselungsalgorithmus für die Verbindung verwendet wird. Der Server bietet verschiedene symmetrische Verschlüsselungsalgorithmen. Von den gängigen Algorithmen wird immer der leistungsstärkste verwendet.
Warnung: Die erlaubte Verschlüsselungsebene hängt von der geltenden Rechtslage des jeweiligen Landes ab.
Für den Einsatz von TLS im 4D Web Server muss in den Datenbank-Eigenschaften auf der Seite Web > Konfiguration die Option "HTTPS aktivieren" markiert werden. Dann können Verbindungen mit dem Web Server im gesicherten Modus laufen. Ist jedoch auch die Option "HTTP aktivieren" markiert, müssen Sie berücksichtigen, dass der Browser weiterhin zwischen HTTPS und HTTP wechseln kann. Der Benutzer kann beispielsweise im URL Bereich des Browsers “HTTPS” durch “HTTP” ersetzen.
Mit dem Befehl WEB SET OPTION lassen sich HTTP und/oder HTTPS auch für eine Sitzung setzen.
Sie können Anfragen im nicht-gesicherten Modus verbieten oder umleiten:
Um http Umleitungen zu verbieten, deaktivieren Sie die Option HTTP aktivieren oder verwenden WEB SET OPTION mit dem entsprechenden Selektor. Dann werden HTTP Anfragen des Client vom 4D Web Server ignoriert und es erscheint eine Fehlermeldung.
Um HTTP Anfragen automatisch auf HTTPS umzuleiten, können Sie HTTP Strict Transport Security (HSTS) über den Befehl WEB SET OPTION mit dem Selektor Web HSTS enabled aktivieren. Dann ist die Verwendung von TLS zwingend und stellt sicher, dass alle Kommunikationen über HTTPS ablaufen. Weitere Informationen dazu finden Sie unter dem Befehl WEB SET OPTION.