Обеспечение защищенного ввода в систему с высоконадежной средой исполнения программ

Иллюстрации

Показать все

Изобретения относятся к вычислительной технике, в общем к обеспечению безопасности компьютеров. Техническим результатом является повышение уровня защиты компьютеров. Способ обеспечения защищенного ввода содержит этапы, на которых принимают во второй среде исполнения программ поток вводимых пользователем данных из доверенного устройства ввода, направляют принятый поток из второй среды исполнения программ в защищенную среду исполнения программ, определяют, находится ли защищенная среда исполнения программ в стандартном режиме ввода, осуществляют направление изначально направленного потока вводимых пользователем данных в защищенной среде исполнения программ на основе режима ввода защищенной среды исполнения программ, если защищенная среда находится в стандартном режиме ввода, то переносят, по меньшей мере, первую часть вводимых пользователем данных во вторую среду исполнения программ, определяют, содержат ли упомянутые вводимые пользователем данные пользовательское указание высоконадежного режима ввода (NIM), и если данные содержат пользовательское указание NIM, а защищенная среда исполнения программ не находится в высоконадежном режиме ввода, то переключают защищенную среду исполнения программ в высоконадежный режим ввода. 3 н. и 35 з.п. ф-лы, 6 ил.

Реферат

Область техники, к которой относится изобретение

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

Предшествующий уровень техники

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

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

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

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

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

Одной из таких операционных систем, которая может исполняться операционной системой-хозяином, является система управления окнами. При использовании системы управления окнами на дисплее пользователя будут отображаться окна, т.е. зоны на экране, которые представляют информацию из приложения. Приложение может быть одно- или многооконным. Одно окно среди всех отображаемых окон может быть с «фокусом ввода» (активным). Активное окно может выделяться, например, отличающейся от остальных рамкой вокруг окна.

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

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

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

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

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

Краткая формулировка сущности изобретения

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

Дешифрование вводимых пользователем данных будет выполняться в защищенной среде исполнения программ.

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

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

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

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

Другие признаки настоящего изобретения очевидны из нижеследующего описания.

Перечень фигур чертежей

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

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

Фиг.2 - блок-схема двух иллюстративных сред исполнения программ, которые поддерживают некоторое взаимодействие и некоторое разделение между собой.

Фиг.3 - диаграмма состояний режимов ввода в соответствии с одним из вариантов осуществления настоящего изобретения.

Фиг.4 - диаграмма состояний режимов ввода с дополнительной информацией о переходах в соответствии с одним из вариантов осуществления настоящего изобретения.

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

Фиг.6 - схема последовательности операций способа поддержания безопасности защищенной среды исполнения программ в соответствии с одним из вариантов осуществления настоящего изобретения.

Подробное описание изобретения

Общие сведения

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

Иллюстративная схема вычислительной среды

Фиг.1 представляет иллюстративную вычислительную среду, в которой можно реализовать аспекты настоящего изобретения. Вычислительная среда 100 представляет собой лишь один пример подходящей вычислительной среды и не должна предполагать никаких ограничений области применения или функций настоящего изобретения. Кроме того, вычислительную среду 100 нельзя трактовать как связанную какой-либо зависимостью или каким-либо требованием, имеющими отношение к какому-либо компоненту или сочетанию компонентов, показанным на схеме иллюстративной операционной среды 100.

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

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

Как видно из фиг.1, иллюстративная система для осуществления настоящего изобретения содержит универсальное вычислительное устройство в виде компьютера 110. Компонентами компьютера 110 могут быть, но не в ограничительном смысле блок обработки 120 данных (процессор), системная память 130 и системная шина 121, которая связывает различные компоненты системы, включая системную память, с блоком обработки 120 данных. Блок обработки 120 данных может представлять собой несколько логических блоков обработки данных, например таких, которые поддерживаются в многопоточном процессоре. Системная шина 121 может относиться к любому из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, которые используют любую из множества шинных архитектур. В качестве примера, но не ограничения такие архитектуры включают в себя шину промышленной стандартной архитектуры (ISA), шину микроканальной архитектуры (MCA), шину расширенной промышленной стандартной архитектуры (EISA), локальную шину Ассоциации по стандартизации в области видеоэлектроники (VESA) и шину межсоединения периферийных компонентов (PCI) (называемая также шиной расширения (Mezzanine)). Системную шину 121 можно также реализовать как двухточечное соединение, коммутирующую структуру и т.п. между взаимодействующими устройствами.

