СЕТЕВОЕ УПРАВЛЕНИЕ НАБОРАМИ ЗАЩИЩЕННЫХ ДАННЫХ
NETWORK MANAGEMENT OF DATA PROTECTION KITS

Предшествующий уровень техники
Доверенные платформенные модули («TPM») являются доверенными средами исполнения, которые изолированы от нормальной операционной среды вычислительных устройств. Как правило, модули TPM реализуются в виде микросхемы, которая физически связана с вычислительным устройством. Нормальная вычислительная среда может осуществлять связь с ТРМ через интерфейс, примером которого являются «услуги на основе TPM» (или «TBS»).
Модули TPM обеспечивают широкий набор функций, из которых самыми общими являются: создание криптографических ключей, использование ключей, ориентированных на конкретную политику, изолированное хранение и аттестация. Модули TPM имеют область памяти, называемую «защищенной областью», которая содержит данные, недоступные для считывания, но, тем не менее, имеется возможность выполнения операций с использованием указанных данных и/или на этих данных. Некоторые данные являются неизменяемыми, то есть их можно считывать (но нельзя изменять) посредством текущей операции, а некоторые из данных являются изменяемыми, то есть их можно изменить посредством указанных операций. Заметим, что это та операция, которая выполняется в данный момент внутри модуля TPM, который производит считывание данных. Защищенные данные нельзя считывать за пределами модуля TPM.
Таким образом, модуль TPM имеет операционную компоненту, которая выполняет операции, и компоненту памяти, где хранятся защищенные данные, которые невозможно считывать за пределами TPM. Скорость TPM ограничена возможностями аппаратного обеспечения, используемого в TPM. Также размер защищенной области ограничен пространством внутри TPM.
Сущность изобретения
По меньшей мере один из описанных здесь вариантов осуществления относится к системе, которая включает в себя модуль управления учетными записями, сконфигурированный для поддержания зачищенных учетных записей. Например, конкретная защищенная учетная запись включает в себя набор защищенных данных, являющихся недоступными извне системы, а, возможно, даже являющихся недоступными из-за пределов учетной записи. Конкретный набор данных соответствует конкретному субъекту (например, устройству, системе, пользователю, компоненту или их комбинации), назначенному конкретной учетной записи, и включает в себя ключи, соответствующие конкретному устройству. Процессор обеспечения безопасности использует, по меньшей мере, некоторые из этих ключей для выполнения криптографических процессов и процессов обеспечения безопасности в ответ на одну или несколько команд доверенной среды исполнения, полученных от этого конкретного субъекта. В некоторых вариантах осуществления может быть много наборов данных для разных субъектов, принадлежащих одной и той же учетной записи.
Данный раздел представляет подборку концепций в упрощенной форме, которые более подробно описаны ниже в разделе «Подробное писание изобретения». Данное краткое изложение существа изобретения не предполагает идентификации ключевых признаков или существенных признаков заявленного изобретения, а также не предполагает, что он может оказаться полезным при определении объема заявленного изобретения.
Краткое описание чертежей
Для описания признаков и средств, с помощью которых можно достичь вышеизложенных и других преимуществ, далее следует более детальное описание различных вариантов осуществления изобретения со ссылками на прилагаемые чертежи. С учетом того, что на этих чертежах представлены лишь простые варианты осуществления и, следовательно, их нельзя рассматривать как ограничение объема изобретения, эти варианты осуществления описываются и поясняются с привлечением дополнительных деталей посредством использования сопроводительных чертежей, на которых:
фиг. 1 - примерная вычислительная система, которую можно использовать для реализации описанных здесь вариантов осуществления и которая включает в себя уровень администрирования и уровень локальной доверенной среды исполнения;
фиг. 2 - среда, в которой множество клиентов, часть которых использует интерфейс доверенного платформенного модуля (TPM) с системой через сеть, где система включает в себя множество учетных записей, каждая из которых имеет один или несколько наборов защищенных данных, которые подвергаются криптографической обработке, реализуемой в соответствии с командами локальной доверенной среды исполнения, принятыми от клиентов;
фиг. 3 - набор защищенных данных, включающий в себя неизменяемые данные и изменяемые данные; и
фиг. 4 - логическая блок-схема способа обращения с командой доверенной среды исполнения.
Подробное описание изобретения
Согласно по меньшей мере одному описанному здесь варианту осуществления описывается система, в которой модуль управления учетными записями ведет защищенные учетные записи. Например, конкретная защищенная учетная запись включает в себя набор защищенных данных, который недоступен из-за пределов системы и, возможно, даже недоступен из-за пределов учетной записи. Конкретный набор данных соответствует конкретному субъекту (например, устройству, системе (такой как вычислительная система), пользователю, компоненте или их комбинации), назначенному конкретной учетной записи, и включает в себя ключи, соответствующие данному конкретному субъекту. Процессор обеспечения безопасности использует, по меньшей мере, некоторые из этого множества ключей для выполнения криптографического процесса и процесса обеспечения безопасности в ответ на одну или более команд доверенной среды исполнения, принятых от этого конкретного субъекта. В некоторых вариантах осуществления может быть множество наборов данных, каждый из которых соответствует своему субъекту. Кроме того, хотя это не является обязательным, в одной учетной записи может находиться множество наборов защищенных данных.
Современные вычислительные системы с каждым годом приобретают все больше различных форм. Вычислительные системы могут представлять собой, например, карманные устройства (такие как смартфоны), бытовые электронные системы, компьютеры типа лэптоп, настольные компьютеры, базовые компьютеры, распределенные вычислительные системы или даже такие устройства, которые, безусловно, нельзя считать вычислительной системой (такие как наручные часы, кухонная техника, автомобили, медицинские имплантаты и т.д.). В этом описании и в формуле изобретения термин «вычислительная система» определяется в широком смысле слова как включающий в себя любое устройство или систему (или их комбинацию), которая содержит по меньшей мере один физический процессор и физическую память, способную хранить исполняемые компьютером команды, которые могут выполняться указанным процессором. Указанная память может иметь любую форму и может зависеть от особенностей и формы вычислительной системы.
Используемый здесь термин «модуль» или «компонента» может относиться к объектам программного обеспечения или процедурам, которые выполняются в вычислительной системе. Другие, описанные здесь компоненты, модули, программы-обработчики и службы могут быть реализованы в виде объектов или процессов, которые исполняются в вычислительной системе (например, в виде отдельных потоков исполнения).
Описанные здесь варианты осуществления могут содержать или использовать специализированный компьютер или компьютер общего назначения, содержащий компьютерное аппаратное обеспечение, например, один или несколько процессоров и системную память, как более подробно описано ниже. Описанные здесь варианты осуществления также включают в себя физические и иные считываемые компьютером носители для переноса или хранения исполняемых компьютером команд и/или структур данных. Такие считываемые компьютером носители могут представлять собой любые имеющиеся носители, к которым может обращаться компьютерная система общего назначения или специализированная компьютерная система. Считываемые компьютером носители, которые запоминают и хранят исполняемые компьютером команды или данные, представляют собой физические запоминающие носители. Считываемые компьютером носители, которые переносят исполняемые компьютером команды или данные, представляют собой среды передачи. Таким образом, как пример, а не как ограничение, варианты настоящего изобретения могут содержать считываемые компьютером носители по меньшей мере двух разных видов: компьютерные запоминающие носители и среды передачи.
Компьютерные запоминающие носители включают в себя оперативную память (RAM), постоянную память (ROM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), постоянное запоминающее устройство на компакт-диске (CD-ROM) или иные запоминающие устройства на оптических дисках, запоминающие устройства на магнитных дисках или другие запоминающие устройства, либо любой другой носитель, который можно использовать для запоминания необходимых средств программного кода в виде исполняемых компьютером команд или структур данных, и к которым может обращаться компьютер общего назначения или специализированный компьютер.
Термин «сеть» определен как одна или несколько линий передачи данных, которые способны транспортировать электронные данные между компьютерными системами и/или модулями и/или другими электронными устройствами. Когда информация пересылается или предоставляется через сетевое или другое коммуникационное соединение (проводное либо беспроводное, либо комбинацию проводного и беспроводного соединения) на компьютер, компьютер рассматривает это соединение как среду передачи. Среды передачи могут включать в себя сетевые линии связи и/или линии передачи данных, которые можно использовать для переноса, либо необходимые средства программного кода в виде исполняемых компьютером команд или структур данных, и к которым возможен доступ со стороны компьютера общего назначения или специализированного компьютера. В сферу считываемых компьютером носителей следует включить комбинации из вышеописанных сред.
Кроме того, по достижении различных компонент компьютерной системы средства программного кода в виде исполняемых компьютером команд или структур данных можно автоматически перенести из среды передачи в компьютерный запоминающий носитель (или наоборот). Например, исполняемые компьютером команды или структуры данных, полученные через сеть или линию передачи данных, могут быть буферизованы в памяти RAM в модуле сетевого интерфейса (например, «NIC»), а затем может быть выполнена их пересылка в RAM компьютерной системы и/или на менее энергозависимый компьютерный запоминающий носитель в компьютерной системе. Таким образом, следует иметь в виду, что компьютерные запоминающие носители могут быть включены в компоненты компьютерной системы, которые также (или даже в первую очередь) используют среду передачи.
Исполняемые компьютером команды содержат команды и данные, которые при их исполнении в процессоре инициируют выполнение компьютером общего назначения, специализированным компьютером или специализированным устройством обработки определенные функции или группы функций. Команды, исполняемые компьютером, могут представлять собой, например: двоичные команды, команды в промежуточном формате, такие как команды на языке ассемблера, или даже исходные коды. Хотя настоящее изобретение описано здесь на языке, специфичном для структурных признаков и/или для методологических действий, следует понимать, что объем изобретения, определяемый прилагаемой формулой изобретения, не обязательно сводится к описанным здесь признакам и действиям. Скорее наоборот, описанные здесь признаки и действия раскрыты в качестве примерных форм реализации формулы изобретения.
Специалистам в данной области техники должно быть очевидно, что настоящее изобретение можно реализовать на практике в сетевых вычислительных средах с конфигурациями компьютерной системы множества типов, включая персональные компьютеры, настольные компьютеры, компьютеры типа лэптоп, процессоры сообщений, карманные устройства, многопроцессорные системы, программируемые или микропроцессорные потребительские электронные устройства, сетевые персональные компьютеры, мини-компьютеры, базовые компьютерные стойки, мобильные телефоны, персональные цифровые помощники (PDA), пейджеры, маршрутизаторы, коммутаторы и т.п.
В этом описании и в формуле изобретения термин «устройство» определен как любая вычислительная система, не являющаяся распределенной. Однако данное изобретение также можно практически реализовать в распределенных средах, где локальные и удаленные компьютерные системы, которые связаны (либо проводными линиями передачи данных, либо беспроводными линиями передачи данных, либо комбинацией проводных и беспроводных линий передачи данных) через сеть, выполняют те или иные задачи. В распределенной системной среде программные модули могут размещаться как в локальных, так и в удаленных запоминающих устройствах.
На фиг. 1 представлен пример вычислительной системы 100. Вычислительная система 100 включает в себя область 110 администрирования (или «уровень администрирования») и область 120 локальной доверенной среды исполнения (или «локальный доверенный уровень среды исполнения»). Уровень 110 администрирования включает в себя процессор 111 и основную память 112. Основная память 112 доступна администратору вычислительной системы 100 посредством использования процессора 111. Основной памятью 112 может быть физическая системная память, которая может быть энергозависимой, энергонезависимой или представлять собой некоторую комбинацию из двух упомянутых вариантов памяти. Термин «память» можно также здесь использовать для обращения к энергонезависимому запоминающему устройству большой емкости в виде физических запоминающих носителей.
К области 120 локальной доверенной среды исполнения непосредственный доступ не разрешен даже для административного персонала. Область 120 доверенной локальной среды исполнения включает в себя доверенный платформенный модуль (TPM) 121, который имеет криптографические функции 122 и защищенную область 123. Если бы был какой-либо реальный способ непосредственного доступа к содержимому модуля TPM, то этот способ включал бы в буквальном смысле физическое разделение или иное разбиение модуля TPM и использование сложного оборудования для физического анализа его содержимого. То есть содержимое локальной области 120 доверенной среды исполнения надежно защищено. Защищенная область 123 включает в себя, по меньшей мере, некоторое содержимое, которое невозможно считать за пределами модуля TPM. Однако криптографические функции 122 можно привести в действие, используя содержимое защищенной области 123. Защищенная область включает в себя неизменяемые данные 123А и изменяемые данные 123В. Криптографические функции 122 позволяют выполнять считывание данных обоих типов. Однако только изменяемые данные 123В могут записываться криптографическими функциями 122.
Примером неизменяемых данных является ключ подтверждения, который играет роль паспорта для модуля TPM, обеспечивая безопасность на уровне изготовителя в идентификационных данных модуля TPM. Кроме того, поскольку типовые модули TPM физически подключены к компьютерной системе, ключ подтверждения также надежно идентифицирует вычислительную систему 100 и, следовательно, может служить надежной основой для вычислительной системы 100.
Примеры изменяемых данных включают в себя: другие ключи, монотонные счетчики и энергонезависимую память. Упомянутые другие ключи могут быть сформированы по запросу процессора 111. Монотонный счетчик начинает отсчет с нуля, увеличивая на единицу свое значение при каждом запросе со стороны процессора 111 или в ответ на определенные события (такие как включение питания системы). Ключи могут быть перемещаемыми или неперемещаемыми. Перемещаемые ключи могут использоваться в любом TPM, успешно прошедшем авторизацию, в то время как неперемещаемые ключи могут использоваться в TPM 121.
Вычислительная система 100 включает в себя интерфейс 130 для обмена данными между процессором 111 и модулем TPM 121. Примером типового интерфейса 130 является модуль служб на основе TPM (TBS), который подает команды TPM от процессора 111 в TPM 121 и, если это необходимо, возвращает результаты криптографической обработки (но, конечно, не само содержимое модуля 121) обратно в процессор 111.
Стандартная вычислительная система 100 со стандартно развернутым модулем TPM, описанным с использованием фиг. 1, имеет определенные преимущества и недостатки. Например, стандартные модули TPM относительно недороги при изготовлении и предоставляют защищенную область на локальном уровне доверенной среды исполнения. Однако криптографические функции модуля TPM часто реализуются слишком медленно, поскольку обработка ограничена вычислительными возможностями небольшого TPM. Кроме того, объем памяти защищенной области 122 также часто слишком мал и составляет менее одного мегабайта. Кроме того, если вычислительная система 100 или модуль TPM 121 поврежден, все ключи, которые были привязаны к модулю TPM или им сформированы, уже нельзя будет использовать. Кроме того, стандартные вычислительные системы могут иметь преимущества с точки зрения функциональных возможностей TPM только в случае наличия их физической связи с TPM.
Хотя стандартные вычислительные системы, содержащие модули TPM, не являются распределенными, используемый здесь термин «вычислительная система» можно также распространить на сетевую среду, и тогда распределенными также будут обработка, память и/или возможности хранения.
В последующем описании варианты осуществления изобретения описываются со ссылками на действия, выполняемые одной или несколькими вычислительными системами. Если указанные действия реализуются средствами программного обеспечения, то один или несколько процессоров соответствующей вычислительной системы, которая выполняет это действие, управляют работой вычислительной системы в соответствии с исполняемыми компьютером командами. Примером указанной операции является манипулирование данными. Исполняемые компьютером команды (и данные после манипуляции) могут запоминаться в памяти вычислительной системы.
На фиг. 2 показана среда 200, в которой можно использовать описанные здесь принципы. В частности, среда 200 включает в себя множество клиентских вычислительных систем 201 (которые далее называются «клиентами 201»). Описанные здесь принципы позволяют выгружать из клиентских вычислительных систем через сеть 203 в систему 210 по меньшей мере некоторую часть функций локальной доверенной среды исполнения. Это является достаточно неожиданным, поскольку модули TPM, как правило, функционируют на уровне локальной доверенной среды исполнения и, следовательно, физически связаны с клиентом. В случае, показанном на фиг. 2, возможность выгрузки функций модуля TPM в систему 210 имеется у множества клиентов. Примером сети 203 является Интернет, хотя описанные здесь принципы можно применить также к другим сетям, таким как корпоративная сеть.
Функции модуля TPM выгружаются с помощью системы 210, эмулирующей защищенную область, обладающую свойством, заключающимся в том, что данные в ней являются несчитываемыми. Например, в то время как обычный модуль TPM имеет защищенную область, включающую в себя данные, которые невозможно считывать из-за пределов TPM, система 210 имеет защищенную область для каждого субъекта, и считывание из этой защищенной области невозможно из-за пределов системы или из-за пределов учетной записи, за исключением считывания, выполняемого процессором 213 обеспечения безопасности. Поскольку защиту системы 210 трудно взломать с целью получить возможность считывания защищенных данных другим субъектом, система 210 обеспечивает эквивалент локальной доверенной среды исполнения при создании значительного барьера, препятствующего раскрытию содержимого защищенной области.
Кроме того, процессор 12 обеспечения безопасности может реагировать на команды доверенной среды исполнения таким же образом, как локальный модуль TPM реагирует на такие команды доверенной среды исполнения. Например, процессор 213 обеспечения безопасности может организовать выполнение криптографического процесса и процесса обеспечения безопасности на ключах и/или защищенных наборах данных. Это позволяет эмулировать большую часть функциональных возможностей модуля TPM. Если защита клиента разрушена, модуль TPM все еще доступен в системе 210, и можно продолжать использовать ключи и другие данные (такие как монотонные счетчики, содержимое энергонезависимой RAM и т.д., связанные с модулем TPM), которые были созданы с использованием TPM.
На фиг. 2 показаны шесть клиентов 201А-201F. Однако эллипсы 201G указывают, что описанные здесь принципы не сводятся к конкретному количеству клиентов 201, подсоединенных к системе 210. Клиентов может быть мало (всего один), но потенциально их много, особенно если сетью 203 является Интернет и/или система 210 представляет собой облачную вычислительную среду. Кроме того, количество клиентов 201 может изменяться во времени. Например, если бы система 210 представляла собой облачную вычислительную среду, количество клиентов 201 могло бы изменяться каждую секунду или минуту.
В этом описании и в нижеследующей формуле изобретения термин «облачные вычисления» определен в качестве модели, разрешающей сетевой доступ по требованию к коллективному пулу конфигурируемых вычислительных ресурсов (например, сети, серверы, хранилище, приложения и сервисы). Определение «облачных вычислений» не ограничено любым из других многочисленных преимуществ, которые можно получить из указанной модели при правильном ее развертывании.
Например, облачные вычисления используются в настоящее время на рынках, с тем чтобы предоставить неограниченный и удобный доступ по требованию к коллективно используемому пулу конфигурируемых вычислительных ресурсов. Кроме того, коллективно используемый пул конфигурируемых вычислительных ресурсов можно быстро предоставлять посредством виртуализации, и с помощью несложных управленческих операций, либо взаимодействуя с поставщиком услуг, высвобождать эти ресурсы с последующим соответствующим масштабированием.
В модели облачных вычислений могут учитываться различные характеристики, такие как самообслуживание по требованию, широкополосный сетевой доступ, формирование пула ресурсов, высокая эластичность, оценка услуг и т.д. Модель облачных вычислений может также быть построена в виде различных сервисных моделей, таких как, например, «программное обеспечение в качестве услуги» («SaaS»), «платформа в качестве услуги» («PaaS») и «инфраструктура в качестве услуги» («IaaS»). Модель облачных вычислений также можно развернуть с использованием других моделей разворачивания, таких как частное облако, коммунальное облако, общедоступное облако, гибридное облако и т.д. В данном описании и в формуле изобретения термин «среда облачных вычислений» относится к среде, в которой используются облачные вычисления.
Некоторые из клиентов 201, но не обязательно все, могут включать в себя модуль TPM. Например, в случае по фиг. 2 клиент 201А имеет TPM 202А, клиент 201В имеет TPM 202B, а клиент 201Е имеет модуль TPM 202E. Другие клиенты, в том числе клиенты 201С 201D или 201F, не имеют TPM. Наличие модуля TPM позволяет загружать некоторые из функциональных возможностей TPM, специфических для конкретной машины (таких как способность обеспечить запоминание надежной предыстории событий, связанную с данной машиной), как будет объяснено ниже, хотя TPM локального клиента, возможно, функционирует в качестве TPM не в полной мере. Однако некоторые функциональные возможности TPM все же можно загрузить, как описано ниже, даже без TPM.
Система 210 включает в себя приемный модуль 211, который принимает команды доверенной среды исполнения, выдаваемые клиентами 201. Команды доверенной среды исполнения, которые обычно поступают в TPM с использованием программного интерфейса модуля TPM (такого как TBS), вместо этого перехватываются и направляются в систему 210 для их приема приемным модулем 211. Например, клиенты 201А-201F направляют такие команды доверенной среды исполнения, как представлено соответствующими стрелками 205А-205F. Каждая команда доверенной среды исполнения предназначена для управления в контексте обеспечения безопасности (например, ключ или данные), который соответствует субъекту, выдавшему данную команду. Система включает в себя процессор 213 обеспечения безопасности, который выполняет криптографические функции и функции обеспечения безопасности в соответствии с командами доверенной среды выполнения, принятыми приемным модулем 211.
Система 210 также включает в себя модуль 212 управления учетными записями, который содержит множество защищенных учетных записей 221. На фиг. 2 учетные записи включают в себя три учетные записи 221А, 221В и 221С, хотя эллипсы 221D показывают, что возможно любое количество учетных записей, управляемых системой 210. Каждая учетная запись соответствует одному или нескольким клиентам 201 и включает в себя набор защищенных данных, соответствующий каждому клиенту. Каждый набор защищенных данных эмулирует защищенную область модуля TPM с учетом ее особенностей для каждого клиента. Однако поскольку набор защищенных данных в данном случае не ограничен небольшой площадью модуля TPM, занимаемый им объем может быть гораздо больше, возможно в мегабайтовом, гигабайтовом или терабайтовом диапазоне.
На фиг. 2 учетная запись 221А имеет набор 222А защищенных данных, который соответствует клиенту 201А. Учетная запись 221В имеет набор 222В защищенных данных, который соответствует клиенту 201А, и набор 222С защищенных данных, который соответствует клиенту 201С. Соответствующие клиенты для учетной записи 221В обведены пунктирной линией. Учетная запись 221С имеет набор 222D защищенных данных, который соответствует клиенту 201D, набор 222E защищенных данных, который соответствует клиенту 201E, и набор 222F защищенных данных, который соответствует клиенту 201F. Соответствующие клиенты для учетной записи 221С обведены пунктирной линией.
Наборы 222 защищенных данных являются «защищенными» в том смысле, что их контент невозможно считывать вне контекста системы, и возможно, что их нельзя считывать за пределами соответствующей ученой записи за исключением того, что они могут считываться процессором 213 обеспечения безопасности. В одном варианте осуществления процессор 213 обеспечения безопасности функционирует внутри контекста учетной записи. В этом случае процессор 213 обеспечения безопасности функционирует внутри учетной записи 221А, другой процессор 213 обеспечения безопасности функционирует внутри учетной записи 221В и еще один процессор 213 обеспечения безопасности функционирует внутри учетной записи 221С.
Каждый набор данных эмулирует в качестве примера то, что соответствующий клиент 201 может иметь в своем модуле TPM, если бы не было ограничений памяти для этого TPM. Например, на фиг. 3 показан конкретный набор 300 данных, который включает в себя неизменяемые данные 301 и изменяемые данные 302. Неизменяемые данные 301 включают в себя ключ 311 подтверждения, который является неперемещаемым ключом. Неизменяемые данные 301 также включают в себя перемещаемый ключ 312 и другие неизменяемые данные 313. Изменяемые данные 302 включают в себя перемещаемый ключ 321, неперемещаемый ключ 322, монотонный счетчик 323 и энергонезависимую память 324.
Весь набор 300 данных защищен, как упоминалось выше. Однако неизменяемые данные 301 не могут быть изменены даже процессором 213 обеспечения безопасности. Изменяемые данные 302 могут быть изменены, но только в ответ на исполнение команды процессором 213 обеспечения безопасности. Ключ 311 подтверждения является неперемещаемым ключом в том смысле, что его можно использовать только внутри учетной записи, соответствующей указанному набору данных. Однако перемещаемый ключ 312 может быть использован за пределами учетной записи, но только в защищенных условиях (например, в другом TPM или другой подобным образом сконфигурированной учетной записи), что предотвращает считывание перемещаемого ключа открытым текстом. Неизменяемые данные 301 могут также включать в себя другие данные 313. Изменяемые данные 302 могут также содержать перемещаемые и неперемещаемые ключи, такие как перемещаемый ключ 321 и неперемещаемый ключ 322. Изменяемые данные 302 также включают в себя монотонный счетчик, который увеличивает на единицу свое значение в соответствии с запросом на приращение и/или в соответствии с другим событием (например, включение питания машины). Изменяемые данные 302 также могут включать в себя энергонезависимую память.
Каждая защищенная учетная запись 221А-221С может, но не обязательно, включать в себя соответствующий набор 223А-223С данных уровня учетных записей. Например, учетная запись 221А имеет набор 223А данных уровня учетных записей. Учетная запись 221В имеет набор 223В данных уровня учетных записей, и учетная запись 221С имеет набор 223С данных уровня учетных записей. Каждый набор данных уровня учетных записей не является специфичным по отношению к любому из объектов, связанных с этой учетной записью, а является общим для самой ученой записи. Например, используя существующие протоколы связи TPM, для указанных данных уровня учетных записей можно использовать регистры PCR более высокого уровня (например, PCR24 и выше).
Положим, например, что учетная запись 221В соответствует конкретному пользователю и что в наборе 223В данных на уровне учетных записей могут быть перечислены пользовательские пароли. Набор 223В данных уровня учетной записи также можно использовать для записи неизменяемых событий, связанных с данной учетной записью. Например, в наборе 223В данных на уровне учетных записей может храниться запись высокочувствительных функций (таких как управление учетными записями и сеансами) в операционной системе. Это может затруднить повышение привилегий или взлом учетной записи. Кроме того, возможность привязки учетной записи к другим свойствам доверенного платформенного модуля (TPM), подобным, например, PCR, позволяет обеспечить неявную аттестацию системы для пользователя, которому необходима результативная аутентификация и переход в состояние готовности. В качестве другого примера пользователь может запомнить последовательность лицензий, на которые он подписался. Опять же эта последовательность может быть неизменяемой, и, возможно, ее можно создать, используя одну запись, из которой эту последовательность лицензий можно вывести математическим путем. В этом случае, если когда-либо поступит запрос о том, имел ли пользователь лицензию на конкретный продукт, пользователь может знать конкретный ответ.
Соответственно, здесь описывается эффективный подход к выгрузке функции гарантированной неперемещаемости содержимого защищенной области из локального модуля TРM в сервис через сеть, например, в среде облачных вычислений. Это выполняется путем перехвата команд доверенной среды исполнения, которые подаются клиентским процессором в модуль TPM, и перенаправления их через сеть в систему, имеющую процессор обеспечения безопасности, который приспособлен интерпретировать команды доверенной среды исполнения, причем набор данных для каждого клиента включает в себя данные, подлежащие защите.
Это поддерживает безопасность локального уровня доверенной среды исполнения, поскольку защищенную область (например, набор данных) будет чрезвычайно трудно либо невозможно взломать, чтобы получить доступ к защищенным данным, для чего потребуется взломать систему 210. Поскольку система 210 может быть достаточно сложной и иметь высокие уровни безопасности, взлом системы 210 окажется чрезвычайно затрудненным или невозможным. Возможно даже, что взломать систему 210 будет даже труднее, чем взломать клиентский модуль TPM на самой клиентской машине. Соответственно, тем самым сохраняется безопасность локальной доверенной среды исполнения. Хотя можно передавать информацию от клиента в систему 210, такая информация представляет собой только команды доверенной среды исполнения, но не реальные данные, защищаемые в этом наборе данных. Соответственно, даже в том случае, если кто-то сможет осуществлять считывание указанного трафика, сами защищенные данные остаются под защитой. В некотором варианте может быть зашифрован даже сетевой трафик, если существует доверенное отношение между клиентским процессором и системой 210. Это может быть полезно в том случае, когда имеются проблемы безопасности, связанные с передачей команд открытым текстом. Указанное доверенное отношение может быть загружено, например, при предоставлении клиенту услуг.
Дополнительная выгода состоит в том, что, поскольку пространство памяти больше не ограничено пространством небольшой микросхемы, объем имеющейся памяти может быть значительно увеличен. Кроме того, поскольку вычислительная мощность больше не ограничена возможностями небольшой микросхемы TPM, процессы криптографической обработки можно выполнять значительно эффективней и/или выполнять более сложные вычисления. Также, поскольку защищенная область больше физически не связана с клиентом, при выходе клиента из строя ключи, сформированные с использованием данных из защищенной области, все еще можно будет использовать.
До описания дополнительных аспектов далее более подробно описывается общий поток обработки, связанный с обработкой команды доверенной среды исполнения. В частности, на фиг. 4 показана блок-схема способа 400 для обработки команды доверенной среды исполнения. Командой доверенной среды исполнения может быть любая команда модуля TPM, соответствующая любому существующему протоколу (такому как TPM, версия 1.2, и TPM, версия 2,0) или соответствующая будущему протоколу модуля TPM или любому протоколу, который обеспечивает связь с уровнем локальной доверенной среды исполнения. Некоторые из действий в способе 400 выполняются клиентом (например, клиентом 201А), как показано в правом столбце на фиг. 4 под заголовком «КЛИЕНТ». Другие из числа этих действий выполняются системой 210, как показано в среднем столбце на фиг. 4 под заголовком «СИСТЕМА». Другие действия выполняются процессором 213 обеспечения безопасности, как показано в левом столбце на фиг. 4 под заголовком «ОПЕРАЦИЯ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ».
Процесс начинается, когда клиент выдает команду доверенной среды исполнения (действие 401). Вдобавок к этому отправляемый в локальный TPM клиента комментарий доверенной среды исполнения перехватывается (действие 402) и направляется в систему (действие 403).
Затем система принимает команду доверенной среды исполнения (действие 411), идентифицирует учетную запись, связанную с клиентом, который выдал команду доверенной среды исполнения (действие 412), идентифицирует набор данных, связанный с данным клиентом (действие 413), и идентифицирует операцию, подлежащую выполнению (действие 414). Затем процессору обеспечения безопасности дается указание выполнить упомянутую операцию (действие 415), и тогда процессор обеспечения безопасности выполняет операцию (действие 421) на идентифицированном наборе данных идентифицированной учетной записи.
Одна из функций модуля TPM, которая еще не упоминалась, основана на способности обнаружения цикла включения/выключения соответствующего клиента. Это является одной из причин, почему модуль TPM привязан к соответствующему клиенту и имеет проводное соединение с источником питания клиента, с тем чтобы TPM мог обнаружить исчезновение питания и восстановление питания. Одной из причин необходимости обнаружения цикла включения/выключения является то, что модуль TPM может сбросить некоторые из данных, входящих в состав защищенных данных, сразу после потери и восстановления питания. В некоторых случаях надежность некоторых из данных, специфичных для конкретной машины в модуле TPM, основана на знании циклов включения/выключения.
Одним из примеров данных, которые следует сбросить сразу после цикла включения/выключения, является журнал платформенных событий. В типовом модуле TPM журнал событий представлен в виде одной записи. Всякий раз, когда появляется новое событие, представляющее интерес (например, загрузка блока программного обеспечения или запуск выполнения блока программного обеспечения), это событие присоединяется к предшествующей записи, хэшируется, а затем запоминается в виде нового значения этой записи. Если эта операция выполнена с сохранением информации (то есть предшествующих событий) из старой записи, то тогда эту запись можно оценить математически с целью воспроизведения последовательности событий, которые появлялись в платформе. На этой основе может быть подтверждена целостность платформы.
Однако поскольку система 210 физически не связана с каким-либо клиентом 201, но вместо этого осуществляет связь через сеть, системе 210 трудно определить, состоялся ли цикл включения/выключения какого-либо клиента из числа соответствующих клиентов 201. Тем не менее, если клиент имеет модуль TPM, этот модуль может собрать достаточную информацию, из которой можно заключить, что цикл включения/выключения имел место. Это возможно даже в том случае, если локальный клиентский TPM функционирует не в полном объеме, при условии, что команды доверенной среды исполнения могут не быть заданы для этого локального TPM, а перехвачены и отправлены в систему 210. Например, на фиг. 2 показано, что клиент 201А содержит TPM 202А, клиент 201В содержит TPM 202В, а клиент 201Е содержит TPM 202Е.
В этом случае модуль 212 управления учетными записями и/или система 210 в целом может обнаружить, что данный клиент был перезагружен, посредством осуществления связи с локальным клиентским TPM, установленным у этого клиента (например, посредством осуществления связи с TPM 202А в случае, когда речь идет о клиенте 201А). Например, система 210 может принять шифрованное предписание от клиента 201А, указывающее на выполнение цикла включения/выключения. При этом имеет место несколько возможных случаев.
В первом примере система 210 и локальный клиентский TPM могут осуществлять связь так, что система 210 принимает значения PCR, связанные с регистрами, которые устанавливают в исходное состояние сразу после цикла включения/выключения. Затем система 210 сравнивает текущее значение PCR в защищенных данных в системе со значением PCR в локальном клиентском TPM и может сделать вывод о том, выполнен ли цикл включения/выключения.
Во втором примере локальный клиентский ТPM может установить кратковременно используемый ключ после каждого включения клиента, а затем согласовать с процессором клиента, каким образом использовать этот ключ для осуществления связи. Система 210 осведомлена об этом кратковременно используемом ключе, поскольку она отслеживает все передачи. Если система 210 обнаруживает, что она больше не способна узнавать эти передачи, тогда необходимо сменить этот кратковременно используемый ключ, полагая, что клиент прошел цикл включения/выключения.

