: . Главная . : . Форум . : . Загрузка . : . Пользователи . : . ЧаВо . : . Документация . :


Операционная система 3OS -> Форумы -> Идеология проекта
<< Предыдущая тема | Следующая тема >>   

Зачем?

Перейти к странице Предыдущая -1-2-3-4-5-6-7-8-9-10-11-12-13 Следующая
Автор Отправлено
captain cobalt
Wednesday 16.02.2005 17:27 Цитата
Зарегистрирован: Sunday 15.02.2004 03:47
Сообщений - 49
Vadim Ushakov писал(а): ...
Загляните на сайт http://www.wasm.ru/ - там рассказывают, как написать Windows-приложение в hex-редакторе

Yes.
Vadim Ushakov писал(а): ...
captain cobalt писал(а): ...
Каким образом handles защищены от подделки? Не требует ли их защита дополнительных ресурсов во время исполнения?
Естественно, требует. Точно также и runtime ОО-среды требует дополнительных ресурсов, поскольку должен проверять права доступа и корректность данных при обращении к методам и членам.

Так ведь нет.
Всё проверки происходят во время компиляции.
Если подделать указатель невозможно, то пока его не передадут в явном виде, до данных просто "не дотянутся".
Vadim Ushakov писал(а): ...
Все это взломать гораздо труднее, чем систему вида "все объекты в нулевом кольце".

Что вы скажете о такой модели?

Не скажу, что "против".

Однако идея "полностью отладить" trusted компилятор выглядит очень привлекательной.

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

А Oбероны специально проектировались для максимального упрощения их компиляторов.

Поэтому не всё однозначно.
czarker писал(а): ...
А если использован trusted compiler для сборки заведомо разрушительного модуля?

Как мы уже выяснили, такой модуль не сможет "дотянуться" до чужих данных.

P. S. Вот ещё одна ссылка "про разработку ОС":
http:/qnx.org.ru/viewthread15n3109.html
Там и про Bluebottle упоминается.
[ Редактирование Thursday 17.02.2005 11:01 ]
Наверх
Vadim Ushakov
Thursday 17.02.2005 11:20 Цитата
Зарегистрирован: Monday 07.02.2005 04:57
Местоположение: Россия, Красноярск
Сообщений - 35
captain cobalt писал(а): ...
Так ведь нет.
Всё проверки происходят во время компиляции.
Динамических проверок не требуется? Насколько я знаю, Оберон использует процедурно-параметрическую модель, а не механизм v-таблиц. Разве не нужна проверка принадлежности объекта данному типу (или одному из нескольких типов) при любом вызове такой функции? Или я что-то пропустил?

captain cobalt писал(а): ...
Однако идея "полностью отладить" trusted компилятор выглядит очень привлекательной.
Не верю я в "полность отлаженные" программы... Наверное, я пессимист...
Конечно хорошо было бы доказывать правильность программы так же, как доказывают правильность математической теоремы, но пока что такие доказательства остаются фантастикой.

captain cobalt писал(а): ...
А Oбероны специально проектировались для максимального упрощения их компиляторов.
Не спорю, Оберон очень логично и качественно спроектирован, но все же некоторые особенности синтаксиса вызывают сомнение:
Документация Oberon-2 писал(а): ...
Операторы with выполняют последовательность операторов в зависимости от результата проверки типа и применяют охрану типа к каждому вхождению проверяемой переменной внутри этой последовательности операторов...
...
Если ни одна проверка типа не удовлетворена, а ELSE отсутствует, программа прерывается.
У меня вопрос: что это за "программа", которая перывается? Все объекты, классы, методы и прочее, что находится в едином пространстве образуют одну большую "программу". Если бы были процессы, то прерывался бы процесс, в котором произошла ошибка, но процессов нет. Так что же прерывается?
Кстати, приведенная цитата означает, что runtime Оберона все-таки выполняет динамические проверки типов.

Также у меня появились вопросы:
1. Может быть все-таки стоит использовать Оберон в качестве языка и среды разработки, а не .NET?
2. Имеет ли смысл развивать 3ОС поверх какой-либо существующей single-address-space системы, или лучше все писать с нуля?
Наверх
czarker
Thursday 17.02.2005 12:17 Цитата

Зарегистрирован: Monday 10.01.2005 17:26
Местоположение: Москва, т.д.
Сообщений - 48
AlexanderK
AlexanderK писал(а): ...
Как это? Trusted подразумевает гарантированную безопастность. Т.е. принципиальную невозможность нанаесения вреда.
Это как? Такого компилятора не может быть вообще.
AlexanderK писал(а): ...
И атаке подвергаются не объекты, а сама система безопасности.
Нет, атака может быть направлена на объекты.

captain cobalt
captain cobalt писал(а): ...
Как мы уже выяснили, такой модуль не сможет "дотянуться" до чужих данных.
А ему не обязательно. Достаточно вызвать сбой в пэйджере. Или вызвать побочные эффекты.
Нельзя полностью отладить компилятор - он слишком сложный. И путь слепой веры - тупиковый.

Но это всё, конечно, моё сугубо личное мнение.
Наверх
AlexanderK
Thursday 17.02.2005 13:46 Цитата
Зарегистрирован: Tuesday 05.10.2004 13:47
Местоположение: 2:5020/829.5
Сообщений - 49
Такие ЯП есть. Любые, где нет прямых ссылок.
Атака на объекты может быть связана только с поиском неправильного поведения при нарушении инварианта. Это зависит от кривизны только самого объекта, и влияет на безопастность только его собственных данных. А про польностью отлаженные компиляторы, и про безопасные компиляторы (безопасные языки программирования) - это разные темы, поэтому не надо смешивать.
Наверх
czarker
Thursday 17.02.2005 15:56 Цитата

Зарегистрирован: Monday 10.01.2005 17:26
Местоположение: Москва, т.д.
Сообщений - 48
AlexanderK
Про Trusted вообще - ссылочку, если можно. А то мы как-то о разных вещах говорим.
А безопасность концепции сама по себе никому не нужна!

Но это всё, конечно, моё сугубо личное мнение.
Наверх
captain cobalt
Thursday 17.02.2005 16:17 Цитата
Зарегистрирован: Sunday 15.02.2004 03:47
Сообщений - 49
Vadim Ushakov писал(а): ...
У меня вопрос: что это за "программа", которая перывается? Все объекты, классы, методы и прочее, что находится в едином пространстве образуют одну большую "программу". Если бы были процессы, то прерывался бы процесс, в котором произошла ошибка, но процессов нет. Так что же прерывается?

За Оберон-2 сейчас не скажу, однако в Active Oberon Активные Объекты действительно могут "завершаться" и оставаться в таком состоянии пока их не соберёт сборщик мусора. Кроме того, есть модификатор SAFE, который означает повторный рестарт Активного Объекта в случае исключительной ситуации.
Vadim Ushakov писал(а): ...
Кстати, приведенная цитата означает, что runtime Оберона все-таки выполняет динамические проверки типов.

Да, это так.
Vadim Ushakov писал(а): ...
Также у меня появились вопросы:
1. Может быть все-таки стоит использовать Оберон в качестве языка и среды разработки, а не .NET?
2. Имеет ли смысл развивать 3ОС поверх какой-либо существующей single-address-space системы, или лучше все писать с нуля?

Это к разработчикам 3OS.
Тем более, что они уже здесь, но пока молчат.
czarker писал(а): ...
Достаточно вызвать сбой в пэйджере.

Если имеется такая возможность, то это смертельно независимо от архитектуры всего остального. Действительно, известны случаи, когда "особенности" пейджера создавали брешь в безопасности.

Что касается именно Bluebottle, то там пейджера пока нет. И предвидится нескоро. Насколько я понимаю, вообще страничное преобразование не используется. Лишь сегменты установлены так, чтобы логический адрес=физический адрес.
czarker писал(а): ...
Или вызвать побочные эффекты.

Модель активных объектов достаточно радикально отличается от модели "процессы+средства синхронизации". Зачастую ситуации race condition становятся "более очевидными".
czarker писал(а): ...
Нельзя полностью отладить компилятор - он слишком сложный. И путь слепой веры - тупиковый.

"А шо делать?" (с) еврей из анекдота.

Вряд ли кто-то из программистов на CC++ после каждой компиляции вручную убеждается в корректности полученного конечного кода. Если компилятор ненадёжный, то ничто не поможет с помощью него разработать надёжную систему. Можно приделывать снаружи "радиолюбительские" "перделки и свистелки". Они действительно могут повысить надёжность. Но не до максимума - так как основа ненадёжна. Это подход "good enough software", который всё шире порицается.