Компьютер 110 обычно содержит набор машиночитаемых носителей информации. Машиночитаемые носители информации могут представлять собой любые доступные носители информации, к которым может обращаться компьютер 110, и содержат как энергозависимые, так и энергонезависимые носители информации, как съемные, так и несъемные носители информации. В качестве примера, но не ограничения машиночитаемые носители информации могут содержать компьютерные носители данных и среды передачи данных. Компьютерные носители данных содержат энергозависимые и энергонезависимые, съемные и несъемные носители информации, реализованные любым способом или технологией для хранения такой информации, как машиночитаемые команды, структуры данных, программные модули или другие данные. Компьютерный носитель данных включает в себя, но не в ограничительном смысле оперативное запоминающее устройство (RAM, ОЗУ), постоянное запоминающее устройство (ROM, ПЗУ), электрически стираемое перепрограммируемое постоянное запоминающее устройство (EEPROM), флэш-память или память, использующую другую технологию, постоянное запоминающее устройство на компакт-диске (CDROM), запоминающее устройство на цифровом многофункциональном диске (DVD) или запоминающее устройство на других оптических дисках, запоминающие устройства на магнитных кассетах, магнитной ленте и магнитных дисках или другие магнитные запоминающие устройства, или любой другой носитель информации, который можно использовать для хранения необходимой информации и к которому может обращаться компьютер 110. Среда передачи информации обычно воплощает машиночитаемые команды, структуры данных, программные модули или другие данные в виде модулированного информационного сигнала, например сигнала несущей или другого транспортного механизма, и содержит любые среды доставки информации. Термин «модулированный информационный сигнал» означает сигнал, у которого, по меньшей мере, одна характеристика устанавливается или изменяется таким образом, чтобы кодировать этот сигнал информацией. В качестве примера, но не ограничения среды передачи информации включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустические, радиочастотные, инфракрасные и другие беспроводные среды. Любые комбинации вышеперечисленных сред и носителей также охватываются понятием «машиночитаемый носитель».

Системная память 130 содержит компьютерные носители данных в виде энергозависимой и/или энергонезависимой памяти, например, постоянного запоминающего устройства (ROM) 131 и оперативного запоминающего устройства (RAM) 132. Базовая система ввода-вывода 133 (BIOS), содержащая основные процедуры, которые обеспечивают передачу информации между элементами компьютера 110, например при пуске, обычно хранится в ROM 131. RAM 132 обычно содержит данные и/или программные модули, к которым может непосредственно обращаться и/или с которыми на текущий момент работает блок обработки 120 данных. В качестве примера, но не ограничения на фиг.1 показаны операционная система 134, прикладные программы 135, другие программные модули 136 и данные 137 программ.

Компьютер 110 может также содержать другие съемные и несъемные, энергозависимые и энергонезависимые компьютерные носители данных. Исключительно для примера на фиг.1 показан накопитель 141 на жестких дисках, который считывает или записывает на несъемный энергонезависимый магнитный носитель, дисковод 151 для магнитного диска, который считывает или записывает на съемный энергонезависимый магнитный диск 152, и дисковод 155 для оптического диска, который считывает или записывает на съемный энергонезависимый оптический диск 156, например, на диск CD ROM или на другой оптический носитель. К другим съемным и несъемным, энергозависимым и энергонезависимым компьютерным носителям данных, которые можно использовать в составе иллюстративной операционной среды, относятся, но не в ограничительном смысле кассеты с магнитными лентами, платы флэш-памяти, цифровые многофункциональные диски, цифровые видеоленты, твердотельные RAM, твердотельные ROM и т.п. Накопитель 141 на жестких дисках обычно подсоединен к системной шине 121 через интерфейс несъемного запоминающего устройства, например интерфейс 140, а дисковод 151 для магнитного диска и дисковод 155 для оптического диска обычно подсоединены к системной шине 121 через интерфейс съемного запоминающего устройства, например интерфейс 150.

