Предоставление графического интерфейса пользователя в системе с высокозащищенной исполнительной средой
Иллюстрации
Показать всеИзобретение относится к области компьютерной безопасности. Изобретение позволяет повысить степень защищенности компьютерных систем от взлома. В системе согласно изобретению базовая операционная система используется вместе с высоконадежной операционной системой, при этом базовая система предоставляет, по меньшей мере, некоторую часть инфраструктуры высоконадежной системе. Предотвращается загораживание элементов графического интерфейса пользователя, связанных с высоконадежной операционной системой. Кроме того, сохраняется часть секретной информации, которая по команде может отображаться элементами графического интерфейса пользователя, связанными с высоконадежной операционной системой. Согласование определенных составляющих изображения всех элементов графического интерфейса пользователя, связанных с высоконадежной операционной системой, также способствует идентификации законных элементов. В системе управления окнами базовой операционной системе предоставляется информация общедоступного заголовка для идентификации окна, которым владеет процесс, работающий под управлением высоконадежной операционной системы. Информация секретного заголовка, связанного с этим же окном, используется только в высоконадежной операционной системе. 9 н. и 21 з.п. ф-лы, 9 ил.
Реферат
Область техники, к которой относится изобретение
Настоящее изобретение, в общем, относится к области компьютерной безопасности. В частности, оно относится к использованию нескольких исполнительных сред (например, операционных систем) на одном вычислительном устройстве с графическим интерфейсом пользователя, позволяющим использовать его элементы процессам, протекающим в каждой из упомянутых нескольких исполнительных сред.
Уровень техники
В современных вычислительных системах многие задачи, которые могут выполняться на компьютере, требуют обеспечения некоторого уровня безопасности. Для обеспечения определенного уровня безопасности существует несколько вариантов. Одним из них является выполнение всех безопасных приложений на компьютере, который полностью обособлен от любых, возможно, небезопасных элементов, либо использование монитора виртуальных машин (VMM) для обеспечения полного разделения двух исполнительных сред (например, операционных систем), работающих в одной компьютерной системе. Однако это может оказаться неосуществимым. По соображениям стоимости или удобства может потребоваться совместное использование ресурсов безопасной исполнительной средой и приложениями с негарантированной безопасностью, в результате чего эти приложения и эти ресурсы могут оказаться уязвимыми при осуществлении неправомерных действий. Кроме того, при использовании монитора виртуальных машин, так как он требует полной виртуализации машины и всех ее устройств (в результате чего требуется, чтобы монитор виртуальных машин предоставил для всех возможных устройств его собственный драйвер устройства), то монитор виртуальных машин недостаточно хорошо подходит для машины с открытой архитектурой, для которой подразумевается, что в нее может добавляться почти неограниченное множество устройств.
Одним из способов обеспечения возможности совместного использования ресурсов двумя исполнительными средами является предоставление компьютерной системы, в которой имеется одна "основная" операционная система, управляющая большинством процессов и устройств машины, и где также существует вторая операционная система. Эта вторая операционная система представляет собой небольшую операционную систему ограниченного назначения, расположенную рядом с основной операционной системой и выполняющую определенные ограниченные задачи. Один из способов сделать операционную систему "небольшой" или имеющей "ограниченное назначение" - это позволить системе заимствовать на время определенную инфраструктуру (например, средство планирования, диспетчер памяти, драйверы устройств и т.д.) у "основной" операционной системы. Так как монитор виртуальных машин эффективно изолирует одну операционную систему от другой, такое совместное использование инфраструктуры при его применении является неосуществимым.
Имеются некоторые другие технологии, позволяющие операционным системам существовать рядом на одной машине без использования монитора виртуальных машин. Одна из таких технологий - это заставить одну операционную систему работать в качестве "хозяина" для другой операционной системы. (Операционная система, которой руководит "хозяин", иногда называется "гостем"). В этом случае базовая операционная система предоставляет гостю такие ресурсы, как память и время процессора. Другой подобной технологией является использование "экзоядра". Экзоядро управляет определенными устройствами (например, процессором и памятью), а также управляет определенными типами взаимодействия между операционными системами, несмотря на то что экзоядро, в отличие от монитора виртуальных машин, не виртуализирует всю машину. Даже при использовании экзоядра может возникнуть ситуация, когда одна операционная система (например, "основная" операционная система) предоставляет другой системе значительную часть инфраструктуры, в этом случае основная операционная система по-прежнему может называться "хозяином", а меньшая операционная система - "гостем". Как модель руководства, так и модель экзоядра делает возможными полезные типы взаимодействия между операционными системами, поддерживающими совместное использование инфраструктуры.
Таким образом, эти технологии могут использоваться для обеспечения в компьютерной системе, по меньшей мере, двух исполнительных сред. Одна из них может представлять собой "высокозащищенную" операционную систему, называемую здесь "нексус". Высокозащищенная операционная система - это та, которая обеспечивает определенный уровень защиты с точки зрения ее функционирования. Например, нексус мог бы использоваться для работы с секретной информацией (например, шифровальными ключами и т.д.), которая не должна разглашаться, посредством предоставления скрытой памяти, которая гарантирована от утечки информации во внешнюю относительно нексуса среду, и посредством предоставления возможности только определенным сертифицированным приложениям работать под управлением нексуса и обращаться к этой скрытой памяти.
В компьютерной системе с двумя исполнительными средами, одной из которых является нексус, может потребоваться, чтобы нексус был гостевой операционной системой, а вторая операционная система (от которой не требуется тот же уровень защиты с точки зрения ее функционирования) была базовой операционной системой. Это позволяет нексусу быть, насколько это возможно, небольшим. Небольшой нексус допускает более высокий уровень уверенности в защите, обеспечиваемой нексусом. В результате функции операционной системы выполняются базовой операционной системой.
Одной такой операционной системой, которая может работать под управлением базовой операционной системы, является система управления окнами. При использовании системы управления окнами экран пользовательского монитора будет заполняться окнами, областями на экране, которые отображают информацию, поступающую от приложения. Приложение может иметь одно или более окон.
Когда система управления окнами работает под управлением базовой операционной системы, а не нексуса, она уязвима для неправомерных действий. Одно из таких возможных неправомерных действий известно как подмена. Подмена - это действие, при котором пользователя заставляют поверить, что некоторое оборудование, системное программное обеспечение, приложение или агентское программное обеспечение, либо данное окно, является заслуживающим доверия объектом, даже если это не так. Злоумышленник подменяет заслуживающий доверия объект. Это может применяться с целью хищения пользовательских идентификационных данных или захвата других данных чувствительной природы, которые введены пользователем, думающим, что он использует объект с высокой степенью защиты.
Например, в системе, в которой нексус выполняет банковскую программу, имеющую экран регистрации, злоумышленник может написать программу, которая работает под управлением базовой операционной системы и выводит окно, которое выглядит точно, как экран регистрации банковской программы. Если пользователь обманывается этим окном подмены, то он будет вводить информацию в это окно. Эта информация похищается злоумышленником и может затем быть им использована без ведома пользователя.
Система управления окнами также уязвима для неправомерного действия, известного как обман. При обмане злоумышленник меняет изображение на пользовательском мониторе таким образом, чтобы пользователю казалось, что система является безопасной, когда это не так. Например, компьютерная система может предоставлять пользователю возможность блокировки либо позволять переводить компьютер в спящий или ждущий режим. В этом случае упомянутый обман будет имитировать изображение, выводимое при блокировке системы, ее нахождении в спящем или ждущем режиме. Когда пользователь отвлекается, полагая, что система неактивна и безопасна, злоумышленник осуществляет неавторизованное использование данной системы.
В общем случае программа, осуществляющая неправомерные действия и расположенная на стороне хозяина, может имитировать любую комбинацию пикселей, которую может создать на мониторе законная программа, расположенная на стороне нексуса, или функционирующая система. Однако чтобы поддерживать высокую защищенность нексуса, пользователь должен быть способен отличить законный элемент графического интерфейса пользователя на стороне нексуса от фальшивого.
С точки зрения вышеизложенного существует потребность в системе, которая устраняет недостатки существующего уровня техники.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
В одном из вариантов реализации настоящего изобретения данные, отображаемые на экране монитора для системы, содержащей безопасную исполнительную среду (нексус) и вторую исполнительную среду (хозяин), делаются безопасными с использованием комбинации нескольких технологий. Элементы графического интерфейса пользователя, например окна, которые связаны с процессом, работающим под управлением нексуса, отображаются, не перекрываясь другими элементами графического интерфейса пользователя.
Кроме того, используется секрет пользователя нексуса, который отображается в элементе графического интерфейса пользователя. Это отображение может быть постоянным или среди прочих альтернативных вариантов может производиться по запросу. В дополнение к этому обрамления окон могут согласовываться по цвету или отображаемой графической информации, чтобы в сознании пользователя связать вместе безопасные окна и, таким образом, более отчетливо выделить фальшивые окна. Эти обрамления могут изменяться через определенные интервалы времени по запросу, либо если системное событие вызывает данное изменение.
Если для соответствующих окон нексуса используется сопровождающее окно, для окна нексуса может применяться информация секретного заголовка, в то время как в сопровождающем окне применяется общедоступный заголовок. Это позволяет процессу нексуса, который устанавливает заголовки, выбирать информацию, которая будет присваиваться, возможно, небезопасному сопровождающему окну.
Ниже описаны другие отличительные особенности настоящего изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Приведенное выше общее описание, так же как и последующее подробное описание предпочтительных вариантов реализации настоящего изобретения, лучше понимается при прочтении с использованием приложенных чертежей. В целях иллюстрации изобретения на чертежах изображено примерное его воплощение, однако данное изобретение не ограничивается конкретными описанными способами и средствами. На чертежах:
Фиг.1 - структурная схема примерной вычислительной среды, в которой могут быть реализованы аспекты настоящего изобретения;
Фиг.2 - структурная схема двух примерных исполнительных сред, которые осуществляют некоторое взаимодействие друг с другом и поддерживают некоторую обособленность друг от друга;
Фиг.3(а) - структурная схема изображения;
Фиг.3(b) - структурная схема изображения согласно одному из вариантов реализации настоящего изобретения;
Фиг.4 - блок-схема способа поддержания безопасности данных, выводимых на экран монитора;
Фиг.5 - блок-схема способа поддержания безопасности данных, выводимых на экран монитора;
Фиг.6 - структурная схема изображения согласно одному из вариантов реализации настоящего изобретения;
Фиг.7 - блок-схема способа поддержания безопасности данных, выводимых на экран монитора;
Фиг.8 - блок-схема способа поддержания безопасности данных, выводимых на экран монитора.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Обзор
Когда две исполнительные среды, например операционные системы, работают рядом на одной машине, при этом одна из этих сред является высокозащищенной исполнительной средой, которая поддерживается в соответствии с определенными стандартами безопасности, для пользователя может оказаться важной возможность распознать, какие отображаемые элементы графического интерфейса пользователя связаны с процессами, выполняемыми под управлением высокозащищенной операционной системы. Как рассмотрено выше, злоумышленник, выводящий изображение элемента графического интерфейса пользователя с использованием исполнительной среды, расположенной на стороне "хозяина" (не высокозащищенной), может попытаться убедить пользователя, что элемент графического интерфейса пользователя представляет собой элемент, возникающий при выполнении высокозащищенного процесса. Чтобы предотвратить такие неправомерные действия, настоящим изобретением предлагаются способы, позволяющие пользователю распознать, какие элементы графического интерфейса пользователя создаются в высокозащищенной исполнительной среде.
Примерная организация вычислительной среды
На Фиг. 1 изображен пример вычислительной среды, с использованием которой может быть реализовано данное изобретение. Вычислительная среда 100 является всего лишь одним из примеров подходящей вычислительной среды и не подразумевает какого-либо ограничения объема использования или функциональных возможностей данного изобретения. Кроме того, вычислительная среда 100 не должна восприниматься как зависящая от какого-либо одного из изображенных ее компонентов или их комбинации либо как требующая их наличия.
Данное изобретение можно использовать с множеством других вычислительных сред или конфигураций вычислительной системы общего или специального назначения. Примеры хорошо известных вычислительных систем, сред и/или конфигураций, которые могут быть пригодны для использования с настоящим изобретением, включают персональные компьютеры, серверы, карманные или портативные устройства, мультипроцессорные системы, системы на основе микропроцессоров, приставки, программируемую бытовую электронику, сетевые ПК, миникомпьютеры, универсальные ЭВМ, встроенные системы, распределенные вычислительные среды, содержащие любые из перечисленных систем или устройств и т.п., но не ограничиваются упомянутым.
Настоящее изобретение может быть описано в общем контексте исполняемых компьютером инструкций, например программных модулей, выполняемых компьютером. В основном программные модули включают процедуры, программы, объекты, компоненты, структуры данных и т.д., выполняющие конкретные задачи или использующие конкретные абстрактные типы данных. Настоящее изобретение также может быть реализовано в распределенных вычислительных средах, где задачи выполняются устройствами удаленной обработки, которые соединены посредством сети связи или другой среды передачи данных. В распределенной вычислительной среде программные модули и другие данные находятся в компьютерных средствах хранения как локального, так и удаленного компьютера, включающих запоминающие устройства.
Как показано на Фиг. 1, примерная система, реализующая данное изобретение на практике, включает вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать процессор 120, системную память 130 и системную шину 121, соединяющую различные компоненты системы, включая системную память, с процессором 120, но не ограничиваются упомянутым. Процессор 120 может представлять собой множество логических процессоров, например, входящих в состав процессора многопоточной обработки. Системная шина 121 может относиться к любому из нескольких типов шинных архитектур, включая шину памяти или контроллер памяти, шину периферийных устройств и локальную шину на основе любой из множества шинных архитектур. В качестве примера, не подразумевающего ограничение, подобные архитектуры включают шину ISA (архитектура промышленного стандарта), шину MCA (микроканальная архитектура), шину EISA (расширенная архитектура промышленного стандарта), локальную шину VESA (стандарт высокоскоростной локальной видеошины) и шину PCI (локальная шина для системных плат), так же известную как шина Mezzanine. Системная шина 121 может также быть реализована как соединение "точка-точка", коммутирующая матрица или т.п. из числа устройств связи.
Компьютер 110 в типичном случае содержит множество машиночитаемых носителей информации. Машиночитаемые носители могут представлять собой любые существующие носители, к которым может обращаться компьютер 110, и включают как энергозависимые, так и энергонезависимые носители, съемные и несъемные носители. В качестве примера, не подразумевающего ограничение, машиночитаемые носители могут включать компьютерные средства хранения и коммуникационные среды. Компьютерные средства хранения включают как энергозависимые, так и энергонезависимые, съемные и несъемные носители, использующие любой способ или технологию хранения такой информации, как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные средства хранения включают ОЗУ (оперативное запоминающее устройство), ПЗУ (постоянное запоминающее устройство), ЭСППЗУ (электрически стираемое программируемое постоянное запоминающее устройство), флэш-память или другие виды памяти, ПЗУ на компакт-диске (CD-ROM), цифровые универсальные диски (DVD) или другие оптические диски, кассеты с магнитной лентой, магнитную ленту, магнитные диски или другие магнитные устройства хранения информации, или любой другой носитель, который может использоваться для хранения требуемой информации и к которому может обращаться компьютер 110. Коммуникационная среда в типичном случае воплощает машиночитаемые инструкции, структуры данных, программные модули или другие данные в виде модулированного сигнала данных, например несущей волны или другого механизма передачи, и включает любую среду доставки информации. Термин "модулированный сигнал данных" означает сигнал, одна или более характеристик которого заданы или изменены таким образом, чтобы закодировать информацию в данном сигнале. В качестве примера, не подразумевающего ограничение, коммуникационная среда включает проводную среду, например проводную сеть или прямое соединение, и беспроводную среду, например акустическую, радиочастотную, инфракрасную и другую беспроводную среду. Комбинации любого из вышеупомянутого также представляют собой машиночитаемую среду.
Системная память 130 содержит компьютерное средство хранения в виде энергозависимой и/или энергонезависимой памяти, например ПЗУ 131 и ОЗУ 132. Базовая система ввода/вывода 133 (BIOS), содержащая основные процедуры, помогающие элементам компьютера 110 обмениваться информацией, например, во время запуска в типичном случае хранится в ПЗУ 131. ОЗУ 132 в типичном случае содержит данные и/или программные модули, которые непосредственно доступны процессору 120 и/или используются им в текущий момент. В качестве примера, не подразумевающего ограничение, на Фиг.1 изображена операционная система 134, прикладные программы 135, другие программные модули 136 и программные данные 137.
Компьютер 110 может также содержать другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные средства хранения. Только в качестве примера на Фиг. 1 изображены накопитель 141 на жестком диске, считывающий информацию с несъемного энергонезависимого магнитного носителя или записывающий информацию на него, накопитель 151 на магнитных дисках, считывающий информацию со съемного энергонезависимого магнитного диска 152 или записывающий информацию на него, и привод 155 оптических дисков, считывающий информацию со съемного энергонезависимого оптического диска 156, например диска CD-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). С системной шиной 121 через интерфейс, например видеоинтерфейс 190, также соединен монитор 191 или другое устройство отображения информации. Кроме монитора компьютеры могут также содержать другие периферийные устройства вывода, например динамики 197 и принтер 196, которые могут быть соединены через интерфейс 195 периферийных устройств вывода.
Компьютер 110 может работать в сетевой среде, используя логические соединения с одним или более удаленных компьютеров, например удаленным компьютером 180. Удаленный компьютер 180 может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой ПК, устройство, соединенное через одноранговую сеть, или другой общий сетевой узел и в типичном случае содержит многие или все элементы, описанные выше применительно к компьютеру 110, несмотря на то что на Фиг.1 показано только запоминающее устройство 181. Логические соединения, изображенные на Фиг.1, включают локальную сеть (ЛВС) 171 и глобальную сеть (ГВС) 173, но могут также включать и другие сети. Такие сетевые среды представляют собой офисные серверы, компьютерные сети предприятий, сети интранет и Интернет.
При использовании в сетевой среде ЛВС компьютер 110 соединен с ЛВС 171 посредством сетевого интерфейса или адаптера 170. При использовании в сетевой среде ГВС компьютер 110 в типичном случае включает в себя модем 172 или другие средства для установления связи в ГВС 173, например Интернет. Модем 172, который может быть внутренним или внешним, может быть соединен с системной шиной 121 посредством интерфейса 160 ввода пользователем или другого подходящего устройства. В сетевой среде программные модули, описанные применительно к компьютеру 110, или их части могут храниться в удаленном запоминающем устройстве. В качестве примера, не подразумевающего ограничение, на Фиг.1 удаленные прикладные программы 185 изображены как находящиеся в запоминающем устройстве 181. Понятно, что показанные сетевые соединения являются примерными и могут быть использованы другие средства установления канала связи между компьютерами.
Несколько вычислительных сред на одной машине
Как описано ранее, в данной области техники известно, что две операционные системы могут работать рядом в одном вычислительном устройстве. Одной из проблем, для решения которых может быть использовано настоящее изобретение, является обеспечение некоторого уровня разделения двух операционных систем при одновременном сохранении некоторого уровня взаимодействия между ними.
На Фиг. 2 изображена система, в которой две операционные системы 134(1) и 134(2) работают на одном компьютере 110. Между этими операционными системами существует некоторый тип логического разделения 202, при этом между этими операционными системами допускается некоторая степень взаимодействия 204 при одновременном сохранении защиты, по меньшей мере, одной из операционных систем от событий, возникающих в другой операционной системе. В примере, показанном на Фиг. 2, операционная система 134(1) является базовой операционной системой, а операционная система 134(2) является гостевой операционной системой, например описанным выше "нексусом". Как отмечалось ранее, если операционная система 134(2) представляет собой нексус, то желательно создать такое разделение 202, чтобы эта операционная система могла взаимодействовать с операционной системой 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) (нексуса). Поэтому согласно одному из вариантов реализации настоящего изобретения применяется несколько различных способов защиты целостности и идентифицируемости законных окон и других элементов графического интерфейса пользователя на стороне хозяина. В различных вариантах реализации настоящего изобретения совместно используются любые из этих способов или все способы.
Загораживание и проглядывание
Если как процессы, выполняемые на стороне хозяина, так и процессы, выполняемые на стороне нексуса, могут выводить на экран монитора графические объекты, например окна и другие элементы интерфейса пользователя, неправомерные действия могут осуществляться путем загораживания всей или части законной графики процесса, выполняемого на стороне нексуса, графикой процесса, выполняемого на стороне хозяина. Фиг.3(а) представляет собой структурную схему изображения. На Фиг.3(а) изображение 300 включает графические объекты 310 нексуса, которые являются графикой процессов, выполняемых под управлением гостевой операционной системы 134(2) (нексуса). Графические объекты 320 хозяина являются графикой процессов, выполняемых под управлением базовой операционной системы 134(1). Как показано на Фиг.3(а), если допускается отображение графических объектов 320 хозяина поверх графических объектов нексуса, то графические объекты нексуса могут загораживаться графическими объектами 320 хозяина. В этом случае неправомерные действия могут предприниматься путем загораживания некоторой части или всего графического объекта 310 нексуса графическим объектом 320 хозяина. Кроме того, если графический объект 310 нексуса накладывается на графический объект 320 хозяина, но при этом является частично прозрачным, то графический объект 320 хозяина может быть использован для изменения внешнего вида графического объекта 310 нексуса таким образом, чтобы ввести в заблуждение.
В одном из вариантов реализации настоящего изобретения такие неправомерные действия предотвращаются путем недопущения загораживания всех графических объектов 310 нексуса, а также путем запрета какого-либо проглядывания через графические объекты 310 нексуса. Таким образом, для случая, показанного на Фиг. 3(а), не будет допускаться загораживание графических объектов 310 нексуса. Фиг.3(b) является иллюстрацией запрета загораживания графического объекта 310 нексуса. На Фиг. 3(b) каждый из двух графических объектов 310 нексуса виден полностью, и не допускается наложение графического объекта 320 хозяина на графический объект 310 нексуса. Кроме того, в одном из вариантов реализации настоящего изобретения для графического объекта 310 нексуса не допускается прозрачность (либо полная, либо частичная).
В одном из вариантов реализации настоящего изобретения чтобы предотвратить подобные неправомерные действия одного процесса, выполняемого на стороне нексуса, по отношению к другому процессу, выполняемому на стороне нексуса, не допускается наложения графических объектов 310 нексуса. В системе управления окнами по одному из вариантов реализации настоящего изобретения допускается одно исключение - курсору мыши (который может отрисовываться процессом, выполняемым на стороне нексуса, поверх графического объекта 310 нексуса при отображении этого курсора) может разрешаться наложение на графический объект 310 нексуса.
В другом варианте реализации настоящего изобретения если одному процессу, выполняемому на стороне нексуса, принадлежит два или более элементов графического интерфейса пользователя, например два окна, либо окно и диалоговое окно, при разрешении их наложения не возникает проблемы безопасности. Следовательно, одному элементу графического интерфейса пользователя, находящемуся в общем владении, разрешается накладываться на другой элемент графического интерфейса пользователя, находящийся в общем владении, который принадлежит процессу, выполняемому нексусом. В следующем варианте реализации настоящего изобретения не допускается наложение элементов графического интерфейса пользователя верхнего уровня, которые находятся в общем владении, однако на элемент верхнего уровня может накладываться элемент, дочерний по отношению к этому элементу верхнего уровня. Например, в этом варианте диалоговое окно, которое является дочерним элементом окна верхнего уровня, может накладываться на это окно.
В одном из вариантов реализации настоящего изобретения для проверки того, какие элементы графического интерфейса пользователя являются элементами, относящимися к стороне нексуса, предусмотрено заложенное действие пользователя, которое удаляет с экрана все элементы графического интерфейса пользователя, не относящиеся к стороне нексуса. Заложенное действие пользователя - это действие пользователя, которое в контексте компьютерной системы всегда приводит к особым последствиям. Поэтому когда осуществляется заложенное действие пользователя, относящееся к безопасности работы с монитором, например нажатие комбинации клавиш, очищается весь экран, за исключением элементов графического интерфейса пользователя, относящихся к стороне нексуса.
Фиг. 4 представляет собой блок-схему этого способа. На этапе 400 сохраняется изображение относящегося к нексусу элемента графического интерфейса пользователя, которое связано с процессом, выполняемым под управлением безопасной исполнительной среды (агента нексуса). На этапе 410 изображение относящегося к нексусу элемента графического интерфейса пользователя отображается полностью, не заслоненное какими-либо элементами интерфейса пользователя, относящимися к хозяину. В других вариантах реализации настоящего изобретения никакие элементы графического интерфейса пользователя (относящиеся к хозяину или пользователю), кроме связанных с данным процессом, не могут загораживать элемент графического интерфейса пользователя, относящийся к нексусу.
Совместное использование секрета
В одном из вариантов реализации настоящего изобретения для предотвращения описанных выше неправомерных действий, связанных с подменой, отображается секрет, который скрыт от хозяина. Ни один из процессов, выполняемых на стороне хозяина, не имеет доступа к секрету, и, следовательно, если окно или другой элемент графического интерфейса пользователя может отображать секрет, то это элемент графического интерфейса пользователя, относящийся к стороне нексуса (Прим.перев.4).
В одном из вариантов реализации настоящего изобретения секрет сообщается нексусу пользователем. Этот секрет пользователя нексуса может сообщаться нексусу во время начала доверительной фазы работы, например когда пользователем задаются пароли. Элемент графического интерфейса пользователя может либо отображать секрет пользователя нексуса постоянно, либо выводить этот секрет по требованию.
Отображением элементов графического интерфейса пользователя процессами, выполняемыми на стороне нексуса, со стороны нексуса управляет доверенный администратор окон. Этот доверенный администратор о