4D v16.3

Utiliser le protocole TLS

Accueil

 
4D v16.3
Utiliser le protocole TLS

Utiliser le protocole TLS  


 

 

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

Pour obtenir un certificat numérique :

1. Générez une “clé privée” à l’aide de la commande GENERATE ENCRYPTION KEYPAIR.

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.

2. Etablissez une demande de certificat à l’aide de la commande GENERATE CERTIFICATE REQUEST.

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 TO 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.
  • 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 4D Client database folder dans la description de la commande Get 4D folder). A noter que vous devez copier ces fichiers manuellement sur le poste distant.

Note : La présence du composant 4DSLI.DLL est également nécessaire pour l’utilisation des commandes de cryptage des données ENCRYPT BLOB et DECRYPT BLOB.

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” TLS. Ce paramètre est accessible dans la page Web, onglet Configuration des Propriétés de la base :

Par défaut, les connexions TLS 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 TCP 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 TCP 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.

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 (RC2, RC4, DES...). 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 ne nécessite pas de configuration système particulière. Toutefois, vous devez tenir compte du fait qu’un serveur Web TLS peut également fonctionner en mode non sécurisé. Le changement de mode de connexion peut s’effectuer si le navigateur en fait la demande (il suffit à l’utilisateur, dans la zone d’URL du navigateur, de remplacer “HTTPS” par “HTTP”). Il revient au développeur d’interdire ou de rediriger les requêtes effectuées en mode non sécurisé — la routine WEB Is secured connection permet de connaître le mode de connexion courant.



Voir aussi  

DECRYPT BLOB
ENCRYPT BLOB
GENERATE CERTIFICATE REQUEST
GENERATE ENCRYPTION KEYPAIR
Paramétrages du serveur Web
WEB Is secured connection

 
PROPRIÉTÉS 

Produit : 4D
Thème : Serveur Web

 
HISTORIQUE 

 
MOTS-CLÉS 

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

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)