4D v16.3

TLS Protokoll

Home

 
4D v16.3
TLS Protokoll

TLS Protokoll  


 

 

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:

  1. 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.
  2. Richten Sie über den Befehl GENERATE CERTIFICATE REQUEST eine Zertifikatsanfrage ein.
  3. 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.
  4. 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.
  5. 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 OS im Unterordner Native Components des 4D bzw. 4D Server Pakets.
  • 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). Beachten Sie, dass Sie diese Dateien manuell auf den remote Rechner kopieren müssen.

Hinweis: 4DSLI.DLL benötigen Sie auch für die Verschlüsselungsbefehle ENCRYPT BLOB und DECRYPT BLOB.

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 TLS aktivieren. Gehen Sie dazu in den Datenbank-Eigenschaften auf die Seite Web>Konfiguration und markieren Sie die Option TLS 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 die TLS Kommunikation ist in TCP die Portnummer 443 reserviert. Sie können diese Port Nummer unter HTTPS Port Nummer 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 TCP 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.

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 einige symmetrische Verschlüsselungsalgorithmen (RC2, RC4, DES...). 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 ist keine besondere Systemkonfiguration notwendig. Sie müssen jedoch berücksichtigen, dass ein Web Server mit TLS auch im nicht-gesicherten Modus laufen kann. Der Modus lässt sich auf Anforderung des Browsers verändern. Dazu genügt es, wenn der Benutzer im URL Bereich des Browsers “HTTPS” durch “HTTP” ersetzt. Der Entwickler kann Anfragen im nicht-gesicherten Modus verbieten oder umleiten. Der aktuelle Verbindungsmodus lässt sich mit der Funktion WEB Is secured connection abfragen.



Siehe auch 

DECRYPT BLOB
ENCRYPT BLOB
GENERATE CERTIFICATE REQUEST
GENERATE ENCRYPTION KEYPAIR
WEB Is secured connection
Web Server, Einstellungen

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Web Server

 
GESCHICHTE 

 
SCHLÜSSELWÖRTER 

cert.pem, key.pem, 4DSLI.DLL

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)