Anneau de protection

Un article de Wikipédia, l'encyclopédie libre.

Un anneau de protection (ou ring) est l'un des niveaux de privilèges imposé par l'architecture d'un processeur.

De nombreuses architectures modernes de processeurs (architectures parmi lesquelles on trouve le populaire Intel x86) incluent une certaine forme de protection en anneau, bien que les logiciels d'exploitation ne l'exploitent pas toujours entièrement.

Les rings étaient parmi les concepts les plus révolutionnaires mis en œuvre par le système d'exploitation Multics, un prédécesseur fortement sécurisé de la famille actuelle des systèmes d'exploitation UNIX.

[modifier] Description

Les anneaux sont arrangés dans une hiérarchie allant du plus privilégié (celui qui est le plus sécurisé, habituellement le numéro zéro dit Ring0) au moins privilégié (le moins sécurisé, habituellement l'anneau le plus élevé). Le système d'exploitation Multics original possédait huit anneaux, mais beaucoup de systèmes modernes en possèdent moins. Le matériel connait l'anneau de privilège courant des instructions qui s'exécutent à tout moment, grâce à des registres spéciaux de la machine.

Le matériel limite sévèrement les manières dont la main peut être passée d'un anneau à l'autre, et impose également des restrictions aux types d'accès mémoire qui peuvent être exécutés aux travers des anneaux. En général il y a une instruction spéciale d'appel qui transfère le contrôle d'une manière sécurisée vers des points d'entrée prédéfinis dans des anneaux de plus bas niveaux (plus sécurisés) ; ceci fonctionne comme un appel supervisé dans beaucoup de systèmes d'exploitation qui emploient l'architecture en anneau, ces restrictions matérielles étant conçues pour limiter les occasions d'infractions accidentelles ou malveillantes envers la sécurité du système.

L'utilisation efficace de l'architecture en anneau exige une coopération étroite entre le matériel (le processeur) et le système d'exploitation. Ces derniers, la plupart du temps, n'exploitent que deux types d'anneau de sécurité, le mode "utilisateur" et le mode "noyau" (dit mode kernel).

Le terme "anneau de protection" vient du fait que l'on peut voir les différents modes de privilège comme des cercles concentriques ou le mode le plus privilégié est à l'intérieur et les modes moins privilégiés vont vers l'extérieur.

[modifier] Les processeurs x86

Les processeurs de la famille x86 implémentent quatre anneaux de privilèges mais dans la grande majorité des cas, seuls deux sont réellement exploités par les systèmes d'exploitation actuels (tel que Microsoft Windows ou les dérivés d'UNIX).

Ces deux anneaux de protections sont le ring0, l'anneau de protection ayant le plus de privilèges, et qui est l'anneau sous lequel fonctionne le cœur du système d'exploitation ainsi que le ring3 sous lequel fonctionnent les logiciels utilisateurs.

La transition d'un mode à un autre est assurée par l'instruction en langage assembleur SYSENTER.