339
Сокрытие местоположения объекта предполагает, что адрес объекта
в памяти системы известен только тем субъектам, которые имеют право
доступа к объекту. Такие привилегированные субъекты могут выполнять
любые операции над объектом. Непривилегированные субъекты могут
запрашивать доступ к объекту и получать некий внутренний
идентификатор объекта. Используя этот идентификатор, они могут
выполнять над объектом ограниченный набор операций, но не
непосредственно, а обращаясь к привилегированным субъектам. Примером
такого механизма является сокрытие дескрипторов ресурсов.
Местоположение (адрес в памяти) дескрипторов известно ОС, прикладные
же процессы получают манипулятор ресурса, который, как правило,
адресует дескриптор только косвенно (через таблицы). Если сокрытие
является единственным механизмом защиты, то ее нельзя назвать
непроницаемой. Субъект может получить адрес объекта случайно или
намеренно (получив доступ к внутренней документации).
Инкапсуляция предполагает полное закрытие для субъектов
возможности оперирования с внутренним содержимым объектов. Субъект
даже не должен знать структуры этого содержимого. Для каждого объекта,
однако, определено множество допустимых операций над ним, которые
реализуются монитором объекта. Объект, таким образом, предстает в виде
"черного ящика" с четко специфицированными входами и выходами и с
абсолютно непроницаемыми стенками. Механизм инкапсуляции может
обеспечивать наиболее полную защиту, но его реализация требует
решения двух важных вопросов: во-первых, как обеспечить
"непрозрачность стенок"; во-вторых, как принимать решения о
предоставлении доступа или об отказе в нем.
Непроницаемость ящика обеспечивается чаще всего средствами
защиты памяти. Область памяти, в которой расположен объект, делается
недоступной для любых субъектов, кроме монитора, реализующего