Поэтому неочевидно, что лучше тратить время на приделывание "радиолюбительских перделок и свистелок", чем на повышение надёжности trusted компилятора. Тем более что существует гипотетическая возможность построить "полностью отлаженный" компилятор, и существует развитая и продолжающая развиваться теория для этого.

AlexanderK писал(а): ...
А про польностью отлаженные компиляторы, и про безопасные компиляторы (безопасные языки программирования) - это разные темы, поэтому не надо смешивать.

Оппоненты упирают на то, что если компилятор ненадёжный, то безопасность компилируемого им языка уже не имеет значения.
[ Редактирование Saturday 26.02.2005 23:37 ]
Наверх
AlexanderK
Thursday 17.02.2005 17:10 Цитата
Зарегистрирован: Tuesday 05.10.2004 13:47
Местоположение: 2:5020/829.5
Сообщений - 49
http://haskell.org, http://caml.inria.fr
Наверх
AlexanderK
Thursday 17.02.2005 17:15 Цитата
Зарегистрирован: Tuesday 05.10.2004 13:47
Местоположение: 2:5020/829.5
Сообщений - 49
Безопасность концепции первична, остальное - дело техники.
Наверх
captain cobalt
Thursday 17.02.2005 18:01 Цитата
Зарегистрирован: Sunday 15.02.2004 03:47
Сообщений - 49
czarker писал(а): ...
Про Trusted вообще - ссылочку, если можно. А то мы как-то о разных вещах говорим.

Обыкновенно "trusted" - это некоторая часть trusted computing base. Ссылочку не знаю, но вот цитата из Таненбаума:
Таненбаум писал(а): ...
ВЫСОКОНАДЁЖНАЯ ВЫЧИСЛИТЕЛЬНАЯ БАЗА

Люди, занимающиеся компьютерной безопасностью, чаще употребляют термин надёжная ситема (trusted system), чем "защищённая система" (secure system). Надёжная система - это система, в которой формально установлены требования безопасности и которая удовлетворяет этим требованиям. В сердце каждой надёжной системы находится минимальная база TCB (Trusted Computing Base -- высоконадёжная вычислительная база), систоящая из аппаратного программного обеспечения, необходимого для проведения в жизнь всех правил безопасности. Если высоконадёжная вычислительная база работает в соответствии с техническими условиями, безопасность системы не может быть нарушена независимо от любых других обстоятельств.

Высоконадёжная вычислительная база TCB, как правило, состоит из большей части аппаратного обеспечения (кроме устройств ввода-вывода, не влияющих на безопасность), части ядра операционной системы и большей части или всех пользовательских программ, обладающих полномочиями суперпользователя (например root в системе UNIX). К функциям операционной системы, которые должны быть частью TCB, относятся создание процесса, переключение процессов, управление картой памяти, а также часть файлового управления и управления вводом-выводом. В надёжных системах TCB часто представляет собой совершенно отдельную ото всей остальной операционной системы часть, что позволяет уменьшить её размеры и проверить корректность работы.

Важную часть высоконадёжной вычислительной базы составляет монитор обращений. Монитор обращений принимает все системные вызовы, имеющие отношение к безопасности, такие как открытие файлов, и принимает решение, следует их выполнять или нет. Таким образом, монитор обращений позволяет все решения о безопасности поместить в одном месте, не предоставляя возможности обойти их. Организация большинства операционных систем отличается от данной схемы, в чём заключается одна из причин их ненадёжности.

czarker писал(а): ...
А безопасность концепции сама по себе никому не нужна!

Что же теперь, закладывать в основу небезопасную модель?
Так такая ОС уже есть.
AlexanderK писал(а): ...
http://haskell.org, http://caml.inria.fr

Ах так!
Ну тогда http:/refal.net/
AlexanderK писал(а): ...
Безопасность концепции первична, остальное - дело техники.

Yes.
[ Редактирование Thursday 17.02.2005 18:03 ]
Наверх
AlexanderK
Thursday 17.02.2005 19:16 Цитата
Зарегистрирован: Tuesday 05.10.2004 13:47
Местоположение: 2:5020/829.5
Сообщений - 49
<captain cobalt> Ах так!
Ну тогда http:/refal.net/

Да в общем-то главное отсутствие прямого доступа к памяти, значит и VB тоже за безопасный язык сойдёт
Наверх
Перейти к странице Предыдущая -1-2-3-4-5-6-7-8-9-10-11-12-13 Следующая

Модераторы: Roman I Khimov, netwizard.

Переход:     Наверх