> man operating_systems
Переход на страницу  1 [2]
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
Chizh
Пятница 21.10.2005 18:31
ID пользователя #90
Зарегистрирован: Понедельник 13.09.2004 18:42
Сообщений: 170
Dron написал(а) ...
смутно представляю что такое предикаты.

http://en.wikipedia.org/wiki/Predicate
Наверх
Сайт
Freeman
Пятница 21.10.2005 18:47
ID пользователя #3
Зарегистрирован: Четверг 01.07.2004 14:57
Сообщений: 207
Dron написал(а) ...
Хорошо, но это мы опять вернулись к тому, что не все языки одинаково полезны... а это недемократично.

Нее-е-е, ты меня не путай. Где я говорил про языки? Только разве Си ваш обидел - он необъектный.

Я к тому, что среда выполнения одна и не зависит от языка. Знаешь ведь, что любой язык можно описать автоматной теорией. Нечто подобное было сделано при работе над .NET. Правда, практика там сильно хромает, как выясняется.
Dron написал(а) ...
Я честно говоря институтов не кончал и смутно представляю что такое предикаты.

В данном контексте - логические утверждения, действующие по факту собственного существования. Могу привести пример из БД.

Есть две таблицы, A и B:

create table A(id integer primary key);
create table B(a_id integer);

Теперь создаем между ними зависимость - ограничение, позволяющее в B иметь только те значения, что есть в A:

alter table B add constraint fk_b_a foreign key (a_id) references A(id);

Ограничение (в нашем случае fk_b_a) является предикатом, его логика реализуется ядром БД. Теперь попробуем вставить значения:

insert into A values(1);

insert into B values (1);
insert into B values(2); -- тут получаем исключение

При попытке вставить в B значение, отсутствующее в A, получаем исключение: "parent key not found". Вот, собственно и все. С одной стороны - математика, предикаты, с другой - обычная реализация в коде (ядре БД). Но нарушающие целостность БД значения в B не попадут.
Dron написал(а) ...
А если создатель класса JPEG возьмет и задекларирует использование Partition.Format?

Ну, теперь ты и сам можешь ответить.

Декларируй, сколько влезет. Не только специалист по безопасности, но и любой здравомыслящий пользователь не будет создавать связь (вставлять в таблицу связей значение), позволяющее наследникам класса Picture вызывать Partition.Format(). При попытке установки такого класса получаем "parent key not found", т. е. о чем говорилось выше.
Alexander написал(а) ...
Может быть программе нужен доступ к одному файлу, тогда зачем программе предоставлять целый файловый сервер, с помощью которого можно стянуть хоть весь диск? Тогда очевидно, нужно использовать параметризованные классы

Не совсем так. Посмотри на пример выше. Ты опять мыслишь категориями обычных ACL.

Классы не надо параметризировать, они и так параметризированы. Точнее, в данном случае "параметризатором" выступает RTTI. Скажешь, что велосипед? Однако RTTI позволяет давать доступ не конкретной программе конкретному файлу, а целому классу программ на использование тех или иных системных возможностей или данных.


<span class='smallblacktext'>[ Редактирование пятница 21.10.2005 19:05 ]</span>
Наверх
Chizh
Пятница 21.10.2005 19:12
ID пользователя #90
Зарегистрирован: Понедельник 13.09.2004 18:42
Сообщений: 170
Freeman написал(а) ...
Однако RTTI позволяет давать доступ не конкретной программе конкретному файлу, а целому классу программ на использование тех или иных системных возможностей или данных.

Боюсь, будет очень много всего пересекаться. Существующая политика групп в NT сейчас действует примерно также. Но если изначально всё продумать и сделать хорошо, то возможно что лечиться и не придётся
<span class='smallblacktext'>[ Редактирование пятница 21.10.2005 19:25 ]</span>
Наверх
Сайт
den1
Пятница 21.10.2005 19:13
ID пользователя #363
Зарегистрирован: Вторник 05.07.2005 16:47
Местонахождение: Россия. Москва.
Сообщений: 151
Freeman написал(а) ...
ограничения целостности, задаваемые на уровне базы средствами самой БД. Мне кажется, что модель безопасности в ОС-21 должна быть построена по тому же самому принципу.

