русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2014-11-27; просмотров: 641; Нарушение авторских прав


 

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

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

 

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

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

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



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

 

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

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

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

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

 

 



<== предыдущая лекция | следующая лекция ==>
Пользовательское ПО доверенной среды | Жизненный цикл Доверенной Вычислительной Среды.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.132 сек.