В альтернативном варианте осуществления цикл включения/выключения системы 210 может быть обнаружен даже при отсутствии модуля TPM в системе 200. Например, это может быть выполнено, если предусмотреть системный монитор, способный осуществлять текущий контроль циклов включения/выключения клиентских систем. Примером (но не ограничением) указанного системного монитора является системный централизованный монитор виртуальной машины Microsoft (SCVMM).
Система 210 может добавлять наборы защищенных данных к конкретной учетной записи всякий раз, когда в эту учетную запись добавляется новый клиент. Например, когда обнаружена передача, связанная с конкретной учетной записью, и то, что эта передача указывает, что она исходит от неопознанного клиента, то тогда к этой учетной записи может быть добавлен новый набор данных. Таким образом, если, например, предположить, что клиент для осуществления связи с системой использует ключ шифрования, то обнаружение передачи, использующей неопознанный ключ шифрования, может свидетельствовать о добавлении нового клиента. Аналогичным образом набор защищенных данных для учетной записи может быть удален после того, как соответствующий клиент перестал работать с данной учетной записью. Например, может быть выполнена операция чистки, при которой наборы защищенных данных, которые не использовались в течение некоторого периода времени (возможно, годами), удаляются из учетной записи.
Модуль 214 политики выдает разрешение на проведение клиентом тех или иных действий в зависимости от удовлетворения критерия в отношении одного или нескольких полей данных набора защищенных данных, соответствующего данному клиенту. Вдобавок или в качестве альтернативы модуль 214 политики может выдавать разрешение на выполнение действий любому клиенту, связанному с учетной записью, в зависимости от того, удовлетворяется ли критерий в отношении одного или нескольких полей данных в наборах данных на уровне учетных записей. Это открывает значительные возможности в сочетании с тем фактом, что память, связанную с набором защищенных данных, можно будет значительно расширить по сравнению с локальным TPM.
Положим, например, что набор защищенных данных для конкретного клиента включает в себя полный образ состояния восстановления этого клиента (например, операционной системы, любых стандартных приложений, стандартных настроек конфигурации и т.д.). Если этот клиент был потерян или вышел из строя, другой клиент в данной учетной записи может обратиться к этому образу и установить данный образ на новом клиенте при условии удовлетворения определенных критериев политики обеспечения безопасности, где такая политика должна быть защищена от неправомерного получения состояния восстановления клиента.
Система 210 также может включать в себя модуль 215 управления сертификатами, который использует неперемещаемый ключ (например, ключ, который нельзя использовать за пределами учетной записи), для создания сертификата, специфичного для данной учетной записи, и который, следовательно, может быть использован любым из клиентов, связанным с данной учетной записью. Таким образом, каждому клиенту нет необходимости создавать собственный сертификат для аутентификации на основе сертификата.
Настоящее изобретение может быть воплощено в других специфических видах в рамках существа или существенных характеристик изобретения. Описанные варианты осуществления следует рассматривать во всех отношениях только лишь как иллюстрации, а не как ограничения. Следовательно, объем изобретения определяется прилагаемой формулой изобретения, а не вышеприведенным описанием. Все изменения, которые находятся в рамках смысла и диапазона эквивалентности формулы изобретения, должны быть включены в ее объем.