Отображение достоверности из высоконадежной среды на незащищенную среду

Иллюстрации

Показать все

Изобретение относится к области компьютерной защиты. Изобретение повышает защищенность компьютера при исполнении объектов в незащищенной среде. На одной машине, которая имеет объекты, исполняемые в незащищенной среде, и объекты, исполняемые в высоконадежной среде, достоверность объектов высоконадежной среды отображается на объекты в незащищенной среде. В системе имеется контролирующий агент, исполняемый в высоконадежной среде, который контролирует незащищенную среду и отклоняет разрешение на изменения в незащищенной среде без приема санкционирования через защищенный вход. Изобретение может быть применено, например, на платформе защищенной вычислительной базы следующего поколения (NGSCB) компании Microsoft, где традиционная операционная система вмещает в себя защищенную операционную систему (например, нексус). 3 н. и 57 з.п. ф-лы, 4 ил.

Реферат

Область техники

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

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

Первые компьютеры были способны только выполнять единственную программу в каждый данный момент времени. Однако в настоящее время следует ожидать, что компьютеры будут обеспечивать выполнение нескольких различных частей программного обеспечения одновременно. Например, типовые многозадачные операционные системы могут исполнять несколько прикладных программ одновременно на одной машине. Ввиду данных обстоятельств, а также ввиду развития совместно используемой открытой сети (т.е. Интернет), защищенность и конфиденциальность стали двумя важными и сложными проблемами, вставшими перед компьютерной отраслью. По мере того как компьютеры все в большей степени распространяются для использования в домашних условиях, на работе и в школе, потребители и бизнес-клиенты в одинаковой степени все больше осознают важность проблем защищенности и конфиденциальности. Совершенствование возможностей программного обеспечения и аппаратных средств защищать целостность цифровой информации и конфиденциальности компьютерных пользователей становится критически важным направлением для разработчиков программного обеспечения и аппаратных средств. Компания Microsoft Corporation (Redmond, WA) выпустила платформу персонального компьютера с защищенной вычислительной базой следующего поколения (NGSCB), которая обеспечивает защищенность и конфиденциальность операционной системы.

В обычной компьютерной платформе NGSCB на компьютере 110, как показано на фиг.2, защищенная система «правой стороны» (RHS) работает во взаимосвязи с традиционной системой «левой стороны» (LHS) и центральным процессорным блоком (CPU). Система RHS разработана для защиты от злоумышленного программного обеспечения при сохранении открытости операционной системы. В случае платформы NGSCB приложения исполняются в пространстве защищенной памяти, которое весьма устойчиво по отношению к типовой фальсификации и вмешательству. В типовом случае в компьютере 110 имеется один микропроцессорный набор, который использует как система LHS, так и система RHS. Таким образом, системы LHS и RHS являются логическим, но физически обусловленным, разделением компьютера 110.

Система «левой стороны» (LHS) содержит традиционные приложения 205, 210, такие как Microsoft Word и Microsoft Excel, вместе с обычной операционной системой 201, такой как операционная система Microsoft Windows. Хотя показаны два приложения, в типовом случае может быть реализовано любое их количество.

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

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

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

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

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

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

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

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

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

Сущность изобретения

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

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

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

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

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

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

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

Краткое описание чертежей

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

На чертежах представлено следующее:

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

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

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

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

Детальное описание предпочтительных вариантов осуществления изобретения

Обзор

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

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

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

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

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

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

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

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

Компьютер 110 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители записи. Например, на фиг.1 показан дисковод 141 жестких дисков для считывания с несъемного, энергонезависимого магнитного носителя и записи на него дисковод 151 магнитных дисков для считывания со съемного энергонезависимого магнитного диска 152 и записи на него, и дисковод 155 оптических дисков для считывания со съемного энергонезависимого оптического диска 156 или записи на оптический диск, такой как, например, ПЗУ на компакт-диске (CD-ROM) или иные оптические носители записи. Другие съемные и несъемные, энергозависимые и энергонезависимые компьютерные носители записи, которые могут быть использованы в приведенной для примера операционной среде, включают в себя, не ограничиваясь указанным, кассеты на магнитных лентах, карты флэш-памяти, DVD, цифровые видеомагнитные ленты, твердотельные ОЗУ, твердотельные ПЗУ и т.п. Дисковод 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 может представлять собой ПК, портативное устройство, сервер, маршрутизатор, сетевой ПК, одноранговое устройство или другой обычный сетевой узел и в типовом случае включает в себя многие или все из элементов, описанных выше применительно к компьютеру 110, хотя на фиг.1 показано только устройство 181 памяти. Логические соединения, показанные на фиг.1, включают в себя локальную сеть (LAN) 171 и глобальную сеть (сеть широкого охвата - WAN) 173, но могут включать в себя и другие сети. Такие сетевые среды являются общеизвестными в офисах, компьютерных сетях предприятий, интранетах и в Интернет.

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

