Le serveur Web 4D peut communiquer en mode sécurisé via le protocole TLS (Transport Layer Security) -- le successeur de SSL (Secured Socket Layer). Par défaut, la version minimale acceptée par 4D est TLS 1.2
Le protocole TLS a pour but de sécuriser les communications entre deux applications — généralement un serveur Web et un navigateur. Ce protocole est largement répandu et compatible avec la plupart des navigateurs Web.
Au niveau de l’architecture réseau, le protocole de sécurité s’insère entre la couche TCP/IP (bas niveau) et le protocole de haut niveau HTTP, pour lequel il est principalement destiné.
Architecture réseau utilisant TLS :
Note : Le protocole TLS peut également être utilisé pour sécuriser les connexions client/serveur “classiques” de 4D Server ainsi que les connexions du serveur SQL. Pour plus d’informations, reportez-vous à la section Crypter les connexions client/serveur dans le manuel de référence de 4D Server ainsi qu'à la section Configuration du serveur SQL de 4D dans le manuel de référence SQL.
Le protocole TLS permet de garantir l’identité de l’émetteur et du récepteur, ainsi que la confidentialité et l’intégrité des informations échangées :
Identification des intervenants : l’identité de l’émetteur et du récepteur sont confirmées.
Confidentialité des informations échangées : les données envoyées sont cryptées afin de les rendre inintelligibles pour les tiers non autorisés.
Intégrité des informations échangées : les données reçues n’ont pas été altérées, frauduleusement ou accidentellement.
Les principes de sécurisation utilisés par TLS sont basés sur l’emploi d’un algorithme de cryptage utilisant une paire de clés : une clé privée et une clé publique. La clé privée est utilisée pour crypter les données. Elle est conservée par l’émetteur (le site Web). La clé publique est utilisée pour décrypter les données. Elle est diffusée auprès des récepteurs (les navigateurs Web), via le certificat. L’emploi du TLS dans le cadre d’Internet requiert en effet l’entremise d’un opérateur de certification tel que, par exemple, Verisign®. Moyennant une participation financière du site Web demandeur, cet organisme délivre un certificat, garantissant l’identité du serveur et contenant la clé publique permettant la communication en mode sécurisé.
Note : Pour plus d’informations sur les principes généraux de cryptage et d’emploi de clés publiques/clés privées, reportez-vous à la description de la commande CRYPTER BLOB.
La mise en place d’un serveur fonctionnant en TLS nécessite un certificat numérique délivré par un opérateur de certification. Ce certificat renferme diverses informations dont la carte d’identité du site ainsi que la clé publique utilisée pour communiquer avec lui. Il est transmis aux clients (navigateurs Web) se connectant au site. Une fois qu’il est accepté, la communication en mode sécurisé s’établit.
Note : Pour qu’un navigateur accepte les certificats d’une autorité de certification, celle-ci doit être répertoriée dans ses Propriétés.
Le choix de l’autorité de certification dépend de plusieurs facteurs. Plus l’autorité est “connue”, plus le nombre de navigateurs acceptant les certificats qu’elle délivre sera important, mais plus le prix à payer sera élevé. Verisign® est une des autorités de certifications les plus utilisées.
Attention : Pour des raisons de sécurité, la clé privée ne doit JAMAIS être diffusée sur un réseau. En fait, elle ne doit pas quitter le poste serveur. Pour le serveur Web, le fichier Key.pem doit être placé dans le dossier de la structure de la base.
3. Envoyez la demande de certificat à l’autorité de certification que vous avez choisie. Pour remplir la demande de certificat, il vous sera peut-être nécessaire de contacter l’autorité de certification. Les autorités de certification vérifient la réalité des informations qui leur ont été transmises. La demande de certificat est générée dans un BLOB au format PKCS encodé en base64 (format PEM). Ce principe autorise le copier-coller des clés sous forme de texte et leur envoi par E-mail en toute sécurité, sans risque d’altération de leur contenu. Vous pouvez donc par exemple sauvegarder le BLOB contenant la demande de certificat dans un document texte (à l’aide de BLOB VERS DOCUMENT), puis l’ouvrir et copier-coller son contenu dans un E-mail ou un formulaire Web destiné à l’autorité de certification.
4. Une fois que vous avez reçu votre certificat, créez un fichier texte que vous nommerez “Cert.pem” et copiez dans ce fichier le contenu du certificat. Vous pouvez recevoir votre certificat sous plusieurs formes (généralement via un E-mail ou un formulaire HTML). 4D accepte la plupart des formats de texte (OS X, PC, Linux...) pour les certificats. En revanche, le certificat doit être au format PEM, c'est-à-dire PKCS encodé en base64.
Note : Les caractères de fins de ligne CR ne sont pas pris en charge (vous devez utiliser CRLF ou LF).
5. Placez le fichier “cert.pem” à l'emplacement adéquat. Pour le serveur Web, il s'agit du dossier contenant la structure de la base. Le serveur Web peut dès lors fonctionner en mode sécurisé. La durée de validité d’un certificat varie généralement entre six mois et un an.
Pour que vous puissiez utiliser le protocole TLS avec le serveur Web de 4D, plusieurs éléments doivent être présents sur le serveur, à différents emplacements :
4DSLI.DLL (Windows) ou 4DSLI.bundle (Mac OS): interface de la couche sécurisée dédiée à la gestion du TLS. Ce fichier est installé par défaut, il est placé : - sous Windows, à côté du fichier exécutable de l'application 4D ou 4D Server - sous Mac OS, dans le sous-dossier Native Components du progiciel 4D ou 4D Server. Note : La présence du composant 4DSLI.DLL est également nécessaire pour l’utilisation des commandes de cryptage des données CRYPTER BLOB et DECRYPTER BLOB.
key.pem (document contenant la clé de cryptage privée) et cert.pem (document contenant le certificat) : - avec 4D en mode local ou 4D Server, ces fichiers doivent se trouver à côté du fichier de structure de la base. - avec 4D en mode distant, ces fichiers doivent se trouver dans le dossier des ressources locales de la base sur le poste distant (pour plus d'informations sur l'emplacement de ce dossier, reportez-vous au paragraphe Dossier base 4D Client dans la description de la commande Dossier 4D). Vous devez copier ces fichiers manuellement sur le poste distant. Note : Des fichiers key.pem et cert.pem par défaut sont livrés avec 4D. Pour un niveau de sécurité optimal, il est fortement recommandé de remplacer ces fichiers par vos propres certificats.
L'installation de ces éléments rend possible l'utilisation du TLS dans les connexions au serveur Web 4D. Toutefois, pour que les connexions sécurisées soient acceptées par le serveur Web 4D, vous devez activer le HTTPS. Ce paramètre est accessible dans la page Web, onglet Configuration des Propriétés de la base :
Par défaut, les connexions HTTPS sont activées. Vous pouvez désélectionner cette option si vous ne souhaitez pas exploiter les fonctionnalités TLS avec votre serveur Web, ou si un autre serveur autorisant les connexions sécurisées fonctionne sur le même poste.
Le port HTTPS utilisé pour les connexions TLS est par défaut le 443. Ce numéro de port peut être modifié dans la zone Numéro de port HTTPS afin, par exemple, de renforcer la sécurité du serveur Web (pour plus d'informations sur ce point, reportez-vous à la section Paramétrages du serveur Web). Le port HTTP défini dans cette page de propriétés est utilisé pour les connexions du serveur Web en mode standard.
Note : Les autres propriétés de gestion du serveur Web 4D (mots de passe, délai avant déconnexion, taille du cache, etc.) restent appliquées, que le serveur fonctionne en mode TLS ou non.
La PFS (confidentialité persistante) ajoute une couche de sécurité supplémentaire à vos communications. Plutôt que d'utiliser des clés d'échanges préétablies, la PFS crée des clés de session de manière coopérative entre les parties en communication en utilisant des algorithmes Diffie-Hellman (DH). Le mode conjoint de production des clés crée un "secret partagé" qui empêche des éléments externes de les compromettre.
Lorsque TLS est activé sur le serveur Web de 4D Web, PFS est automatiquement activé. Si le fichier dhparams.pem (document contenant la clé DH privée du serveur) n'existe pas déjà, 4D le génère automatiquement avec une taille de clé de 2048. La génération initiale de ce fichier peut prendre plusieurs minutes. Le fichier est placé avec les fichiers key.pem et cert.pem, décrits dans la section précédente (Installation et activation du TLS dans le serveur Web de 4D).
Si vous utilisez une liste de chiffrement personnalisée et souhaitez activer PFS, vérifiez que votre liste contient des entrées avec des algorithmes DH ou ECDH (courbes elliptiques de Diffie–Hellman).
Note : Pour plus d'informations, reportez-vous au sélecteur Liste de chiffrement SSL de la commande FIXER PARAMETRE BASE.
Pour qu’une connexion Web s’effectue en mode sécurisé, il suffit simplement que l’URL envoyé par le navigateur débute par “https” (au lieu de “http”). Dans ce cas, une boîte de dialogue d’alerte apparaît sur le navigateur. Une fois la boîte de dialogue validée, le certificat est envoyé au navigateur par le serveur Web.
Les deux parties "négocient" alors l’algorithme de cryptage qui va être utilisé pour la connexion. Le serveur Web 4D dispose de plusieurs algorithmes de cryptage symétriques. L’algorithme commun le plus puissant est utilisé.
Attention : Le niveau de cryptage autorisé est soumis à la législation en vigueur dans le pays d’utilisation.
L’utilisation de TLS dans le serveur Web 4D nécessite de cocher l'option "Activer HTTPS" dans la boîte de dialogue de Propriétés. Ce paramétrage indique que les connexions au serveur Web peuvent être effectuées en mode sécurisé. Toutefois, vous devez tenir compte du fait que si l'option "Activer HTTP" est également cochée, le navigateur peut à tout moment basculer entre HTTPS et HTTP (par exemple, il suffit à l’utilisateur, dans la zone d’URL du navigateur, de remplacer "https" par "http").
Notes :
Vous pouvez connaître le mode de connexion courant à l'aide de la commande WEB Connexion securisee.
L'activation de HTTP et/ou HTTPS peut également être définie pour la session à l'aide de la commande WEB FIXER OPTION.
Si vous le souhaitez, vous pouvez interdire ou rediriger les requêtes effectuées en mode non sécurisé :
Pour interdire les redirections http, désélectionnez l'option "Activer HTTP" (ou utilisez le sélecteur WEB FIXER OPTION correspondant). Dans ce cas, les requêtes HTTP des clients seront ignorées par le serveur Web de 4D et un message d'erreur sera affiché dans le navigateur.
Pour rediriger automatiquement les requêtes HTTP vers le HTTPS, vous pouvez activer le HTTP Strict Transport Security (HSTS) à l'aide de la commande WEB FIXER OPTION et du sélecteur Web HSTS activé. Ce principe renforce l'utilisation du TLS et permet de s'assurer que toutes les communications utiliseront HTTPS. Veuillez vous reporter à la description de la commande WEB FIXER OPTION pour plus de détails sur le HSTS.