RU2365045C2 - Обеспечение защищенного ввода и вывода для доверенного агента в системе с высоконадежной средой исполнения программ - Google Patents
Обеспечение защищенного ввода и вывода для доверенного агента в системе с высоконадежной средой исполнения программ Download PDFInfo
- Publication number
- RU2365045C2 RU2365045C2 RU2004131021/09A RU2004131021A RU2365045C2 RU 2365045 C2 RU2365045 C2 RU 2365045C2 RU 2004131021/09 A RU2004131021/09 A RU 2004131021/09A RU 2004131021 A RU2004131021 A RU 2004131021A RU 2365045 C2 RU2365045 C2 RU 2365045C2
- Authority
- RU
- Russia
- Prior art keywords
- data
- program execution
- execution environment
- user
- secure
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/83—Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/84—Protecting input, output or interconnection devices output devices, e.g. displays or monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2105—Dual mode as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2113—Multi-level security, e.g. mandatory access control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- User Interface Of Digital Computer (AREA)
- Multi Processors (AREA)
Abstract
Изобретение относится к области безопасности компьютеров, в частности к использованию нескольких сред исполнения программ в одном вычислительном устройстве. Техническим результатом является повышение безопасности вводимой и передаваемой в другие системы информации. В способах обеспечения защиты пользовательских данных вывода и ввода в случае, когда первая операционная система-хозяин (хост) применяется совместно со второй высоконадежной операционной системой (связующей системой), первая система предоставляет, по меньшей мере, часть инфраструктуры второй системы. Средство доверенного пользовательского интерфейса (UI) содержит доверенный менеджер ввода и доверенный менеджер вывода. Доверенный менеджер ввода управляет доступом к доверенным данным ввода на основе того, что распределяет дешифрованные данные ввода операционной системе-хозяину при соответствующих условиях или соответствующей процедуре, исполняемой в связующей системе. Доверенный менеджер вывода управляет выводом данных на дисплей и позволяет доверенным агентам связующей системы выводить данные для отображения без обязательного получения подробной информации о зависимости от устройств вывода. 3 н. и 17 з.п. ф-лы, 6 ил.
Description
Область техники, к которой относится изобретение
Настоящее изобретение относится, в общем, к области безопасности компьютеров. В частности, изобретение относится к использованию нескольких сред исполнения программ (например, операционных систем) в одном вычислительном устройстве и обеспечивает средства, которые позволяют сохранить целостность данных ввода и вывода для доверенного агента в наиболее надежной среде исполнения программ из нескольких сред исполнения программ.
Предшествующий уровень техники
В современной обработке данных с использованием вычислительной техники многие задачи, которые могут выполняться в компьютере, требуют определенного уровня безопасности. Чтобы обеспечить определенный уровень безопасности, существует несколько возможностей. Одна из возможностей заключается в том, чтобы выполнять все требующие защиты приложения в компьютере, который полностью отделен от любых возможных незащищенных элементов, или использовать монитор (средство мониторинга) виртуальных машин (VMM) для обеспечения полного разделения между двумя средами исполнения программ (например, операционными системами), выполняемыми в одной компьютерной системе. Однако указанное решение может быть практически невыполнимым. С целью снижения стоимости или для удобства, возможно, потребуется, чтобы защищенная среда исполнения программ использовала ресурсы совместно с ненадежно защищенными приложениями, в связи с чем упомянутые приложения и упомянутые ресурсы могут быть уязвимыми к взлому. Кроме того, в случае применения VMM, поскольку VMM требует полной виртуализации машины и всех ее устройств (и в связи с этим требуется, чтобы VMM обеспечивал собственный драйвер устройства для каждого возможного устройства), VMM малопригоден для машины с открытой архитектурой, которая позволяет дополнять машину практически не ограниченными по типу устройствами.
Один из способов обеспечения возможности совместного использования ресурсов двумя средами исполнения программ заключается в создании компьютерной системы, в которой существует одна «главная» операционная система, которая управляет большинством процессов и устройств в машине, и существует также вторая операционная система. Эта вторая операционная система является малой операционной системой ограниченного назначения, которая совместно с главной операционной системой выполняет определенные ограниченные задачи. Один из способов создания «малой» или «ограниченной по назначению» операционной системы заключается в том, чтобы обеспечить малой операционной системе возможность заимствовать определенную инфраструктуру (например, средство планирования, средство управления памятью, драйверы устройств и т.д.) у «главной» операционной системы. Поскольку VMM фактически изолирует одну операционную систему от другой, то такое совместное использование инфраструктуры практически неосуществимо при использовании VMM.
Существует ряд других способов, позволяющих операционным системам существовать бок о бок в одной машине без использования VMM. Один из таких способов заключается в том, чтобы обеспечить действие одной операционной системы в качестве «хозяина» («хост-системы») по отношению к другой операционной системе. (Операционную систему, по отношению к которой «хост-система» выполняет функцию хозяина, иногда называют «гостем» («гостевой системой»)). В данном случае, операционная система-хозяин предоставляет гостевой системе такие ресурсы, как память и процессорное время. Другой из упомянутых способов заключается в использовании «внешнего ядра». Внешнее ядро управляет определенными устройствами (например, процессором и памятью) а также управляет некоторыми видами взаимодействия между операционными системами, хотя внешнее ядро - в отличие от VMM - не визуализирует машину в целом. Даже при использовании внешнего ядра, возможен случай, когда одна операционная система (например, «главная» операционная система) предоставляет значительную часть инфраструктуры другой операционной системе, и в данном случае главную операционную систему, по-прежнему, можно называть «хозяином» или «хост-системой», а ограниченную операционную систему - «гостевой системой». Как модель с операционной системой-хозяином, так и модель с внешним ядром обеспечивают возможность таких практически осуществимых вариантов взаимодействия между операционными системами, которые поддерживают совместное использование инфраструктуры.
В соответствии с вышеизложенным, указанные способы можно использовать для создания в компьютерной системе, по меньшей мере, двух сред исполнения программ. Одной из таких сред может быть «высоконадежная» операционная система, именуемая в настоящем описании «связующей системой». Операционную систему называют высоконадежной потому, что она обеспечивает определенный уровень надежности своего поведения. Например, связующую систему можно использовать для того, чтобы работать с секретной информацией (например, с криптографическими ключами и т.д.), которая не подлежит разглашению, посредством предоставления защищенной памяти, которая гарантированно не допускает утечки информации в окружающую среду из связующей системы, а также посредством допуска только определенных сертифицированных приложений к исполнению под управлением связующей системы и к защищенной памяти.
В компьютерной системе с двумя средами исполнения программ, одна из которых является связующей системой, возможно, потребуется, чтобы связующая система была гостевой операционной системой, а вторая операционная система, не способная обеспечить аналогичный уровень надежности своего поведения, была операционной системой-хозяином. Это позволяет насколько возможно ограничить размер связующей системы. Ограниченная связующая система обеспечивает более высокую степень уверенности в надежности, которую обеспечивает связующая система.
Однако высоконадежный характер связующей системы требует высокой надежности ввода и вывода в процессы, исполняемые в связующей системе, чтобы ни один процесс или другой объект из операционной системы-хозяина не мог считывать или изменять данные, введенные пользователем, или данные, отображаемые или выводимые для пользователя. Тем не менее, предоставление операционной системе-хозяину возможности манипулировать вводом и выводом и передавать информацию в связующую систему для использования в ее процессах могло бы снизить уровень надежности связующей системы. Кроме того, вводимые данные могут исходить из доверенного пользовательского устройства ввода, которое шифрует вводимые данные, что может создавать необходимость дешифровки данных с использованием ключа, хранящегося в связующей системе, который не должен стать известным хост-системе.
Такие функции ввода/вывода (I/O), как визуализация, определение и обработка пользовательских событий в элементах графического пользовательского интерфейса, которые отображаются для пользователя, часто предоставляются ресурсом, общим для всех процессов. Однако предоставление указанных функциональных возможностей в операционной системе-хозяине требует, чтобы подлежащие визуализации данные передавались ей для отображения. Это создает возможность для совершения попыток разрушения высоконадежного характера процесса, передающего данные во внешнюю систему для визуализации, поскольку данные, передаваемые для визуализации, могут считываться или изменяться объектом хост-системы, который не должен иметь доступа к данным. Аналогичная уязвимость связана с уведомлением о том, что произошло пользовательское событие.
В связи с вышеизложенным, существует потребность в системе, которая лишена недостатков известных систем.
Краткая формулировка сущности изобретения
Безопасность защищенной среды исполнения программ в системе, содержащей упомянутую защищенную среду исполнения программ и вторую среду исполнения программ, поддерживается с использованием средства доверенного пользовательского интерфейса (UI). Средство доверенного UI осуществляет арбитраж вводимых пользователем данных в защищенную среду исполнения программ и данных вывода из процессов, исполняемых в защищенной среде исполнения программ, на дисплей или устройство вывода.
В соответствии с одним из вариантов осуществления, одним из компонентов средства доверенного UI является доверенное средство управления (менеджер) вводом. Когда из доверенного устройства ввода поступают зашифрованные входные данные ввода, доверенный менеджер ввода дешифрует эти данные ввода. Затем выполняется определение того, должны ли данные ввода оставаться в защищенной среде исполнения программ или должны передаваться во вторую среду исполнения программ. Зашифрованные данные ввода передаются во вторую среду исполнения программ только после того, как выполняется определение в защищенной среде исполнения программ.
Одним из компонентов средства доверенного UI является доверенный менеджер вывода. Чтобы обеспечить безопасность вывода, доверенный менеджер вывода выполняет функцию пункта контакта для всех объектов, существующих в защищенной среде исполнения программ и связанных с устройством вывода.
Другие признаки настоящего изобретения очевидны из нижеследующего описания.
Перечень чертежей
Более полное понимание вышеприведенной краткой формулировки сущности изобретения, а также нижеследующего подробного описания предпочтительных вариантов осуществления изобретения достигается ссылками на прилагаемые чертежи. В целях иллюстрации изобретения на чертежах представлены типичные конструкции, осуществляющие изобретение, однако настоящее изобретение не ограничивается конкретными описанными способами и средствами. На чертежах:
Фиг.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, которые могут быть подсоединены через интерфейс 195 вывода на периферийные устройства.
Компьютер 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) - «гостевой системой» или «связующей системой» для проведения различия между ними. Следует понимать, что способы, приведенные в настоящем описании, можно применить к вариантам взаимодействия любых, по меньшей мере, двух операционных систем, исполняемых в одной машине (или даже в одной группе связанных между собой машин).
Защищенные ввод и вывод данных для доверенного агента
Чтобы обеспечить защищенный ввод и вывод данных для связующей системы и процессов, исполняемых в связующей системе, («доверенных агентов» или «агентов связующей системы»), на стороне связующей системы обеспечивается модуль средства доверенного пользовательского интерфейса (UI). Средство доверенного UI обеспечивает общий ресурс для функции защищенного ввода и вывода данных для доверенных агентов.
Чтобы обеспечить высокую надежность пользовательского ввода данных, средство доверенного UI принимает доверенные вводимые пользователем данные. Безопасность ввода данных пользователем можно обеспечить шифрованием вводимых данных. В соответствии c другими вариантами осуществления, безопасность вводимых пользователем данных проверяется другими средствами верификации, например по цифровой подписи, или обеспечивается другими средствами, например с использованием защищенных доверенных аппаратных средств. Средство доверенного UI содержит доверенный менеджер ввода, который в данном случае определяет надлежащего адресата вводимых пользователем данных. В некоторых случаях вводимые пользователем данные должны применяться на стороне хост-системы. В таких случаях вводимые пользователем данные будут помещаться во входной стек на стороне хост-системы для использования операционной системой-хозяином. Однако в некоторых случаях вводимые пользователем данные являются высоконадежными и направляются доверенным менеджером ввода надлежащему адресату, например агенту связующей системы.
Чтобы обеспечить высокую надежность данных вывода, средство доверенного UI принимает доверенные данные, выводимые из агентов и других процессов в доверенный менеджер вывода. Доверенный менеджер вывода принимает упомянутые доверенные данные вывода и манипулирует отображением доверенных данных вывода с использованием способа, зависящего от типа устройства, и на основе способов, которыми компьютерная система 110 обеспечивает доверенные данные вывода для связующей системы. В соответствии с одним из вариантов осуществления, для описания выделенных зон отображения на дисплее применяется зашифрованная память. Указанная зашифрованная память передается на сторону хост-системы. Поскольку память зашифрована, на стороне хост-системы невозможно дешифровать память или создать фиктивное содержимое для выделенных зон отображения. В соответствии с другим вариантом осуществления, применяют защищенную память совместно с встроенным видеоадаптером для этой памяти. Доверенный менеджер вывода дает агентам связующей системы возможность выводить отображаемые данные с использованием способа, зависящего от типа устройства. Хотя описание данных вывода обычно предполагает визуальный вывод данных, специалистам должно быть очевидно, что доверенный менеджер вывода и изложенные в настоящем описании способы можно применить к любому типу доверенных данных вывода (например, аудиоданным, данным для принтера или другим данным вывода) и что настоящее изобретение не ограничено визуальным выводом данных.
Функция защищенного ввода средства доверенного UI
Применительно к вводу, в соответствии с одним из вариантов осуществления, средство доверенного UI управляет доступом к доверенным данным ввода. Если пользователь взаимодействует с программами в компьютерной системе, содержащей высоконадежную операционную систему, то пользователь осуществляет такое взаимодействие при посредстве пользовательского устройства ввода, например мыши 161 или клавиатуры 162 (как показано на фиг.1). В соответствии с одним из вариантов осуществления, некоторые или все пользовательские устройства ввода могут поддерживать шифрование. Указанные устройства шифрования позволяют устройству ввода и связующей системе устанавливать защищенное соединение и, следовательно, могут предотвратить попытку нарушения защиты аппаратных средств. Другие устройства ввода могут быть незашифрованными, однако данные, вводимые с незашифрованных пользовательских устройств ввода, принимаются только для хост-системы, но не для связующей системы или объектов, исполняемых под управлением связующей системы.
Следовательно, чтобы обеспечить защищенный ввод, управление исходным потоком, по меньшей мере, одного потока вводимых пользователем данных осуществляется средством доверенного UI, а не объектом на стороне хост-системы. Фиг.3 представляет блок-схему компьютерной системы с двумя средами исполнения программ и с вводом данных в соответствии с одним из вариантов осуществления настоящего изобретения. Как показано на фиг.3, доверенное устройство ввода 300 передает зашифрованные вводимые пользователем данные в компьютерную систему 110. Зашифрованные данные поступают во входной стек 305 в операционной системе 134(1) на стороне хост-системы. Поскольку данные ввода зашифрованы, операционная система 134(1) на стороне хост-системы не может использовать эти данные. Следовательно, данные ввода защищены от возможной попытки нарушения защиты на стороне хост-системы. Зашифрованные данные передаются в связующую систему 134(2).
На фиг.3, как сторона хост-системы (справа от логического разделителя 202), так и сторона связующей системы (слева от логического разделителя 202) дополнительно разделены на уровень 310 пользователя и уровень 320 ядра. Эти уровни соответствуют различиям между исполнением программ на уровне пользователя и на уровне ядра в операционных системах. Когда связующая система 134(2) принимает зашифрованные введенные пользователем данные, эти данные передаются доверенному поставщику услуг (ТСР) 325 для ввода, в котором дешифруются зашифрованные введенные пользователем данные. В соответствии с некоторыми вариантами осуществления, защищенное устройство ввода 300 должно организовать канал связи, например, с применением совместно используемых ключа и средств верификации для информационного взаимодействия с компьютерной системой 110. Если требуется канал связи с защищенным устройством ввода 300, то TSP 325 устанавливает канал связи с защищенным устройством ввода и управляет данным каналом. В соответствии с другим вариантом осуществления, вводимые пользователем данные могут проверяться, и TSP 325 обеспечивает верификацию вводимых пользователем данных, например, посредством верификации цифровой подписи вводимых пользователем данных.
Затем дешифрованные введенные пользователем данные ввода передаются в средство 330 (TUE) доверенного пользовательского интерфейса (UI), в частности в доверенный менеджер 340 ввода. Доверенный менеджер ввода определяет, должны ли введенные пользователем данные направляться на сторону хост-системы или эти данные предназначены для связующей системы или агента связующей системы, например агента 375 связующей системы. Если данные ввода адресуются для использования на стороне хост-системы, то они перезаписываются во входной стек 305 для использования на стороне хост-системы, как показано стрелкой С 390. Следовательно, дешифрованные введенные пользователем данные попадают на сторону хост-системы только после их анализа на стороне связующей системы.
В соответствии с одним из вариантов осуществления, компьютерная система 110 предоставляет пользователю среду многооконного интерфейса, содержащую элементы графического пользовательского интерфейса, например окна, диалоговые панели и пиктограммы. Элементы графического пользовательского интерфейса могут относиться к процессам на стороне хост-системы или к процессам на стороне связующей системы или «принадлежать» упомянутым процессам. При использовании системы управления окнами на дисплее пользователя могут отображаться окна, т.е. зоны на экране, которые представляют информацию из приложения. Приложение может быть одно- или многооконным. Одно окно среди всех отображаемых окон может быть с «фокусом ввода» (активным). Активное окно может выделяться, например, отличающейся от остальных рамкой вокруг окна.
В традиционных системах управления окнами, если окно является активным, то обычно пользователь может вводить в него информацию. Поэтому, если пользователь вводит информацию с клавиатуры, то во многих случаях операционная система будет передавать введенные с клавиатуры данные в приложение, которому принадлежит активное окно. Некоторые нажатия (коды) клавиш и другие действия ввода (макрокоманды) не могут быть переданы в приложение, которому принадлежит активное окно. Например, в некоторых системах управления окнами существует клавиатурная команда, которая сворачивает все окна. Обработка такой команда будет выполняться системой управления окнами без передачи в приложение, которому принадлежит активное окно. Приложение, которому принадлежит активное окно, может получать уведомление о свертывании окна; однако нажатия клавиш пользователем предназначены системе управления окнами, а не приложению, которому принадлежит активное окно, и не будут передаваться в данное приложение.
В соответствии с одним из вариантов осуществления, средство доверенного UI содержит доверенный менеджер 345 окон. Доверенный менеджер 345 окон управляет окнами и поведением окон на стороне связующей системы. Доверенный менеджер 345 окон действует совместно с доверенным менеджером 340 ввода, чтобы определять, куда передавать введенные пользователем данные. В соответствии с одним из вариантов осуществления, данное решение базируется, по меньшей мере, частично, на том, принадлежит ли активное окно или активный элемент графического пользовательского интерфейса процессу в связующей системе или процессу в хост-системе.
Доверенный менеджер окон может поддерживать элементы оформления окна, например, рамки и реакцию на вводимые пользователем данные для таких функций окна, как расширение, свертывание и изменение размера окон. В соответствии с одним из вариантов осуществления, доверенный менеджер окон выполняет также некоторые операции по интерпретации вводимых пользователем данных. Например, в соответствии с одним из вариантов осуществления, исходные вводимые пользователем данные, указывающие, что нажата кнопка мыши или произведено нажатие клавиши, будут интерпретироваться с превращением в более пригодную форму для использования агентом связующей системы, например агентом 375 связующей системы, аналогично функции, обычно выполняемой менеджером 346 окон хост-системы.
Если данные ввода предназначены для агента связующей системы, например агента 375 связующей системы, то данные из доверенного менеджера ввода будут передаваться надлежащему целевому процессу режима связующей системы. Это действие показано стрелкой A 370, которая показывает передачу введенных пользователем данных в агент 375 связующей системы. В соответствии с одним из вариантов осуществления, другие данные могут передаваться в доверенный менеджер вывода (TOM) 350 или в другие объекты на стороне связующей системы. Отображением элементов графического пользовательского интерфейса управляет доверенный менеджер вывода (TOM) 350, поэтому, как показано стрелкой В 380, перемещения мыши по элементам пользовательского интерфейса на стороне связующей системы передаются в TOM 350.
Фиг.4 представляет схему последовательности операций способа обеспечения защищенного ввода данных из объектов в защищенной среде исполнения программ (в связующей системе) в соответствии с одним из вариантов осуществления настоящего изобретения. На этапе 400 осуществляется прием вводимых пользователем данных ввода из пользовательского устройства ввода. На этапе 410 выполняется определение того, предназначены ли вводимые пользователем данные для связующей системы, например, предназначены ли вводимые пользователем данные для агента, исполняемого в связующей системе. И на этапе 420, если вводимые пользователем данные не предназначены для связующей системы, то вводимые пользователем данные передаются в хост-систему.
Функция защищенного средства средства доверенного UI
Функция защищенного вывода средства доверенного вывода данных обеспечивается средством 330 доверенного UI через доверенный менеджер вывода 350. Фиг.5 представляет блок-схему компьютерной системы с двумя средами исполнения программ и с выводом данных в соответствии с одним из вариантов осуществления настоящего изобретения. Как показано на фиг.5 стрелкой D 500, если агент 375 связующей системы имеет данные вывода для устройства 520 вывода, то эти данные вывода передаются в средство 330 доверенного UI. Чтобы обеспечить безопасность данных вывода, доверенный менеджер вывода 340 выполняет функцию пункта контакта для объектов, существующих на стороне связующей системы, с доверенным поставщиком услуг (TSP) 530 для вывода и тем самым с устройством 520 вывода, как показано стрелкой E 510.
В соответствии с вышеизложенным, существует несколько способов защиты устройства 520 вывода. В соответствии с одним из вариантов осуществления, применяется шифрование. Если устройство 520 вывода принимает данные вывода в зашифрованном формате, который дешифруется надлежащим образом, то упомянутое устройство отдает приоритет упомянутым данным вывода и допускает их вывод на дисплей с наложением на данные вывода не из связующей системы. В соответствии с другим вариантом осуществления, применяется защищенная память. Доверенный менеджер 350 вывода взаимодействует с TSP 530 вывода для поддержания безопасности устройства 520 вывода.
Независимо от типа обеспечения безопасности вывода доверенный менеджер 350 вывода управляет всеми взаимодействиями между объектами на стороне связующей системы и устройством 520 вывода, включая обработку любой информации, выводимой из доверенного менеджера 345 окон в компьютерную систему 110, содержащую доверенный менеджер 345 окон. Выходная информация из окон, принадлежащих агентам связующей системы, например агенту 375 связующей системы, обрабатывается доверенным менеджером 350 вывода. Кроме того, если присутствуют какие-либо другие элементы графического пользовательского интерфейса связующей системы, то отображением этих элементов управляет доверенный менеджер вывода. Например, в тех случаях, когда мышь перемещается по такому окну связующей системы, могут возникнуть затруднения с предоставлением объектам на стороне хост-системы возможности управлять мышью без создания угрозы безопасности. Поэтому манипулирование отображением курсора мыши, когда курсор мыши находится в окне связующей системы, может осуществляться на стороне связующей системы. Комбинирование выходной информации всех окон связующей системы и других элементов графического пользовательского интерфейса связующей системы осуществляется для отображения доверенным менеджером вывода. Кроме того, любое взаимодействие с менеджером окон 346 хост-системы обрабатывает средство 330 доверенного UI.
Функция защищенного вывода средства доверенного UI
В общем случае, для процессов можно предусмотреть службы инфраструктуры диалогов. Эти службы принимают файл, описывающий требуемые элементы графического пользовательского интерфейса для отображения. Например, файл может быть файлом расширяемого языка разметки (XML) с информацией описания диалоговой панели для представления пользователю, содержащей конкретный вопрос, варианты ответов и указание на язык, который должен применяться в представляемой диалоговой панели. Служба инфраструктуры диалогов содержит информацию, которая обеспечивает визуализацию надлежащей диалоговой панели. Однако если полагаться на службу инфраструктуры на стороне хост-системы, то это создает проблемы для безопасности. Поэтому, в соответствии с одним из вариантов осуществления, в средстве 330 доверенного UI предусматривается доверенный интерфейс визуализации. Этот доверенный интерфейс визуализации обеспечивает полную службу инфраструктуры диалогов для агентов связующей системы, например агента 375 связующей системы. В качестве составной части средства 330 доверенного UI доверенный интерфейс визуализации принимает информацию, определяющую, как следует отображать элемент графического пользовательского интерфейса, и доверенный интерфейс визуализации визуализирует требуемый графический пользовательский интерфейс и управляет им, предупреждая агент 375 связующей системы, когда введенные пользователем события происходят на активных элементах графического пользовательского интерфейса внутри него. Тем самым средство 330 доверенного UI обеспечивает ряд услуг локализации, которые необходимы агенту 375 связующей системы для графического пользовательского интерфейса, без потребности использования услуг локализации на стороне хост-системы. Например, средство 330 доверенного UI может обеспечивать создание многоязычных текстов.
В соответствии с одним из вариантов осуществления, в средстве 330 доверенного UI предусмотрен интерфейс непосредственной визуализации. Этот интерфейс непосредственной визуализации может быть предусмотрен дополнительно к доверенному интерфейсу визуализации или даже в случае отсутствия доверенного интерфейса визуализации. Интерфейс непосредственной визуализации обеспечивает средство базовой конфигурации для агента связующей системы, например агента 375 связующей системы, которому требуется осуществлять собственную визуализацию. Агент 375 связующей системы будет вычислять собственные экранные побитовые отображения, не поручая средству 330 доверенного UI их визуализацию по описанию. Средство доверенного UI передает уведомление о действиях, связанных с вводом данных пользователем, через доверенный менеджер 340 ввода.
Фиг.6 представляет схему последовательности операций способа обеспечения защищенного вывода данных из объектов в защищенной среде исполнения программ в соответствии с одним из вариантов осуществления настоящего изобретения. На этапе 600 осуществляется прием данных вывода из конкретного объекта-источника защищенной среды исполнения программ, например связующей системы. На этапе 610 осуществляется защищенная передача данных вывода в устройство вывода.
Заключение
Следует отметить, что вышеприведенные примеры приведены только для пояснения и ни в коем случае не подразумевают ограничение настоящего изобретения. Выше настоящее изобретение описано со ссылками на различные варианты его осуществления, однако специалистам в данной области техники очевидно, что использованные в тексте формулировки являются формулировками, предназначенными для описания и пояснения, а не для ограничения. Кроме того, хотя изобретение изложено со ссылками на конкретные устройства, материалы и варианты осуществления, изобретение не должно ограничиваться специфическими деталями, приведенными в настоящем описании; более того, изобретение охватывает все функционально эквивалентные структуры, способы и применения, которые не выходят за пределы объема, определяемого прилагаемой формулой изобретения. Специалисты в данной области техники на основании приведенных в настоящем описании признаков изобретения могут вносить в него многочисленные модификации и изменения, не выходящие за пределы объема и сущности изобретения во всех его аспектах.
Claims (20)
1. Способ обеспечения защищенного пользовательского интерфейса для взаимодействия с защищенной средой исполнения программ в системе, содержащей упомянутую защищенную среду исполнения программ и вторую среду исполнения программ, при этом способ содержит следующие этапы, на которых
принимают вводимые пользователем зашифрованные данные из пользовательского устройства ввода, предназначенные либо для защищенной среды исполнения программ, либо для второй среды исполнения программ;
дешифруют введенные пользователем зашифрованные данные;
определяют среди по меньшей мере одного элемента графического пользовательского интерфейса активный элемент графического пользовательского интерфейса;
определяют, находится ли процесс, которому принадлежит этот элемент графического пользовательского интерфейса, в защищенной среде исполнения программ или во второй среде исполнения программ;
на основе результата определения того, находится ли процесс, которому принадлежит элемент графического пользовательского интерфейса, в защищенной среде исполнения программ или во второй среде исполнения программ, определяют, предназначены ли упомянутые дешифрованные введенные пользователем данные для защищенной среды исполнения программ;
если упомянутые дешифрованные введенные пользователем данные не предназначены для защищенной среды исполнения программ, передают эти дешифрованные введенные пользователем данные во вторую среду исполнения программ;
если упомянутые дешифрованные введенные пользователем данные предназначены для защищенной среды исполнения программ, определяют конкретный объект назначения в защищенной среде исполнения программ, которому адресованы упомянутые дешифрованные введенные пользователем данные, и передают эти дешифрованные введенные пользователем данные в упомянутый конкретный объект назначения;
принимают данные вывода от конкретного объекта-источника в защищенной среде исполнения программ, но не во второй среде исполнения программ; и
передают защищенным образом упомянутые данные вывода в устройство вывода.
принимают вводимые пользователем зашифрованные данные из пользовательского устройства ввода, предназначенные либо для защищенной среды исполнения программ, либо для второй среды исполнения программ;
дешифруют введенные пользователем зашифрованные данные;
определяют среди по меньшей мере одного элемента графического пользовательского интерфейса активный элемент графического пользовательского интерфейса;
определяют, находится ли процесс, которому принадлежит этот элемент графического пользовательского интерфейса, в защищенной среде исполнения программ или во второй среде исполнения программ;
на основе результата определения того, находится ли процесс, которому принадлежит элемент графического пользовательского интерфейса, в защищенной среде исполнения программ или во второй среде исполнения программ, определяют, предназначены ли упомянутые дешифрованные введенные пользователем данные для защищенной среды исполнения программ;
если упомянутые дешифрованные введенные пользователем данные не предназначены для защищенной среды исполнения программ, передают эти дешифрованные введенные пользователем данные во вторую среду исполнения программ;
если упомянутые дешифрованные введенные пользователем данные предназначены для защищенной среды исполнения программ, определяют конкретный объект назначения в защищенной среде исполнения программ, которому адресованы упомянутые дешифрованные введенные пользователем данные, и передают эти дешифрованные введенные пользователем данные в упомянутый конкретный объект назначения;
принимают данные вывода от конкретного объекта-источника в защищенной среде исполнения программ, но не во второй среде исполнения программ; и
передают защищенным образом упомянутые данные вывода в устройство вывода.
2. Способ по п.1, в котором при приеме вводимых пользователем данных из пользовательского устройства ввода устанавливают защищенный канал связи с упомянутыми вводимыми пользователем данными.
3. Способ по п.1, в котором при приеме вводимых пользователем данных из пользовательского устройства ввода выполняют верификацию упомянутых вводимых пользователем данных.
4. Способ по п.1, в котором при передаче упомянутых дешифрованных введенных пользователем данных в упомянутый конкретный объект назначения интерпретируют упомянутые дешифрованные введенные пользователем данные.
5. Способ по п.1, в котором при защищенной передаче упомянутых данных вывода в упомянутое устройство вывода шифруют упомянутые данные вывода.
6. Способ по п.1, в котором при защищенной передаче упомянутых данных вывода в упомянутое устройство вывода передают упомянутые данные вывода в защищенную память.
7. Способ по п.1, в котором упомянутые данные вывода содержат порцию данных, при этом при защищенной передаче упомянутых данных вывода в упомянутое устройство вывода шифруют упомянутую порцию данных из состава упомянутых данных вывода.
8. Способ по п.7, в котором при защищенной передаче упомянутых данных вывода в упомянутое устройство вывода передают упомянутые данные вывода в защищенную память.
9. Машиночитаемый носитель информации, содержащий машиноисполняемые команды для обеспечения защищенного пользовательского интерфейса для взаимодействия с защищенной средой исполнения программ в системе, содержащей упомянутую защищенную среду исполнения программ и вторую среду исполнения программ, при этом машиноисполняемые команды предназначены для выполнения действий, согласно которым:
принимают вводимые пользователем зашифрованные данные из пользовательского устройства ввода, предназначенные либо для защищенной среды исполнения программ, либо для второй среды исполнения программ;
дешифруют введенные пользователем зашифрованные данные;
определяют среди по меньшей мере одного элемента графического пользовательского интерфейса активный элемент графического пользовательского интерфейса;
определяют, находится ли процесс, которому принадлежит этот элемент графического пользовательского интерфейса, в защищенной среде исполнения программ или во второй среде исполнения программ;
на основе результата определения того, находится ли процесс, которому принадлежит элемент графического пользовательского интерфейса, в защищенной среде исполнения программ или во второй среде исполнения программ, определяют, предназначены ли упомянутые дешифрованные введенные пользователем данные для защищенной среды исполнения программ;
если упомянутые дешифрованные введенные пользователем данные не предназначены для защищенной среды исполнения программ, передают эти дешифрованные введенные пользователем данные во вторую среду исполнения программ;
если упомянутые дешифрованные введенные пользователем данные предназначены для защищенной среды исполнения программ, определяют конкретный объект назначения в защищенной среде исполнения программ, которому адресованы упомянутые дешифрованные введенные пользователем данные, и передают эти дешифрованные введенные пользователем данные в упомянутый конкретный объект назначения;
принимают данные вывода от конкретного объекта-источника в защищенной среде исполнения программ, но не во второй среде исполнения программ; и
передают защищенным образом упомянутые данные вывода в устройство вывода.
принимают вводимые пользователем зашифрованные данные из пользовательского устройства ввода, предназначенные либо для защищенной среды исполнения программ, либо для второй среды исполнения программ;
дешифруют введенные пользователем зашифрованные данные;
определяют среди по меньшей мере одного элемента графического пользовательского интерфейса активный элемент графического пользовательского интерфейса;
определяют, находится ли процесс, которому принадлежит этот элемент графического пользовательского интерфейса, в защищенной среде исполнения программ или во второй среде исполнения программ;
на основе результата определения того, находится ли процесс, которому принадлежит элемент графического пользовательского интерфейса, в защищенной среде исполнения программ или во второй среде исполнения программ, определяют, предназначены ли упомянутые дешифрованные введенные пользователем данные для защищенной среды исполнения программ;
если упомянутые дешифрованные введенные пользователем данные не предназначены для защищенной среды исполнения программ, передают эти дешифрованные введенные пользователем данные во вторую среду исполнения программ;
если упомянутые дешифрованные введенные пользователем данные предназначены для защищенной среды исполнения программ, определяют конкретный объект назначения в защищенной среде исполнения программ, которому адресованы упомянутые дешифрованные введенные пользователем данные, и передают эти дешифрованные введенные пользователем данные в упомянутый конкретный объект назначения;
принимают данные вывода от конкретного объекта-источника в защищенной среде исполнения программ, но не во второй среде исполнения программ; и
передают защищенным образом упомянутые данные вывода в устройство вывода.
10. Машиночитаемый носитель информации по п.9, в котором при приеме вводимых пользователем данных из пользовательского устройства ввода устанавливают защищенный канал связи с упомянутыми вводимыми пользователем данными.
11. Машиночитаемый носитель информации по п.9, в котором при приеме вводимых пользователем данных из пользовательского устройства ввода выполняют верификацию упомянутых вводимых пользователем данных.
12. Машиночитаемый носитель информации по п.9, в котором при передаче упомянутых дешифрованных введенных пользователем данных в упомянутый конкретный объект назначения интерпретируют упомянутые дешифрованные введенные пользователем данные.
13. Машиночитаемый носитель информации по п.9, в котором упомянутые данные вывода содержат порцию данных, при этом при защищенной передаче упомянутых данных вывода в упомянутое устройство вывода шифруют упомянутую порцию данных из состава упомянутых данных вывода.
14. Машиночитаемый носитель информации по п.9, в котором при защищенной передаче упомянутых данных вывода в упомянутое устройство вывода передают упомянутые данные вывода в защищенную память.
15. Средство доверенного пользовательского интерфейса для обеспечения защищенного пользовательского интерфейса для взаимодействия с защищенной средой исполнения программ в системе, содержащей упомянутую защищенную среду исполнения программ и вторую среду исполнения программ, при этом упомянутое средство доверенного пользовательского интерфейса содержит:
доверенного поставщика услуг для ввода, принимающего вводимые пользователем зашифрованные данные из пользовательского устройства ввода и дешифрующего введенные пользователем зашифрованные данные, причем этот доверенный поставщик услуг для ввода функционально связан с упомянутым пользовательским устройством,
доверенное средство управления вводом для определения среди по меньшей мере одного элемента графического пользовательского интерфейса активного элемента графического пользовательского интерфейса;
определения того, находится ли процесс, которому принадлежит этот элемент графического пользовательского интерфейса, в защищенной среде исполнения программ или во второй среде исполнения программ;
определения на основе результата определения того, находится ли процесс, которому принадлежит элемент графического пользовательского интерфейса, в защищенной среде исполнения программ или во второй среде исполнения программ того, предназначены ли упомянутые дешифрованные введенные пользователем данные для защищенной среды исполнения программ; передачи упомянутых дешифрованных введенных пользователем данных во вторую среду исполнения программ, если эти дешифрованные введенные пользователем данные не предназначены для защищенной среды исполнения программ; и, если упомянутые дешифрованные введенные пользователем данные предназначены для защищенной среды исполнения программ, определения конкретного объекта назначения в защищенной среде исполнения программ, которому адресованы упомянутые дешифрованные введенные пользователем данные, и передачи этих дешифрованных введенных пользователем данных в упомянутый конкретный объект назначения; и
доверенное средство управления выводом для приема данных вывода от конкретного объекта-источника в защищенной среде исполнения программ, но не во второй среде исполнения программ, и защищенной передачи упомянутых данных вывода в устройство вывода.
доверенного поставщика услуг для ввода, принимающего вводимые пользователем зашифрованные данные из пользовательского устройства ввода и дешифрующего введенные пользователем зашифрованные данные, причем этот доверенный поставщик услуг для ввода функционально связан с упомянутым пользовательским устройством,
доверенное средство управления вводом для определения среди по меньшей мере одного элемента графического пользовательского интерфейса активного элемента графического пользовательского интерфейса;
определения того, находится ли процесс, которому принадлежит этот элемент графического пользовательского интерфейса, в защищенной среде исполнения программ или во второй среде исполнения программ;
определения на основе результата определения того, находится ли процесс, которому принадлежит элемент графического пользовательского интерфейса, в защищенной среде исполнения программ или во второй среде исполнения программ того, предназначены ли упомянутые дешифрованные введенные пользователем данные для защищенной среды исполнения программ; передачи упомянутых дешифрованных введенных пользователем данных во вторую среду исполнения программ, если эти дешифрованные введенные пользователем данные не предназначены для защищенной среды исполнения программ; и, если упомянутые дешифрованные введенные пользователем данные предназначены для защищенной среды исполнения программ, определения конкретного объекта назначения в защищенной среде исполнения программ, которому адресованы упомянутые дешифрованные введенные пользователем данные, и передачи этих дешифрованных введенных пользователем данных в упомянутый конкретный объект назначения; и
доверенное средство управления выводом для приема данных вывода от конкретного объекта-источника в защищенной среде исполнения программ, но не во второй среде исполнения программ, и защищенной передачи упомянутых данных вывода в устройство вывода.
16. Средство доверенного пользовательского интерфейса по п.15, в котором упомянутый доверенный поставщик услуг для ввода устанавливает защищенный канал связи с упомянутыми вводимыми пользователем данными.
17. Средство доверенного пользовательского интерфейса по п.15, в котором упомянутый доверенный поставщик услуг для ввода выполняет верификацию упомянутых вводимых пользователем данных.
18. Средство доверенного пользовательского интерфейса по п.15, в котором упомянутое доверенное средство управления вводом интерпретирует упомянутые дешифрованные введенные пользователем данные для упомянутого конкретного объекта назначения.
19. Средство доверенного пользовательского интерфейса по п.15, в котором упомянутые данные вывода содержат порцию данных, при этом упомянутое доверенное средство управления выводом шифрует упомянутую порцию данных из состава упомянутых данных вывода.
20. Средство доверенного пользовательского интерфейса по п.15, в котором упомянутое доверенное средство управления выводом передает упомянутые данные вывода в защищенную память.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/693,407 | 2003-10-24 | ||
US10/693,407 US7496768B2 (en) | 2003-10-24 | 2003-10-24 | Providing secure input and output to a trusted agent in a system with a high-assurance execution environment |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2004131021A RU2004131021A (ru) | 2006-04-10 |
RU2365045C2 true RU2365045C2 (ru) | 2009-08-20 |
Family
ID=34394590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2004131021/09A RU2365045C2 (ru) | 2003-10-24 | 2004-10-22 | Обеспечение защищенного ввода и вывода для доверенного агента в системе с высоконадежной средой исполнения программ |
Country Status (10)
Country | Link |
---|---|
US (1) | US7496768B2 (ru) |
EP (1) | EP1526425A3 (ru) |
JP (1) | JP4838505B2 (ru) |
KR (1) | KR101109361B1 (ru) |
CN (1) | CN1609810A (ru) |
AU (1) | AU2004214620B2 (ru) |
BR (1) | BRPI0404095A (ru) |
CA (1) | CA2481040C (ru) |
MX (1) | MXPA04010157A (ru) |
RU (1) | RU2365045C2 (ru) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2602336C2 (ru) * | 2013-10-21 | 2016-11-20 | Интел Корпорейшн | Установление взаимного физического местоположения защищенных сред выполнения |
RU2606556C2 (ru) * | 2015-02-20 | 2017-01-10 | Закрытое акционерное общество "Лаборатория Касперского" | Способ ввода конфиденциальных данных |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7464412B2 (en) | 2003-10-24 | 2008-12-09 | Microsoft Corporation | Providing secure input to a system with a high-assurance execution environment |
US7690033B2 (en) * | 2004-09-28 | 2010-03-30 | Exobox Technologies Corp. | Electronic computer system secured from unauthorized access to and manipulation of data |
US20060075236A1 (en) * | 2004-09-30 | 2006-04-06 | Marek James A | Method and apparatus for high assurance processing |
US7721094B2 (en) * | 2005-05-06 | 2010-05-18 | Microsoft Corporation | Systems and methods for determining if applications executing on a computer system are trusted |
US7752436B2 (en) * | 2005-08-09 | 2010-07-06 | Intel Corporation | Exclusive access for secure audio program |
US20070179897A1 (en) * | 2006-01-27 | 2007-08-02 | Stefan Andersson | Conditional stream access |
US20070192826A1 (en) * | 2006-02-14 | 2007-08-16 | Microsoft Corporation | I/O-based enforcement of multi-level computer operating modes |
US8214296B2 (en) * | 2006-02-14 | 2012-07-03 | Microsoft Corporation | Disaggregated secure execution environment |
JP4233585B2 (ja) | 2006-07-25 | 2009-03-04 | 株式会社エヌ・ティ・ティ・ドコモ | ペリフェラル切替装置及びペリフェラル切替制御装置 |
US7913292B2 (en) * | 2006-10-18 | 2011-03-22 | Microsoft Corporation | Identification and visualization of trusted user interface objects |
JP4998019B2 (ja) * | 2007-03-06 | 2012-08-15 | 富士通株式会社 | 状態表示制御装置 |
JP5066112B2 (ja) * | 2009-02-19 | 2012-11-07 | 株式会社エヌ・ティ・ティ・ドコモ | 情報処理装置 |
US9588803B2 (en) | 2009-05-11 | 2017-03-07 | Microsoft Technology Licensing, Llc | Executing native-code applications in a browser |
US9323921B2 (en) * | 2010-07-13 | 2016-04-26 | Microsoft Technology Licensing, Llc | Ultra-low cost sandboxing for application appliances |
US9495183B2 (en) | 2011-05-16 | 2016-11-15 | Microsoft Technology Licensing, Llc | Instruction set emulation for guest operating systems |
JP5673834B2 (ja) * | 2011-08-30 | 2015-02-18 | 富士通株式会社 | バックアップ方法、およびバックアッププログラム |
US9413538B2 (en) | 2011-12-12 | 2016-08-09 | Microsoft Technology Licensing, Llc | Cryptographic certification of secure hosted execution environments |
US9389933B2 (en) * | 2011-12-12 | 2016-07-12 | Microsoft Technology Licensing, Llc | Facilitating system service request interactions for hardware-protected applications |
US9781118B2 (en) | 2013-03-14 | 2017-10-03 | Intel Corporation | Differentiated containerization and execution of web content based on trust level and other attributes |
US9477823B1 (en) | 2013-03-15 | 2016-10-25 | Smart Information Flow Technologies, LLC | Systems and methods for performing security authentication based on responses to observed stimuli |
KR102210995B1 (ko) * | 2013-04-24 | 2021-02-02 | 삼성전자 주식회사 | 전자 장치에서 보안 정보를 통지하기 위한 장치와 방법 및 이를 위한 컴퓨터로 판독 가능한 기록 매체 |
US9633210B2 (en) | 2013-09-13 | 2017-04-25 | Microsoft Technology Licensing, Llc | Keying infrastructure |
US10097513B2 (en) | 2014-09-14 | 2018-10-09 | Microsoft Technology Licensing, Llc | Trusted execution environment extensible computing device interface |
CN104317651A (zh) * | 2014-10-13 | 2015-01-28 | 浪潮电子信息产业股份有限公司 | 一种基于可信软件栈的接口调用方法 |
US11405383B2 (en) * | 2017-01-13 | 2022-08-02 | Huawei Technologies Co., Ltd. | Authorization credential migration method, terminal device, and service server |
CN113168476A (zh) * | 2018-11-30 | 2021-07-23 | 百可德罗德公司 | 操作系统中个性化密码学安全的访问控制 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT1250834B (it) | 1991-07-31 | 1995-04-21 | Fiat Auto Spa | Sonda per impianti di climatizzazione per veicoli. |
US5596718A (en) * | 1992-07-10 | 1997-01-21 | Secure Computing Corporation | Secure computer network using trusted path subsystem which encrypts/decrypts and communicates with user through local workstation user I/O devices without utilizing workstation processor |
US5537544A (en) | 1992-09-17 | 1996-07-16 | Kabushiki Kaisha Toshiba | Portable computer system having password control means for holding one or more passwords such that the passwords are unreadable by direct access from a main processor |
US6630926B2 (en) | 2000-12-07 | 2003-10-07 | International Business Machines Corporation | Apparatus and method for verifying keystrokes within a computing system |
GB2376761A (en) * | 2001-06-19 | 2002-12-24 | Hewlett Packard Co | An arrangement in which a process is run on a host operating system but may be switched to a guest system if it poses a security risk |
JP2003258795A (ja) * | 2002-02-28 | 2003-09-12 | Hitachi Ltd | コンピュータ集合体運用方法及びその実施システム並びにその処理プログラム |
US7464412B2 (en) * | 2003-10-24 | 2008-12-09 | Microsoft Corporation | Providing secure input to a system with a high-assurance execution environment |
-
2003
- 2003-10-24 US US10/693,407 patent/US7496768B2/en active Active
-
2004
- 2004-09-06 EP EP04021162A patent/EP1526425A3/en not_active Ceased
- 2004-09-09 CA CA2481040A patent/CA2481040C/en not_active Expired - Fee Related
- 2004-09-10 KR KR1020040072652A patent/KR101109361B1/ko active IP Right Grant
- 2004-09-23 BR BR0404095-3A patent/BRPI0404095A/pt not_active IP Right Cessation
- 2004-09-24 JP JP2004278412A patent/JP4838505B2/ja not_active Expired - Fee Related
- 2004-09-28 AU AU2004214620A patent/AU2004214620B2/en not_active Ceased
- 2004-10-15 MX MXPA04010157A patent/MXPA04010157A/es active IP Right Grant
- 2004-10-22 CN CNA2004100882785A patent/CN1609810A/zh active Pending
- 2004-10-22 RU RU2004131021/09A patent/RU2365045C2/ru not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2602336C2 (ru) * | 2013-10-21 | 2016-11-20 | Интел Корпорейшн | Установление взаимного физического местоположения защищенных сред выполнения |
RU2606556C2 (ru) * | 2015-02-20 | 2017-01-10 | Закрытое акционерное общество "Лаборатория Касперского" | Способ ввода конфиденциальных данных |
Also Published As
Publication number | Publication date |
---|---|
CA2481040A1 (en) | 2005-04-24 |
RU2004131021A (ru) | 2006-04-10 |
AU2004214620A1 (en) | 2005-05-12 |
AU2004214620B2 (en) | 2010-04-01 |
JP2005129034A (ja) | 2005-05-19 |
KR20050039548A (ko) | 2005-04-29 |
JP4838505B2 (ja) | 2011-12-14 |
EP1526425A2 (en) | 2005-04-27 |
BRPI0404095A (pt) | 2005-06-21 |
US20050091503A1 (en) | 2005-04-28 |
CN1609810A (zh) | 2005-04-27 |
MXPA04010157A (es) | 2005-04-28 |
EP1526425A3 (en) | 2005-07-20 |
CA2481040C (en) | 2012-03-13 |
KR101109361B1 (ko) | 2012-01-31 |
US7496768B2 (en) | 2009-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2365045C2 (ru) | Обеспечение защищенного ввода и вывода для доверенного агента в системе с высоконадежной средой исполнения программ | |
RU2365988C2 (ru) | Обеспечение защищенного ввода в систему с высоконадежной средой исполнения программ | |
JP6347831B2 (ja) | ハイパーバイザに制御されるシステムにおいてゲスト・イベントを処理するための方法、データ処理プログラム、コンピュータ・プログラム製品、およびデータ処理システム | |
US8646052B2 (en) | Method and apparatus for providing a secure display window inside the primary display | |
US9825945B2 (en) | Preserving data protection with policy | |
US9461819B2 (en) | Information sharing system, computer, project managing server, and information sharing method used in them | |
RU2367006C2 (ru) | Интегрирование высоконадежных функций в приложение посредством разложения приложения | |
KR102295960B1 (ko) | 가상화 기반의 보안 서비스 제공 장치 및 제공 방법 | |
JP4790793B2 (ja) | 安全な仮想プロジェクトルームを作るための方法及びシステム | |
KR20210021285A (ko) | 안전한 컴퓨터 시스템 | |
US11960737B2 (en) | Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof | |
US20200288210A1 (en) | Display device and control method therefor | |
CN117034330B (zh) | 基于macOS的安全防护方法、设备及存储介质 | |
KR20220056049A (ko) | 원격 지원 시스템 및 방법과 이를 수행하기 위한 웹 애플리케이션 서버 | |
CN113553632A (zh) | 一种数据安全传输接口设备、系统及方法 | |
KR20130124888A (ko) | 서버 장치, 클라이언트 장치, 데이터 공유 시스템 및 이의 데이터 공유 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20121023 |