Sécurité système renforcée avec le module LabVIEW Datalogging and Supervisory Control

Aperçu

Ce document décrit les fonctionnalités fournies par le module LabVIEW Datalogging and Supervisory Control (DSC) pour faciliter l'implémentation de la sécurité de bibliothèques de projet LabVIEW, variables partagées et objets de face-avant. Ce document aborde aussi la façon dont l'architecture de sécurité différencie la gestion et l'authentification utilisateur et les autorisations de ressources.

Contenu

Introduction

Le module LabVIEW DSC fournit un ensemble d'outils performants permettant de faciliter la sécurité des bibliothèques de projet LabVIEW, des variables partagées et des objets de face-avant sur des systèmes locaux et réseau. Les fonctionnalités de sécurité se divisent en deux catégories : gestion et authentification utilisateur et autorisations de ressources. La gestion et authentification utilisateur est fournie par le Gestionnaire de comptes de domaine, donc le développeur peut stocker toutes les informations utilisateur à un emplacement centralisé. Avec cette architecture, les systèmes distribués peuvent accéder à un emplacement unique pour obtenir des informations utilisateur plutôt que de stocker des comptes sur chaque ordinateur. Le Gestionnaire de comptes de domaine gère aussi l'authentification utilisateur de sorte que les systèmes distribués ou en réseau n'aient pas besoin d'implémenter eux-mêmes les fonctionnalités. Les informations utilisateur fournies par le Gestionnaire de comptes de domaine sont utilisées par les bibliothèques de projet LabVIEW, les variables partagées et les objets de face-avant pour assigner des autorisations.

Premier modèle de sécurité du module LabVIEW DSC


Dans LabVIEW 7.x et versions antérieures, le module LabVIEW DSC utilise une base de données de comptes utilisateur sur chaque ordinateur pour authentifier les utilisateurs et assurer la sécurité de différentes ressources. Avoir une seule base de données de comptes utilisateur pose un problème car l'ordinateur d'authentification n'a connaissance que des utilisateurs sur l'ordinateur où se trouve la base de données. L'ordinateur d'authentification n'est pas conscient des utilisateurs présents sur d'autres ordinateurs. De plus, rattacher une base de données de comptes utilisateur à chaque ordinateur n'est peut-être pas possible pour les cibles embarquées ou temps réel à cause de leur puissance de calcul limitée.

Gestionnaire de comptes de domaine


Le module LabVIEW 8 DSC introduit le Gestionnaire de comptes de domaine, qui apporte une solution de sécurité plus flexible, mâture et robuste que les versions précédentes du module LabVIEW DSC. Le Gestionnaire de comptes de domaine sert de référentiel central pour la gestion de l'authentification utilisateur et la gestion de comptes locales et distantes. Vous utilisez le Gestionnaire de comptes de domaine pour créer des utilisateurs et des groupes d'utilisateurs, ayant chacun des niveaux de privilèges différents. Des utilisateurs peuvent être ajoutés à n'importe quel nombre de groupes. Cette organisation simplifie le processus d'assignement d'autorisations à des ressources LabVIEW locales et en réseau. Au lieu d'avoir un seul ordinateur pour implémenter l'authentification utilisateur et stocker les informations d'utilisateurs ou de groupes, des ordinateurs individuels communiquent avec le Gestionnaire de comptes de domaine situé sur un ordinateur distant. Cet ordinateur distant détermine ensuite quels utilisateurs essaient d'accéder à une ressource et à quel groupe chaque utilisateur appartient.

Implémentation de la sécurité avec le module LabVIEW DSC


Pour lancer le Gestionnaire de comptes de domaine, sélectionnez Tools»Security»Domain Account Manager dans le menu déroulant du gestionnaire de projet. Dans le Gestionnaire de comptes de domaine, illustré à la Figure 1, faites un clic droit sur l'icône My Computer et sélectionnez New Local Domain dans le menu local. Si un domaine local existe déjà sur votre ordinateur, vous ne pourrez pas en créer un autre sans d'abord supprimer celui qui existe. À partir de l'onglet General, entrez un nom de domaine, puis appuyez sur Ok. Vous serez invité à créer un mot de passe administrateur. L'administrateur est l'utilisateur par défaut qui peut ajouter ou supprimer des utilisateurs et des groupes d'utilisateurs, changer des autorisations utilisateur, modifier des mots de passe utilisateur, etc. Ces fonctionnalités sont limitées à l'administrateur et à tout utilisateur du groupe administrateurs. Les autres groupes par défaut incluent les opérateurs et invités.




