PROTECTION
$.1 PRESENTATION DU PROBLEME
$.11 INTRODUCTION
‘Le contréle du bon emploi de l'information ct, d'une maniére plus générale,
adigeeme tytn engl mai de mae ina
1 a a ae
Ta demande de ressource, l'étude de la protection eurait pu étre faite dans.
Beene ever Le et Se et
Fee ee een
ora crore miay cet Coe
ee ee, cain
«Naeem ese plan i ot acs ae
seo eeten erin ates
Se ttn cs ees
‘ou des maiveillances, mais seulement leur incidence sur les objets Provinés.
si est assurée la protection des usagers entre eux, du systéme contre Tes
{tegen ce unger’ conse te sjstone eds prowess aa meme UES
Se cae het ac
dun autre processus sans en avoir reas Tautoriston Pree oe
SE ee, Jae ma
te ne ence ne
spook mney Te cnc: pos ae
Tout systtme de protection général satisfait les fonctions piranss .
— Assurer Tindépendance des objets qui doivent rester logiquement
wai Cains, So na
224 Syetémes dexploitation des ordnateurs
chemin vers linformation, soit en interdisant Vacoés si le chemin existe,
Dans te premier cas, 'information cst inconnue : elle est ea dehors de Tunivers
de Putilisatcur. C'est le cas par exemple en ALGOL pout les variables d'un
bloc qui sont inconnues dans un autre bloc de méme profondeur,
Permettre une protection de I'uiilisation de information, fonction de
Topération qui est reatée,
— Permettre une protection sélective de information partagte, en fonc-
tion de Musager ou dun groupe d'usagers
{Un bon principe pour {utter contre ia propagation des erreurs est de limiter
au sirict nécessaire les pouvoirs d'un utilisateur.
In'existe pas, pour Tinstant, de solution unique en matiére de protection,
Ceci explique la part importante que nous révervons, dans ce chapitre, 4
ddes_réalisations particuliéres.
Dans une premiére partie, aprés avoir défini le probleme, nous esquissons
lespropriétés d'un systéme de protection, et tentons de dégager & cette occasion
‘quelques principes généraux de conception, valables & la fois pour des méca-
nismes cAblés et programmés. A partir des concepts introduits, nous décrivons
ensuite, dans le détail, les mécanismes de protection mis en jeu dans les deux
systémes ESOPE et MULTICS.
5.12 POSITION DU PROBLEME
5.121 Défnitions
Soit :
= un ensemble d'objets, R= (74) sce sont kes éléments & procger
dont utilisation doit étre conir6lée (par exemple fichiers, segments, pages,
terminaux, processus, procédures, sémaphores),
— un ensemble d'utilisateurs, U = (u, }: ce sont les entités capables de
Produce ou de propager des ereurs (pat exemple procesus, client, procé
ure),
— une matrice Af dont chaque ligne correspond a un utilisateur u, et
chaque colonne & un objet r,
Chaque élément My de la matrice indique l'ensemble des modes 4'accés
de 1, par u, Le mode d'aco’s peut étre donné ou caleulé par une fonction,
dependants de T'utilisateur et de la ressource (exemples de modes d'ncods
lecture ou écriture d'un fichier, création d'un processus, exécution d'un seg
ment).
La matrice M définit les régles de protection & respecter. Nous supposons
que chaque objet (ct chaque utilisateur) est désigné par le méme nom pendant
eee Me du ssteme et que ce nom n'est pes reutlisé apres destruction de
objet.Protection 225
Remarque 1. Une entté peut ue & fois objet et utilisateur : objet
«processus dimpression» une fois activé, agit comme un uilsateur en
demandant Mutsation d'un tampon en mémcire.
Remarque 2. Certains objets doivent étre demandes simultanément; ainsi
Yceés un fichier nécesste un tampon en mémoire centrale
La figure | ext un exemple de matrice M. On note par & interdiction d'em-
ploi de objet par un utiisateur et ¢ Vabsence de chemin de l'utilisateur vers
objet.
R
Fichiers Consoles Proceesut
mf f2 cl ep?
[Processus1] fire | sire lexéewerattoueryaliouer|Moquer| acuiver| activer
sere smi terromp
Processus 2|propriaire| i | « |alleney « |aciver|Aloguer|_détrure
carve lr
o|
|rsnes| re foo [= [> fel 2 | Br
later) 2 i
Processus] tire |e | derive
Figere 1, Exemple de mative 1
(On appelle :
~ drolts (« capabilites ») d'un utilisateur a, sur un objet r,, élément MA,
— pouvoir d'un uilisateur 1, la ligne ,,
— matrice des droits (« access matrix »), la matrice M.
5.122 Limites da systéme de protection
Les droits traduisent les régles d’aceés & un objet, propres a un utilsateur,
t non les contraintes cutilisation qui sont déterminées par les propriétés
de Tobjet, parcageable, critique, .. (voir Chap. 4). Ces contraintes sont
‘tablies par ailleurs et ne sont pas considérées ici. .
es droits sont indépendanis des actions entreprises par Tutlsteur en
cas de refus. Le sysiéme de protection coatréle seulement «i utilisateur a
Fedo on non des servi de objet av asebs gv pri,
Lapolitiqued adoptor en cas ‘erreur nest pas non plus du ressort dus
de potesinn, Par tontre Temple des objets, fre de Vappcation de cele
Politique, doit aussi étre controle.
226 Sysrimes dexploitetion des ordinatcurs
5.123 Variation du pouvoir d'un wtilisatenr : nécessité et limites
Le pouvoir, tel que nous avons introduit, défi pour chaque utiisateur
ensemble de ses droits d’accés aux objets. Sile pouvoir associé 4 un processus
reste constant durant tout le temps de son exécution, cela signifie que tous
Jes programmes, toutes les procédures utilis par ce processus ont les mémes
droits d'acoés aux objets ; ces droits doivent done étre les droits les plus élevés
u'll utilisera bien qu'il nen ait pas constamment besoin, La. protection
sera toutefois plus efficace si on peut lui donner & tout instant les pouvoirs
‘minimaux dont il a besoin, et pas davantage.
Lorsgu’sn processus d'un uiliseteur fait, en mode exclave, une opé-
Sortie, il appelle générelement une procédure du systéme, dotée de
rots plus étendus, qui vérific les paraméttes d'appel et provoque lenirée-sortie
‘roprement dite. Dés que leatrée-sortie ext trminee, le processus utilissteut retourne
fen mode esclave
Le systéme de protection doit permettre la modification du pouvoir d'un
processus d'utilisateur durant son exécution. Cette modification peut se
faite dans le sens d'une augmentation (ou d'une diminution) de pouvoir et
dans ce cas, les nouveaux droits d'accés aux objets sont un sur-ensemble
(cu un sous-ensemble) des anciens droits d’accés. La modification du pouvoir
Peut aussi se traduire par l'acquisition de droits différents.
Exemple 2. Un processus a autorise un processus a ascéder 4 um segment de
données d eet aocts ne peut se faire qu’au moyen d une proeédure de contrblep foutnie
para et dotée de drotssuffsants pour eflectuer ls references au segment de doce
Le mécanisme de protection doit aussi garantir que les donées propres da process b
sont a Yabri es erreurs possbles de la procedure p. Ea conséquence, le pouvoi asscié
fu processus & lorsqu'l utilise la procédure p, doit autoriser Tacoes au segment d
‘mais ier ‘out aes aux donnée prapres de b
1 n'y pas ici augmentation de powvoir, mais acquisition d'un pouvoir diféreat
par le processus 5,
On ne peut pas modifier n'importe quand et nimporte comment le pou-
Voir d'un processus. De méme, les droits d'ua uilisateur sur un objet peuvent
bpendre du chemin d'acoés & Lobjet ou de le fagon dont Vobjet ext demande,
Le systéme de protection peut parfoisimposer que le chemin d'accés a un
objet (ou un ensemble d’objets) débute par un point de passage oblise. appelé
auichet (« gate »).
Exemple 3. Lltiisation dune procédure p peut entraner le demande d'autres
objets Le ssteme deprotection remplit alors plusioursTonctions
— assurcr que exécution de la prootsurep ne peut commence sans pst pa ua
cher, = ms
— sie, an gic, qe tar ae dot in
= I donner let moyens, en changcaut son powolr, c'est nécestice pendant le
temps quil utilise p, et pendant ce tempsld seulement 'aceéder aun objec a, BesProtection 227
Pour simplifer le contrble des valeurs prises par le pouvoir d'un utlsateur,
‘on peut étre amené a en limiter le nombre. On peut aussi introduire une
relation d'ordre entre ces valeurs ;on verra une telle approche avec les anneaux
4e protection de MULTICS.
5.124 Problimes a résoudre
Diautres aspects du probléme, que nous n'avons pas Evoqués, se posent
foutefois au concepteur de systime :
— comment utiliser la matrice des droits, ou comment effectuer Ie contréle
de Taccds & un objet ?
— comment conserver les informations de ta matrice M7
— comment régler la variation de la matrice M au cours du temps, et
traduire la ration de nouveaux objets ou la modification des droits d'un
uilisateur ?
— comment protéger le systéme de protection ?
La mattice Mf traduit, en fait, es relations cxistant & un instant donné
centre les utilisateurs et les ebjets du systéme, Le passage dela repréventation
des relations par une matrice M a la réalisetion en machine dépend de la
nature des objets mis en jeu. Plusieurs techniques, eablées ou programmées,
peuvent étre envisegées. C'est pourquoi, dans la pratique, Ie systéme de
protection se trouve réparii A des niveau differents. Liimplaniation un
systéme de protection requiert toutefbis Texistence d'un mécanisme cable
inal (protection de mémoire e'You mode maftresclave) pour assurer
justement sa protection. On peut noter lanaloge qui existe ici avec le pro-
bbiéme de Pexchusion mutuelle pour la solution duguel il est nécessaire de
‘isposer d'un mécanisme de base (masquage des interruptions et instruction
TAS dans le cas q’un mult-processeur).
Remarque. Il est toutefois possible de réliser un sysitme de protection,
sur une machine qui ne dispose d'aucun mfcanisme de protection cAblé. Tl
sult que Ie systtme interpréte toutes les instructions des utlsateurs et ot
‘contréle lemploi quils font des objets du systéme.
5.13 EXEMPLES D'IMPLANTATION DE LA MATRICE DES
DROITS
Nous exposons ci-aprés quelques techniques couramment utilisées pour
‘mplanter la matrice des droits. Le ehoox d'une technique dépend de la nature
de le matrice M.
5.131 Liste d'accis ox
A chaque objet r est associe une liste des utilisateurs autorisés t de leurs
ahaa em me ner mi
donc de la forme (u, M(r,u)). Cette liste est consulkée & chaque tentative
228 Sratemes exploitation des ordinateurs
d'acoés a Vobjet r. Cette méthode est couramment utilisée pour Vaccés aux
fichiers et n’est efficace que si la liste ex courte. Diverses techniques d accé-
leration sont possibies :
— introduction de la liste complémentaire des utilisateurs non autorisés
lorsquelle est plus courte que celle des utilisacurs aucorsts,
— groupement des utilsateurs ayant les mémes droits.
5.132 Liste des droits
1a liste des droits est une représentation du pouvoir d'un wilisteur. A
chaque utlisateur est associe une liste (« capability list») spécifant, pour
chaque objet anque! il peu: accéder, ls droits d'aceéscorrespondants. Cheque
Glement se présente sous le forme (r, M(r.u)). Cette liste ex parcourue &
chaque tentative d'accés de l'utilisateur u Elle peut étreraccource avec les
rmémes techniques que la liste d'ece’s. Un avantage de cette lise de droits
cst que, Giant Ie A Tullisateur, elle n'est employee que lorsque celui est
actif’ Ceci permet d'introduire des techniques d'accélération d'acces comme
lune raémoire associative, une antémémoite ou un mécanisime de couplage
(voic Chap. 3 et). Sia iste et longue, ele peut dire structurée ca sous ste,
chacune ant associge & un mode d'ulilisation. Par exemple,
Zz, gisdve sousliste correspond a un mode d’aecés + lecture, éeritue,
exécution,..
Fipcnadue toublete correspond & une clase Wobets : mémire virwelle,
fichier,
3.133. Clos ot verrous
Les utilisateurs sont regroupés et chaque groupe est identifié par un code
‘ou elé remis a chacun de ses membres. De méme, les objets réumis en groupe-
‘ment sont caractérisés par un verroa identique pour chaque élément d'un
‘groupement. Il y a une clé et un verrou par mode d'acoés possible. L'accés
‘est permis que si la clé permet d'ouvrir le verrou. Dans ee cas, Putilisatear
‘ot teprésenté par la elé et Tobjet par le verrou, Le probleme se simple
sucoup,
xemple. Le systime cdblé de protection contre Iéeriture dans un bloc de mémoire
div caleulateur Cl 10070 met en jeu une technique de clés et verrous, L'geriture et
permise si et seulement si:
(verrow = 0) ou (cl = 0) ow (clé = verrou)
Cle t verrou peuvent prendre 4 valeurs possible, Ceci permet dintroduite 4 classes
\Suslsateurs, et 4 20nes de mémoire diferemment protegees contre eriture
5.134 Matrice des droits pour les modes maitre et exclave
Les objets accédés sont ici les instructions de la machine. Le pouvoir d'un
Processus peut prendre deux valeurs, Pune ol toutes les instructions sont
‘utorisées et l'autre od certaines seulement le sont.