Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютер в Компьютере.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.55 Mб
Скачать

Пользовательское по доверенной среды

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

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

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

Естественно они должны размещаться в изолированной области адресного пространства ОП и работать без использования каких либо внешних программных модулей типа API, функций БИОС, вызовов прочего внешнего ПО.

Кроме этого уже говорилось, что ключевая информация должна храниться только на регистрах процессора ДВС и необходимо исключать возможность даже временного появления ее в памяти.

Ну а функциональные возможности программ ДВС неограниченны, все программные и аппаратные ресурсы вычислительной установки в их распоряжении, нужно только уметь этим распорядиться.

Доверенный ввод/вывод.

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

Следовательно, нужно сделать доверенным не только процесс обработки данных, но и процессы ввода/вывода этих данных да еще и визуализацию неких критически важных параметров. Фактически нужно этот доверенный «компьютер в компьютере» оснастить собственным доверенным периферийным оборудованием.

Вот это уже задачка из разряда «невозможно», этого еще никто не делал. Решая эту задачу можно пойти несколькими путями, первый и самый очевидный это поступить также как и с процессорным ядром, «выкусить» из аппаратных ресурсов используемых ОС необходимые контроллеры и работать с ними только из доверенной среды. Недостаток этого лобового решения – моделезависимость. Нужно писать собственные драйвера для работы с «выкушенным» периферийным оборудованием, а типов этого оборудования слишком много.

Более простым способом является организация «сеансового» захвата любого из необходимых контроллеров, а чтобы ОС и сторонние программы в это время не «путались под ногами» на время этого сеанса все процессорные ядра принадлежащие ОС нужно останавливать (у нас используется термин «заморозить»). Но опять возникает вопрос моделезависимости, как и в первом варианте нужно писать собственные драйвера под все имеющиеся контроллеры, а это просто нереально.

Поэтому эффективней использовать комбинированный метод. Штатный драйвер ОС инициализирует контроллер до уровня активации буфера обмена данными, и только после активации этого буфера происходит «заморозка» процессоров основной ОС. В этом замороженном состоянии контроллер пишет/читает буфер обмена через DMI, процессор доверенной среды контролирует заполнение буфера и когда операция завершается забирает из этого буфера данные после чего «размораживает» процессора ОС.

Ну и наконец, последний, и самый элегантный способ, это работа «на лету», когда с внешним устройством работает ОС, ничего не тормозится не захватывается, но буфера обмена данных гарантировано подменяются и реальная информация из них идет по каналам ДВС а не официальной ОС.

Снова следуя мудрому завету Великого Кормчего – «Пусть цветут все цветы», и не мудрствуя лукаво в Доверенной Вычислительной Среде использованы все эти методы.

Там где оборудование хорошо стандартизировано и критическим является гарантированная надежность (обеспечение сетевого доступа например) применяется метод «выкусывания» контроллеров.

Там где нет даже намека на стандартизацию протоколов доступа к оборудованию и полно недокументированных возможностей (пример современные видеоадаптеры) применен метод заморозки ОС на время чтения\записи буферов данных.

В более простых случаях реализуется метод подмены/съема информации налету, к примеру, так реализована работа с клавиатурным вводом.