Теоретически, потенциал, как строку в матрице контроля доступа. Каждая тема связанные с ним набор пар, в каждой паре содержащий объект и набор прав. Вопрос, связанный с этой список могут открыть именованный объект в любом из путей, указанные названного человека. Более формально:
Пусть O является набор предметов, и R комплекс прав, системы. А потенциал список с собой набор пар с = ((о, р): о включенных в O, р включены в R). Пусть цоколя быть функцией, определяющей список с возможностями, связанными с определенной теме s. Толкование потенциал список шапке (ов) = ((oi, ри): 1 <= я <= н) заключается в том, что вопрос может просматривать с помощью любого oi право ри.
Мы аббревиатуры "список возможностей", как С - Список.
Возможности объекта включает самобытности. Когда процесс представляет способность от имени пользователя, операционная система рассматривает возможность определить, как объект, и доступ к которым этот процесс имеет. Это свидетельствует о том, как capabiliies памяти управления работы; Местонахождение объекта в памяти воплощен в возможности. Без возможности, процесс не может назвать объект таким образом, чтобы придать ему желаемый доступ.
| ПРИМЕР: Чтобы открыть файл UNIX, процесс дает имя файла для ядра. Ядро получает файла inode номер разрешения фамилию через файл иерархии. Когда inode получается, система определяет, если указанный доступ должен быть предоставлен с помощью контроля доступа разрешения. Если доступ предоставляется, операционная система возвращает способность называется дескриптора файла. Способность тесно связаны в файл объекта, так что, даже если файл удален, а новый файл с таким же именем создается, файл описания по-прежнему относится к предыдущему файлу. |
В "codewords" от Илиффе схожи с возможностями. "возможностей" - это способ управления доступом к объектам в память или вторичного хранения. Фабри-Перо всеобщей эту идею осуществить на основе возможностей решения.
Архитектура потенциала является более интересным, чем в списках контроля доступа. В список контроля доступа и процесс личности находятся под контролем операционной системы. При отсутствии недостатков, пользователь процессы могут менять их только в связи с операционной системой услуг. Однако процесс должен определить потенциал, с тем чтобы использовать его, так что процесс должен иметь определенный контроль над возможностями. Если процесс может создать возможность, а затем воспользоваться ею, контроля доступа провал.
Три механизмы используются для защиты возможностями: теги, с защищенной памятью, и криптографии.
А помечены архитектуры набора битов, связанных с каждым аппаратное слово. Тег имеет два государства: и в отключенном. Если тег устанавливается, обыкновенный процесс может читать, но не изменять слова. Если тег не установлена, обыкновенный процесс может читать и изменять слова. Кроме того, обычный процесс не может изменить состояние тегом; Процессора должны быть в привилегированном режиме это сделать.
| ПРИМЕР: В B5700 использовали маркировку архитектуры (хотя он и не использовать возможности, как механизмы защиты). Тег области состоит из трех битов, и указано, каким образом архитектура была рассматривать слово (указатель, описание, тип и т.д.). |
Более распространенной является использование защиты биты, связанные с пейджеры или сегментация. Все возможности хранятся в страницу (сегмент), что этот процесс может читать, но не изменять. Это не требует никаких специальных целей, помимо оборудования, что используется память системы управления. Но этот процесс должен ссылкой возможностей косвенно, как правило, через указатели, а не напрямую.
| ПРИМЕР: ПСП система не допускает процессы изменить сегмент, в котором лежит инструкции. Он также хранятся потенциал в этом сегменте. А забор регистрировать отдельно инструкции и возможности. |
Третьим вариантом является использование криптографии. Цель теги и защита памяти для предотвращения возможности от изменены. Это сродни проверки целостности. Криптографические контрольные - это еще один механизм для проверки целостности информации. Каждая способность имеет криптографическую контрольную связанные с ним, и проверку в цифровой форме enciphered помощью которого криптосистеме ключ известен операционной системе.
Когда процесс создает возможности для операционной системы, системы в первую очередь recomputes криптографическую контрольную, связанные с возможностями. Затем либо зашифровывает контрольную сумму с помощью криптографических ключей и сравнивает его с одной хранятся в возможности или расшифровывает контрольную сумму предоставлены возможности и сравнивает ее с расчетной контрольную. Если они совпадают, потенциал изменений. Если нет, то этот потенциал будет отклонено.
| ПРИМЕР: В Амоеба система представляет собой распределенную систему, которая использует возможности назвать объекты. О создании, потенциал соответствующего объекта возвращается. Чтобы использовать объект, программа представляет соответствующий потенциал. Способность кодирует название объекта (24 бит), сервер, которые его создали (48 бит), и права (8 бит) в 128 разрядов количества. Изначально все права включен. Последние 48 битов используются для проверки области. Это случайное число отобранных в создании времени. (Поскольку потенциал отдается владельцу объекта, собственник может свободно изменять права без опасности.) Этот номер хранится в таблице соответствующий сервер, создан объект, поэтому, когда потенциал представляется, что сервер, он проверяет, что случайная номер. Атакующий будет необходимо знать случайное число, чтобы быть в состоянии сформировать потенциал. Однако, как отмечает Таненбаум, система уязвима, если потенциал разглашаются. |
Возможность скопировать возможностей подразумевает возможность наделить правами. Для предотвращения процессов разбора оказавшись от человека, копия флага связано с возможностями. Процесс не может копировать потенциал для другого процесса, если копия установлен флаг. Если процесс делает копию потенциал, копия флага может быть выключен (по усмотрению либо процесса или ядра).
ПРИМЕР: Амоеба использует интересную схему. Он не контролирует копирование человека. Однако использование, в которой эти права копирования могут быть ограничены. Предположим, пользователь хочет матовые разрешает пользователю holly читать объект он владеет. Он проходит его способность этого объекта с сервером и просит ограниченным потенциалом для чтения. Сервер создает новые возможности для объекта, но только право читать включен. Права области сейчас все 0 в за исключением читать бит, которая является 1. Это xor'ed с случайная проверка и вклад в криптографической функции хеширования. Объем производства - это новое случайное число для этого потенциал. Ограниченная способность затем передаются обратно в матовые, который дает ему это holly. Когда holly использует возможности, сервер отмечает, что по крайней мере один бит в прав поле 0. Она берет человека на местах, xor и все с случайные числа первоначальных возможностей (хранятся в таблицах), и хэши результат. Если в результате хеширования соответствует случайное число в возможности, потенциал является действительным; Иначе, это не так. |
Усилители является увеличение привилегий. Идея модульного программирования, и в особенности абстрактных типов данных, требует от человека процесс над объектом быть усилена.
Чтобы понять, почему, рассмотреть следующие абстрактного типа данных для борьбы.
модуль борьбы; процедура вступления прирост (var ctr: целое); начать ctr: = ctr + 1; конец; функция вступления getval (ctr: целое); начать getval: = ctr; конец; четкие процедуры вступления (var ctr: целое); начать ctr: = 0; конец; конец.
Предположим х объявляется быть встречное. Правила абстрактных типов данных, что позволяет объекту быть доступны только в борьбе модуля. Итак, первоначально возможности для х будет содержать право ссылаться на борьбе только модуль. Но когда объект передается в борьбе модуля, то теперь процесс должен иметь возможность читать и писать на этот объект. Таким образом, средства должны быть временно усилены, а модуль борьбе активно.
| ПРИМЕР: В полугодовом системы HYDRA, используемых шаблонов усиление усиливать процесс "человека. С каждым процедуры в модуле шаблон добавляет, что права на возможности по мере необходимости. Например, шаблон для getval процедура добавить читать человека, а порядок был активным. Шаблон для прироста процедура добавить читать и писать человека. |
| ПРИМЕР: В Intel iAPX 432 Система реализует аналогичный механизм в оборудовании. Его "описания доступа" соответствует потенциал. Три бит в возможности контроля различных функций системы. Один из этих битов усиления контроля человека. Когда абстрактного типа данных модуль построен разрешения биты от вида объекта контроля (который определяет тип данных) устанавливаются с разрешениями, что процедура потребностей. Когда процедура называется, система проверяет расширения немного. Если он установлен, прав в виде контроля объектов or'ed с человека в дескриптор этого объекта прошло. Это сочетание определяет права для этой процедуры. |
В возможности системы, отменив доступа к объекту требует, чтобы все возможности предоставления доступа к этому объекту быть отменено. Теоретически, каждый процесс может быть выбран, и возможности исключить. Стоимость такой операции будет неприемлемым, однако, это альтернативные методы.
Простейший механизм indirection. Определите одно или более глобального объекта таблицы. В этой схеме каждый объект имеет соответствующую запись в таблице. Возможности не название объекта напрямую; Они называют запись в таблице соответствует объекту.
Эта схема имеет ряд преимуществ. Во-первых, отменить возможностей, вступление в глобальный объект таблица недействительным. Тогда все ссылки будут получать недействительной запись в таблице и будут отклонены. Во-вторых, если только некоторые из возможностей должны быть отменены, объект может иметь несколько записей, каждая соответствует разный набор прав или иной группе пользователей.
| ПРИМЕР: Амоеба основном использует эту схему. Отменить потенциал, владелец объекта просит сервер изменить случайное число, и выдать новые возможности. Это опровергает все существующие возможности. |
Альтернативный механизм отзыва использует абстрактный тип данных руководителей. Включенный в каждой абстрактного типа данных является аннулирование процедуры. Когда доступ должен быть аннулирован, типа менеджер simpy запрещает дальнейших робот вопрос, чьи права отзыва. Это не влияет на альтернативные методы доступа к объектам, лежащим в основе абстрактных типов данных. Например, доступ к файлу может быть отозвана, но этот метод не будет блокировать доступ к основным сегментам через альтернативный тип руководителя. В SCP3 системе используется этот метод.
Два вопроса лежат использования контроля доступа:
Учитывая вопросу, какие объекты она может доступа, и каким образом?
С учетом объекта, какие вопросы может вызвать его, и каким образом?
В теории, ни списков контроля доступа или возможностей может ответить на эти вопросы. По первому вопросу возможности простейших; Только перечень элементов вопросу связанному C - Список. По второму вопросу, список контроля доступа - простейшее; Только список элементов объекта список контроля доступа. В ACL системы, отвечая на первый вопрос требует, чтобы все объекты для сканирования. Система извлекает все записи ACL, связанные с теме. В возможности системы, отвечая на второй вопрос требует, чтобы все вопросы, которые будут сканироваться. Система выдержки всех возможностей, связанных с объекта.
Каргер и Герберт догадки о том, что практическое различие в ответе на второй вопрос является причиной более системы используют списки контроля доступа, чем возможностей. Этот вопрос предлагается чаще, чем первый. В центре внимания инцидент переходит от ответа ", которые обращались объектом" включить ", что еще сделали, что доступ", способность систем может стать более распространенным явлением.
Online: 516 users browsing the articles directory
![]() . |