Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Средства защиты основной оперативной памяти

В ЭВМ, работающих в мультипрограммных режимах, каждой задаче (программе) выделяется своя область ОП (ОП делится на части). Естественно, эти области должны быть недоступны другим задачам. Эта недоступность обеспечивается специальными средствами защиты памяти: они должны обеспечить защиту информации от несанкционированного доступа к ней. Информация хранится не только в ОП, поэтому сначала рассмотрим общие вопросы защиты информации в ЭВМ.

В общем случае различают 3 уровня защиты информации: правовой (законодательный), административный, аппаратно-программный (технический).

Все возможные системы защиты информации в мировой практике принято классифицировать по следующим уровням безопасности: А, В, С, D. Причем уровень А является высшим, наиболее защищенным, а D – низшим, не защищенным. В свою очередь на уровнях А, В, С различают несколько подуровней (в порядке убывания защищенности): А1,В3,В2,В1,С2,С1,D. Защищенность известной ОС MS DOS соответствует уровню D, а ОС UNIX – уровню С1.

 
 

Рисунок 2.13  
Рисунок 2.13  
Здесь рассмотрим только аппаратные методы защиты информации. Простейший способ защиты ОП - слежение за границами области памяти, выделенной задаче: при каждом обращении к ОП по исполнительному адресу А проверяется его принадлежность интервалу [Авн], где Авннв) – адреса нижней и верхней границ области памяти. Если А не принадлежит этому интервалу, то обращение по адресу А блокируется и вырабатывается сигнал прерывания «нарушение защиты ОП». Если он не замаскирован, то вызывает прерывание. Назначение группы адресов осуществляет ОС. Схема защиты по методу граничных адресов представлена на рисунке 2.12. Ее недостатки: не гибкая система с точки зрения распределения ОП, существенные затраты оборудования. Их можно уменьшить, если защищать с точностью не до ячеек, а до страниц емкостью Е=2k (рисунок 2.13).

Для защиты информации в ОП можно использовать другой, более гибкий способ - механизм защиты типа «замок-ключ», который используется в ЭВМ типа IBM 370. Суть: ОС выделяет задаче (программе) одну или несколько страниц в ОП, причем не обязательно соседних. На каждую из которых “вешает” одинаковые замки, которые можно открыть одним и тем же ключом (замков много, ключ – один, у пользователя - так называемый ключ программы). Для хранения ключей программ (страниц) используется так называемая таблица страниц, которой ведает ОС. Схема защиты представлена на рисунке 2.14.

Рисунок 2.14

 

2.7

 
 

Защита информации в персональных электронных вычислительных машинах IBM PC

В IBM PC для защиты информации используется специальный режим работы ЦП - так называемый защищенный режим. Он предназначен для защиты ресурсов одной задачи от возможного воздействия на них со стороны других задач.

Начнем с защиты ОП. Защита информации в ОП базируется на использовании механизма сегментации. Сегмент - это часть пространства ОП, предназначенная хранить информацию определенного назначения: программы, данных и т.п. Другими словами, сегмент памяти привязывается к типу информации – управляющая информация (программы), обрабатываемая информация (данные) и т.п. Это сделано с целью избавления от известного недостатка фон Неймановских машин, в которых информация и программы хранятся в одной памяти.

 

Распределением ОП ведает ОС. Она выделяет задачам сегменты необходимых размеров для хранения программ, данных и др. Информация о сегментах размещается ОС в так называемых дескрипторах сегментов, в том числе и сведения об уровне привилегий (приоритета) сегмента. В защищенном режиме используется 4-уровневая система приоритетов: максимальный уровень привилегий PL имеет сегмент с уровнем PL=0, минимальный - c уровнем PL=3. Максимальный уровень обычно присваивается ядру ОС, PL=1- сервисным средствам ОС, PL=2—расширениям ОС, PL=3—прикладным программам.

Итак, уровень привилегий сегмента, точнее, той информации, которая в нем хранится, указывается в дескрипторе сегмента. Механизм сегментации и уровни привилегий позволяют решать следующие задачи защиты информации.