Иллюстративные варианты осуществления

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

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

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

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

На фиг.3 представлена блок-схема одного варианта осуществления системы отображения в соответствии с настоящим изобретением, а на фиг.4 представлена блок-схема последовательности операций одного варианта способа отображения в соответствии с настоящим изобретением. Система LHS исполняемой на компьютере 110 системы подобна описанной выше со ссылкой на фиг.2. Два приложения 305, 310 исполняются во взаимосвязи с операционной системой 301. Части системы RHS также сходны с тем, что описано со ссылкой на фиг.2. Два доверительных агента 355, 360 исполняются с нексусом 351 и SSC 353. Понятно, что любое число приложений может исполняться на системе LHS, и любое число доверительных агентов может исполняться на системе RHS.

На фиг.3 показана система, в которой операционная система 301 и нексус 351 исполняются на одном компьютере 110. Логическое разделение 350 между операционной системой 301 и нексусом 351 обеспечивает осуществление некоторого информационного обмена при защите нексуса 351 от событий, инициированных в операционной системе 301.

В варианте осуществления, показанном на фиг.3, операционная система (ОС) 301 является главной операционной системой («хозяином»), а нексус 351 является «гостем» в ОС 301. То есть ОС 301 обеспечивает некоторые сервисы и ресурсы для нексуса 351, такие как память и время процессора. В одном варианте осуществления логическое разделение 350 позволяет нексусу 351 основываться на определенных ресурсах операционной системы 301, в то же время позволяя нексусу 351 защищаться от действий (как злонамеренных, так и добросовестных), которые возникают в операционной системе 301 и могут обусловить поведение нексуса противоположно поведенческим спецификациям. Например, нексус 351 и доверительные ресурсы, связанные с ним, например, SSC 353, могут управлять логическим разделением. Понятно, что изобретение не ограничивается конкретной формой нексуса 351. Подразумеваются механизмы, которые обеспечивают возможность построения разделения 350 так, чтобы обеспечить баланс взаимодействия и защиты.

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

Отображение (проецирование) представляет собой механизм, посредством которого часть производительности и свойств доверительных агентов (на системе RHS) может быть распространена на код системы LHS. Согласно одному примеру отображение позволяет возможности платформы NGSCB применить к существующему коду. Например, вместо переноса приложения, такого как Microsoft Excel, на систему RHS, отображение в соответствии с настоящим изобретением позволяет создать контролирующего агента (также называемого здесь «ангелом», т.е. средством поддержки) для приложения (также называемого здесь «смертным» («простым смертным»), т.е. подверженным отказам), что, в свою очередь, позволяет существующему приложению исполняться с множеством из тех же самых полезных свойств, что и у доверительного агента. Отображение может быть применено как к операционной системе системы LHS (например, Microsoft Windows), так и к любой прикладной программе системы LHS (например, Microsoft Office), для которой желателен некоторый уровень доверительных операций. Отображение также может быть применено к драйверам устройств системы LHS. Таким образом, как описано ниже, отображение позволяет доверительному агенту защищать, гарантировать, аттестовать и расширять операционные системы, сервисы и программы системы LHS.

На фиг.3 показан контролирующий агент 390 (МА1), который соответствует приложению 305, и контролирующий агент 395 (МА2), который соответствует приложению 310 (этап 400 на фиг.4). Каждый контролирующий агент или «ангел» (поддерживающее средство) защищает ассоциированное с ним приложение.

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

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

Основной контролирующий агент (также называемый здесь «архангелом») (BMA) 380 ассоциирован с базовой операционной системой (т.е. ОС 301 системы LHS) (блок 410). В одном варианте осуществления основной контролирующий агент 380 создается создателем ОС 301 системы LHS. Это позволяет основному контролирующему агенту 38