3. Защита по привилегиям.
Сутью защиты по привилегиям является то, что в процессе работы процессор постоянно контролирует, достаточно ли привилегированна текущая программа для того, чтобы:
· выполнять некоторые привилегированные команды;
· обращаться к данным других программ и к общим данным;
· передавать управление программам типа FAR, т.е. программам, находящихся в других сегментах.
При этом под привилегиями понимаются права или возможности, которые обычно не разрешаются.
3.1 Защита по привилегиям сегментов.
Основное назначение защиты по привилегиям сегментов заключается в том, чтобы предотвратить случайный или несанкционированный доступ к тем сегментам, которые содержат особо важные и ответственные блоки программного обеспечения системы. К ним относятся программы операционных систем, а также некоторые специальные массивы данных. Поэтому этот вид защиты в некоторых источниках носит название методов защиты операционной системы.
В основе защиты по привилегиям сегментов лежит принцип иерархической структуры привилегий. Иерархическая структура дает возможность защитить высокопривилегированные сегменты от сегментов менее привилегированных. Эта структура в процессорах семейства Х86 включает в себя четыре уровня привилегий, которые могут присваиваться используемым сегментам. Таким образом, все объекты программного обеспечения распределены по четырем областям, каждой из которых присваивается свой уровень привилегий. Обычно эти уровни изображают в виде кольцевой диаграммы, почему они получили название колец защиты (рис.VI.2). Уровень защиты обозначается цифрами 0, 1, 2, 3, причем наивысший уровень присвоен кольцу 0, а наиболее низкий – кольцу 3. Таким образом, наиболее важные программы – операционная система или ее ядро, обычно располагаются на нулевом уровне привилегий, в нулевом кольце, а такие, как пользовательские программы обычно имеют низший, третий уровень привилегий.
Такая защищенность операционной системы ведет к существенно большей надежности работы системы обработки информации в целом. Например, надежность системы обработки информации с процессором, не имеющим системы защиты, например на основе процессора 8086, ограничена наименее надежными программами; она подвержена ошибкам или несанкционированным алгоритмам в любом блоке исполняемой программы. Надежность же системы обработки с процессором, имеющим средства защиты, не зависит от ошибок в пользовательской программе, а зависит только от надежности программ операционной системы.
Рис.VI.2. Изображение уровней привилегий процессоров семейства Х86.
Заметим, что не все операционные системы поддерживают все четыре уровня привилегий, которые предусматривают процессоры семейства Х86 в защищенном режиме работы. Так, операционная система Unix поддерживает только два уровня привилегий: 0 и 3 (Супервизор/пользователь). Операционная система OS/2 поддерживает три уровня привилегий: 0 – ядро операционной системы; 2 – специальные процедуры для обращения к устройствам ввода/вывода; 3 – прикладные программы пользователя.
Операционная система Windows поддерживает все четыре уровня.
Если же процессор семейства Х86 используется для создания специализированного контроллера, в котором пользовательская программа не изменяется или изменяется очень редко, то достаточно задействовать один уровень привилегий – 0, разместить там и пользовательскую программу, разрешив ей, тем самым, доступ ко всем командам процессора, включая команды ввода/вывода и загрузки/сохранения системных регистров.
Возможные распределения программного обеспечения компьютера по уровням привилегий приведено в табл. VI.1.
Таким образом, защита программного обеспечения, в основном программ операционной системы, при помощи разделения всего программного обеспечения компьютера по уровням привилегий (кольцам защиты), заключается в жестко определяемых правилах связи между программными объектами, расположенными на разных уровнях, т.е. в разных кольцах защиты. При этом наиболее привилегированные программные объекты расположены в кольце 0, а наименее привилегированные – в кольце 3.
Атрибуты привилегий, т.е. указатели уровня привилегий данного объекта присваивается таким объектам как задачи, дескрипторы и селекторы.
Таблица VI.1
Специализированный контроллер |
Супервизор/ пользователь |
Операционная система с ядром |
|
Уровень 0 |
Все программы и данные |
Операционная система |
Ядро операционной системы (процедуры инициализации, управление памятью, управление временем, управление задачами, процедуры защиты, процедуры тестирования) |
Уровень 1 |
Специализированные процедуры обслуживания (СУБД, библиотеки стандартных программ, системные функции и т.п.) |
||
Уровень 2 |
Другие программы системного обслуживания (процедуры ввода/вывода, трансляторы, редакторы связей и т.п.) |
||
Уровень 3 |
Прикладные пользовательские программы |
Прикладные пользовательские программы |
Таким образом, в системе защиты определены:
· Атрибут уровня привилегий текущей задачи (процесса) –
CPL (Current Privilege Level).
· Атрибут уровня привилегий дескриптора –
DPL (Descriptor Privilege Level).
· Атрибут уровня привилегий селектора (или запроса) –
RPL (Request Privilege Level).
Атрибут уровня привилегий задачи (CPL).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.