1) Следить за границами сегмента и не допускать выхода задачи, которой он выделен, за пределы сегмента (за так называемый лимит).

2) Не позволяет использовать сегменты не по назначению, т.е. не позволяет использовать данные как коды команд или наоборот (как это может быть у фон Неймановских машин).

3) Не позволяет нарушать права доступа к сегменту: например, записывать информацию в сегмент, предназначенный только для чтения, и т.п.

Следует отметить, что процессор в защищенном режиме имеет в своем составе аппаратные средства, необходимые для защиты информации. Однако уровень (степень) защиты информации определяется системой защиты, которая входит в состав ОС и использует аппаратные средства защиты ЦП. Т.о., система защиты информации - это совокупность аппаратных средств и программ ОС. Устойчивость защиты зависит от системы защиты в целом, т.е. от эффективности программ ОС, использующих аппаратные средства защиты ЦП. Эффективность системы защиты информации не абсолютна, не обеспечивает 100-процентную защиту.

Уровень привилегий сегмента, точнее, информации, которая хранится в нем, указывается в двухбитовом поле DPL дескриптора сегмента. DPL трактуется как наименьший уровень привилегий, с которым возможен доступ к дескриптору сегмента (DPL – уровень привилегий дескриптора сегмента).

 
 

Уровень привилегий задачи указывается в поле CPL селектора программного сегмента. Селектор программного сегмента размещается в регистре CS, а поле CPL - в двух младших битах этого регистра:

TI - тип индекса (глобальный или локальный), Index - номер дескриптора в таблице дескрипторов.

В регистре CS хранится селектор текущей программы (той программы, которую процессор выполняет в данный момент времени). Это означает, что CPL задает уровень привилегий ЦП, выполняющего данную программу и, следовательно, задает уровень привилегий ЦП при его обращениях к ОП, т.е. к различным сегментам в ОП, уровень привилегий которых указывается в поле DPL дескриптора соответствующего сегмента.

ЦП имеет право доступа к информации только при выполнении условия:

CPL £ DPL (2.1)

Таким образом, уровень привилегий задачи CPL используется как пропуск (ключ), который предъявляет ЦП, обращаясь к различным ресурсам - информационным или аппаратным (устройствам ввода/вывода) (выделенным задаче ОС), уровень привелегий которых DPL.

Защита информации в ОП производится по правилам:

1. Данные из сегмента, имеющего уровень защиты DPL, могут быть доступны программе, имеющей такой же или более высокий уровень привилегий CPL, т.е. доступны только при выполнени условия (2.1).

 
 

Схема доступа к данным:

2.

 
 

Программа (задача), имеющая уровень привилегий CPL, может вызвать другую программу (например, при помощи команды CALL), уровень привилегий которой DPL такой же или более высокий, т.е. при условии:

CPL ³ DPL. (2.2)
Схема вызова программ:

Следует отметить, что эта схема работает только в случае вызова так называемых подчиненных программ, т.е. программ, которым ОС присваивает этот статус и отмечает битом подчиненности С=1 в дескрипторе сегмента. В неподчиненных программах бит С=0. Для неподчиненных программ правила доступа (вызова) более жесткие:

CPL=DPL, (2.3)

т.е. обращение к ним возможно только с тем же уровнем привилегий, что и у вызываемой программы.

Если нужно вызвать привилегированную неподчиненную программу, например, с уровнем пользователя, то в этом случае используется механизм передачи управления под контролем ОС. Для этого ОС устанавливает (задает) точки входа - так называемые вентили или шлюзы вызова. Вентили вызова (Call Gates) хранятся в соответствующих специальных сегментах, описание которых указывается в дескрипторах вентилей. При вызове через вентили должно выполняться условие (2.2). Т.е. в этом случае работает такая же схема, как и для подчиненных программ (С=1).