Рассмотренные выше и показанные на фиг.1 накопители и дисководы и относящиеся к ним компьютерные носители данных обеспечивают хранение машиночитаемых команд, структур данных, программных модулей и других данных для компьютера 110. Например, на фиг.1 показано, что накопитель 141 на жестких дисках хранит операционную систему 144, прикладные программы 145, другие программные модули 146 и данные программ 147. Следует отметить, что указанные компоненты могут быть идентичны операционной системе 134, прикладным программам 135, другим программным модулям 136 и данным программ 137 или отличаться от них. В изображенном случае операционной системе 144, прикладным программам 145, другим программным модулям 146 и данным программы 147 присвоены другие номера, чтобы показать, что они представляют собой, по меньшей мере, другие копии. Пользователь может вводить команды и информацию в компьютер 110 посредством таких устройств ввода, как клавиатура 162 и указательный манипулятор 161, обычно называемый мышью, трекболом или сенсорным планшетом. Другими устройствами ввода (не показаны) могут быть микрофон, джойстик, игровой планшет, спутниковая тарелка, сканер и т.п. Упомянутые и другие устройства ввода часто подсоединены к блоку обработки 120 данных через интерфейс 160 пользовательского ввода, который связан с системной шиной, но могут быть подсоединены другим интерфейсом и с использованием других шинных структур, например, параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 191 или устройство отображения другого типа также подсоединены к системной шине 121 через интерфейс, например видеоинтерфейс 190. Кроме монитора, компьютеры могут также содержать другие периферийные устройства вывода, например громкоговорители 197 и принтер 196, которые могут быть подсоединены через интерфейс 190 вывода периферийных устройств.

Компьютер 110 может работать в сетевой среде с использованием логических соединений, по меньшей мере, с одним удаленным компьютером, например с удаленным компьютером 180. Удаленный компьютер 180 может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер (PC), одноранговое устройство или другой обычный сетевой узел и обычно содержит многие или все элементы, указанные выше применительно к компьютеру 110, хотя на фиг.1 показано только запоминающее устройство 181. Показанные на фиг.1 логические соединения включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но возможно также использование других сетей. Такие сетевые среды широко применяются в офисных и корпоративных компьютерных сетях, внутрикорпоративных сетях и сети Internet.

При использовании в сетевой среде LAN компьютер 110 подсоединен к LAN 171 через сетевой интерфейс или адаптер 170. При использовании в сетевой среде WAN, компьютер 110 обычно содержит модем 172 или другое устройство для организации связи через WAN 173, такую как Internet. Модем 172, который может быть внутренним или внешним, может быть подсоединен к системной шине 121 через интерфейс 160 пользовательского ввода или с использованием другого соответствующего механизма. В сетевой среде программные модули, упомянутые применительно к компьютеру 110, или их составные части могут храниться в удаленном запоминающем устройстве. В качестве примера, но не ограничения на фиг.1 показано, что удаленные прикладные программы 185 хранятся в запоминающем устройстве 181. Специалистам в данной области техники очевидно, что показанные сетевые соединения приведены для примера и что можно применить другие средства организации линии связи между компьютерами.

Несколько вычислительных сред в одной вычислительной машине

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

На фиг.2 представлена система, в которой две операционные системы 134(1) и 134(2) исполняются в одном компьютере 110. Между двумя операционными системами 134(1) и 134(2) существует определенный логический разделитель 202, который допускает некоторую степень взаимосвязи 204 между операционными системами 134(1) и 134(2), но при этом позволяет, по меньшей мере, одной из операционных систем быть защищенной от событий, которые исходят из другой операционной системы. В примере по фиг.2 операционная система 134(1) является операционной системой-хозяином, а операционная система 134(2) является гостевой операционной системой, например «связующей» системой в описанном выше смысле. Как указано ранее, если операционная система 134(2) является связующей системой, то разделитель 202 следует организовать так, чтобы операционная система 134(2) могла взаимодействовать с операционной системой 134(1) для заимствования инфраструктуры операционной системы 134(1), но чтобы при этом у операционной системы 134(2) оставалась возможность защитить себя от действий (злонамеренных или неумышленных), которые выполняются в операционной системе 134(1) и могли бы вынудить операционную систему 134(2) функционировать иначе, чем предусмотрено спецификациями на поведение системы. (Однако следует понимать, что изобретение не ограничивается вариантом, в котором операционная система 134(2) является связующей системой).

Разделитель 202 между операционными системами 134(1) и 134(2) может быть в отдельных случаях организован при посредстве монитора безопасности. Монитор безопасности является внешним компонентом относительно обеих операционных систем 134(1) и 134(2), который обеспечивает определенные услуги защиты, которыми можно воспользоваться для защиты операционной системы 134(2) от операционной системы 134(1). Например, монитор безопасности может управлять доступом к некоторым аппаратным средствам, может управлять использованием памяти (предоставлять операционной системе 134(2) исключительное право использования некоторых сегментов памяти) или может способствовать передаче данных из операционной системы 134(1) в операционную систему 134(2) с засекречиванием. Следует отметить, что использование монитора безопасности представляет одну из моделей возможных способов защиты операционной системы 134(2) от операционной системы 134(1), хотя использование монитора безопасности не обязательно. В соответствии с другим вариантом, операционная система 134(2) может содержать все функции, необходимые для того, чтобы защитить себя от операционной системы 134(1).

