Способ загрузки программного обеспечения
SOFTWARE DOWNLOAD METHOD

Изобретение относится к области вычислительной техники и может быть использовано в микропроцессорных вычислительно-управляющих системах и комплексах для санкционированной загрузки программного обеспечения.
Установка и выполнение программных продуктов подразумевает применение специализированного программного обеспечения - программного загрузчика, отвечающего за загрузку исполняемых файлов и запуск соответствующих процессов. При использовании программного обеспечения, выполняющего специфические и важные задачи, значительное внимание должно быть уделено принципам безопасного функционирования вычислительно-управляющей микропроцессорной системы и ограничению доступа к исполняемому программному обеспечению в соответствии с выделенными пользователям полномочиями. Вышеуказанные принципы организации системы могут быть реализованы с помощью программно-аппаратных возможностей микропроцессорной вычислительно-управляющей системы и введением дополнительных организационных и криптографических мер. В связи с этим наиболее эффективной реализацией микропроцессорной вычислительно-управляющей системы для выполнения программного обеспечения (с точки зрения информационной безопасности исполняемых процессов) является создание указанной системы с применением специализированных программных загрузчиков.
Известен способ загрузки программного обеспечения (см. патент РФ №2481616 приоритет от 16.06.2008 «Способ и устройство для загрузки программного обеспечения», авторы Кивиля Маркус (FI), Экберг Ян-Эрик (FI), МПК G06F 9/445, опубликованный 10.05.2013 Бюл. №13), включающий выполнение первого программного загрузчика; запрос первым программным загрузчиком первого программного кода у сервера начальной загрузки, при этом первый программный код включает второй программный загрузчик и эмулятор доверенного модуля; прием первого программного кода из сервера начальной загрузки; измерение (верификацию) второго программного загрузчика; расширение значения регистра конфигурации результатом измерения второго программного загрузчика; измерение эмулятора доверенного модуля с использованием второго программного загрузчика; расширение значения регистра конфигурации результатом измерения эмулятора доверенного модуля; выполнение второго программного загрузчика и запрос вторым программным загрузчиком второго программного кода у сервера начальной загрузки.
Указанный способ является наиболее близким по технической сущности к заявляемому способу и поэтому выбран в качестве наиболее близкого аналога.
Недостатком известного способа загрузки программного обеспечения является низкая защищенность от несанкционированных действий процесса загрузки программного обеспечения, обусловленная отсутствием реализации иерархического доступа с разграничением прав пользователей в соответствии с выделенными им полномочиями и допуском к ключевой информации на каждом этапе санкционированной загрузки программного обеспечения.
Решаемой технической проблемой является создание способа загрузки программного обеспечения с высокими характеристиками защищенности процесса загрузки.
Достигаемым техническим результатом является повышение защищенности от несанкционированных действий.
Для достижения технического результата в способе загрузки программного обеспечения, заключающемся в выполнении первого программного загрузчика, запросе и приеме первым программным загрузчиком первого программного кода, измерении и выполнении второго программного загрузчика, новым является то, что предварительно, посредством ввода первой ключевой информации, в оперативное запоминающее устройство микропроцессорной вычислительно-управляющей системы с первого внешнего носителя информации санкционирование загружают первый программный загрузчик на выполнение, которое включает монтирование виртуального дискового пространства в оперативном запоминающем устройстве микропроцессорной вычислительно-управляющей системы и загрузку программного кода, хранящегося на первом внешнем носителе информации в преобразованном виде, в первый сегмент смонтированного виртуального дискового пространства, затем вводят вторую ключевую информацию, после чего посредством первого программного загрузчика выполняют ее верификацию и, при положительном результате верификации, осуществляют санкционированную загрузку второго программного загрузчика, хранящегося на втором внешнем носителе информации в преобразованном виде, в оперативное запоминающее устройство микропроцессорной вычислительно-управляющей системы, затем посредством первого программного загрузчика с использованием второй ключевой информации осуществляют обратное преобразование второго программного загрузчика и его верификацию, и, при положительном результате верификации, загружают второй программный загрузчик во второй сегмент виртуального дискового пространства, после чего передают второму программному загрузчику управление последующим процессом загрузки на выполнение программного обеспечения, далее вводят третью ключевую информацию из массива ключевой информации, после чего посредством второго программного загрузчика выполняют ее верификацию и, при положительном результате верификации, осуществляют с использованием третьей ключевой информации санкционированное обратное преобразование программного кода, в результате чего получают программное обеспечение, соответствующее значению введенной третьей ключевой информации, далее посредством второго программного загрузчика выполняют верификацию программного обеспечения и, при положительном результате верификации, загружают программное обеспечение на выполнение в третий сегмент виртуального дискового пространства.
Указанная совокупность существенных признаков позволяет обеспечить организацию иерархического режима доступа с разграничением прав пользователей в соответствии с наделенными полномочиями и допуском к ключевой информации на каждом этапе санкционированной загрузки программного обеспечения, что повышает защищенность от несанкционированных действий процесса загрузки программного обеспечения.
На фиг. 1 схематично изображена структура микропроцессорной вычислительно-управляющей системы, применительно к которой может быть реализован заявляемый способ загрузки программного обеспечения.
На фиг. 2 представлена блок-схема заявляемого способа загрузки программного обеспечения.
Микропроцессорная вычислительно-управляющая система 1 (фиг. 1) для реализации заявляемого способа загрузки программного обеспечения должна иметь в своем составе оперативное запоминающее устройство 8 и блок 4 ввода ключевой информации.
К микропроцессорной вычислительно-управляющей системе 1 подключают первый внешний носитель 2 информации и второй внешний носитель 3 информации.
На первом внешнем носителе 2 информации расположены первый программный загрузчик 5 и программный код 6 (программное обеспечение в преобразованном виде).
На втором внешнем носителе 3 информации расположен второй программный загрузчик 7 (в преобразованном виде).
Первый 5 и второй 7 программные загрузчики никогда не хранятся в долговременной памяти микропроцессорной вычислительно-управляющей системы 1, имеют в своем составе исполняемые программные модули верификации данных, в обработке которых указанные загрузчики принимают участие. Второй программный загрузчик 7 имеет в своем составе программный модуль, выполняющий обратные преобразования программного кода 6 в соответствии с введенными значениями третьей ключевой информации из массива ключевой информации. Заявленный способ не исключает возможности одновременной загрузки на выполнение нескольких видов программного обеспечения в зависимости от введенных значений третьей ключевой информации из массива ключевой информации.
В качестве первого внешнего носителя 2 информации и второго внешнего носителя 3 информации могут быть применены любые известные устройства хранения информации: диск для хранения данных, оптическое запоминающее устройство, флэш-носитель, магнитное запоминающее устройство, карта-памяти, смарт-карта и т.п. при условии наличия у микропроцессорной вычислительно-управляющей системы 1 соответствующих интерфейсов для подключения вышеуказанных устройств хранения информации.
В блок 4 ввода ключевой информации ключевая информация может быть введена как с любых известных устройств ввода информации, так и с любых известных устройств хранения данных при условии наличия у микропроцессорной вычислительно-управляющей системы 1 соответствующих интерфейсов для подключения данных устройств. Для введения первой, второй и третьей ключевой информации на шагах 12, 17, 24 фиг. 2 могут применяться различные виды устройств, выполняющих ввод ключевой информации.
N
N
Микропроцессорная вычислительно-управляющей система 1 может быть реализована на базе функционально и конструктивно законченного изделия, состоящего из набора больших интегральных схем и предназначенного для выполнения определенного набора функций: получение, обработка, передача, преобразование информации и управление. В оперативном запоминающем устройстве 8 микропроцессорной вычислительно-управляющей системы 1 в процессе загрузки программного обеспечения монтируется виртуальное дисковое пространство 9 с сегментами 10, где N - количество сегментов виртуального дискового пространства 9 и равно 1, 2, 3, …. Количество сегментов 10 виртуального дискового пространства 9 должно быть достаточным для выполнения процесса загрузки и запуска на выполнения как минимум одного программного обеспечения (т.е. количество сегментов N должно быть не менее трех). Также микропроцессорная вычислительно-управляющая система 1 должна обеспечивать возможность подключения внешних носителей информации и блока ввода ключевой информации посредством соответствующих интерфейсов.
Для заявляемого способа подразумевается, что перед загрузкой программного обеспечения микропроцессорная вычислительно-управляющая система 1 подключена к источнику электропитания, включена, прошла все необходимые стадии инициализации и конфигурирования, и готова к проведению дальнейших работ.
Способ загрузки программного обеспечения реализуется следующим образом (фиг. 2).
2
1
3
Перед началом выполнения работ к микропроцессорной вычислительно-управляющей системе 1 подключают первый внешний носитель 2 информации (шаг 11), после чего пользователю предоставляется возможность ввода первой ключевой информации. В микропроцессорную вычислительно-управляющую систему 1 посредством блока 4 ввода ключевой информации вводят первую ключевую информацию (шаг 12). Введение первой ключевой информации является инициирующим событием и санкционирует загрузку первого программного загрузчика 5 в оперативное запоминающее устройство 8 (шаг 13), в котором первый программный загрузчик 5 выполняет монтирование виртуального дискового пространства 9 (шаг 14) с количеством сегментов, достаточным для выполнения процесса загрузки и запуска на выполнения как минимум одного программного обеспечения, а исполняемый программный модуль верификации первого программного загрузчика выполняет проверку правильности конфигурации и целостности смонтированного виртуального дискового пространства 9 (шаг 15). После успешного монтирования виртуального дискового пространства 9 и при положительно результате его верификации первый программный загрузчик 5 загружает программный код 6 в первый сегмент 101 виртуального дискового пространства 9 (шаг 16). Далее необходимо к микропроцессорной вычислительно-управляющей системе 1 подключить второй внешний носитель информации 3 (шаг 17), после чего пользователю предоставляется возможность ввода второй ключевой информации. Необходимо ввести в микропроцессорную вычислительно-управляющую систему 1 посредством блока 4 ввода ключевой информации вторую ключевую информацию (шаг 18). Исполняемый программный модуль верификации первого программного загрузчика 5 выполняет проверку правильности и целостности введенной второй ключевой информации (шаг 19), и, при положительном результате верификации второй ключевой информации, первый программный загрузчик 5 санкционирование загружает второй программный загрузчик 7, хранящийся на втором внешнем носителе информации 3 в преобразованном виде, в оперативное запоминающее устройство 8 (шаг 20) и выполняет в оперативном запоминающем устройстве 8 обратное преобразование второго программного загрузчика с помощью введенной второй ключевой информации (шаг 21). Исполняемый программный модуль верификации первого программного загрузчика 5 выполняет проверку правильности и целостности второго программного загрузчика (шаг 22). При положительном результате верификации второго программного загрузчика 7, преобразованного на шаге 21, первый программный загрузчик 5 санкционирование загружает второй программный загрузчик 7 во второй сегмент 10 виртуального дискового пространства 9 (шаг 23) и передает второму программному загрузчику управление дальнейшим процессом загрузки программного обеспечения (шаг 24). Пользователю предоставляется возможность ввода третьей ключевой информации из массива ключевой информации. Далее необходимо ввести в микропроцессорную вычислительно-управляющую систему 1 посредством блока 4 ввода ключевой информации третью ключевую информацию (шаг 25). Исполняемый программный модуль верификации второго программного загрузчика 7, преобразованного на шаге 21, выполняет проверку правильности и целостности введенной третьей ключевой информации (шаг 26). При положительном результате верификации третьей ключевой информации, второй программный загрузчик 7, преобразованный на шаге 21, санкционированно выполняет в оперативном запоминающем устройстве 8 обратное преобразование программного кода 6, хранящегося в преобразованном виде в первом сегменте 10 виртуального дискового пространства 9, с помощью третьей ключевой информации (шаг 27). Исполняемый программный модуль верификации второго программного загрузчика 7, преобразованного на шаге 21, выполняет проверку правильности и целостности программного обеспечения, полученного в ходе обратного преобразования программного кода на шаге 27 (шаг 28). При положительном результате верификации программного обеспечения второй программный загрузчик 7, преобразованный на шаге 21, санкционированно загружает на выполнение программное обеспечение, полученное в ходе обратного преобразования программного кода на шаге 27, в третий сегмент 10 виртуального дискового пространства 9 (шаг 29). Загруженное программное обеспечение запускается на выполнение (шаг 30)
В случае если верификация введенной ключевой информации, виртуального дискового пространства, второго программного загрузчика или программного обеспечения (фиг. 2, шаги 15, 19, 22, 26, 28) прошла с отрицательным результатом, дальнейший процесс загрузки программного обеспечения прекращается, при этом первый программный загрузчик 5 принудительно размонтирует виртуальное дисковое пространство 9 и очищает память оперативного запоминающего устройства 8, после чего приводит микропроцессорную систему 1 в состояние, соответствующее шагу 12 загрузки программного обеспечения.
Вводимая на шаге 25 третья ключевая информация из массива ключевой информации определяет обратное преобразование программного кода, соответствующее только данному значению введенной третьей ключевой информации, при этом другое значение третьей ключевой информации приведет к обратному преобразованию программного кода в другой вид программного обеспечения.
Реализация данного способа позволяет повысить защищенность процесса загрузки программного обеспечения за счет организации иерархического режима доступа с разграничением прав пользователей в соответствии с наделенными им полномочиями и допуском к ключевой информации на каждом этапе санкционированной загрузки программного обеспечения.