Способ обработки блока данных
Изобретение относится к обработке данных в виртуальной вычислительной среде. Технический результат - повышение безопасности обработки блока данных за счет предотвращения несанкционированного доступа в процессе криптографической обработки этого блока. Способ обработки блока данных, включающий остановку гипервизором работы гостевой операционной системы (ГОС) при наступлении события перехвата и обработку события перехвата по заданной программе внешним монитором виртуальной машины (ВМВМ), при этом гипервизор останавливает работу ГОС при обращении прикладной программы ГОС к криптографической подсистеме ГОС и дает команду ВМВМ на выполнение криптографической операции шифрования блока данных, по этой команде ВМВМ через внешнее устройство запрашивает код доступа к криптографическим ключам и при соответствии кода доступа загружает криптографические ключи в память, загружает в память шифруемый блок данных и отображает его на внешнем устройстве, а после подтверждения с внешнего устройства корректности этого блока данных осуществляет его шифрование с использованием загруженных в память криптографических ключей, затем ВМВМ возвращает зашифрованную информацию в ГОС, после чего гипервизор возобновляет работу ГОС. 1 ил.
Реферат
Изобретение относится к области вычислительной техники и может найти применение при обработке данных в виртуальной вычислительной среде.
Известен способ обработки данных, включающий создание документа и его шифрование в операционной системе компьютера (Б. Шнайер "Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си", издательство "Триумф", 2002 г., с. 8).
Недостаток такого способа заключается в том, что конфиденциальность шифруемого документа может быть нарушена вредоносными программами.
Известен способ обработки данных гостевой операционной системой компьютера, управляемой гипервизором (RU 2412468 C2, 20.02.2011 г.).
Использование гипервизора позволяет обеспечить защиту от вирусных кибератак только корневой операционной системы. При этом вредоносное программное обеспечение, внедряемое в гостевую операционную систему в результате вирусных кибератак, может негативно влиять на работу гостевой операционной системы, вследствие чего конфиденциальность обрабатываемого блока данных может быть нарушена.
Задача, на решение которой направлено предлагаемое изобретение, заключается в повышении безопасности обработки блока данных за счет предотвращения несанкционированного доступа в процессе криптографической обработки этого блока.
Для решения этой задачи, в отличие от известного способа обработки блока данных, включающего остановку гипервизором работы гостевой операционной системы при наступлении события перехвата и обработку события перехвата по заданной программе внешним монитором виртуальной машины, в предлагаемом способе гипервизор останавливает работу гостевой операционной системы при выполнении безусловно перехватываемой инструкции, формируемой криптопровайдером криптографической подсистемы гостевой операционной системы и инициируемой обращением прикладного программного обеспечения к криптографической подсистеме, затем гипервизор дает команду внешнему монитору виртуальной машины на выполнение криптографической операции шифрования блока данных, по этой команде внешний монитор виртуальной машины через внешнее устройство запрашивает код доступа к криптографическим ключам и при соответствии кода доступа загружает криптографические ключи в память, загружает в память шифруемый блок данных и отображает его на внешнем устройстве, а после подтверждения с внешнего устройства корректности этого блока данных осуществляет его шифрование с использованием загруженных в память криптографических ключей, затем внешний монитор виртуальной машины возвращает зашифрованную информацию в гостевую операционную систему, после чего гипервизор возобновляет работу гостевой операционной системы.
Выполнение криптографических операций при остановленной работе гостевой операционной системы позволяет исключить влияние вредоносных программ, присутствующих в гостевой операционной системе, на процесс осуществления криптографических операций, исключить несанкционированный доступ к криптографическим ключам в процессе их передачи в криптографическую подсистему, а также исключить некорректность шифруемого блока данных перед выполнением криптографических операций.
Сущность предлагаемого изобретения поясняется графическими материалами, где фиг. 1 - структурная схема, представляющая компьютерную систему, обеспечивающую передачу обработки события перехвата внешнему монитору виртуальных машин.
На структурной схеме фиг. 1 представлены гипервизор 1 с внешним монитором 2 виртуальной машины 3. Гипервизор 1 управляет гостевой операционной системой (ГОС) 4, которая содержит прикладное программное обеспечение (ППО) 5, криптографическую подсистему 6 с криптопровайдером 7 и модулем шифрования 8. В качестве ГОС 4 используется Windows 7. Под криптопровайдером 7 понимается дополнительный криптопровайдер по отношению к стандартным криптопровайдерам, используемым в ГОС 4. В качестве ППО 5 могут быть использованы MS Office Word, Excel, Power Point и др. Внешний монитор 2 содержит ядро 9, управляющее блоком шифрования 10 и криптографической подсистемой 11. Связь ядра 9 с виртуальной машиной 3 осуществляется через модуль доступа 12, а с системной шиной 13 - через драйвер 14 внешнего устройства, драйвер 15 периферийного ввода и драйвер 16 периферийного вывода. Системная шина 13, драйверы 14, 15 и16 обеспечивают взаимосвязь ядра 9 с устройством ввода 17, устройством вывода 18 и с внешним носителем 19, содержащим криптографические ключи.
Для реализации предлагаемого способа может быть использован процессор Intel IA-32 с поддержкой технологии аппаратной виртуализации VT-x. Вначале пользователь загружает гипервизор 1 с внешним монитором 2. После загрузки гипервизора 1 он запускает виртуальную машину 3 с гостевой операционной системой 4. В ГОС 4 пользователь создает конфиденциальный документ. Для обеспечения конфиденциальности этого документа пользователь инициирует обращение прикладной программы 5 к криптографической подсистеме 6 ГОС 4. На основании этого обращения криптографическая подсистема 6 дает команду криптопровайдеру 7 на формирование данных (структур в памяти RAM и значения регистров CPU) для связи с внешним монитором 2 и на выполнение безусловно перехватываемой инструкции. При выполнении этой инструкции гипервизор 1 останавливает работу ГОС 4 и передает управление внешнему монитору 2. Внешний монитор 2 осуществляет управление обработкой перехвата посредством ядра 9. После получения управления от гипервизора 1 ядро 9 дает команду модулю доступа 12 на считывание блока данных из криптопровайдера 7. Затем с помощью драйвера 16 периферийного вывода выводит полученный блок данных на периферийное устройство вывода 18, например LCD-монитор. После получения подтверждения о целостности от пользователя с внешнего устройства ввода 17, например клавиатуры, через драйвер 15 периферийного ввода ядро 9 передает блок данных в криптографическую подсистему 11, которая запрашивает код доступа к криптографическим ключам у пользователя, находящимся на внешнем носителе 19. По команде ядра 9 драйвер 16 периферийного вывода выводит запрос кода доступа на LCD-монитор и считывает код введенный пользователем через клавиатуру 17. При корректности кода доступа ядро 9 дает команду на получение ключей криптографической подсистемой 11 с внешнего носителя 19. Затем ядро дает команду блоку шифрования 10 на шифрование блока данных. После шифрования блок данных передается модулю доступа 12, который передает их криптопровайдеру 7, что является событием перехвата для гипервизора 1. На основании этого события гипервизор 1 возобновляет работу ГОС 4.
Способ обработки блока данных, включающий остановку гипервизором работы гостевой операционной системы при наступлении события перехвата и обработку события перехвата по заданной программе внешним монитором виртуальной машины, отличающийся тем, что гипервизор останавливает работу гостевой операционной системы при обращении прикладной программы гостевой операционной системы к криптографической подсистеме гостевой операционной системы и дает команду внешнему монитору виртуальной машины на выполнение криптографической операции шифрования блока данных, по этой команде внешний монитор виртуальной машины через внешнее устройство запрашивает код доступа к криптографическим ключам и при соответствии кода доступа загружает криптографические ключи в память, загружает в память шифруемый блок данных и отображает его на внешнем устройстве, а после подтверждения с внешнего устройства корректности этого блока данных осуществляет его шифрование с использованием загруженных в память криптографических ключей, затем внешний монитор виртуальной машины возвращает зашифрованную информацию в гостевую операционную систему, после чего гипервизор возобновляет работу гостевой операционной системы.