Следует отметить, что на фиг.2 операционная система 134(1) представлена как «хост-система» («система-хозяин»), а операционная система 134(2) - как «гостевая система». В общем, подобная характеризация обусловлена тем, что в приведенных примерах операционная система 134(1) обеспечивает определенную инфраструктуру операционной системы, которую используют обе операционные системы 134(1) и 134(2) (например, драйверы устройств, средства планирования и т.д.), а операционная система 134(2) является «гостевой системой» в том смысле, что в предпочтительном варианте она не располагает упомянутой инфраструктурой, а использует инфраструктуру операционной системы 134(1). Однако следует отметить гибкость параметров средств, которые превращают операционную систему в «хост-систему» или «гостевую систему». Кроме того, следует отметить, что традиционные концепции «хост» и «гостевых» операционных систем предполагают, что хост-система нуждается в том, чтобы защитить себя от действий гостевой системы. Однако в примере по фиг.2 предполагается, что именно гостевая операционная система 134(2) является высоконадежной операционной системой, которая нуждается в том, чтобы защитить себя от операционной системы-хозяина 134(1). В последующих примерах операционная система 134(1) будет называться, как правило, «хост-системой» или «хозяином», а операционная система 134(2) - «гостевой системой» или «связующей системой» для проведения различия между ними. Следует понимать, что способы, приведенные в настоящем описании, можно применить к вариантам взаимодействия любых, по меньшей мере, двух операционных систем, исполняемых в одной машине (или даже в одной группе связанных между собой машин).

Ввод данных пользователем для нескольких вычислительных сред в одной вычислительной машине

Если пользователь взаимодействует с программами в компьютерной системе, содержащей высоконадежную операционную систему, то пользователь осуществляет такое взаимодействие посредством пользовательского устройства ввода, например мыши 161 или клавиатуры 162 (как показано на фиг.1). В соответствии с вышеизложенным, предоставление системе управления окнами, исполняемой в операционной системе-хозяине 134(1), возможности управлять адресацией потока введенных событий может создать условия для нарушения защиты с использованием слабо защищенной операционной системы-хозяина или приложения. Поэтому адресацией потока введенных событий управляет механизм доверенного пользовательского интерфейса, исполняемый в связующей системе 134(2). Определены два режима, в которых может работать компьютер 110. Двумя упомянутыми режимами являются стандартный режим ввода (SIM) и режим ввода связующей системы (NIM).

Ниже приведено подробное описание, однако, как правило, режим ввода связующей системы применяется, когда вводимые пользователем данные должны направляться в процесс, исполняемый в режиме связующей системы, а стандартный режим ввода применяется, когда пользовательские данные ввода не должны направляться в процесс, исполняемый в режиме связующей системы. Следовательно, данные режимы применяются, чтобы обеспечить надежность такого уровня, при котором вводимые пользователем данные не будут ошибочно направляться в объект, связанный с операционной системой-хозяином 134(1), когда упомянутые вводимые пользователем данные должны направляться непосредственно в объект, связанный со связующей системой 134(2). Исключение упомянутой ошибочной адресации позволяет повысить уровень безопасности данных и процессов на стороне связующей системы. Поскольку использование режимов SIM и NIM защищает от попыток нарушения защиты в связующей системе 134(2), необходимо обеспечить защиту управления указанными режимами. Поэтому управление режимами осуществляется связующей системой 134(2) или, если в компьютерной системе 110 существует монитор безопасности, указанное управление может осуществляться монитором безопасности.

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

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

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

В соответствии с одним из вариантов осуществления, предусмотрены исключения для некоторых событий, которые даже в режиме NIM передаются в хост-систему 134(1). Например, в соответствии с одним из вариантов осуществления, команды для светоиндикаторов на клавиатуре, команды управления громкостью и команды управления контрастом и яркостью экрана могут передаваться в хост-систему 134(1). Однако в соответствии с другим вариантом осуществления, данные команды просто игнорируются, когда компьютерная система находится в режиме NIM.

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