Ошибки в ПО всегда были и будут - люди не безгрешны. Но целостность самой себя система должна контролировать сама, и это должно стать ее приоритетной задачей. Нельзя делить вопрос хранения/выполнения на файлы, ФС, модули, библиотеки и т. д. - должна быть единая модель с встроенным контролем отношений - читай целостности.

Идея совершенно здравая. Мне нравится. По крайней мере, сложно предположить более перспективный подход здесь.
Наверх
Сайт
Freeman
Пятница 21.10.2005 19:22
ID пользователя #3
Зарегистрирован: Четверг 01.07.2004 14:57
Сообщений: 207
Alexander написал(а) ...
Боюсь, будет очень много всего пересекаться. Существующая политика групп в NT сейчас действует примерно также.

Правильно. Если говорить про модели безопасности ОС, у NT на сегодняшний день самая продвинутая модель. Но! Во-первых, у нее нет четкой концепции, понятной интуитивно. Хотя нет, она наверняка есть, только не озвучена соответствующим образом. И самое главное - нет нормального инструментария для работы с этим богатством (MMC не предлагать!).

Одно время у меня даже была идея замутить нечто вроде "SQL Services for NT" или "SQL Services for Windows Registry", а потом подумал - на фига? Делать - так сразу по-людски, а не под буржуйскую дудку плясать.
Alexander написал(а) ...
Конечно, если сделать хорошую иерархию, то должно получиться неплохо.

Так в том-то и дело. Просто надо знать, где подсмотреть. Например, кто знаком с системой разграничения прав в Oracle? Все четко и достаточно прозрачно.

Кстати, о пересечениях. В Oracle, да и многих других серверах, есть понятие роли. Позволяет разруливать пересечения достаточно просто.
<span class='smallblacktext'>[ Редактирование пятница 21.10.2005 19:24 ]</span>
Наверх
Freeman
Суббота 22.10.2005 20:20
ID пользователя #3
Зарегистрирован: Четверг 01.07.2004 14:57
Сообщений: 207
Наверное, стоит уже подвести предварительные итоги.

Итак, принимается, что хотя бы в целях безопасности делить выполнение/хранение на файлы, ФС, библиотеки, программы и т. д. - неудобно и невыгодно. Все эти сущности объявляются лишними и вместо них вводятся классы соответствующих типов. Для неверящих, что подобное изменение не косметическое, заметим, что классы наследуются от общего предка и в процессе использования могут быть приведены к низлежащим типам - получаем полностью типизированную среду.

Для загрузки классов на выполнение, а также отслеживания зависимостей используется RTTI, стандартизованный и единый на всю систему. Разумеется, RTTI описывает нечто большее, чем просто соглашения о вызовах и по объему хранимой информации похож на библиотеки типов COM или манифесты сборок .NET (а есть ли такое понятие в Обероне?).

При установке Visual Studio есть возможность добавить в окно свойств выполнимых файлов вкладку "Зависимости" ("Dependencies"), показывающую, от каких библиотек зависит данная программа. Однако в Windows это мало того, что опционально, но еще не учитывает динамическое связывание или COM (для COM, кажется, есть отдельная утилита). У нас же возможность получения списка как прямых, так и обратных зависимостей (какие классы зависят от данного) как штатная системная функция, базирующаяся на все том же RTTI.

Отслеживание зависимостей через RTTI является также предикатным, т. е. в любой момент времени в системе присутствует набор модулей только с верными зависимостями, не нарушающими текущую политику безопасности.

Использование глобального RTTI позволяет создать принципиально новую систему безопасности. Вообще, политик безопасности, с нашей точки зрения, бывает две:
- разрешено все, что не запрещено
- запрещено все, что не разрешено

Не могу только правильно назвать модели: почему-то кажется, что первую надо назвать запретительной - применение политики безопасности есть запрещение, а вторую - разрешительной - применение политики есть разрешение.

Как понятно, сегодня используется первая модель. Как она работает, мы также прекрасно знаем: забыли запретить - вот они, вирусы!

Поэтому, для пущей безопасности предлагается сделать системной разрешительную политику: забыли разрешить - получили исключение. No pasaran, amigos!

Кстати, разрешительная политика используется большинством сетевых файрволов - разрешено только описанное правилами.

Давайте теперь попробуем создать под нашу систему вирус, а заодно и про баги поговорим.

<span class='smallblacktext'>[ Редактирование суббота 22.10.2005 20:31 ]</span>
Наверх
Переход на страницу  1 [2]  

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.