Cтраница 3
Другими словами, если программист может сформировать хотя бы один дескриптор доступа с произвольным содержимым поля logical address, то система в принципе не гарантирует безопасности. Эта цель была достигнута, что мы и попытаемся показать в последующем рассмотрении. Некоторые не слишком любознательные читатели, возможно, захотят его пропустить. [31]
Дескрипторы доступа, находящиеся в домене D - это в основном дескрипторы доступа к объектам типа команды и дескрипторы доступа к другим ( внешним) доменам, к которым могут быть обращения при исполнении объектов типа команды, указываемых D. В дополнение к этому домен может содержать другие постоянные и переменные дескрипторы доступа, а также переменные, которые представляют информацию, доступную всем объектам типа команды, находящимся внутри домена. Поскольку объект домен доступен на запись, постоянная информация должна находиться в отдельном объекте, чей AD находится внутри домена. На рис. 4.12 показан простой случай домена, содержащего только дескрипторы доступа к объектам типа команды и один дескриптор доступа к объекту постоянных данных. [32]
![]() |
Дескриптор уточнения как префикс к дескриптору объекта. Доступ к объекту уточнение осуществляется через дескриптор доступа Refined AD, в то время как доступ ко всему объекту через Object AD. [33] |
Подобъект определяется дескриптором уточнения, который вставляется в маршрут доступа между дескриптором доступа и дескриптором объекта для объекта-родителя. [34]
![]() |
Структуры объектов для межконтекстного обмена сообщениями. [35] |
Как мы увидим в следующей главе, выполнение команды RECEIVE вызывает передачу дескриптора доступа принимаемого сообщения в гнездо AD сообщения межпроцессной связи. [36]
![]() |
Операции пакета Extended Type Manager. [37] |
Функция Is type S возвращает логическое значение истина, если задаваемый AD является дескриптором доступа к объекту типа Typed S, и значение ложь в противном случае. [38]
После добавления нового объекта контекст в цепочку объектов контекста записывается информация в некоторые гнезда дескрипторов доступа. Вначале копия дескриптора доступа Private AD помещается в гнездо AD определяющего домена и также во внутренний регистр текущего домена. Кроме того, в новый объект контекст копируется следующая информация, получаемая из вновь введенного объекта домен ( см. также разд. [39]
Затем в дескриптор доступа к текущему объекту носитель процессора в объекте процессор записывается копия дескриптора доступа к носителю процессора, парного с AD порта диспетчеризации, который будет использоваться следующим. Отметим, что носитель процесса А остается связанным с объектом носитель процессора. Следующий выполняемый шаг зависит от того, был ли новый текущий носитель процессора связан с носителем некоторого процесса В. [40]
Когда процесс или процессы, использующие данный пакет-владелец, заканчивают исполнение и не остается дескрипторов доступа активного пространства, указывающих на активный объект домен, он может быть перемещен в пассивное пространство, замещая тем самым старую версию неявной операцией модификации. Такая автомодификация гарантируется, если указан соответствующий необязательный режим. [41]
![]() |
Системные объекты, для которых определены типовые права. [42] |
Для последующего обсуждения полезно вспомнить, что существуют два вида дескрипторов, которые могут указываться дескриптором доступа: дескриптор объекта и дескриптор уточнения. Предположим, что поле logical address, находящееся в дескрипторе доступа, указывает на дескриптор объекта. Рассмотрим бегло его структуру. [43]
Ключ к безопасности в системе 1432 - гарантия, что каждый информационный объект доступен только через дескриптор доступа. Все процессоры системы 1432 удовлетворяют этому условию. Из беглого анализа набора команд процессора GDP, возможно, неясно, что программист не может подделать дескрипторы доступа и использовать их для получения доступа к какому-то ( и в конце концов к любому) объекту. Что же мешает программисту перехитрить аппаратуру и передать свой, произвольный дескриптор для получения доступа к другим объектам. [44]
Читатель мог бы, конечно, спросить: Как может вызывающая процедура, которая имеет только дескриптор доступа к видимой части объекта домен ( Public AD), снабдить процессор необходимой информацией для установления нового контекста, домен определения которого охватывает целый домен, указываемый дескриптором доступа Private AD. Вызывающая процедура не обладает дескриптором доступа Private AD и не может получить его во владение, поскольку иначе была бы нарушена схема защиты системы. [45]