Modèle HRU
# Modèle HRU

Le modèle HRU (du nom de ses auteurs, Michael A. Harrison, Walter L. Ruzzo et Jeffrey D. Ullman) est un modèle de contrôle d'accès discrétionnaire, à base de matrice d'accès, formalisé en 1976.

## Les modèles de contrôle d'accès discrétionnaires

En informatique, un modèle de contrôle d'accès est un formalisme permettant d'exprimer les droits d'accès des sujets (ou acteurs) sur les objets. Un sujet est une entité active : c'est généralement un utilisateur (ou groupe d'utilisateurs), ou un programme. Les objets peuvent être des fichiers, des programmes, des bases de données (ou fragments de bases de données)... qui sont des entités passives. Mais les sujets peuvent également être vus comme des objets.

Dans un modèle discrétionnaire, chaque objet a un propriétaire. Il est à la discrétion du propriétaire d'un objet de définir les droits d'accès des autres sujets sur cet objet. D'où le nom « discrétionnaire ». On peut noter que, sauf dans le cas où tous les droits sont donnés à un même sujet, le contrôle d'accès est décentralisé : c'est une des caractéristiques des modèles discrétionnaires.

Les modèles discrétionnaires sont faciles à mettre en œuvre, et très utilisés dans le monde informatique (par exemple : gestion des droits d'accès dans les systèmes UNIX, Linux, SQL, ...). Néanmoins, ils posent quelques difficultés, comme la révocation des droits propagés, et la vulnérabilité aux chevaux de Troie.

### Définition

Le système HRU est défini par un quadruplet $(S,O,R,M)$ où :

* $S$ est l'ensemble des sujets,
* $O$ l'ensemble des objets,
* $R$ l'ensemble des modes d'accès,
* $M$ la matrice d'accès.

Un ensemble possible de modes d'accès :

* read : lecture d'une information dans l'objet
* write : écriture d'une information dans l'objet en ayant le droit de lire son contenu
* append : ajout de contenu à un objet sans lire son contenu
* execute : exécution
* own : possession

Les cases de la matrice contiennent l'ensemble des autorisations d'un sujet pour un objet. Par exemple $M[s,o]$ est l'ensemble des opérations autorisées pour le sujet $s$ sur l'objet $o$. "$s$ est propriétaire de $o$" se traduit par $own\in M[s,o]$.

Les règles du modèle HRU sont les suivantes :

* Le créateur est le propriétaire.
* Le mode d'accès "own" n'est ni attribuable, ni révocable.
* Tous les autres modes d'accès peuvent être attribués ou révoqués par le propriétaire à n'importe quel sujet.
* Un sujet ayant un droit d'accès sur un objet peut transmettre ce droit d'accès.

La création (resp. la suppression) d'un sujet entraîne l'insertion (resp. la suppression) de la ligne correspondante dans la matrice. De la même manière, la création (resp. la suppression) d'un objet entraîne l'insertion (resp. la suppression) d'une colonne dans la matrice.

## Référence

* (en) Michael A. Harrison, Walter L. Ruzzo and Jeffrey D. Ullman, "Protection in Operating Systems". Communications of the ACM. 19(8):461–471, août 1976 [PDF].
