
вана на документации для программного обеспечения, которая является
обычно большой по объему, неясной и неполной, в лучшем случае
5
.
Единственное решение этой проблемы состоит в том, чтобы сделать
часть настройки, отвечающую за безопасность, более простой как для адми-
нистраторов, так и для пользователей. Не следует делать это, изменяя базо-
вую ОС, по причинам того, что изменения там трудно выполнимы, и потому
что некоторые пользователи будут настаивать на детальном управлении, ко-
торое обеспечивает настройка. Вместо этого, можно использовать в своих
интересах это детализированное управление, используя его как «машинный
язык». Необходимо задать модель безопасности с небольшим числом пара-
метров настройки, и затем компилировать эти параметры в многочисленные
кнопки и выключатели базовой системы.
Какую форму должна принять эта модель?
Пользователи нуждаются в очень простой модели, приблизительно с
тремя уровнями защиты: я, моя группа или предприятие, и остальные, с про-
грессивно убывающими полномочиями. Сегодня браузеры классифицируют
сеть подобным образом. Персональная информация, конфиденциальные и
открытые сведения должны быть в трех частях файловой системы: мои доку-
менты, документы моей группы и общие документы. Это комбинирует защи-
ту данных с той частью файловой системы, где они хранятся; так же, как в
реальном мире это сделано, например, с досками объявлений, папками, замк-
нутыми в столах и сейфами. Это знакомо, требует меньшей работы, при этом
сразу очевидно, какова защита каждого элемента данных.
Все остальное должно быть обработано политиками безопасности (ПБ),
которую должны предоставить поставщики или администраторы. В частно-
сти, ПБ должны классифицировать любые программы как доверенные или
недоверенные, на базе того, каким образом они подписаны, если пользова-
тель сознательно не отменит эти предписания явным образом. Недоверенные
программы могут быть отклонены или ограничены (sandboxing); если они –
ограничены, то должны работать в полностью изолированном пространстве
состояний, с отдельным глобальным состоянием, таким как пользовательские
5
Конечно, и код программы также зависит от документации по программному языку и вызываемым библиотекам,
но там качество документации обычно значительно лучше.