Область техники, к которой относится изобретение
Настоящее изобретение относится, в общем, к области безопасности компьютеров. В частности, изобретение относится к использованию нескольких сред исполнения программ (например, операционных систем) в одном вычислительном устройстве и обеспечивает средства, которые позволяют сохранить целостность входных данных ввода в наиболее надежной среде исполнения программ из нескольких сред исполнения программ.
Предшествующий уровень техники
В современной обработке данных с использованием вычислительной техники многие задачи, которые могут выполняться в компьютере, требуют определенного уровня безопасности. Чтобы обеспечить определенный уровень безопасности, существует несколько возможностей. Одна из возможностей заключается в том, чтобы выполнять все требующие защиты приложения в компьютере, который полностью отделен от любых возможных незащищенных элементов, или использовать монитор (средство мониторинга) виртуальных машин (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 представляет диаграмму состояний для режимов ввода в соответствии с одним из вариантов осуществления настоящего изобретения. Состояние 300 стандартного режима ввода представляет стандартный режим ввода, в котором события передаются в конвейер стандартного режима ввода после анализа, проводимого для удостоверения в том, что эти события не относятся к событиям, которые инициируют переход в состояние 310 режима ввода связующей системы. Состояние 310 режима ввода связующей системы представляет режим ввода связующей системы, в котором стандартный режим ввода не принимает введенных пользователем событий.
Переход между режимами ввода
В соответствии с одним из вариантов осуществления, переход 302 из режима SIM в режим NIM происходит, когда пользователь активирует элемент пользовательского интерфейса, относящийся к связующей системе. В контексте управления окнами переход может происходить, когда пользователь выбирает окно или щелкает мышью на окне, которое находится под управлением объекта, принадлежащего пространству связующей системы. Это действие указывает, что фокус пользовательского ввода переместился в данное окно. В соответствии с одним из вариантов осуществления, для каждого элемента пользовательского интерфейса, находящегося под управлением объекта пространства связующей системы, существует соответствующая «копия», которая сопровождается на стороне хост-системы. Если данная копия элемента пользовательского интерфейса выбирается (например, щелчком мыши на строке заголовка копии элемента пользовательского интерфейса), то совершается переход в режим NIM и фокус ввода переключается на соответствующий элемент пользовательского интерфейса, принадлежащий объекту на стороне связующей системы.
Переход из режима SIM в режим NIM может также происходить, если происходит предполагаемое взаимодействие пользователя с системой. Предполагаемым взаимодействием пользователя с системой является такое взаимодействие пользователя с системой, которое в компьютерной системе 110 всегда будет приводить к особым последствиям. Поэтому может иметь место такое предполагаемое взаимодействие пользователя с системой, последствием которого является переход компьютерной системы 110 в режим ввода связующей системы.
Более полное описание двух упомянутых способов перехода из состояния 300 режима SIM в состояние 310 режима NIM в соответствии с одним из вариантов осуществления приведено на фиг.4. На фиг.4 представлена диаграмма состояний для режимов ввода и более точная информация о переходе в соответствии с одним из вариантов осуществления настоящего изобретения. На фиг.4 показано, что, если пользователь устанавливает фокус ввода на объекте 402 пространства связующей системы, то выполняется переход из режима SIM в режим NIM. Указанное действие относится к одному из видов предполагаемых действий. Кроме того, если пользователь выполняет любое другое предполагаемое действие 404 режима NIM, т.е. действие, результат которого всегда предполагает нахождение компьютера в состоянии режима NIM, то выполняется переход из режима SIM в режим NIM. Кроме того, возможна ситуация, в которой пользователь, когда имеет место состояние 310 режима NIM, может выполнить предполагаемое действие режима NIM. В данном случае, как показано для предполагаемого действия 406 режима NIM, сохраняется состояние 310 режима NIM. Предполагаемым действием режима NIM может быть, например, набор или комбинация нажатий клавиш. Например, когда пользователь одновременно нажимает клавишу "control", клавишу "alt" и клавишу "tab", то данная последовательность нажатий клавиш гарантирует немедленное переключение компьютерной системы 110 в состояние 310 режима NIM.
В соответствии с одним из вариантов осуществления, если указанный переход происходит в результате нажатия комбинации клавиш, то на стороне хост-системы будут приняты данные, имитирующие вводимые пользователем данные, которые интерпретируют любую информацию о нажатии клавиш, которую приняла хост-система. Поэтому в предыдущем примере с последовательностью одновременного нажатия <CTRL><ALT><TAB>, если на стороне хост-системы принята информация в отношении того, что клавиша “control” и клавиша “alt” нажаты, когда нажимают клавишу “tab”, то происходит переход в состояние 310 режима NIM, и на сторону хост-системы поступают данные, имитирующие вводимые пользователем данные, которые указывают, что клавиша “control” и клавиша “alt” отпущены. Поэтому, когда выполняется переход в режим NIM, отслеживание ввода на стороне хост-системы отключается или сбрасывается. Аналогичным образом, когда выполняется переход в режим SIM, на сторону хост-системы поступает информация о состоянии устройств ввода, например, о том, какие клавиши на текущий момент нажаты на клавиатуре, поэтому хост-система может надлежащим образом реагировать на последующие изменения, которые поступают от устройств ввода.
Как видно из фиг.3, предусматривается также переход 312 из режима NIM в режим SIM. Как видно на фиг.4, в соответствии с одним из вариантов осуществления, чтобы обеспечить высокую надежность объектам в области связующей системы, данный переход происходит только в том случае, когда пользователь специально запрашивает такое переключение предполагаемого действия 412 режима SIM. Можно видеть, что существуют два способа перехода из состояния 310 режима NIM в состояние 312 режима SIM, но лишь один способ обратного перехода. В соответствии с одним из вариантов осуществления, не существует такого перехода из состояния 310 режима NIM в состояние 312 режима SIM, который является «симметричным» переходу из 402 из состояния 312 режима SIM в состояние 310 режима NIM, который происходит, когда пользователь устанавливает фокус ввода на объект в области связующей системы. В общем случае, как видно из фиг.3, в соответствии с одним из вариантов осуществления, переходы из режима SIM в режим 310 NIM происходят далеко не симметрично переходам из режима NIM в режим 312 SIM. Данная особенность должна обеспечить повышение безопасности за счет того, что пользователь компьютерной системы 110 должен инициировать любой переход в режим стандартного ввода осознанно, а не случайно.
В соответствии с другими вариантами осуществления, существуют другие способы переключения из режима SIM в режим NIM. Например, если процесс, исполняемый в режиме пользователя в связующей системе («агент связующей системы») достигает точки, в которой данный процесс запрашивает ввода данных пользователем, то данная ситуация вызывает переход из режима SIM в режим NIM. Тем самым обеспечивается дополнительная безопасность. Например, если агент связующей системы выводит конфиденциальную информацию на монитор 191 (фиг.1), то, возможно, агент потребует периодического ввода пароля, чтобы продолжать отображение конфиденциальной информации на мониторе. Если агент связующей системы может принудить к переходу в режим NIM и запрашивает упомянутые данные, то, когда агент не получает пароля, он может удалить конфиденциальную информацию с монитора 191 и выполнить любые другие действия, которые могут потребоваться. Другим событием, которое может инициировать переход в режим NIM, является прием события управления энергопотреблением. Такими событиями могут быть включение питания, выключение питания, переключение на другой источник питания (аккумулятор и т.д.), состояние ожидания (спящий режим) и т.д.
В соответствии с другими вариантами осуществления, существуют другие способы переключения из режима SIM в режим NIM. Например, если применяется система управления окнами, и пользователь закрывает последнее окно, принадлежащее агенту связующей системы, это приводит к переходу из режима NIM в режим SIM. Поскольку режим NIM применяется только для того, чтобы обеспечить ввод для агентов связующей системы, то в данном варианте осуществления после того, как все окна, связанные с любыми агентами связующей системы, становятся закрытыми, необходимость пребывания компьютерной системы 110 в режиме NIM отсутствует, и компьютерная система переключается в режим SIM.
Путь доверенных входных данных в множественной вычислительной среде
В соответствии с одним из вариантов осуществления, некоторые или все пользовательские устройства ввода, например мышь 161 или клавиатура 162 (фиг.1), могут поддерживать шифрование. Указанные зашифрованные устройства позволяют устройству ввода и связующей системе устанавливать защищенное соединение и, следовательно, могут предотвратить попытку нарушения защиты аппаратных средств. В соответствии с одним из вариантов осуществления, режимы NIM и SIM применимы только к входным данным с зашифрованных устройств. Другие устройства ввода могут быть незашифрованными, однако данные, вводимые с незашифрованных пользовательских устройств ввода, принимаются только для хост-системы, но не для связующей системы или объектов, исполняемых под управлением связующей системы.
На фиг.5 представлена блок-схема двух типичных сред исполнения программ, которые поддерживают между собой определенное взаимодействие при определенном разделении в соответствии с одним из вариантов осуществления. Как видно из фиг.5, доверенное устройство ввода 500 передает зашифрованные вводимые пользователем данные в компьютерную систему 110. Зашифрованные данные поступают во входной стек 505 операционной системы-хозяина 134(1). Поскольку данные зашифрованы, они не могут быть использованы операционной системой-хозяином 134(1), а передаются в связующую систему 134(2). Как видно из фиг.5, как сторона хост-системы (слева от логического разделителя 202), так и сторона связующей системы (справа от логического разделителя 202), дополнительно разделены на уровень 510 пользователя и уровень 520 ядра. Указанные уровни соответствуют различиям между исполнением программ на уровне пользователя и на уровне ядра в операционных системах. Когда связующая система 134(2) принимает зашифрованные вводимые пользователем данные, эти данные передаются доверенному поставщику услуг (TSP) 525 для вводимых данных, в котором зашифрованные введенные пользователем данные дешифруются.
Затем дешифрованные данные передаются в средство доверенного пользовательского интерфейса (TUE) 530, в частности в доверенное средство управления (менеджер) 540 ввода. Доверенный менеджер 540 ввода совместно с доверенным менеджером 545 окон (TWinMgr) отслеживает состояние режима ввода. Кроме того, доверенный менеджер 540 ввода и менеджер 545 TWinMgr следят за тем, указывают ли вводимые пользователем данные на событие перехода, и соответственно переключают режим ввода пользователем.
В соответствии с вышеописанным вариантом осуществления, в котором на стороне хост-системы создаются копии элементов пользовательского интерфейса (например, копии окон), для каждого элемента пользовательского интерфейса на стороне связующей системы, когда в копию элемента пользовательского интерфейса поступает событие, связанное с фокусом ввода, менеджер 545 TWinMgr получает уведомление о данном событии, что инициирует переключение в режим NIM. Менеджер 545 TWinMgr действует как менеджер окон по отношению к элементам пользовательского интерфейса на стороне связующей системы. Следовательно, окно на стороне связующей системы, которое запрашивает фокус ввода, будет сигнализировать менеджеру 545 TWinMgr и инициировать переключение в режим NIM.
Если режимом ввода является режим SIM, то большая часть вводимых пользователем данных (в соответствии с вышеприведенным описанием) перезаписывается во входной стек 505 для использования на стороне хост-системы, как показано стрелкой С 590. Одним из исключений являются данные, связанные с перемещениями мыши по элементам пользовательского интерфейса на стороне связующей системы. Обработку элементов пользовательского интерфейса на стороне связующей системы выполняет доверенный менеджер 550 вывода (TOM) и поэтому данные о перемещениях мыши по элементам пользовательского интерфейса на стороне связующей системы передаются в менеджер 550 TOM, как показано стрелкой В 580. К другим исключениям относятся события переключения и вышеописанные события, которые могут передаваться в какой-либо другой объект на стороне связующей системы.
Если режимом ввода является режим NIM, то данные из доверенного менеджера ввода будут передаваться надлежащему целевому процессу режима связующей системы. Это действие иллюстрируется стрелкой A 570, которая показывает передачу вводимых пользователем данных в агент 575 связующей системы. Другие данные могут передаваться в другие объекты на стороне связующей системы. Как указано ранее, в соответствии с одним из вариантов осуществления, некоторые данные, например данные управления громкостью, могут передаваться на сторону хост-системы.
На фиг.6 приведена блок-схема последовательности этапов способа поддержания безопасности защищенной среды исполнения программ в соответствии с одним из вариантов осуществления настоящего изобретения. Как видно из фиг.6, на этапе 600 вводимые пользователем данные поступают из доверенного устройства ввода. Путь данных может быть прямым или непрямым, например таким, который показан на фиг.5. На этапе 610 определяется, находится ли защищенная среда исполнения программ в стандартном режиме ввода. Если находится, то на этапе 620, по меньшей мере, первая часть введенных пользователем данных передается во вторую среду исполнения программ.
Заключение
Следует отметить, что вышеприведенные примеры приведены только для пояснения и ни в коем случае не подразумевают ограничение настоящего изобретения. Выше настоящее изобретение описано со ссылками на различные варианты его осуществления, однако специалистам в данной области техники очевидно, что использованные в тексте формулировки являются формулировками, предназначенными для описания и пояснения, а не для ограничения. Кроме того, хотя изобретение изложено со ссылками на конкретные устройства, материалы и варианты осуществления, изобретение не должно ограничиваться специфическими деталями, приведенными в настоящем описании; более того, изобретение охватывает все функционально эквивалентные структуры, способы и применения, которые не выходят за пределы объема, определяемого прилагаемой формулой изобретения. Специалисты в данной области техники на основании приведенных в настоящем описании признаков изобретения могут вносить в него многочисленные модификации и изменения, не выходящие за пределы объема и сущности изобретения во всех его аспектах.
Изобретения относятся к вычислительной технике, в общем к обеспечению безопасности компьютеров. Техническим результатом является повышение уровня защиты компьютеров. Способ обеспечения защищенного ввода содержит этапы, на которых принимают во второй среде исполнения программ поток вводимых пользователем данных из доверенного устройства ввода, направляют принятый поток из второй среды исполнения программ в защищенную среду исполнения программ, определяют, находится ли защищенная среда исполнения программ в стандартном режиме ввода, осуществляют направление изначально направленного потока вводимых пользователем данных в защищенной среде исполнения программ на основе режима ввода защищенной среды исполнения программ, если защищенная среда находится в стандартном режиме ввода, то переносят, по меньшей мере, первую часть вводимых пользователем данных во вторую среду исполнения программ, определяют, содержат ли упомянутые вводимые пользователем данные пользовательское указание высоконадежного режима ввода (NIM), и если данные содержат пользовательское указание NIM, а защищенная среда исполнения программ не находится в высоконадежном режиме ввода, то переключают защищенную среду исполнения программ в высоконадежный режим ввода. 3 н. и 35 з.п. ф-лы, 6 ил.
1. Способ поддержания безопасности защищенной среды исполнения программ в системе, содержащей упомянутую защищенную среду исполнения программ и вторую среду исполнения программ, обе из которых функционируют на одном компьютерном устройстве, при этом способ содержит следующие этапы, на которых
принимают во второй среде исполнения программ поток вводимых пользователем данных из доверенного устройства ввода,
изначально направляют принятый поток вводимых пользователем данных из второй среды исполнения программ в защищенную среду исполнения программ,
определяют в защищенной среде исполнения программ, находится ли защищенная среда исполнения программ в стандартном режиме ввода,
в последующем осуществляют направление изначально направленного потока вводимых пользователем данных в защищенной среде исполнения программ на основе режима ввода защищенной среды исполнения программ, при этом если защищенная среда исполнения программ находится в стандартном режиме ввода, то переносят по меньшей мере первую часть упомянутых вводимых пользователем данных во вторую среду исполнения программ,
определяют в защищенной среде исполнения программ исходя из изначально направленного потока вводимых пользователем данных в эту защищенную среду исполнения программ, содержат ли упомянутые вводимые пользователем данные пользовательское указание высоконадежного режима ввода (NIM) касаемо того, что защищенная среда исполнения программ должна быть в высоконадежном режиме ввода, и
если упомянутые вводимые пользователем данные содержат пользовательское указание NIM, а защищенная среда исполнения программ не находится в высоконадежном режиме ввода, то выполняют переключение защищенной среды исполнения программ в высоконадежный режим ввода, причем пользовательское указание NIM является единственным путем инициирования перехода от стандартного режима ввода в высоконадежный режим ввода, при этом имеется по меньшей мере два пути перехода из высоконадежного режима ввода в стандартный режим ввода, по меньшей мере один из которых не является симметричным аналогом по отношению к пользовательскому указанию NIM.
2. Способ по п.1, дополнительно содержащий следующий этап, на котором дешифруют упомянутые вводимые пользователем данные.
3. Способ по п.1, дополнительно содержащий следующие этапы, на которых,
если защищенная среда исполнения программ находится в высоконадежном режиме ввода, то определяют конкретный процесс, исполняемый в защищенной среде исполнения программ, которому должны направляться упомянутые вводимые пользователем данные, и направляют упомянутые вводимые пользователем данные упомянутому конкретному процессу.
4. Способ по п.1, в котором пользовательское указание NIM содержит комбинацию нажатий клавиш на клавиатуре.
5. Способ по п.1, в котором пользовательское указание NIM включает в себя программную активацию процесса, исполняемого в защищенной среде исполнения программ.
6. Способ по п.5, в котором при программной активации первого процесса, исполняемого в защищенной среде исполнения программ, выбирают элемент графического пользовательского интерфейса, соответствующий упомянутому процессу.
7. Способ по п.6, в котором упомянутый элемент графического пользовательского интерфейса является копией элемента графического пользовательского интерфейса, отображаемого с использованием второго процесса, при этом упомянутый процесс исполняется во второй среде исполнения программ, а упомянутая копия элемента графического пользовательского интерфейса соответствует защищенному элементу графического пользовательского интерфейса, отображаемому первым процессом.
8. Способ по п.1, дополнительно содержащий следующие этапы, на которых
определяют, содержат ли упомянутые вводимые пользователем данные пользовательское указание стандартного режима ввода (SIM) касаемо того, что защищенная среда исполнения программ должна быть в стандартном режиме ввода, и
если упомянутые вводимые пользователем данные содержат пользовательское указание SIM, а защищенная среда исполнения программ не находится в стандартном режиме ввода, то выполняют переключение защищенной среды исполнения программ в стандартный режим ввода.
9. Способ по п.8, в котором пользовательское указание SIM содержит комбинацию нажатий клавиш на клавиатуре.
10. Способ по п.8, в котором пользовательское указание SIM включает в себя действие, которое приводит к отображению без элемента графического пользовательского интерфейса, который соответствует процессу, исполняемому в защищенной среде исполнения программ.
11. Способ по п.1, в котором если защищенная среда исполнения программ находится в стандартном режиме ввода, а вторая часть упомянутых вводимых пользователем данных соответствует переходам к элементу графического пользовательского интерфейса, отображаемому процессом, исполняемым в защищенной среде исполнения программ, то упомянутые переходы к упомянутому элементу графического пользовательского интерфейса выполняются в защищенной среде исполнения программ.
12. Способ по п.11, в котором упомянутые переходы к элементу графического пользовательского интерфейса, отображаемому процессом, исполняемым в защищенной среде исполнения программ, включают в себя перемещение курсора мыши по элементу графического пользовательского интерфейса, отображаемому процессом, исполняемым в защищенной среде исполнения программ.
13. Способ по п.1, дополнительно содержащий этап, на котором осуществляют переключение защищенной среды исполнения программ в высоконадежный режим ввода, если обнаруживают изменение в управлении энергопотреблением.
14. Машиночитаемый носитель информации, содержащий машиноисполняемые команды для поддержания безопасности защищенной среды исполнения программ в системе, содержащей упомянутую защищенную среду исполнения программ и вторую среду исполнения программ, обе из которых функционируют на одном компьютерном устройстве, при этом машиноисполняемые команды предназначены выполнять действия, согласно которым
принимают во второй среде исполнения программ поток вводимых пользователем данных из доверенного устройства ввода,
изначально направляют принятый поток вводимых пользователем данных из второй среды исполнения программ в защищенную среду исполнения программ,
определяют в защищенной среде исполнения программ, находится ли защищенная среда исполнения программ в стандартном режиме ввода,
в последующем осуществляют направление изначально направленного потока вводимых пользователем данных в защищенной среде исполнения программ на основе режима ввода защищенной среды исполнения программ, при этом если защищенная среда исполнения программ находится в стандартном режиме ввода, то переносят по меньшей мере первую часть упомянутых вводимых пользователем данных во вторую среду исполнения программ,
определяют в защищенной среде исполнения программ исходя из изначально направленного потока вводимых пользователем данных в эту защищенную среду исполнения программ, содержат ли упомянутые вводимые пользователем данные пользовательское указание высоконадежного режима ввода (NIM) касаемо того, что защищенная среда исполнения программ должна быть в высоконадежном режиме ввода, и
если упомянутые вводимые пользователем данные содержат пользовательское указание NIM, а защищенная среда исполнения программ не находится в высоконадежном режиме ввода, то выполняют переключение защищенной среды исполнения программ в высоконадежный режим ввода, причем пользовательское указание NIM является единственным путем инициирования перехода от стандартного режима ввода в высоконадежный режим ввода, при этом имеется по меньшей мере два пути перехода из высоконадежного режима ввода в стандартный режим ввода, по меньшей мере один из которых не является симметричным аналогом по отношению к пользовательскому указанию NIM.
15. Машиночитаемый носитель информации по п.14, в котором мащиноисполняемые команды предназначены выполнять действия, дополнительно содержащие дешифрование упомянутых вводимых пользователем данных.
16. Машиночитаемый носитель информации по п.14, в котором машиноисполняемые команды предназначены выполнять действия, дополнительно содержащие:
определение конкретного процесса, исполняемого в защищенной среде исполнения программ, которому должны направляться упомянутые вводимые пользователем данные, если защищенная среда исполнения программ находится в высоконадежном режиме ввода, и
направление упомянутых вводимых пользователем данных упомянутому конкретному процессу.
17. Машиночитаемый носитель информации по п.14, в котором пользовательское указание NIM содержит комбинацию нажатий клавиш на клавиатуре.
18. Машиночитаемый носитель информации по п.14, в котором пользовательское указание NIM включает в себя программную активацию процесса, исполняемого в защищенной среде исполнения программ.
19. Машиночитаемый носитель информации по п.18, в котором программная активация первого процесса, исполняемого в упомянутой защищенной среде исполнения программ, содержит операцию выбора элемента графического пользовательского интерфейса, соответствующего упомянутому процессу.
20. Машиночитаемый носитель информации по п.19, в котором упомянутый элемент графического пользовательского интерфейса является копией элемента графического пользовательского интерфейса, отображаемой с использованием второго процесса, при этом упомянутый процесс исполняется во второй среде исполнения программ, а упомянутая копия элемента графического пользовательского интерфейса соответствует защищенному элементу графического пользовательского интерфейса, отображаемому первым процессом.
21. Машиночитаемый носитель информации по п.14, в котором машиноисполняемые команды предназначены выполнять действия, дополнительно содержащие:
определение того, содержат ли упомянутые вводимые пользователем данные пользовательское указание стандартного режима ввода (SIM) касаемо того, что защищенная среда исполнения программ должна быть в стандартном режиме ввода; и
переключение защищенной среды исполнения программ в стандартный режим ввода, если упомянутые вводимые пользователем данные содержат пользовательское указание SIM, а защищенная среда исполнения программ не находится в стандартном режиме ввода.
22. Машиночитаемый носитель информации по п.21, в котором пользовательское указание SIM содержит комбинацию нажатий клавиш на клавиатуре.
23. Машиночитаемый носитель информации по п.21, в котором пользовательское указание SIM включает в себя действие, которое приводит к отображению без элемента графического пользовательского интерфейса, который соответствует процессу, исполняемому в защищенной среде исполнения программ.
24. Машиночитаемый носитель информации по п.14, в котором если защищенная среда исполнения программ находится в стандартном режиме ввода, а вторая часть упомянутых вводимых пользователем данных соответствует переходам к элементу графического пользовательского интерфейса, отображаемому процессом, исполняемым в защищенной среде исполнения программ, то упомянутые переходы к упомянутому элементу графического пользовательского интерфейса выполняются в защищенной среде исполнения программ.
25. Машиночитаемый носитель информации по п.24, в котором упомянутые переходы к элементу графического пользовательского интерфейса, отображаемому процессом, исполняемым в защищенной среде исполнения программ, включают в себя перемещение курсора мыши по элементу графического пользовательского интерфейса, отображаемому процессом, исполняемым в защищенной среде исполнения программ.
26. Машиночитаемый носитель информации по п.14, в котором машиноисполняемые команды предназначены выполнять действия, дополнительно содержащие переключение упомянутой защищенной среды исполнения программ в высоконадежный режим ввода, если обнаруживается изменение в управлении энергопотреблением.
27. Средство доверенного пользовательского интерфейса для использования в компьютерной системе, содержащей защищенную среду исполнения программ и вторую среду исполнения программ на одном компьютерном устройстве, при этом упомянутое средство доверенного пользовательского интерфейса содержит:
входной стек в защищенной среде исполнения программ для приема потока вводимых пользователем данных от доверенного устройства ввода и
доверенное средство управления вводом в защищенной среде исполнения программ для получения принятого потока вводимых пользователем данных из входного стека, для определения в защищенной среде исполнения программ того, находится ли защищенная среда исполнения программ в стандартном режиме ввода, и для последующего направления по меньшей мере первой части упомянутых вводимых пользователем данных во вторую среду исполнения программ, если защищенная среда исполнения программ находится в стандартном режиме ввода,
при этом доверенное средство управления вводом выполнено с возможностью определять в защищенной среде исполнения программ исходя из полученного потока вводимых пользователем данных в этой защищенной среде исполнения программ, содержат ли упомянутые вводимые пользователем данные пользовательское указание высоконадежного режима ввода (NIM) касаемо того, что защищенная среда исполнения программ должна быть в высоконадежном режиме ввода, и если упомянутые вводимые пользователем данные содержат пользовательское указание NIM, а защищенная среда исполнения программ не находится в высоконадежном режиме ввода, то выполнять переключение защищенной среды исполнения программ в высоконадежный режим ввода, причем пользовательское указание NIM является единственным путем инициирования перехода от стандартного режима ввода в высоконадежный режим ввода, при этом имеется по меньшей мере два пути перехода из высоконадежного режима ввода в стандартный режим ввода, по меньшей мере один из которых не является симметричным аналогом по отношению к пользовательскому указанию NIM.
28. Средство доверенного пользовательского интерфейса по п.27, в котором упомянутое доверенное средство управления вводом, если защищенная среда исполнения программ находится в высоконадежном режиме ввода, определяет конкретный процесс, исполняемый в защищенной среде исполнения программ, которому должны направляться упомянутые вводимые пользователем данные, и направляет упомянутые вводимые пользователем данные упомянутому конкретному процессу.
29. Средство доверенного пользовательского интерфейса по п.27, в котором пользовательское указание NIM содержит комбинацию нажатий клавиш на клавиатуре.
30. Средство доверенного пользовательского интерфейса по п.27, в котором пользовательское указание NIM включает в себя программную активацию процесса, исполняемого в упомянутой защищенной среде исполнения программ.
31. Средство доверенного пользовательского интерфейса по п.30, в котором программная активация первого процесса, исполняемого в упомянутой защищенной среде исполнения программ, содержит операцию выбора элемента графического пользовательского интерфейса, соответствующего упомянутому процессу.
32. Средство доверенного пользовательского интерфейса по п.31, в котором упомянутый элемент графического пользовательского интерфейса является копией элемента графического пользовательского интерфейса, отображаемой с использованием второго процесса, при этом упомянутый процесс исполняется во второй среде исполнения программ, а упомянутая копия элемента графического пользовательского интерфейса соответствует защищенному элементу графического пользовательского интерфейса, отображаемому первым процессом.
33. Средство доверенного пользовательского интерфейса по п.27, в котором доверенное средство управления вводом определяет, содержат ли упомянутые вводимые пользователем данные пользовательское указание стандартного режима ввода (SIM) касаемо того, что защищенная среда исполнения программ должна быть в стандартном режиме ввода; и если упомянутые вводимые пользователем данные содержат упомянутое пользовательское указание SIM, а защищенная среда исполнения программ не находится в стандартном режиме ввода, то переключает защищенную среду исполнения программ в стандартный режим ввода.
34. Средство доверенного пользовательского интерфейса по п.33, в котором пользовательское указание SIM содержит комбинацию нажатий клавиш на клавиатуре.
35. Средство доверенного пользовательского интерфейса по п.33, в котором пользовательское указание SIM включает в себя действие, которое приводит к отображению без элемента графического пользовательского интерфейса, который соответствует процессу, исполняемому в защищенной среде исполнения программ.
36. Средство доверенного пользовательского интерфейса по п.27, в котором если защищенная среда исполнения программ находится в стандартном режиме ввода, а вторая часть упомянутых вводимых пользователем данных соответствует переходам к элементу графического пользовательского интерфейса, отображаемому процессом, исполняемым в защищенной среде исполнения программ, то упомянутые переходы к упомянутому элементу графического пользовательского интерфейса выполняются в защищенной среде исполнения программ.
37. Средство доверенного пользовательского интерфейса по п.36, в котором упомянутые переходы к элементу графического пользовательского интерфейса, отображаемому процессом, исполняемым в защищенной среде исполнения программ, включают в себя перемещение курсора мыши по элементу графического пользовательского интерфейса, отображаемому процессом, исполняемым в защищенной среде исполнения программ.
38. Средство доверенного пользовательского интерфейса по п.27, в котором доверенное средство управления вводом переключает защищенную среду исполнения программ в высоконадежный режим ввода, если обнаруживается изменение в управлении энергопотреблением.
US 5822435 А, 13.10.1998 | |||
СИСТЕМА ЗАЩИТЫ ВИРТУАЛЬНОГО КАНАЛА КОРПОРАТИВНОЙ СЕТИ С АУТЕНТИФИЦИРУЮЩИМ МАРШРУТИЗАТОРОМ, ПОСТРОЕННОЙ НА КАНАЛАХ И СРЕДСТВАХ КОММУТАЦИИ СЕТИ СВЯЗИ ОБЩЕГО ПОЛЬЗОВАНИЯ | 1999 |
|
RU2163745C2 |
Камера для сварки в контролируемой амосфере | 1976 |
|
SU588083A1 |
Печь для непрерывного получения сернистого натрия | 1921 |
|
SU1A1 |
Авторы
Даты
2009-08-27—Публикация
2004-10-22—Подача