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

Поделись знанием:
Перейти к: навигация, поиск

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

Эта проблема привлекла внимание многих фирм, в том числе и такой как Intel. В 80-х годах была разработана система 432. Но проект постигла неудача. Возможно, именно после неудачи "гранда" другие фирмы отказались от этой идеи.

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





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

Разработчиками Эльбруса была предложена следующая модель защищённой информационной системы [1].

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Защищенность системы базируется на следующих принципах:
    • доступ к узлу имеет только модуль, создавший его, если только он добровольно не передаст ссылку кому-либо еще
    • множество данных, доступных модулю, в любой момент времени строго контролируется контекстом
  2. Результирующая защита предельно строгая, но она не ограничивает возможности программиста. Различные не пересекающиеся модули могут работать в одной программе, вызывая друг друга и обмениваясь данными. Для этого достаточно, чтобы каждый из них содержал особую ссылку для переключения контекста на другой.
  3. Построенная система значительно упрощает поиск и исправление ошибок благодаря строгому контролю типов. Например, попытка изменить ссылку сразу приведет к аппаратному прерыванию в месте ошибки. После чего её легко можно отследить и исправить.
  4. Обеспечивается модульность программирования. Неправильная работа программы никак не повлияет на другие. «Испорченный» модуль может лишь выдать неверные результаты.
  5. Для использования системы от программиста не требуется дополнительных усилий. Кроме того, при написании программы под такую модель уже нет необходимости дополнительно оговаривать права доступа, способы их передачи и т. д.

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

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

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

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

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

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

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

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

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

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

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

Контекст модуля состоит из данных хранящихся в оперативной памяти и в файлах, и подается в виде ссылки на регистры процессора.

Переключение контекста — это, по сути, вызов процедуры или возврат из неё. При запуске процедуры полный контекст исходного модуля сохраняется, а нового — создается. При выходе из процедуры её контекст уничтожается.

Реализация защищенного стека

При реализации процедурного механизма в Эльбрусе, для повышения эффективности выделения памяти для локальных данных используется механизм стека.

Стековские данные подразделяются на три группы по своим функциональным характеристикам и уровню доступности для пользователя:

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

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

Стек пользователя предназначен для данных, которые пользователь считает нужным разместить в памяти.

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

Поскольку в стеке виртуальная память переиспользуется, встает проблема защиты данных. Она имеет два аспекта:

  • переиспользование памяти (выделение ранееосвобожденного пространства). В этой памяти могут, к примеру, оказаться ссылки, недоступные модулю при правильной работе
  • «зависшие» указатели(ссылки старого владельца на переиспользуемую память)

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

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

Примечания

  1. [www.mcst.ru/SECURE_INFORMATION_SYSTEM_V5_2r.pdf Защищенное исполнение программ на базе аппаратной и системной поддержки архитектуры «Эльбрус»]

Ссылки

  • [www.mcst.ru/SECURE_INFORMATION_SYSTEM_V5_2r.pdf Защищенные информационные системы. Б. А. Бабаян, 2003] (pdf)
  • [www.mcst.ru/2-3.htm Микропроцессор «Эльбрус»] на сайте МЦСТ
  • [www.mcst.ru/e2k_arch.shtml Основные принципы архитектуры] (2001) на сайте МЦСТ

Отрывок, характеризующий Аппаратные средства защиты информационных систем

