Операционные системы. Курс лекций

       

Разделение памяти на уровне привилегий


Многие из средств защиты основаны на понятии иерархии привилегий. В любой момент привилегия задачи эквивалентна уровню привилегий её кодового сегмента.

В каждом дескрипторе сегмента имеется поле, которое определяет уровень привилегий связанного с ним сегмента.

Процессоры используют схему защиты ОС и программ друг от друга, состоящую из привилегий 4-х уровней от 0 до 3.

Когда ОС подготавливает программу для запуска, она формирует в GDT или IDT дескриптор, описывающий сегмент кода программы. В этом дескрипторе в поле DPL байта доступа проставляется уровень привилегий, в котором будет работать данная программа. Получаем текущий уровень привилегий CPL. CPL копируется в поле RPL селектора сегмента кода, загруженного в регистр CS. Программа всегда может проанализировать свой текущий уровень привилегий, но не может изменить его заменой содержимого поля RPL в регистре CS.

Поле уровня привилегий дескриптора, описывающее сегмент данных, содержит минимальные привилегии, которые нужны для доступа к сегменту данных. Перед тем как обратиться к DS, программа должна загрузить в один из сегментных регистров селектор, соответствующий нужному сегменту данных. В селекторе необходимо указать поле уровня запрашиваемых привилегий RPL.

Программа будет предоставлять доступ к сегментам только в случае, когда уровень привилегий дескриптора запрашиваемого сегмента



Содержание раздела