Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v20.2
Chiffrer les données

Chiffrer les données  


 

Avec 4D, vous pouvez chiffrer vos données afin d'en garantir la confidentialité, indépendamment du contexte d'utilisation. Dans 4D tout particulièrement, le chiffrement possède les caractéristiques essentielles suivantes :

  • La capacité de chiffrer les données sensibles d'une base  - mais pas nécessairement l'intégralité du fichier de données,
  • Une couche de sécurité supplémentaire pour protéger l'accès aux données,
  • Le chiffrement n'est pas matériel, c'est vous qui contrôlez la clé (conformément aux exigences des sociétés d'hébergement externe).

Note : Pour plus d'informations sur la façon dont 4D gère les questions de sécurité, veuillez consulter le 4D Security Guide.

4D propose deux modes de chiffrement différents qui répondent à deux besoins différents :

  • Le chiffrement asymétrique, fondé sur une paire de clés. Le chiffrement est réalisé à l'aide de la clé publique, tandis que le déchiffrement requiert la clé privée.
    Ce mode est adapté aux échanges de données sécurisés sur un réseau, puisqu'il permet l'authentification et le chiffrement.
    Dans 4D, il s'applique à l'aide des commandes GENERER CLES CRYPTAGE, CRYPTER BLOB et DECRYPTER BLOB
  • Le chiffrement symétrique, où la même clé est utilisée pour le chiffrement et le déchiffrement (AES-256 algorithm).
    Ce mode est adapté au chiffrement local des données. Il est pris en charge par les commandes du thème telles que Crypter donnees BLOB et Decrypter donnees BLOB.

Dans 4D, le chiffrement des données est fondé sur les concepts suivants : 

  • Granularité : Le chiffrement s'effectue au niveau de la table. Les tables contenant des données sensibles sont signalées comme étant "chiffrables" dans la structure de la base (fichier .4db). Pour plus d'informations sur la configuration du chiffrement des tables, veuillez consulter le paragraphe Chiffrable.
  • Clé de chiffrement : Les tables sont chiffrées par une clé AES, générée par un algorithme SHA-256 à partir d'une "phrase secrète" donnée. La clé de chiffrement peut être stockée dans un fichier sur un appareil externe, tel qu'une clé USB, qui pourrait être connecté au serveur uniquement en cas de nécessité.
  • Trousseau : Une fois que la clé de chiffrement valide est fournie pour un fichier de données chiffré, elle est conservée dans la mémoire, dans le trousseau 4D. Ainsi, il est possible de fermer et de rouvrir le fichier de données sans avoir à fournir la clé (via un appareil ou via la méthode ds.provideDataKey( )). Dans la configuration client/serveur, le trousseau est sauvegardé sur le serveur. Le trousseau peut être vidé lorsque 4D est quitté.
  • Phrase secrète : La phrase secrète est une version plus sécurisée du mot de passe. Elle peut contenir un grand nombre de caractères et est utilisée pour générer une clé de chiffrement. La même phrase secrète sera systématiquement associée à la même clé de chiffrement.
  • Chiffrement symétrique : La même clé de chiffrement est utilisée pour chiffrer et déchiffrer les données chiffrées.
  • Lire et écrire des données chiffrées : Une fois que la clé de chiffrement valide est fournie pour un fichier de données chiffré :
    • toutes les modifications de données des tables chiffrables sont automatiquement chiffrées sur le disque
    • toutes les données chargées à partir de tables chiffrables sont automatiquement déchiffrées dans la mémoire
  • Fichiers cibles : Le chiffrement s'applique à tous les fichiers contenant des données : .4dd, .journal, .4dIndex.

Attention : Si la clé de chiffrement et la phrase secrète sont perdues, il sera impossible, y compris pour les services techniques de 4D, d'accéder aux données chiffrées. 

Dans 4D, le chiffrement est fondé sur un scénario simple, en deux temps : 

1ère étape : Sélectionner les tables à chiffrer

  • Le développeur sélectionne les tables à chiffrer au niveau de la structure de la base (voir Chiffrable).
  • Pour des raisons de performance, seules les tables contenant des données sensibles doivent être sélectionnées. 
  • Aucun chiffrement n'est réalisé à cette étape, les utilisateurs peuvent travailler normalement, sans chiffrement des données.

2ème étape : Chiffrer les données sélectionnées

  • Lorsque le développeur déploie une application (si le client le demande), il active le chiffrement à l'aide du Centre de Sécurité et de Maintenance (CSM), ou du langage 4D.
  • Le chiffrement s'applique alors à toutes les tables pré-sélectionnées. 
  • Les données chiffrées sont automatiquement déchiffrées lorsqu'elles sont lues et rechiffrées au moment de la sauvegarde, si la clé de chiffrement a été fournie. 

 

Note : Le trousseau 4D est valide uniquement durant la session 4D. Il est conservé dans la mémoire et est automatiquement supprimé lorsque l'application 4D est fermée.

Ce schéma illustre les étapes suivantes : 

  1. Lorsque l'utilisateur essaie d'ouvrir un fichier de donnés chiffrées, 4D recherche une clé de chiffrement valide dans le trousseau 4D. Si elle est trouvée, l'accès (lecture/écriture) aux données chiffrées est accordé.
  2. Si aucune clé de chiffrement valide n'est trouvée dans le trousseau 4D, 4D scanne tous les appareils connectés (au premier niveau) pour trouver un fichier .4DKeyChain contenant une clé de chiffrement valide (voir Sauvegarder les clés de chiffrement des données dans des fichiers ci-dessous).
  3. À ce stade, le fichier de données est véritablement ouvert. Si aucune clé de chiffrement n'est fournie, aucun accès en lecture/écriture aux données chiffrées ne peut être accordé.
  4. L'utilisateur peut cependant fournir une clé de chiffrement des données valide :

    Si une clé de chiffrement des données valide est fournie, l'accès en lecture/écriture aux données chiffrées est accordé.

  5. Chaque fois qu'une clé de chiffrement valide est trouvée, elle est ajoutée au trousseau 4D. Un appareil connecté contenant une clé de chiffrement n'a pas besoin de rester connecté une fois que la clé de chiffrement a été ajoutée au trousseau 4D. 

Vous pouvez créer des fichiers contenant des clés de chiffrement de données afin de les sauvegarder sur des appareils externes (ex : clés USB ou disques externes), de façon à ce que 4D puisse les utiliser au démarrage de l'application ou après l'appel de la commande Rechercher cle donnees pour déchiffrer les données (voir ci-dessus). Une fois qu'une clé de chiffrement valide a été trouvée, elle est sauvegardée dans la mémoire, dans le trousseau 4D, et est utilisée tout au long de la session. À ce stade, l'appareil externe peut être déconnecté.

Un fichier contenant une clé chiffrée doit être conforme aux règles suivantes :

  • Le nom du fichier doit avoir l'extension .4DKeyChain. Par exemple, "myKeys.4DKeyChain".
  • Le fichier doit être un fichier texte au format JSON.
  • Il peut contenir une ou plusieurs clés de chiffrement et/ou une ou plusieurs phrases secrètes dans des objets JSON ou dans des collections d'objets ; chaque objet doit contenir une propriété encodedKey ou passPhrase. Consultez la commande Creer cle donnees pour apprendre à générer un fichier de clé. 
  • Il doit être sauvegardé à la racine de l'appareil externe
  • Plusieurs fichiers .4DKeyChain peuvent être utilisés simultanément.

Note : Le contenu de tous les fichiers .4DKeychain trouvés, quel que soit leur nom, est analysé pour détecter si une clé correspond aux données.

Voici un exemple de fichier contenant trois clés :

[
{ "encodedKey":"D1AB499C9BE1F210BDB[...]0F63EF6CE8CC0C6CA4" },
{ "encodedKey":"F68A20FCBC70[...]21B55F6D89687ABC7CFAB95720A" },
{ "passPhrase":"Bonjour il fait beau" }
]



Voir aussi  

A deeper look into 4D data encryption (blog post)
Page Chiffrement

 
PROPRIÉTÉS 

Produit : 4D
Thème : Gestion des fichiers 4D
Nom intl. : Encrypting data

 
PAGE CONTENTS 
 
HISTORIQUE 

Créé : 4D v17 R5

 
UTILISATION DE L'ARTICLE

4D - Mode Développement ( 4D v20)
4D - Mode Développement ( 4D v20.1)
4D - Mode Développement ( 4D v20.2)