Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив WinRAR / лекции / операционные системы.pdf
Скачиваний:
107
Добавлен:
12.02.2015
Размер:
2.27 Mб
Скачать

ГЛАВА 5

ЗАЩИТА ПАМЯТИ И ДАННЫХ

1. Методы защиты памяти и данных

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

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

Прикладные программы пользователей с помощью средств файловой системы обращаются к различным файлам данных, имеющих ограничения на использование этих файлов. В связи с этим существуют специальные способы защиты от несанкционированного использования файлов. Защита от несанкционированного использования файлов получила название защиты данных.

1.1. Защита памяти

Сущность защиты памяти заключается в проверке правильности формирования исполнительных адресов при каждом обращении к оперативной памяти и выработке необходимых сигналов по результатам проверки.

В современных ЭВМ защита памяти осуществляется в трех основных режимах: защита от записи, защита от считывания, защита от записи и от считывания. Управляющие и прикладные программы, как правило, защищают как от записи, так и от считывания. Таблицы констант, стандартные программы должны быть защищены только от записи.

Проверка правильности формирования исполнительных адресов осуществляется непосредственно в ходе вычислений и требует определенных

247

затрат времени. Чтобы эти затраты времени были небольшими, защита памяти организуется с использованием аппаратурных средств.

К простейшим способам защиты памяти, нашедшим применение в современных ЭВМ, относятся защита по граничным адресам и защита по ключам.

1.1.1. Защита по граничным адресам

Защита по граничным адресам основана на использовании граничных регистров, вводимых в состав процессора или канала ввода-вывода. Программе выделяется область памяти, которая задается двумя значениями S1 и S2 граничных адресов выделенной области (рис. 5.1).

 

A < S1

Прерывание

 

 

 

Узел

ОП

 

сравнения

 

S1

 

A S1

 

RGS1

 

 

Узел

 

RGА

разрешения

 

 

обращения

 

 

RGS2

 

 

A S2

S2

 

Узел

 

 

сравнения

 

 

A > S2

Прерывание

 

 

Рис. 5.1. Защита по граничным адресам

Эти значения заносятся в соответствующие регистры в момент инициирования программы. При обращении к выделенной области оперативной памяти каждый адрес обращения Ai подвергается проверке на соблюдение следующих условий:

S1 Ai S2.

248

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

Такой способ защиты обладает достоинством, заключающемся в том, что границы выделяемой области подвижны и ее размеры могут быть произвольны. Если же программа и данные будут находиться в различных областях памяти, то в этом случае для реализации защиты памяти потребуется две пары граничных регистров. Дальнейшее разделение программы и данных и размещение отдельных частей в различных областях оперативной памяти приводи к необходимости использования множеств пар граничных регистров.

1.1.2. Защита по ключам

Способ защиты по ключам позволяет организовать доступ программ к областям памяти, расположенным не подряд. Этот способ обеспечивает довольно простую организацию защиты памяти в условиях страничного или сегментного распределения памяти.

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

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

мы входит в состав управляющих слов процессора и канала.

Перед выполнением программы супервизор записывает ключ защиты страницы памяти. Равный ключу программы, в соответствующую ячейку памяти ключей защиты. Адрес ячейки, в которую записывается ключ защиты страницы памяти, определяется по номеру страницы оперативной памяти в которой размещается данная программа. Если программа размещается в нескольких физических страницах памяти, то один и тот же ключ страницы памяти записывается сразу в нескольких ячейках памяти ключей защиты.

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

На рис. 5.2. показан вариант аппаратурной реализации защиты памяти при помощи ключей. При обращении к памяти исполнительный адрес Ai поступает в регистр адреса RGA. Группа старших разрядов кода исполнительного адреса, соответствующая номеру NС страницы, к которой производится обращение, используется как адрес для выборки ключа защиты из

249

существенно более быстрой памяти ключей защиты (ПКЗ). Ключ защиты памяти подается на вход узла сравнения (УС), где он сравнивается с ключом программы, находящимся в регистре управляющего слова процессора (RGУСП). Совпадение ключей приводит к появлению сигнала “Обращение разрешено” (ОР), который разрешает выдачу адреса Ai в оперативную память. Несовпадение приводит к выработке сигнала прерывания (Пр) по защите памяти.

Аi

RGА

 

 

 

 

 

 

 

 

ОП

 

 

 

 

 

 

 

 

NС

Память

 

 

 

Узел

ОР

 

 

 

 

 

 

 

 

 

 

 

 

ключей

 

 

 

 

 

 

 

 

 

защиты

 

 

 

сравнения

Пр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RGУСП

ТРО

Рис. 5.2. Защита по ключам

Ключ защиты обычно состоит из нескольких разрядов. Часть разрядов (как правило, четыре) представляют собственно ключ защиты, а остальные являются дополнительными и используются при организации вычислительного процесса. К дополнительным разрядам относятся: разряд режима обращения, разряд выборки и разряд изменения.

Выработка сигнала ОР производится с учетом режима обращения (запись или считывание), указываемого дополнительным разрядом ключа защиты (рис. 5.3), хранящимся на триггере режима обращения (ТРО).

Если, например, в этом разряде установлен нуль, то при несовпадении ключей обращение к оперативной памяти запрещается только при записи. Если же в этом разряде записана единица, то обращение к оперативной памяти в случае несовпадения ключей программы и защиты страницы запрещается как при записи, так и при считывании данных.

 

 

250

 

Разряд

 

Ключ защиты

режима

Ключ

защиты

программы

страницы N

 

в RGУСП

 

 

 

1101

 

0

 

 

 

 

 

 

 

 

 

 

 

 

1101

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1101

 

1

 

 

 

 

 

 

 

 

 

 

 

 

1101

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0011

 

0

 

 

 

 

 

 

 

 

 

 

 

 

1101

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0011

 

1

 

 

 

 

 

 

 

 

 

 

 

 

1101

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0011

 

0

 

 

 

 

 

 

 

 

 

 

 

 

0000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0011

 

1

 

 

 

 

 

 

 

 

 

 

 

 

0000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Запись в N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Считывание из N

 

 

 

 

Разрешено

Запись в N

 

 

 

 

 

 

(ОР = 1)

 

Считывание из N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Запись в N

 

 

 

 

Запрещена (Пр = 1)

 

 

 

 

 

 

Считывание из N

 

 

 

 

Разрешено (ОР = 1)

 

 

 

 

 

 

Запись в N

 

 

 

 

Запрещено

 

Считывание из N

 

 

 

 

 

 

(Пр = 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Запись в N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Считывание из N

 

 

 

 

Разрешено

 

Запись в N

 

 

 

 

 

 

(ОР = 1)

 

Считывание из N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.3. Принцип формирования сигналов разрешения обращения к памяти

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

Способ защиты по ключам применяется в ЕС ЭВМ.

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

1.2. Защита данных

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

Ограничения на использование файлов разделяются на два вида: огра-

ничение на доступ к файлу и ограничение на полномочия пользователей по отношению к файлу. Ограничение на доступ определяет пользователей,

251

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

1)пользователи, которым доступен i-файл (множество ПДi);

2)пользователи, которым i-файл не доступен (множество ПНДi).

Если множество ПНДi оказывается пустым (ПНДi = ), то i-й файл не имеет ограничений на доступ и защищать его не имеет смысла. Множество ПДi не может быть пустым, так как не имеет смысла хранить файлы, к которым не допущен ни один пользователь (при условии, что операционная система рассматривается как своеобразный пользователь).

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

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

Запись, содержащая ограничения на доступ к файлу и на полномочия по операциям с ним, называется ордером защиты. В общем случае ордер защиты состоит из кода доступности и кода полномочий, однако один из этих кодов может отсутствовать. Способы защиты данных во многом зависят от принятого способа задания доступности и полномочий.

1.2.1. Задание доступности и полномочий

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

Метод паролей состоит в том, что в каждый ордер, связанный с защищаемым файлом, на место кода доступности записывается некоторый числовой, буквенный или буквенно-цифровой пароль. При обращении к файлу пользователь должен указать свой пароль. Файл считается доступным пользователю, если указанный им пароль совпадает с паролем ордера защиты.

Метод с использованием матрицы управления доступом заключается в том, что ордер защиты не имеет кода доступности. Но права доступа задаются для каждого пользователя по отношению ко всем файлам с помощью матрицы доступа, строки которой задают имена пользователей, а столбцы – имена файлов. При этом файл j считается доступным i-му пользователю, если элемент матрицы Фij ненулевой, если Фij = 0, то j файл не доступен i-му пользователю.

252

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

Существующие методы задания полномочий различаются множеством разрешенных операций, для которых задаются эти полномочия. По существу задание полномочий сводится к кодированию прав пользователей на выполнение отдельных операций. Это кодирование производится с помощью двоичных переменных.

Если право пользователя на i-ую операцию обозначить Pi, то полномочия пользователя по отношению к множеству из K операций можно задать вектором P = (P1, P2, …, PK). Значения компонентов этого вектора определяются следующим образом:

1, если i - яоперациянадфайломразрешена; Pi = 0 - впротивномслучае

В качестве разрешенных операций могут быть: чтение файла, загрузка файла для выполнения в качестве программы, запись в файл, уничтожение файла и т.п. Например, в ОС ЕС все множество разрешенных операций состоит из двух операций: записи и чтения.

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

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

Групповые файлы используются несколькими пользователями с различными полномочиями. Каждый групповой файл имеет столько ордеров, сколько различных по полномочиям обращений он допускает. Эти ордера различаются как кодами доступности, так и кодами полномочий. Наличие ордеров с различными кодами доступности, но с одинаковыми кодами полномочий допустимо, но нецелесообразно. Ордера с одинаковым кодом доступности, но с различными кодами полномочий недопустимы, так как это порождает неопределенность процедур защиты.

253

1.2.2. Реализация защиты

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

