Le module LabVIEW DSC fournit un ensemble d'outils puissants pour faciliter la sécurité des bibliothèques de projet LabVIEW, des variables partagées et des objets de la face-avant situés sur des systèmes locaux et en réseau. Les fonctionnalités de sécurité sont divisées en deux catégories : gestion et authentification des utilisateurs, et autorisations des ressources. La gestion et l'authentification des utilisateurs sont assurées par le Gestionnaire de comptes de domaine, ce qui permet au développeur de centraliser toutes les informations utilisateur. Avec cette architecture, les systèmes distribués peuvent accéder à un emplacement unique pour les informations utilisateur, évitant ainsi de stocker les comptes sur chaque ordinateur. Le Gestionnaire de comptes de domaine gère également l'authentification des utilisateurs, évitant ainsi aux systèmes distribués ou en réseau d'implémenter eux-mêmes cette fonctionnalité. 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 la face-avant pour attribuer des autorisations.
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é des différentes ressources. Disposer d'une base de données unique de comptes utilisateur pose problème car l'ordinateur authentificateur ne connaît que les utilisateurs de l'ordinateur où la base de données est installée. L'ordinateur authentificateur ne connaît pas les utilisateurs des autres ordinateurs. Par ailleurs, associer une base de données de comptes utilisateur à chaque ordinateur peut ne pas être réalisable pour des cibles embarquées ou en temps réel, en raison de leur puissance de calcul limitée.
Le module LabVIEW 8 DSC introduit le Gestionnaire de comptes de domaine, une solution de sécurité plus flexible, mature et robuste que les versions antérieures du module LabVIEW DSC. Le Gestionnaire de comptes de domaine sert de référentiel central pour gérer l'authentification et la gestion des comptes utilisateurs locaux et distants. Vous utilisez le Gestionnaire de comptes de domaine pour créer des utilisateurs et des groupes d'utilisateurs, chacun doté de niveaux de privilège différents. Les utilisateurs peuvent être ajoutés à un nombre illimité de groupes. Cette organisation simplifie le processus d'attribution des autorisations aux ressources LabVIEW locales et en réseau. Au lieu d'avoir un seul ordinateur gérant l'authentification des utilisateurs et stockant les informations sur les utilisateurs ou groupes, chaque ordinateur communique avec un Gestionnaire de comptes de domaine situé sur un ordinateur distant. Cet ordinateur distant détermine alors quels utilisateurs tentent d'accéder à une ressource et à quels groupes chaque utilisateur appartient.
Pour lancer le Gestionnaire de comptes de domaine, sélectionnez Outils»Sécurité»Gestionnaire de comptes de domaine 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 Poste de travail et sélectionnez Nouveau domaine local dans le menu contextuel. Si un domaine local existe déjà sur l'ordinateur, vous ne pouvez pas en créer un autre sans d'abord supprimer le domaine local existant. Dans l'onglet Général, saisissez un nom de domaine et cliquez sur Ok. Vous serez invité à créer un mot de passe administrateur. L'administrateur est l'utilisateur par défaut pouvant ajouter ou supprimer des utilisateurs et groupes d'utilisateurs, modifier les autorisations utilisateur, changer les mots de passe, etc. Cette fonctionnalité est limitée à l'administrateur et aux utilisateurs du groupe Administrateurs. Les autres groupes par défaut sont Opérateurs et Invités.
Le Gestionnaire de comptes de domaine possède de nombreuses fonctionnalités de sécurité, comme le chiffrement, augmentant la sécurité de l'ordinateur où il est déployé. Le Gestionnaire de comptes de domaine utilise un protocole défi-réponse pour transmettre les mots de passe sur le réseau. Aucun mot de passe en clair n'est transmis via le réseau, ce qui empêche les techniques d'écoute malveillante de révéler le mot de passe utilisateur. Le Gestionnaire de comptes de domaine utilise également une fonction de hachage unidirectionnel pour stocker les mots de passe. Grâce à ce type de stockage, les applications peuvent valider les mots de passe auprès du Gestionnaire de comptes de domaine, sans jamais pouvoir connaître le mot de passe réel.
Pour accroître la sécurité, vous pouvez contrôler l'accès au Gestionnaire de comptes de domaine en attribuant des autorisations à des ordinateurs individuels et à des sous-réseaux. Refuser l'accès au Gestionnaire de comptes de domaine équivaut à refuser l'accès aux ressources utilisant ce 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 pourra pas déterminer les autorisations nécessaires.
Vous pouvez utiliser des noms 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 d'une plage d'ordinateurs ou d'adresses IP. Par exemple, accorder l'accès par « *.ni.com » autorise tous les ordinateurs dont le nom se termine par « ni.com » à accéder au Gestionnaire de comptes de domaine. Inversement, refuser l'accès par « 10.0.0.* » interdit l'accès au Gestionnaire de comptes de domaine à tous les ordinateurs du sous-réseau 10.0.0. La figure 2 montre ces paramètres de la fenêtre Propriétés du domaine. Vous accédez à cette fenêtre en lançant le Gestionnaire de comptes de domaine, en sélectionnant Éditer»Propriétés dans le menu déroulant, puis en cliquant sur l'onglet Contrôle d'accès.
Les bibliothèques de projet et les variables partagées sont deux types de ressources utilisant 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 Grant, Deny et Undefined. Le tableau 1 décrit ces niveaux d'autorisation.
Les autorisations sont attribuées de manière hiérarchique. Le niveau d'autorisation le plus élevé est celui défini au niveau de la bibliothèque de projet. En attribuant des autorisations à une bibliothèque, vous attribuez des autorisations à toutes les bibliothèques de projet et variables partagées qu'elle contient. L'autorisation indéfinie peut être remplacée au même niveau hiérarchique ou à un niveau supérieur.
Une fois les utilisateurs et groupes d'utilisateurs définis dans le Gestionnaire de comptes de domaine, ces informations servent à déterminer les autorisations de lecture/écriture pour diverses ressources. Pour définir les autorisations utilisateur et groupe d'une bibliothèque de projet, faites un clic droit sur la bibliothèque et sélectionnez Propriétés dans le menu contextuel. Ensuite, sélectionnez Paramètres DSC : Accès aux données dans la liste Catégorie. La figure 3 montre la catégorie Accès aux données de la fenêtre Propriétés d'une bibliothèque de projet. Notez que l'utilisateur n'a qu'un accès en lecture à la bibliothèque de projet.
Les variables partagées utilisent les informations utilisateur et l'authentification du Gestionnaire de comptes de domaine pour définir les autorisations, de façon similaire aux bibliothèques de projet. Cependant, comme les variables partagées résident dans une bibliothèque de projet, il peut y avoir des divergences entre les autorisations attribuées à la bibliothèque de projet et celles attribuées à la variable partagée. Dans ce cas, l'autorisation la plus restrictive est toujours appliquée.
Pour attribuer des autorisations à une variable partagée, faites un clic droit dessus et sélectionnez Propriétés dans le menu contextuel. Ensuite, sélectionnez Sécurité dans la liste Catégorie. La figure 4 montre la fenêtre de propriétés d'une variable partagée, fournissant un accès en lecture et refusant l'accès en écriture à l'utilisateur.
Le module LabVIEW DSC utilise également le Gestionnaire de comptes de domaine pour attribuer des niveaux d'autorisation aux commandes et indicateurs de la face-avant. Quatre niveaux d'autorisation peuvent être assignés aux objets de la face-avant.
Vous pouvez utiliser les deux procédures suivantes pour attribuer des autorisations aux objets de la face-avant.
Utiliser la boîte de dialogue Sécurité de la face-avant pour attribuer des permissions aux objets diffère de la modification de l'état de l'objet via le menu Propriétés. Utiliser les propriétés de l'objet modifie la sécurité de l'objet selon l'utilisateur connecté à la face-avant. À l'inverse, la boîte de dialogue Sécurité de la face-avant maintient la sécurité au même niveau quel que soit l'utilisateur connecté. De plus, les autorisations définies par la sécurité de la face-avant prévalent sur l'état défini pour un objet de la face-avant par ses propriétés. Ainsi, indépendamment de l'état de l'objet, son comportement est contrôlé par la sécurité de la face-avant.
Le module LabVIEW DSC fournit un ensemble d'outils pour faciliter la mise en œuvre de la sécurité pour des ressources locales ou réseau telles que les bibliothèques de projet LabVIEW, les variables partagées et les objets de la face-avant. L'architecture de sécurité du module DSC sépare la gestion et l'authentification des utilisateurs des autorisations des ressources. La gestion et l'authentification des utilisateurs sont assurées par le Gestionnaire de comptes de domaine, tandis que les autorisations définissant l'accès des utilisateurs à une ressource sont déterminées par la ressource elle-même. Les trois ressources exploitant la fonctionnalité de sécurité du module LabVIEW DSC attribuent les autorisations de différentes manières. Les bibliothèques de projet peuvent servir de conteneurs pour attribuer des autorisations à plusieurs variables partagées ou autres bibliothèques de projet qu'elles contiennent. Bien que les variables partagées héritent des autorisations de la bibliothèque de projet qui les contient, elles peuvent également avoir des autorisations individuelles. Les objets de la face-avant peuvent aussi attribuer des niveaux d'autorisation basés sur l'utilisateur ou le groupe.