Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
У. Столлингс ГЛАВА 15 Безопасность.doc
Скачиваний:
66
Добавлен:
11.05.2015
Размер:
795.14 Кб
Скачать

15.2. Защита

В основе многозадачности лежит способность системы предоставлять поль­зователям возможность совместного использования ресурсов. Объектом совмест­ного использования является не только процессор, но и такие элементы, как:

  • память;

  • устройства ввода-вывода, например диски и принтеры;

  • программы;

  • данные.

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

  • Отсутствие защиты. Этот вариант подходит, если соответствующие проце­дуры выполняются во времени раздельно.

  • Изоляция. При этом подходе каждый процесс работает отдельно от других процессов, не используя совместно с ними никаких ресурсов и не обменива­ясь информацией. Каждый процесс имеет свое собственное адресное про­странство, свои файлы и другие объекты.

  • Полное разделение или полное его отсутствие. Владелец объекта (например, файла или сегмента памяти) объявляет его открытым либо закрытым. В первом случае доступ к объекту может получить любой процесс; во втором — доступ к этому объекту предоставляется только его владельцу.

  • Совместное использование с ограничением доступа. Операционная система проверяет дозволенность доступа каждого отдельного пользователя к каждому отдельному объекту. В этом смысле операционная система выступает в роли стража, гарантируя, что доступ к объектам получат только авторизо­ванные пользователи.

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

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

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

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

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

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

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

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

Примером аппаратной поддержки защиты памяти является система за­щиты, установленная на машинах семейства IBM System/370, работающих под управлением операционной системы OS/390, На этих машинах каждому страничному блоку основной памяти отвечает 7-битовый управляющий ключ, значение которого может устанавливаться операционной системой. Два бита этого ключа указывают на то, делались ли запросы и изменения страницы, занимающей данный блок; эти биты используются алгоритмом замещения страниц. Остальные биты, четыре из которых являются разрядами управле­ния доступом и один — разрядом защиты от выборки, используются меха­низмом защиты. Чтобы получить разрешение на доступ к какой-либо стра­нице, в обращениях процессора к памяти и в обращениях устройства прямо­го доступа к памяти (Direct Memory Access — DMA) должен использоваться соответствующий ключ. В разряде защиты от выборки указывается, дает ли ключ управления доступом право записи или право чтения и записи. В про­цессоре имеется регистр под названием "слово состояния программы" (Program Status Word — PSW), который содержит управляющую информа­цию, имеющую отношение к выполняющемуся в данное время процессу. Со­ставляющим элементом этого слова является 4-битовый ключ PSW. Если процесс пытается получить доступ к странице или начинает операцию с уча­стием прямого доступа к памяти, текущий ключ PSW сравнивается с кодом доступа. Разрешение на запись будет получено только при условии совпаде­ния ключей. Если бит выборки установлен, то ключ PSW должен соответст­вовать ключу доступа для чтения.