Файлы, требующие защиты, помечаются специальным признаком, называемым признаком защиты, который указывает на необходимость обращения к модулю защиты. Этот признак размещается в справочнике файлов. Кроме того, признак защиты Jз дублируется в метке файла. Дублирование Jз в метке файла при наличии его в справочнике файлов используется для обращения к модулю защиты, если обращение к файлу производится минуя справочник. Ордера защиты либо располагаются в справочнике файлов, либо организуются в виде специального файла ордеров.

С целью сокращения затрат времени на выполнение процедур защиты контроль доступности и контроль полномочий выполняются на разных этапах.

Проверка доступности файла осуществляется один раз при обращении к справочнику файлов для поиска на этапе его открытия. При обнаружении в элементе справочника признака защиты осуществляется обращение по признаку защиты (рис.5.4).

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

 

 

Начало

 

 

 

Да

1

Jз = 1

4

Доступен

Нет

 

 

 

файл?

 

 

2

Нет

5

Да

7

 

 

Выдача

 

Определение

Подготовка

 

 

ошибки

 

данных

 

 

 

полномочий

 

 

оператору

 

о запрете

 

 

 

 

 

3

 

6

 

 

 

 

Процедура

 

Размещение

 

 

 

проверки

 

Конец

 

 

 

обращения

 

 

доступа

 

 

 

 

 

 

 

 

 

 

Рис.5.4. Алгоритм защиты

254

При правильном обращении производится проверка доступности файла с использованием ордеров защиты (символ 3 и 4). Для доступных файлов осуществляется выборка векторы полномочий (символ 5). Однако проверка полномочий на этом этапе не производится, так как еще не известно, какие операции будут выполняться над файлом. Проверка полномочий осуществляется при появлении требования на действия с файлом, когда будет задан вид операции.

После выборки полномочий операционная система санкционирует обращение к файлу (символ 6). При этом модулем защиты выполняются некоторые дополнительные действия. К таким действиям относятся: установка признака положительного завершения процедуры защиты для последующего контроля по признаку в метке файла; подсчет количества обращений к файлу и выдача пользователю даты последнего обращения к файлу для дополнительного контроля.

Вслучае установления недоступности файла формируется информация

опопытке несанкционированного обращения к файлу (символ 7) и производится выход для последующего снятия задания.

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

Ордера защиты сами могут иметь дополнительную защиту. Защита ордеров осуществляется специальным кодом, хранящимся вместе с ордером. Эта защита делается для того, чтобы исключить возможность обращения другими программами к ордерам, кроме модуля защиты.

При реализации защиты по методу паролей ордера защиты, относящиеся к одному файлу, объединяются в список. Этот список размещается в соответствующем элементе справочника файлов. Признаком того, что не-

который элемент содержит список, является условие JД = 1. Проверка доступности файла сводится к следующим действиям:

1)Переход на начало списка ордеров.

2)Последовательное сравнение пароля, заданного пользователем, с паролями ордеров защиты.

При совпадении паролей доступность файла считается установленной, выбирается вектор полномочий и контроль прекращается. Если список ордеров исчерпан, а совпадение паролей не произошло, то обращение считается некорректным. В этом случае пользователь может повторить пароль. Если и повторно пароль не совпадает с ордером, то фиксируется попытка несанкционированного обращения к файлу.

Этот метод обеспечивает наиболее простую процедуру контроля доступности файлов. Его недостатком является хранение пароля у пользователя и необходимость обмена им с операционной системой при каждом обращении к файлу, что способствует разглашению паролей. Кроме того, пользователю, имеющему доступ к нескольким файлам, необходимо хранить много паролей.

255

Особенность реализации метода с использованием матрицы управления доступом состоит в том, чтобы установить связи пользователя с файлами.

В методе паролей эта связь устанавливается с помощью кода доступности. Здесь этот код не используется, а ордера защиты содержат только коды полномочий.

Ордера защиты при реализации этого метода объединяются в матрицу полномочий, которая может одновременно использоваться и для управления доступом (рис. 5.5).

Шифр

 

 

Код режима файла

 

пользо-

 

 

 

 

вателя

R1

R2

Rj

Rm

П1

P11

P12

P1j

P1m

П2

P21

P22

P2j

P2m

Пn

Pn1

Pn2

Pnj

Pnm

 

Рис. 5.5. Матрица полномочий

 

В этом случае нет необходимости иметь отдельную матрицу управления доступом, поскольку недоступность файла может кодироваться нулевыми значениями компонентов вектора полномочий.

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

Для сокращения объема матрицы полномочий и времени поиска в ней все файлы в зависимости от их доступности разбиваются на группы. Каждой группе присваивается определенный код режима (Rj). Тогда матрица будет определять полномочия пользователей по отношению не к каждому файлу, а к группам файлов, заданным кодами режима.

При реализации этого метода ордера защиты удобнее связывать не с файлами, а с пользователями. Для этого имя или шифр пользователя снабжается ссылкой на ордер пользователя. При допуске пользователя к работе с ЭВМ выбирается ссылка, которая является первым входом в матрицу полномочий.