Защита данных в системах с сегментной организацией памяти на основе процессоров с архитектурой IA32

Процессор Пентиум, при работе в защищенном режиме, предоставляет ОС средства защиты процессов друг от друга:

1) Отдельная таблица дескрипторов для каждого процесса (LDT) – и ее начальный адрес заносится в регистр LDTR на этапе загрузки процесса в память.

Т.е. система делает недоступным для процесса локальные таблицы других процессов.

2 ) Таблица GDT, которая доступна всем процессам, защищается посредством поддержки системы безопасности на основе привилегий.

· У каждого сегмента есть атрибуты безопасности, определяющие степень защищенности этого сегмента

· У каждого процесса есть атрибуты привилегий этого процесса

3) Существует аппаратное ограничение набора инструкций, разрешенных процессу для выполнения (чтобы он не мог загрузить адрес чужой LDT или установить для себя другие приоритеты).

Среди самых привилегированных инструкций (доступных только процессу с наивысшим приоритетом):

· Останов процессора

· Загрузка регистра GDTR и LDTR

4) Ограничения на способ использования сегмента (сегмент данных, кодовый сегмент, системный сегмент – некоторые действия для них запрещены – нельзя в кодовый сегмент писать данные и нельзя передавать сегменту данных управление)

А подробнее так:

Способ использования, как мы помним, закодирован несколькими битами 5-го байта дескриптора (который в рамочке):

· 7-й бит 5-го байта – Р – бит присутствия

· 6-й и 5-й – хранят DPL (уровень привилегий)

· 4-й по 0-й – кодируют тип сегмента (см рисунок)

Бит S – кодирует ТИП дескриптора (cистемный или нет):

· Системный (0) – например LDT или TSS – конкретный тип указан в его младших битах

· Данные или Код (1)


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: