СПОСОБ ЗАЩИЩЕННОЙ ЗАГРУЗКИ ОПЕРАЦИОННОЙ СИСТЕМЫ КОМПЬЮТЕРА С ПРОВЕРКОЙ ЦЕЛОСТНОСТИ
METHOD FOR PROTECTED BOOT OF COMPUTER OPERATING SYSTEM WITH INTEGRITY CHECK

Изобретение относится к вычислительной технике, а именно к способам защиты компьютеров от несанкционированного доступа к данным.
На жестком диске персонального компьютера располагается операционная система (ОС), загрузка которой в архитектуре IBM PC-совместимых компьютеров проводится с жесткого диска. При этом информация, необходимая для загрузки (Master Boot Record (MBR), boot record, системные и служебные файлы), находятся на диске в открытом, незашифрованном виде. В противном случае стандартным способом загрузить операционную систему с жесткого диска невозможно.
Для защиты информации от несанкционированного доступа широко применяется метод шифрования информации, хранящейся на жестком диске. После загрузки ОС (системные области и файлы которой не зашифрованы), с помощью специального или аппаратно-программного обеспечения доверенный пользователь может расшифровать информацию и получить к ней доступ.
Многие современные средства предлагают возможность шифрования системного раздела и файлов операционной системы (которые в современных ОС могут содержать конфиденциальную информацию). Но при этом для обеспечения загрузки ОС с жесткого диска на нем остаются незашифрованные области (специализированные загрузчики, хранилища ключевой информации и др.).
Известен способ защищенной загрузки операционной системы компьютера с проверкой целостности, содержащий этапы запуска загрузчика операционной системы, считывания ключа шифрования, проверки целостности операционной системы и загрузки операционной системы (см. опубликованную заявку RU 2005115918, кл. G06F 21/00, опубл. 20.11.2006).
Недостатком известного способа является то, что, поскольку проверка целостности системы проводится без использования ключа шифрования, при загрузке с альтернативного носителя можно внести изменения как в операционную систему, так и в контрольные суммы. Такие изменения недетектируемы и не могут обеспечить доверенную загрузку. Таким образом, известный способ не обеспечивает достаточную защиту системы от несанкционированного вмешательства.
Задачей настоящего изобретения является устранение указанных недостатков. Технический результат заключается в увеличении степени защиты компьютера от несанкционированного доступа к информации, хранящейся на жестком диске. Поставленная задача решается, а технический результат достигается тем, что способ защищенной загрузки операционной системы компьютера с проверкой целостности содержит этапы запуска загрузчика операционной системы, считывания ключа шифрования, проверки целостности операционной системы и загрузки операционной системы, при этом загрузчик предварительно записывают на внешнем носителе, на начальном этапе загрузки зашифровывают все сектора жесткого диска компьютера, перед проверкой целостности операционной системы осуществляют считывание необходимого для этой проверки и последующей загрузки ключа шифрования, который предварительно сохраняют в защищенной памяти внешнего устройства, для доступа к которой требуют аутентификацию пользователя, и таким образом обеспечивают защиту от несанкционированного доступа к данным, размещенным на жестком диске. Предпочтительно, внешний носитель защищают от перезаписи и выполняют в виде двух модулей, на один из которых, представляющий из себя CDROM, USB CDROM или устройство eToken NG Flash, в которое функционально включают чип смарт-карты и Flash-память, которую настраивают таким образом, что она будет представлена для компьютера как USB CDROM, записывают загрузчик, а на второй модуль, представляющий из себя чип смарт-карты, записывают ключ шифрования. При этом базовую подсистему ввода/вывода компьютера настраивают на загрузку с соответствующего вида носителя. Для двухфакторной аутентификации пользователя может быть использован электронный ключ eToken. Целесообразно осуществлять заявленный способ так, что предварительно устанавливают драйвер ядра операционной системы как драйвер-фильтр над драйвером чтения/записи диска; после проверки целостности операционной системы с помощью загрузчика устанавливают в память компьютера обработчик прерывания операций чтения/записи диска и загружают в обработчик ключ шифрования, после чего с помощью обработчика расшифровывают данные с жесткого диска в прозрачном режиме; после установки обработчика с помощью загрузчика считывают расшифрованный обработчиком главный блок начальной загрузки и передают на него управление; после того как управление передано на главный блок, системные файлы и данные расшифровывают в прозрачном режиме установленным ранее драйвером, при этом работу загруженной операционной системы осуществляют в штатном режиме.
Согласно изобретению загрузка ОС осуществляется из полностью зашифрованного состояния. При этом зашифрованы все сектора жесткого диска, включая главный блок начальной загрузки и содержимое ОС. Специальный программный загрузчик располагается на защищенном от перезаписи внешнем носителе, например eToken NG Flash. Данное устройство может представлять собой два USB-устройства, подключенных к собственному USB-хабу, собранному в одном корпусе с одним USB-разъемом. Первое устройство - USB Flash диск, который может быть сконфигурирован таким образом, что область памяти будет представлена для компьютера как USB CDROM, который защищен от перезаписи, а второе устройство - электронный ключ eToken, который используют для двухфакторной аутентификации пользователя (то есть пользователь что-то имеет, например токен или смарт-карту, и что-то знает, например PIN код). В защищенной памяти второго устройства сохранен ключ шифрования ОС, расположенной на жестком диске. Для доступа к памяти требуется аутентификация пользователя.
Базовая подсистема ввода/вывода компьютера должна быть настроена на загрузку с соответствующего вида носителя. Загрузка с внутреннего диска невозможна, так как главная загрузочная запись MBR (главный блок загрузки) зашифрована.
Необходимость защиты компьютерной системы от несанкционированного вмешательства обусловлена желанием пользователя сокрыть от общего доступа информацию, хранящуюся в памяти компьютера. Кроме того, нарушение защиты компьютерной системы может привести к ее работе вне заданного режима. Это может быть вызвано заменой или изменением известной программы, или выполнением ее в состоянии, в котором ее поведение не согласовано. Таким образом, одним из важнейших аспектов обеспечения защиты компьютерной системы в процессе загрузки (когда система наиболее уязвима) является проверка целостности операционной системы и программной среды до начала ее работы.
После включения компьютер начинает выполнять команды, записанные в базовой системе ввода-вывода. После выполнения всех стартовых команд начинается считывание загрузчика выбранной ОС. Согласно изобретению он находится на внешнем носителе, что обеспечивает неизменность загрузчика и исключает необходимость проверки его правильности. Проверка целостности ОС выполняется достоверным программным компонентом. Данная проверка может быть выполнена только с расшифрованными данными и с расшифрованными контрольными суммами. Без ввода ключа загрузка зашифрованной ОС невозможна. Таким образом, перед проверкой правильности состояния (целостности) ОС происходит считывание ключа шифрования из защищенной памяти внешнего устройства. При этом для чтения ключа необходимо ввести PIN-код или пароль к устройству, после этого ключ шифрования используется для проверки целостности.
Подтверждением целостности ОС обеспечивается гарантия того, что до входа в систему не будет загружена несанкционированная версия компонентов ОС (ядра, драйверов и др.). Это важно потому, что после загрузки ОС она начинает выполнение программы входа в систему. И если до этого момента были загружены какие-либо несанкционированные компоненты, то они могут вынудить систему выдать ключ шифрования при несоответствующих условиях. По этим причинам предпочтительно принудительно переводить систему в необходимое состояние во время выполнения загрузчика. Как правило, необходимое для загрузки ОС состояние определяется работой процессора, набора микросхем (чипсета) и памяти. Эти элементы могут быть переведены в заведомо правильное состояние после проверки целостности и перед загрузкой, например, выставлением незадействованной памяти системы на 0 и т.д.
Для подготовки к работе ОС, загружаемой заявленным способом, необходимо осуществить следующие последовательные операции:
- установить драйвер ядра операционной системы как драйвер-фильтр над драйвером чтения/записи диска;
- зафиксировать состояние операционной системы, т.е. вычислить контрольные суммы и сохранить их в отдельном файле операционной системы;
- генерировать ключ шифрования, сохранив его в защищенной памяти внешнего устройства (смарт-карты, USB токена), для доступа к которой (защищенной памяти) требуется аутентификация пользователя (ввод PIN - кода);
- зашифровать все сектора жесткого диска, включая главный блок начальной загрузки (MBR), загрузка операционной системы с жесткого диска без ключа шифрования становится невозможной;
- предварительно записать загрузчик операционной системы на внешний носитель, защищенный от перезаписи (CDROM, eToken NG Flash и др.), загрузка с которого поддерживается базовой подсистемой ввода-вывода;
- настроить базовую систему ввода-вывода (BIOS) на загрузку с указанного носителя.
На этом установка и настройка закончены, операционная система приведена в контролируемое состояние.
Способ защищенной загрузки операционной системы компьютера с проверкой целостности осуществляют следующим образом:
- внешний носитель, на котором записан загрузчик, подключают к компьютеру;
- после включения компьютера базовая подсистема ввода-вывода передает управление на записанный на внешнем носителе загрузчик;
- через USB порт (в случае USB токена) или через считыватель смарт-карт подключают к компьютеру внешнее устройство, на котором записан ключ шифрования (при использовании eToken NG Flash оба устройства подключаются одновременно на первом этапе, поскольку размещены в одном корпусе);
- загрузчик использует электронные ключ, например eToken, для надежной двухфакторной аутентификации пользователя;
- после удачной аутентификации загрузчик считывает ключ шифрования из защищенной памяти внешнего устройства;
- считанный ключ шифрования используется для проверки целостности ОС (проверки нахождения операционной системы в известном состоянии), выполнить такую проверку без ключа шифрования нельзя;
- если процедура проверки выполнена успешно, то загрузчик устанавливает в память компьютера обработчик прерывания операций чтения/записи диска базовой подсистемы ввода-вывода (Int 13 h) и загружает в обработчик ключ шифрования;
- все операции чтения/записи до загрузки ядра операционной системы проходят через установленный обработчик, который в прозрачном режиме расшифровывает данные, прочитанные с диска;
- после установки обработчика, загрузчик считывает главный блок начальной загрузки (уже в расшифрованном виде) и передает на него управление;
- главный блок начальной загрузки выполняет загрузку загрузочного сектора, который загружает операционную систему в штатном режиме;
- после того как управление передано на ядро операционной системы, файлы и данные расшифровываются в прозрачном режиме установленным ранее драйвером;
- работу загруженной ОС осуществляют в штатном режиме.
Указанный алгоритм загрузки обеспечивает более надежную защиту данных на жестком диске, поскольку они хранятся в полностью зашифрованном виде. Поскольку загрузка с полностью зашифрованного жесткого диска невозможна, ее осуществляют с внешнего носителя. Обеспечение указанными средствами двухфакторной аутентификации обеспечивает дополнительную защиту сохраненных на жестком диске данных.