Защита информационных процессов на аппаратном уровне. Защита на уровне расширений BIOS. Защита на уровне загрузчиков операционной системы, страница 4

1.  Ранняя идентификация и аутентификация пользователей (до загрузки операционной системы при отсутствии средств аппаратных средств защиты).

2.  Защита от несанкционированной загрузки операционной системы.

3.  Получение специального вида загрузочных носителей.

  Решение этих задач не всегда возможна с помощью расширений BIOS.

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

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

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

  Решение этих проблем связана с программированием модифицированного загрузчика операционной системы.

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

1.  Считывается сектор с номером 1 в дисководе A - с нулевой дорожки нулевой поверхности, либо с дисковода с адресом 80h в зависимости от установки Setup в BIOS.

2.  Считанный код размером 512 байт загружает его с адреса 0:7С00h в оперативную память, после чего управление передается на данный адрес.

  На дискете в этом месте находится программа начальной загрузки (BOOT - сектор), на жестком диске в первом секторе размещается Master Boot Records, который адресует выполнение активного загрузчика операционной системы.

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

·  заместить первичный код загрузчика собственным фрагментом;

·  сохранить исходный код загрузочного сектора (в случае необходимости его выполнения;

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

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

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

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

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

  Код модифицированного загрузчика последовательно производит следующие действия: