Аппаратные средства защиты информационных систем

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Kutsevol Vitaly (обсуждение | вклад) в 11:39, 19 декабря 2010. Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

статья в разработке

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

Эта проблема привлекла внимание многих фирм, в том числе и такой как Intel, признанного лидера в сфере производства микропроцессоров. В 80-х годах была разработана система 432. Но проект вследствие некоторых промахов постигла неудача. Возможно, именно безуспешность попытки одного из “грандов” создать защищенную систему, стала причиной, по которой многие другие фирмы отказались от этой идеи. Другой фактор до недавнего времени препятствовавший созданию защищенной системы – увеличение сложности оборудования.

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

Общая модель защищенной системы

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

Для описания системы введем понятия

  • узел
  • ссылка
  • контекст программы

Узел - ячейка данных произвольного объема вместе со cсылкой на нее из обрабатывающего устройства.

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

Контекст программы - это множество всех данных доступных для вычислений в конкретном модуле.

Базовая функциональность модели защищенной информационной системы

Создание узла произвольного объема для хранения данных

После появления новый узел должен быть

  • пуст
  • доступен только данному обрабатывающему устройству и только через данную ссылку


Удаление узла.

  • попытка использования ссылок на удаленные узлы должна приводить к системным прерываниям


Cмена контекста или смена процедуры исполняемой обрабатывающим устройством.

Новый контекст состоит из трех частей:

  • глобальные переменные, переданные по ссылке из старого контекста
  • часть, переданная копированием значения(параметры)
  • локальные данные, созданные в новом модуле

Общие методы и требования к переключению контекста:

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

Реализации могут быть разными(в том числе и без особых ссылок), но должны быть выдержаны основные принципы:

  • точки входа в контекст формируются внутри самого этого контекст
  • эта информация делается доступной другим контекстам
  • код и контекст переключаются одновременно

Анализ модели

1.Защищенность системы базируется на следующих принципах:

  • доступ к узлу имеет только модуль, создавший его, если только он добровольно не передаст ссылку кому-либо еще
  • множество данных, доступных модулю, в любой момент времени строго контролируется контекстом

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

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

4.Обеспечивается модульность программирования. Неправильная работа модуля никак не повлияет на другие. "Испорченный" модуль может лишь выдать неверные результаты.

5.Для использования системы от программиста не требуется дополнительных усилий. Кроме того, при написании программы нет необходимости дополнительно оговаривать права доступа, способы их передачи и т.д.

Примеры реализации

Архитектура Эльбрус

В архитектуре Эльбрус для разграничения типов данных вместе с каждым словом в памяти хранится его тег. По тегу можно определить является ли данное слово ссылкой или принадлежит к какому-либо специальному типу данных.

Ссылки и работа с ними

В ссылке содержится описание области(дескриптор) на которую она ссылается и права доступа. Дескриптор обязательно содержит содержит базовый адрес и размер данных.

Возможны следующие форматы дескриптора:

  • дескриптор объекта
  • дескриптор массива

Дескриптор объекта служит для поддержания объектно-ориентированного программирования и содержит дополнительно описание приватной и публичной областей. Обращение в публичную область стандартно(сложение базового адреса и индекса вместе с последующим контролем размера. Если в командах обращения в память стоит признак приватных данных, то для разрешения обращения проверяется специальный регистр в процессоре, который хранит тип объекта, когда работают программы обработки данного типа. Таким образом, внутри программы становятся доступными приватные данные объектов этого типа.

При доступе к ячейке памяти проверяется корректность ссылки.

Важные операции для работы со ссылками:

  • индексация(выработка ссылки на элемент массива)
  • операция CAST для дескрипторов объекта(преобразование к базовому классу)
  • компактировка(уничтожает ссылки на удаленную память и плотно компактирует занятую память)

Контексты и и методы работы с ними