– Да как же жить для одного себя? – разгорячаясь спросил Пьер. – А сын, а сестра, а отец?
– Да это всё тот же я, это не другие, – сказал князь Андрей, а другие, ближние, le prochain, как вы с княжной Марьей называете, это главный источник заблуждения и зла. Le prochаin [Ближний] это те, твои киевские мужики, которым ты хочешь сделать добро.
И он посмотрел на Пьера насмешливо вызывающим взглядом. Он, видимо, вызывал Пьера.
– Вы шутите, – всё более и более оживляясь говорил Пьер. Какое же может быть заблуждение и зло в том, что я желал (очень мало и дурно исполнил), но желал сделать добро, да и сделал хотя кое что? Какое же может быть зло, что несчастные люди, наши мужики, люди такие же, как и мы, выростающие и умирающие без другого понятия о Боге и правде, как обряд и бессмысленная молитва, будут поучаться в утешительных верованиях будущей жизни, возмездия, награды, утешения? Какое же зло и заблуждение в том, что люди умирают от болезни, без помощи, когда так легко материально помочь им, и я им дам лекаря, и больницу, и приют старику? И разве не ощутительное, не несомненное благо то, что мужик, баба с ребенком не имеют дня и ночи покоя, а я дам им отдых и досуг?… – говорил Пьер, торопясь и шепелявя. – И я это сделал, хоть плохо, хоть немного, но сделал кое что для этого, и вы не только меня не разуверите в том, что то, что я сделал хорошо, но и не разуверите, чтоб вы сами этого не думали. А главное, – продолжал Пьер, – я вот что знаю и знаю верно, что наслаждение делать это добро есть единственное верное счастие жизни.
– Да, ежели так поставить вопрос, то это другое дело, сказал князь Андрей. – Я строю дом, развожу сад, а ты больницы. И то, и другое может служить препровождением времени. А что справедливо, что добро – предоставь судить тому, кто всё знает, а не нам. Ну ты хочешь спорить, – прибавил он, – ну давай. – Они вышли из за стола и сели на крыльцо, заменявшее балкон.
– Ну давай спорить, – сказал князь Андрей. – Ты говоришь школы, – продолжал он, загибая палец, – поучения и так далее, то есть ты хочешь вывести его, – сказал он, указывая на мужика, снявшего шапку и проходившего мимо их, – из его животного состояния и дать ему нравственных потребностей, а мне кажется, что единственно возможное счастье – есть счастье животное, а ты его то хочешь лишить его. Я завидую ему, а ты хочешь его сделать мною, но не дав ему моих средств. Другое ты говоришь: облегчить его работу. А по моему, труд физический для него есть такая же необходимость, такое же условие его существования, как для меня и для тебя труд умственный. Ты не можешь не думать. Я ложусь спать в 3 м часу, мне приходят мысли, и я не могу заснуть, ворочаюсь, не сплю до утра оттого, что я думаю и не могу не думать, как он не может не пахать, не косить; иначе он пойдет в кабак, или сделается болен. Как я не перенесу его страшного физического труда, а умру через неделю, так он не перенесет моей физической праздности, он растолстеет и умрет. Третье, – что бишь еще ты сказал? – Князь Андрей загнул третий палец.
– Ах, да, больницы, лекарства. У него удар, он умирает, а ты пустил ему кровь, вылечил. Он калекой будет ходить 10 ть лет, всем в тягость. Гораздо покойнее и проще ему умереть. Другие родятся, и так их много. Ежели бы ты жалел, что у тебя лишний работник пропал – как я смотрю на него, а то ты из любви же к нему его хочешь лечить. А ему этого не нужно. Да и потом,что за воображенье, что медицина кого нибудь и когда нибудь вылечивала! Убивать так! – сказал он, злобно нахмурившись и отвернувшись от Пьера. Князь Андрей высказывал свои мысли так ясно и отчетливо, что видно было, он не раз думал об этом, и он говорил охотно и быстро, как человек, долго не говоривший. Взгляд его оживлялся тем больше, чем безнадежнее были его суждения.
– Ах это ужасно, ужасно! – сказал Пьер. – Я не понимаю только – как можно жить с такими мыслями. На меня находили такие же минуты, это недавно было, в Москве и дорогой, но тогда я опускаюсь до такой степени, что я не живу, всё мне гадко… главное, я сам. Тогда я не ем, не умываюсь… ну, как же вы?…
– Отчего же не умываться, это не чисто, – сказал князь Андрей; – напротив, надо стараться сделать свою жизнь как можно более приятной. Я живу и в этом не виноват, стало быть надо как нибудь получше, никому не мешая, дожить до смерти.
– Но что же вас побуждает жить с такими мыслями? Будешь сидеть не двигаясь, ничего не предпринимая…
– Жизнь и так не оставляет в покое. Я бы рад ничего не делать, а вот, с одной стороны, дворянство здешнее удостоило меня чести избрания в предводители: я насилу отделался. Они не могли понять, что во мне нет того, что нужно, нет этой известной добродушной и озабоченной пошлости, которая нужна для этого. Потом вот этот дом, который надо было построить, чтобы иметь свой угол, где можно быть спокойным. Теперь ополчение.
– Отчего вы не служите в армии?
– После Аустерлица! – мрачно сказал князь Андрей. – Нет; покорно благодарю, я дал себе слово, что служить в действующей русской армии я не буду. И не буду, ежели бы Бонапарте стоял тут, у Смоленска, угрожая Лысым Горам, и тогда бы я не стал служить в русской армии. Ну, так я тебе говорил, – успокоиваясь продолжал князь Андрей. – Теперь ополченье, отец главнокомандующим 3 го округа, и единственное средство мне избавиться от службы – быть при нем.
– Стало быть вы служите?
– Служу. – Он помолчал немного.
– Так зачем же вы служите?
– А вот зачем. Отец мой один из замечательнейших людей своего века. Но он становится стар, и он не то что жесток, но он слишком деятельного характера. Он страшен своей привычкой к неограниченной власти, и теперь этой властью, данной Государем главнокомандующим над ополчением. Ежели бы я два часа опоздал две недели тому назад, он бы повесил протоколиста в Юхнове, – сказал князь Андрей с улыбкой; – так я служу потому, что кроме меня никто не имеет влияния на отца, и я кое где спасу его от поступка, от которого бы он после мучился.
– А, ну так вот видите!
– Да, mais ce n'est pas comme vous l'entendez, [но это не так, как вы это понимаете,] – продолжал князь Андрей. – Я ни малейшего добра не желал и не желаю этому мерзавцу протоколисту, который украл какие то сапоги у ополченцев; я даже очень был бы доволен видеть его повешенным, но мне жалко отца, то есть опять себя же.
Князь Андрей всё более и более оживлялся. Глаза его лихорадочно блестели в то время, как он старался доказать Пьеру, что никогда в его поступке не было желания добра ближнему.
– Ну, вот ты хочешь освободить крестьян, – продолжал он. – Это очень хорошо; но не для тебя (ты, я думаю, никого не засекал и не посылал в Сибирь), и еще меньше для крестьян. Ежели их бьют, секут, посылают в Сибирь, то я думаю, что им от этого нисколько не хуже. В Сибири ведет он ту же свою скотскую жизнь, а рубцы на теле заживут, и он так же счастлив, как и был прежде. А нужно это для тех людей, которые гибнут нравственно, наживают себе раскаяние, подавляют это раскаяние и грубеют от того, что у них есть возможность казнить право и неправо. Вот кого мне жалко, и для кого бы я желал освободить крестьян. Ты, может быть, не видал, а я видел, как хорошие люди, воспитанные в этих преданиях неограниченной власти, с годами, когда они делаются раздражительнее, делаются жестоки, грубы, знают это, не могут удержаться и всё делаются несчастнее и несчастнее. – Князь Андрей говорил это с таким увлечением, что Пьер невольно подумал о том, что мысли эти наведены были Андрею его отцом. Он ничего не отвечал ему.
– Так вот кого мне жалко – человеческого достоинства, спокойствия совести, чистоты, а не их спин и лбов, которые, сколько ни секи, сколько ни брей, всё останутся такими же спинами и лбами.
– Нет, нет и тысячу раз нет, я никогда не соглашусь с вами, – сказал Пьер.


Вечером князь Андрей и Пьер сели в коляску и поехали в Лысые Горы. Князь Андрей, поглядывая на Пьера, прерывал изредка молчание речами, доказывавшими, что он находился в хорошем расположении духа.
Он говорил ему, указывая на поля, о своих хозяйственных усовершенствованиях.
Пьер мрачно молчал, отвечая односложно, и казался погруженным в свои мысли.
Пьер думал о том, что князь Андрей несчастлив, что он заблуждается, что он не знает истинного света и что Пьер должен притти на помощь ему, просветить и поднять его. Но как только Пьер придумывал, как и что он станет говорить, он предчувствовал, что князь Андрей одним словом, одним аргументом уронит всё в его ученьи, и он боялся начать, боялся выставить на возможность осмеяния свою любимую святыню.