Jump to content

Модель возможностей объекта

Модель объектных возможностей — это модель компьютерной безопасности . Возможность . описывает передаваемое право на выполнение одной (или нескольких) операций над данным объектом Его можно получить следующей комбинацией:

  • Неподдельная ссылка (в смысле ссылок на объекты или защищенных указателей), которую можно отправлять в сообщениях.
  • Сообщение, указывающее операцию, которую необходимо выполнить.

Модель безопасности основана на невозможности подделки ссылок.

  • Объекты могут взаимодействовать только путем отправки сообщений по ссылкам.
  • Справку можно получить:
  1. Начальные условия: в начальном состоянии описываемого вычислительного мира объект A уже может иметь ссылку на объект B.
  2. Родительство: если A создает B, в этот момент A получает единственную ссылку на вновь созданный B.
  3. Одаренность: если А создает Б, Б рождается с тем подмножеством ссылок А, которым А решил наделить его.
  4. Введение: Если A имеет ссылки как на B, так и на C, A может отправить B сообщение, содержащее ссылку на C. B может сохранить эту ссылку для последующего использования.

В модели возможностей объекта все вычисления выполняются в соответствии с приведенными выше правилами.

Преимущества, которые мотивируют объектно-ориентированное программирование , такие как инкапсуляция или сокрытие информации , модульность и разделение задач , соответствуют целям безопасности, таким как наименьшие привилегии и разделение привилегий в программировании на основе возможностей. [1] [2]

Модель возможностей объекта была впервые предложена Джеком Деннисом и Эрлом Ван Хорном в 1966 году. [3]

Лазейки в объектно-ориентированных языках программирования

[ редактировать ]

Некоторые объектно-ориентированные языки программирования (например, JavaScript , Java и C# ) предоставляют способы доступа к ресурсам, отличные от приведенных выше правил, включая следующие:

  • Прямое присвоение переменным экземпляра объекта в Java и C#.
  • Прямая рефлексивная проверка метаданных объекта в Java и C#.
  • Повсеместная возможность импортировать примитивные модули, например java.io.File, которые включают внешние эффекты.

Такое использование неоспоримых полномочий нарушает условия модели объектных возможностей. Caja и Joe-E — это варианты JavaScript и Java соответственно, которые накладывают ограничения для устранения этих лазеек.

Преимущества возможностей объекта

[ редактировать ]

Ученый-компьютерщик Э. Дин Триббл заявил, что в смарт-контрактах контроль доступа на основе удостоверений не поддерживает должным образом динамически изменяющиеся разрешения по сравнению с моделью возможностей объектов. Он провел аналогию модели окапа с передачей парковщику ключа от автомобиля без передачи права владения автомобилем. [4]

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

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

Эти структурные свойства вытекают из двух правил, регулирующих доступ к существующим объектам:

1) Объект A может отправить сообщение B если объект A содержит ссылку на B. только в том случае ,
2) Объект A может получить ссылку на C только в том случае, если объект A получит сообщение, содержащее ссылку C. на

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

[ редактировать ]
система объектных возможностей
Вычислительная система, реализующая принципы, описанные в этой статье.
объект
Объект имеет локальное состояние и поведение. Объект в этом смысле является одновременно субъектом и объектом в том смысле, который используется в литературе по управлению доступом.
ссылка
Неподделываемый канал связи (защищенный указатель, непрозрачный адрес), который однозначно обозначает один объект и предоставляет разрешение на отправку сообщений этому объекту.
сообщение
Что отправляется по ссылке. В зависимости от системы сообщения могут сами по себе быть объектами первого класса, а могут и не быть.
запрос
Операция, при которой сообщение отправляется по ссылке. Когда сообщение будет получено, получатель получит доступ ко всем ссылкам, включенным в сообщение.
ослабление
Общий шаблон проектирования в системах с объектными возможностями: учитывая одну ссылку на объект, создайте другую ссылку для прокси-объекта с определенными ограничениями безопасности, такими как разрешение доступа только для чтения или разрешение отзыва. Прокси-объект выполняет проверки безопасности получаемых сообщений и передает все разрешенные сообщения. Глубокое ослабление относится к случаю, когда одно и то же ослабление применяется транзитивно к любым объектам, полученным через исходный ослабленный объект, обычно с использованием «мембраны».

Реализации

[ редактировать ]

Почти все исторические системы, которые были описаны как «системы возможностей», могут быть смоделированы как системы объектных возможностей. (Однако обратите внимание, что некоторые варианты использования термина «возможности» не соответствуют модели, например «возможности» POSIX.)

KeyKOS , EROS , Integrity (операционная система) , [ сомнительно обсудить ] CapROS , Coyotos , seL4 , OKL4 и Fiasco.OC — безопасные операционные системы, реализующие модель объектных возможностей.

Языки, реализующие возможности объектов

[ редактировать ]

См. также

[ редактировать ]
  1. ^ Миллер, Марк Сэмюэл (май 2006 г.). «Надежная композиция: к единому подходу к контролю доступа и управлению параллелизмом» . erights.org . Балтимор, Мэриленд . Проверено 28 июля 2013 г.
  2. ^ Марк С. Миллер; Ка-Пин Йи; Джонатан С. Шапиро (2003). «Развенчание мифов о возможностях» (PDF) . Технический отчет SRL2003-02. Лаборатория системных исследований Университета Джонса Хопкинса. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  3. ^ [1] со ссылкой на: Дж. Б. Деннис, Э. К. Ван Хорн. «Семантика программирования для многопрограммных вычислений». Сообщения ACM, 9 (3): 143–155, март 1966 г.
  4. ^ Jump up to: а б Луч, Феликс (26 августа 2019 г.). «Агорические вопросы и ответы с Дином Трибблом» . Хор Один .
  5. ^ Генри Либерман (июнь 1981 г.). «Предварительный просмотр акта 1». Памятка MIT AI 625. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  6. ^ Генри Либерман (июнь 1981 г.). «Думать о множестве вещей одновременно, не запутываясь: параллелизм в акте 1». Памятка MIT AI 626. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: bbef270220e10b7f02e648e4068cd6bd__1718314740
URL1:https://arc.ask3.ru/arc/aa/bb/bd/bbef270220e10b7f02e648e4068cd6bd.html
Заголовок, (Title) документа по адресу, URL1:
Object-capability model - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)