Figure 1. Fenêtre principale du Gestionnaire de comptes de domaine


Le Gestionnaire de comptes de domaine dispose de nombreuses fonctionnalités de sécurité, telles que le cryptage, qui renforcent la sécurité de l'ordinateur sur lequel il est déployé. Le Gestionnaire de comptes de domaine utilise un protocole de défi et réponse pour transmettre des mots de passe via le réseau. Dans la mesure où aucun mot de passe clair n'est transmis via le réseau, les techniques d'interception malicieuses ne révèlent pas le mot de passe de l'utilisateur. Le Gestionnaire de comptes de domaine utilise aussi une fonction de hachage à sens unique pour stocker les mots de passe. En utilisant ce type de stockage, les applications peuvent valider les mots de passe avec le Gestionnaire de comptes de domaine, mais ne peuvent pas déterminer le vrai mot de passe.

Pour renforcer la sécurité, vous pouvez contrôler l'accès au Gestionnaire de comptes de domaine en assignant des autorisations aussi bien aux ordinateurs individuels qu'aux sous-réseaux. En refusant l'accès au Gestionnaire de comptes de domaine, vous refusez l'accès à toute ressource utilisant le domaine pour l'authentification utilisateur. Si un ordinateur ou un sous-réseau ne peut pas accéder au Gestionnaire de comptes de domaine, la ressource demandée ne peut pas déterminer les autorisations nécessaires. 

Vous pouvez utilisez le nom d'ordinateurs individuels et des adresses IP pour contrôler l'accès au Gestionnaire de comptes de domaine. Vous pouvez également utiliser le caractère générique "*" pour contrôler l'accès par une gamme d'ordinateurs ou d'adresses IP. Par exemple, autoriser l'accès par "*.ni.com" spécifie que tous les ordinateurs dont le nom se termine par "ni.com" peuvent accéder au Gestionnaire de comptes de domaine. Inversement, refuser l'accès par "10.0.0.*" spécifie qu'aucun ordinateur sur le sous-réseau 10.0.0 ne peut accéder au Gestionnaire de comptes de domaine. La Figure 2 montre ces paramètres de la fenêtre Domain Properties. Vous pouvez accéder à cette fenêtre en lançant le Gestionnaire de comptes de domaine, en sélectionnant Edit»Properties dans le menu déroulant, puis en cliquant sur l'onglet Access Control .


Figure 2. Fenêtre de propriétés du domaine/Onglet de contrôle d'accès

Opérations sur les bibliothèques de projet et variables partagées et autorisations

Les bibliothèques de projet et variables partagées sont deux types de ressources qui utilisent les fonctionnalités de sécurité fournies par le module LabVIEW DSC. Vous pouvez utiliser des niveaux d'autorisation pour contrôler l'accès en lecture/écriture à ces deux types de ressources. Les trois niveaux d'autorisation sont les suivants : Grant, Deny et Undefined. Le Tableau 1 décrit ces niveaux d'autorisation.




Tableau 1. Niveaux d'autorisation des bibliothèques de projet et variables partagées


Les autorisations sont assignées hiérarchiquement. Le plus haut niveau d'autorisation est celui qui est défini au niveau de la bibliothèque de projet. En assignant une autorisation à une bibliothèque, vous assignez une autorisation à toutes les bibliothèques de projet et variables partagées contenues dans cette bibliothèque de projet. L'autorisation non définie peut être écrasée au même niveau hiérarchique ou à un niveau supérieur.

Sécurité d'une bibliothèque de projet


Une fois que les utilisateurs et groupes d'utilisateurs ont été définis dans le Gestionnaire de comptes de domaine, ces informations utilisateur peuvent être utilisées pour déterminer les autorisations en lecture/écriture pour différentes ressources. Pour définir des autorisations utilisateur et groupe d'une bibliothèque de projet, faites un clic droit sur la bibliothèque de projet et sélectionnez Properties dans le menu local. Sélectionnez ensuite DSC Settings: Data Access dans la liste Category. La Figure 3 montre la catégorie Data Access de la fenêtre Properties d'une bibliothèque de projet. Vous observerez que l'utilisateur n'a un accès qu'en lecture seule à la bibliothèque de projet.


