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).
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.