# Sécurité multiniveau

La sécurité multi-niveau (en anglais multilevel security, en abrégé MLS) est un principe informatique permettant de catégoriser les entités d'un système en fonction de niveaux d'habilitation et de classification. Ils permettent que l'accès d'un sujet (utilisateur, processus…) à un objet (fichier, mémoire, interface matérielle…) ne soit plus uniquement assujetti à l'identité du sujet, mais avant tout au niveau d'habilitation du sujet par rapport au niveau de classification de l'objet fonction de la nature de l'action entreprise. Ceci permet à des entités de classification et d'habilitation différentes de cohabiter sur une même plateforme tout en garantissant un respect strict de la politique de confidentialité.
Pour l'exemple, et entre autres choses, ce type de système permet donc l'accès simultané de différents utilisateurs à des données et outils de différents niveaux de classification, tout en garantissant que les utilisateurs ne pourront voir et accéder que les données et outils pour lesquels ils sont habilités.

## Problématique adressée

Dans les systèmes d'information conventionnels, le droit d'un sujet à entreprendre une action sur un objet est défini suivant les principes du Contrôle d'accès discrétionnaire (DAC - Discretionary Access Control), et est donc principalement lié à l'identité du sujet. Pour l'exemple, si un utilisateur possède un fichier, il peut alors le lire ou l'écrire comme il le souhaite. Au même titre, il est libre de le rendre accessible à d'autres utilisateurs d'une manière ou d'une autre, que ce soit par modification des droits d'accès du fichier ou par transfert via un média quelconque (envoi par messagerie, partage d'une copie de sauvegarde, etc.).
Si les données en question ont un caractère confidentiel, c'est à l'utilisateur qu'incombe le devoir de les traiter comme telles. Le système ne dispose d'aucun moyen de gérer le niveau de sensibilité des entités qu'il héberge. Ceci illustre la problématique qui se pose dans les environnements où la gestion de la confidentialité est nécessaire.

## MAC et labellisation

Un autre principe de sécurité existe, le Contrôle d'accès obligatoire (MAC - Mandatory Access Control). Dans les systèmes d'information, ce principe se traduit par des critères d'autorisation extérieurs à l'identité du sujet. On considère donc tout d'abord des niveaux hiérarchiques de sensibilité qui seront affectés à chaque entité du système. Ils indiquent un niveau d'habilitation pour un sujet et de classification pour un objet.
Par exemple, NON CLASSIFIE (NC) < DIFFUSION RESTREINTE (DR) < CONFIDENTIEL (C) < SECRET (S) < TRÈS SECRET (TS). Nous considérerons cette classification dans les quelques exemples qui suivent.
Ensuite, sont définies des règles qui régissent leur gestion. Ces règles sont principalement issues des modèles de Bell et La Padula et de Biba. Parmi les principales règles qui en découlent, citons les suivantes :
* Un sujet ne peut accéder qu'aux objets d'un niveau de classification inférieure ou égale à son niveau d'habilitation.(Habilitation sujet >= Classification objet) Par exemple, un processus CONFIDENTIEL ne pourra ni voir ni communiquer avec un processus SECRET ou accéder quoi que ce soit de niveau SECRET. Cette règle interdit les manipulations d'un objet au-delà de son habilitation.
* Un sujet ne peut accéder qu'en lecture aux objets d'un niveau inférieur de classification (Habilitation sujet = Classification objet). Par exemple, un processus CONFIDENTIEL pourra lire et écrire des données au niveau CONFIDENTIEL, mais ne pourra que lire des données d'un niveau inférieur (NC ou DR). Sans cette règle, notre process CONFIDENTIEL pourrait transférer par copie des informations de niveau CONFIDENTIEL dans un fichier de niveau NC. Cette règle l'interdit et permet d'éviter la déclassification sous seuls contrôle et autorité du sujet.
* Le niveau de sensibilité d'un sujet ou d'un objet ne peuvent pas être modifiée dynamiquement. Par exemple, un processus fonctionnant au niveau SECRET ne pourra pas basculer au niveau DR. Si l'application traduite par ce processus requiert de fonctionner à un niveau d'habilitation DR, il n'y aura d'autre option que d'en créer une nouvelle instance au niveau DR. Ce nouveau processus ne pourra alors ni voir, ni accéder à quoi que ce soit du niveau SECRET, même s'il appartient au même utilisateur disposant d'une habilitation maximale SECRET.
La labellisation du système d'information est l'un des moyens d'implémenter les niveaux de sensibilité que nous venons d'évoquer. Le principe est d'attacher un label à chaque entité du système (utilisateurs, process, mémoire, interfaces, fichiers, etc.) décrivant son niveau de sensibilité. Lors de chaque interaction entre des entités du systèmes, les principes présentés ci-dessus sont alors appliqués indépendamment et avant tous contrôles traditionnels tels ceux dérivés de DAC.

## Normes et certifications

À détailler : de l'Orange Book (Trusted Computer System Evaluation Criteria) aux CC LSPP.