Figure 3. Définition des autorisations pour une bibliothèque de projet

Sécurité d'une variable partagée

Les variables partagées utilisent les informations utilisateur et fonctionnalités d'authentification du Gestionnaire de comptes de domaine pour définir des autorisations, de façon très similaire aux bibliothèques de projet. Cependant, étant donné que les variables partagées demeurent dans une bibliothèque de projet, il risque d'y avoir des divergences entre les autorisations assignées à la bibliothèque de projet et celles assignées à la variable partagée. Dans ce cas, l'autorisation la plus restrictive est toujours celle qui s'applique. 

Pour assigner des autorisations pour une variable partagée, faites un clic droit sur la variable et sélectionnez Properties dans le menu local. Sélectionnez ensuite Security dans la liste Category. La Figure 4 montre la fenêtre de propriétés d'une variable partagée qui autorise l'accès en lecture et refuse l'accès en écriture.


Figure 4. Définition des autorisations pour une variable partagée

Sécurité de la face-avant

Le module LabVIEW DSC utilise également le Gestionnaire de comptes de domaine pour assigner des niveaux d'autorisation aux commandes et indicateurs de la face-avant. Vous pouvez assigner les quatre niveaux d'autorisation suivants à des objets de face-avant.

  • Full Access : l'utilisateur a un accès non restreint à l'objet de face-avant.
  • Disabled (View Only) : l'utilisateur ne peut voir que l'objet de face-avant.
  • Disabled & Grayed Out : similaire à Disabled (View Only), mais l'objet de face-avant apparaît grisé.
  • No Access (Hidden) : l'utilisateur ne voit pas du tout l'objet de face-avant.


Vous pouvez utiliser les deux procédures suivantes pour assigner des autorisations aux objets de face-avant.

  • Faites un clic droit sur l'objet et sélectionnez Properties dans le menu local pour lancer la boîte de dialogue Properties. Ensuite, cliquez sur l'onglet Security. Utilisez cet onglet pour assigner des autorisations à cet objet.
  • Sélectionnez Tools»Security»Front Panel Security pour lancer la boîte de dialogue Front Panel Security. Cette boîte de dialogue, illustrée à la Figure 5, dresse la liste de tous les objets de face-avant. Utilisez cette boîte de dialogue pour assigner des autorisations à plusieurs objets de face-avant en même temps.

Figure 5. Boîte de dialogue de sécurité de la face-avant


Utiliser la boîte de dialogue Front Panel Security pour assigner des autorisations à des objets n'est pas pareil que changer l'état de l'objet en utilisant le menu Properties. Utiliser les propriétés de cet objet change la sécurité de l'objet en fonction de l'utilisateur qui est connecté à la face-avant. Inversement, utiliser la boîte de dialogue Front Panel Security maintient la sécurité au même niveau, quel que soit l'utilisateur qui est connecté. De plus, les autorisations définies par la sécurité de la face-avant écrasent l'état défini pour un objet de face-avant par ses propriétés. Par conséquent, quel que soit l'état auquel l'objet est défini, son comportement sera contrôlé par la sécurité de la face-avant.

Conclusion


Le module LabVIEW DSC fournit un ensemble d'outils pour faciliter l'implémentation de la sécurité de ressources locales et réseau, telles que des bibliothèques de projet LabVIEW, des variables partagées et des objets de face-avant. L'architecture de sécurité du module DSC différencie la gestion et l'authentification utilisateur et les autorisations de ressources. La gestion et l'authentification utilisateur sont fournies par le Gestionnaire de comptes de domaine alors que les autorisations d'accès à une ressource assignées aux utilisateurs sont définies par la ressource même. Les trois ressources qui bénéficient des fonctionnalités de sécurité du module LabVIEW DSC assignent des autorisations de manières différentes. Les bibliothèques de projet peuvent être utilisées comme conteneurs pour assigner des autorisations à de multiples variables partagées ou d'autres bibliothèques de projet contenues dans cette bibliothèque de projet. Bien que les variables partagées héritent des autorisations de la bibliothèque de projet dans laquelle elles demeurent, elles peuvent aussi assigner des autorisations individuelles. Les objets de face-avant peuvent également assigner des niveaux d'autorisation en fonction de l'utilisateur ou du groupe.