SSL/TLS: Unterstützung für ECDSA-Zertifikate

4D verwendet SSL/TLS, um die Client-Server-Kommunikation und HTTP-Anfragen zu sichern. 4D unterstützt RSA Kryptographie seit mehr als einem Jahrzehnt und mit 4D v20R3 fügen wir nun ECDSA Kryptographie zu unseren Werkzeugen hinzu.

SSL/TLS ist ein Protokoll, das zur Verschlüsselung der Kommunikation zwischen einem Client und einem Server verwendet wird. Es wird seit fast 3 Jahrzehnten weltweit eingesetzt, ist robust, sicher und schnell. In 4D können Sie es hauptsächlich an 2 Stellen verwenden: Zur Verschlüsselung der Kommunikation zwischen einem 4D Client und einem 4D Server und zur Verschlüsselung der Anfragen an den 4D Webserver. Wir raten Ihnen dringend, sowohl Ihre Client-Server-Kommunikation als auch die Anfragen an Ihren Webserver zu verschlüsseln, und tatsächlich ist die Verschlüsselung der Client-Server-Kommunikation seit 4D v18 die Standardeinstellung.

Client-Server-Kommunikation verschlüsseln

Um die Verschlüsselung Ihrer Client-Server-Kommunikation zu aktivieren, öffnen Sie die Registerkarte Client-Server in den Datenbankeinstellungen und aktivieren Sie das Kontrollkästchen „Client-Server-Kommunikation verschlüsseln“.

Hinweis für die Zukunft: Die QUIC-Netzwerkschicht, die wir derzeit implementieren, basiert auf dem QUIC-Protokoll, das zwangsläufig verschlüsselt ist. Wenn Sie also die QUIC-Schicht auswählen, wird das Kontrollkästchen nicht angezeigt, da die Verschlüsselung immer aktiviert ist.

Die Aktivierung des SSL/TLS Protokolls reicht nicht aus, um Ihre Kommunikation zu schützen, Sie müssen auch ein Zertifikat angeben, das 4D zur Verschlüsselung der Kommunikation verwendet. 4D stellt ein solches zur Verfügung, das Sie im Ordner Resources von 4D Server in den Dateien key.pem und cert.pem finden. Da 4D allen seinen Kunden das gleiche Zertifikat zur Verfügung stellt, ist es nicht empfehlenswert, diese Dateien in der Produktion zu verwenden. Sie sollten sie stattdessen durch Ihr eigenes Zertifikat ersetzen.

HTTP-Anfragen verschlüsseln

Wenn Sie Ihre Webserver-Kommunikation verschlüsseln möchten, müssen Sie das HTTPS-Protokoll verwenden, die gesicherte Version des HTTP-Protokolls. Auf der Registerkarte Web der Datenbankeinstellungen können Sie HTTPS aktivieren (standardmäßig ist es aktiviert).

blank

Auch hier müssen Sie ein Zertifikat angeben, das 4D für die Verschlüsselung verwendet (Sie können dasselbe Zertifikat wie für 4D Server verwenden, wenn Sie möchten). Sie müssen die Dateien key.pem und cert.pem neben dem Projektordner ablegen.

ECDSA-Zertifikate

Lassen Sie uns nun über Zertifikate sprechen. Es gibt 2 Hauptverschlüsselungsalgorithmen, die von TLS/SSL verwendet werden: RSA und ECDSA. Beide sind unzerbrechlich, stabil und schnell, so dass Sie den von Ihnen bevorzugten Algorithmus wählen können. RSA ist der Industriestandard, aber ECDSA wird immer häufiger verwendet. Daher haben wir beschlossen, ECDSA neben RSA zu verwenden. Für Sie gibt es keinen Unterschied in der Verwendung, Sie müssen nur Ihre Dateien key.pem und cert.pem am richtigen Ort ablegen, egal welchen Verschlüsselungsalgorithmus Ihr Zertifikat verwendet.

Wenn Sie mehr über TLS/SSL und Verschlüsselung wissen wollen, kann ich Sie auf die 4D Dokumentation verweisen. Und wenn Sie eine Frage haben, zögern Sie nicht, diese im offiziellen 4D Forum zu stellen.

Nicolas Brachfogel
Product Owner & Senior Developer - Nicolas Brachfogel kam 2017 als Senior Developer (4D Server und Netzwerke) zu 4D. Als Product Owner, der die Freigabe von Apple Silicon verwaltet, ist er für das Schreiben von User Stories und deren Umsetzung in funktionale Spezifikationen zuständig und stellt sicher, dass die Implementierungen der Funktionen den Kundenanforderungen entsprechen. Nicolas ist Absolvent des Institut Supérieur d'Informatique Appliquée (INSIA) und begann seine Karriere als Softwareentwickler im Jahr 2001. Nachdem er mehrere Jahre in Java und C++ programmiert hatte, spezialisierte er sich auf die Client-Server-Entwicklung für Videospielunternehmen. Als Server-Entwickler/Architekt arbeitete er erfolgreich an den Server-Architekturen vieler Spiele (Dofus Arena, Drakerz, Trivial Pursuit Go!).