SSL/TLS : Prise en charge des certificats ECDSA

4D utilise SSL/TLS pour sécuriser les communications client-serveur et les requêtes HTTP. 4D supporte la cryptographie RSA depuis plus d’une décennie et avec 4D v20R3 nous ajoutons maintenant la cryptographie ECDSA à notre boîte à outils. C’est le bon moment pour moi de parler un peu de sécurité.

SSL/TLS est un protocole utilisé pour crypter les communications entre un client et un serveur. Utilisé dans le monde entier depuis près de trente ans, il est solide, incassable et rapide. Dans 4D, vous pouvez l’utiliser principalement à deux endroits : Pour crypter la communication entre un client 4D et un serveur 4D et pour crypter les requêtes adressées au serveur web 4D. Nous vous conseillons vivement de crypter à la fois vos communications client-serveur et les requêtes adressées à votre serveur web, d’ailleurs le cryptage des communications client-serveur est devenu le paramètre par défaut depuis 4D v18.

Chiffrer les communications client-serveur

Pour activer le cryptage de vos communications client-serveur, vous pouvez ouvrir l’onglet client-serveur des paramètres de la base de données et cocher la case « Encrypt Client-Server Communications ».

Note pour l’avenir : La couche réseau QUIC que nous implémentons actuellement est basée sur le protocole QUIC qui est nécessairement crypté. Ainsi, si vous sélectionnez la couche QUIC, la case à cocher ne sera pas affichée car le cryptage est toujours activé.

L’activation du protocole SSL/TLS ne suffit pas à protéger votre communication, vous devez également fournir un certificat que 4D utilisera pour crypter la communication. 4D en fournit un que vous trouverez dans le dossier Resources de 4D Server via les fichiers key.pem et cert.pem. Comme 4D fournit le même certificat à tous ses clients, il n’est pas recommandé d’utiliser ces fichiers en production. Vous devez les remplacer par votre propre certificat.

Chiffrer les requêtes HTTP

Si vous souhaitez crypter les communications de votre serveur web, vous devez utiliser le protocole HTTPS, qui est la version sécurisée du protocole HTTP. Dans l’onglet web des paramètres de la base de données, vous pouvez activer HTTPS (il est activé par défaut).

blank

Une fois de plus, vous devrez fournir un certificat que 4D utilisera pour le cryptage (vous pouvez utiliser le même certificat que pour 4D Server si vous le souhaitez). Vous devez placer les fichiers key.pem et cert.pem à côté du dossier du projet.

Certificats ECDSA

Parlons maintenant des certificats. Il existe deux principaux algorithmes de cryptage utilisés par TLS/SSL : RSA et ECDSA. Les deux sont inviolables, stables et rapides, vous pouvez donc choisir celui que vous préférez. RSA est le standard de l’industrie, mais ECDSA devient de plus en plus courant. C’est pourquoi nous avons décidé de traiter l’ECDSA en même temps que le RSA. Pour vous, il n’y a pas de différence dans la manière de les utiliser, il vous suffit de placer vos fichiers key.pem et cert.pem au bon endroit, quel que soit l’algorithme de cryptage utilisé par votre certificat.

Si vous voulez en savoir plus sur TLS/SSL et le cryptage, je vous redirige vers la documentation de 4D. Et si vous avez des questions, n’hésitez pas à les poser sur le forum officiel de 4D.

Nicolas Brachfogel
- Product Owner & Senior Developer - Nicolas Brachfogel a rejoint 4D en 2017 en tant que développeur senior (4D Server et networking) et en tant que Product Owner pour gérer la mise en production d'Apple Silicon. Il est chargé de rédiger les user stories et de les traduire en spécifications fonctionnelles, ainsi que de s'assurer que les implémentations des fonctionnalités répondent aux besoins des clients. Diplômé de l'Institut Supérieur d'Informatique Appliquée (INSIA), Nicolas a commencé sa carrière en tant que développeur de logiciels en 2001. Après plusieurs années de programmation en Java et C++, il s'est spécialisé dans le développement client-serveur pour des sociétés de jeux vidéo. En tant que développeur/architecte serveur, il a travaillé avec succès sur les architectures serveur de nombreux jeux (Dofus Arena, Drakerz, Trivial Pursuit Go !).