В чем разница? Вызов подчиненной программы (С=1) не изменяет уровень привилегий процессора (задачи) CPL=const. Вызов подчиненной программы (С=0) через вентили вызова (тоже под контролем ОС) ведет к изменению CPL, т.к. при этом типе вызова в CS заносится селектор вызванной программы CPL:=DPL. В момент возвращения к исходной программе (по команде RET,например) из стека в CS возвращается старое значение селектора и, следовательно, прежний уровень привилегий CPL.

Теперь подробнее о работе механизма защиты ОП. Обращение к сегментам памяти производиться через сегментные регистры CS, DS,... путем загрузки в них соответствующих селекторов. Например, обращение к сегменту данных осуществляется по следующей схеме (рисунок 2.15). Доступ к сегменту данных разрешается при условии:

 
 

DPL ³ max (CPL, RPL). (2.4)

Рисунок 2.15

В противном случае вызывается прерывание с номером 13 (исключение 13). Эта схема работает в момент загрузки в сегментные регистры новых селекторов. В частности, из сегмента состояния задачи TSS, a в TSS загружается ОС заранее.

Итак, этот механизм защиты (доступа) реализует доступ к сегменту данных в зависимости от уровня его защищенности DPL и от степени важности запроса RPL и, наконец, от уровня привилегий задачи (т.е. ЦП) CPL. Зачем RPL? Уровень привилегий запроса RPL позволяет ОС гибко изменять уровень доступа к данным, меняя RPL путем загрузки нового селектора в регистры DS (ES,...).

Итоговый уровень привилегий EPL=max(RPL,CPL) принято называть эффективным уровнем привилегий. Он и используется при обращении к сегментам данных. Другими словами, DPL задает абсолютный уровень привилегий, а RPL – относительный, текущий, временный. Действие RPL можно интерпретировать в виде ключа:

 
 

т.е. при помощи RPL ОС может понижать уровень привилегий ЦП при его обращении к сегменту данных.

Защита стекового сегмента, обращение к которому осуществляется через селектор, загружаемый в регистр SS: доступ к стековому сегменту производится только по условию:

RPL=CPL=DPL. (2.5)

Нарушение этого условия вызывает прерывание с номером 13.

Теперь несколько слов о том, как выполняется правило 1 - слежение за границей сегмента, выделенного задаче? ОС постоянно следит за выполнением условия:

DА > L, (2.6)

где DА=ФА-БА=БА+D-БА=D, ФА – физический адрес, БА – базовый адрес, D – смешение, L – лимит (размер сегмента). Выполнение условия (2.6) вызывает прерывание.

Кроме того, ОС постоянно следит за типом сегмента: а именно, выделен сегмент задаче или нет. Если сегмент не выделен, то обращение блокируется. Все выделенные ОС сегменты описываются дескрипторами, которые загружаются ОС в так называемую локальную дескрипторную таблицу - LDT. Таким образом, в LDT указываются сегменты, индивидуальные для каждой задачи.Общие для всех задач сегменты описываются в глобальной дескрипторной таблице - GDT.

Защита ввода-вывода. Уровень привилегий при выполнении операций ввода/вывода задается полем IOPL регистра флагов ЦП. Загрузка нового значения IOPL осуществляется только при условии CPL=0, т.е. только ОС. Следует отметить, что если текущий уровень привилегий задачи CPL£IOPL, то на операции ввода/вывода и манипуляции флагом маски прерывания IF никаких ограничений не накладывается. Если же CPL>IOPL, то попытка ввода/вывода в 16-разрядном компьютере вызывает прерывание с номером 13. В 32-разрядных компьютерах при условии CPL>IOPL команды ввода/вывода (IN\OUT) могут выполняться только по адресам портов, для которых установлены разрешающие флаги (биты) в так называемой карте разрешения ввода-вывода, хранимой в таблице состояния задачи TSS. Обращения к замаскированным портам или к портам, адреса которых не числятся в карте разрешения ввода/вывода, блокируются и генерируется прерывание номер 13.

<== предыдущая лекция | следующая лекция ==>
Многоуровневая организация памяти электронных вычислительных машин | Представление чисел
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 1756; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.033 сек.