Безопасная обработка данных виртуальной машиной
Иллюстрации
Показать всеИзобретение относится к исполнению виртуальной машины. Технический результат – улучшение манипулированием экземпляром виртуальной машины. Система для исполнения экземпляра виртуальной машины содержит среду исполнения, выполненную с возможностью создания экземпляра виртуальной машины. Экземпляр виртуальной машины содержит блок авторизации экземпляра для приема учетных данных для авторизации экземпляра, причем учетные данные для авторизации экземпляра однозначно связаны с экземпляром виртуальной машины. Блок ключа данных выполнен с возможностью генерирования запроса ключа данных, основываясь на учетных данных для авторизации экземпляра, связанных с экземпляром виртуальной машины. Блок расшифрования выполнен с возможностью расшифрования элемента данных, основываясь на ключе данных. Система сервера ключей выполнена с возможностью выпуска ключей экземпляру виртуальной машины. Блок предоставления авторизации экземпляра выполнен с возможностью предоставления учетных данных для авторизации экземпляра экземпляру виртуальной машины. 6 н. и 9 з.п. ф-лы, 5 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Изобретение относится к исполнению виртуальной машины. Изобретение дополнительно относится к выпуску ключей для экземпляра виртуальной машины.
УРОВЕНЬ ТЕХНИКИ
В последнее время облачное вычисление стало важным принципом. При облачном вычислении вычислительные ресурсы могут арендоваться в виде товара. В типовой модели облачного вычисления облачный провайдер обеспечивает виртуальные серверы, работающие на физических серверах. В данном случае, виртуальный сервер может обеспечивать подобные функциональные возможности, что и физический сервер для удаленного пользователя. Множество виртуальных серверов могут выполняться на единственном физическом сервере, так что может требоваться меньше физических серверов. Провайдеры услуг могут предоставлять один или несколько образов виртуальной машины, которые могут выполняться на облачных серверах в виде одного или нескольких экземпляров виртуальной машины.
Защита данных является важной для облачного вычисления. Шифрование потенциально играет важную роль для обеспечения защиты данных. Например, шифрованная файловая система может выполняться поверх файловой системы виртуальной машины. Кроме того, услуга Amazon S3, предоставляемая компанией Amazon Web Services, г. Сиэтл, шт. Вашингтон, США, обеспечивает шифрование на стороне сервера (SSE), делающее возможным хранение данных виртуальной машиной в зашифрованном виде.
Шифрование образа диска является методом, целью которого является защита данных в состоянии покоя, т.е. когда питание системы отключено и злоумышленник каким-то образом получил доступ к ее дискам или другому внешнему хранилищу, то, что обычно называется как «атака с выключением». Подобная атака может выполняться на виртуальных машинах (VM) с одним важным отличием: она может выполняться даже без физического доступа к системе. Если злоумышленник сумеет скомпрометировать хост виртуализации или гипервизор (локально или удаленно), тогда он может продолжить атаковать ее гостей VM. Система, названная виртуальной машиной на основе ядра (Linux KVM), позволяет системному администратору защищать гостей, которые не выполняются посредством шифрования своих образов дисков, и требуют идентификационную фразу шифрования или ключ для своего запуска.
Система виртуальных личных данных Porticor (Porticor Virtual Private Data system) (Porticor LTD, г. Рамат-ха-Шарон, Израиль) применяет технологию гомоморфного шифрования с разделенным ключом, в которой каждый объект данных, такой как диск или файл, шифруется уникальным ключом, который разделяется на два: главный ключ и конкретный ключ. Главный ключ является общим для всех объектов данных и находится во владении владельца приложения; тогда как второй конкретный ключ является разным для каждого объекта данных и хранится службой управления виртуальным ключом. Когда приложение обращается к хранилищу данных, обе части ключа используются для динамического шифрования и расшифрования данных.
US 2010/0211782 A1 описывает паттерн цифрового депонирования, предусмотренный для сетевых услуг передачи данных, включающих в себя методы шифрования с возможностью поиска для данных, хранимых в облаке, распределение доверия по многочисленным субъектам, чтобы избежать единственной точки компрометации данных. В одном варианте осуществления каждый из генератора ключей, провайдера криптографической технологии и провайдера облачных услуг обеспечивается в виде отдельных субъектов, позволяя издателю данных издавать данные конфиденциально провайдеру облачных услуг и затем выставлять зашифрованные данные селективно подписчикам, запрашивающим эти данные, основываясь на идентификационной информации подписчика, кодированной в информации ключа, сгенерированной в ответ на запросы подписчика, например, роль подписчика.
US 2011/0296201 A1 описывает способ и устройство, выполненные с возможностью обеспечения доверенного исполнения виртуальных машин (VM) на сервере виртуализации, например, для исполнения VM на сервере виртуализации. Физические многоядерные центральные процессоры (CPU) могут быть выполнены с аппаратной доверенной привязкой. Сама доверенная привязка может быть выполнена с возможностью управления сеансовыми ключами, используемыми для шифрования/расшифрования инструкций и данных, когда VM (или гипервизор) исполняется на одном из ядер CPU. Когда имеет место контекстный переключатель из-за исключительной ситуации, доверенная привязка меняет местами сеансовый ключ, используемый для шифрования/расшифрования содержимого памяти и кэша, распределенного для VM (или гипервизора).
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Было бы полезным иметь улучшенное манипулирование экземпляром виртуальной машины. Чтобы обеспечить лучшее решение этой проблемы, согласно первому аспекту изобретения предложена система, содержащая среду исполнения для создания экземпляра виртуальной машины, которая содержит:
блок авторизации экземпляра для приема учетных данных для авторизации экземпляра, причем учетные данные для авторизации экземпляра однозначно связаны с экземпляром виртуальной машины;
блок ключа данных для генерирования запроса ключа данных, основываясь на учетных данных для авторизации экземпляра, связанных с экземпляром виртуальной машины; и
блок расшифрования для расшифрования элемента данных, основываясь на ключе данных.
Учетные данные для авторизации экземпляра обеспечивают экземпляру виртуальной машины путь идентифицировать себя, так как учетные данные для авторизации экземпляра однозначно связаны с экземпляром виртуальной машины. Таким образом, запрос ключа данных может распознаваться как исходящий от экземпляра виртуальной машины, и, таким образом, субъект, внешний по отношению к экземпляру виртуальной машины, может определить, основываясь на запросе, может ли ключ данных выпускаться для экземпляра виртуальной машины, и, например, какой ключ данных из множества доступных ключей данных может выпускаться для экземпляра виртуальной машины.
Экземпляр виртуальной машины может дополнительно содержать блок учетных данных пользователя для получения учетных данных пользователя, связанных с пользователем или группой пользователей. Таким образом, экземпляр виртуальной машины имеет как учетные данные для авторизации экземпляра, связанные с экземпляром виртуальной машины, так и учетные данные пользователя, связанные с пользователем или группой пользователей. Блок ключа данных может быть выполнен с возможностью генерирования запроса, дополнительно основываясь на учетных данных пользователя. Это позволяет приемнику запроса идентифицировать как экземпляр виртуальной машины, так и пользователя, так что приемник запроса может определить, предоставлять ли конкретный ключ данных, основываясь на обоих субъектах. Альтернативно, блок расшифрования может быть выполнен с возможностью расшифрования элемента данных, дополнительно основываясь на учетных данных пользователя. Таким образом, учетные данные пользователя могут использоваться вместе с ключом данных для расшифрования данных. В обоих случаях экземпляру виртуальной машины необходимы как учетные данные пользователя, так и учетные данные для авторизации экземпляра, чтобы получить доступ к элементу данных в его незашифрованном виде.
Блок авторизации экземпляра может быть выполнен с возможностью выдачи запроса учетных данных для авторизации экземпляра, причем запрос указывает по меньшей мере один атрибут, который является характерным для экземпляра виртуальной машины. Это позволяет экземпляру виртуальной машины активно запрашивать учетные данные для авторизации экземпляра. По меньшей мере одним атрибутом, например, может быть набор атрибутов, которые вместе однозначно идентифицируют экземпляр виртуальной машины.
Система может дополнительно содержать блок владельца экземпляра для регистрации кода авторизации, связанного с экземпляром виртуальной машины, на сервере ключей и для предоставления кода авторизации экземпляру виртуальной машины; причем упомянутый по меньшей мере один атрибут содержит код авторизации. Это позволяет блоку владельца контролировать возможности расшифрования экземпляра виртуальной машины.
Блок владельца экземпляра может быть выполнен с возможностью посылки инструкции, содержащей код авторизации, среде исполнения виртуальных машин. Среда исполнения может быть выполнена с возможностью создания экземпляра виртуальной машины и предоставления кода авторизации экземпляру виртуальной машины в ответ на прием данной инструкции. Это позволяет владельцу экземпляра вызывать создание средой исполнения экземпляра виртуальной машины с возможностями расшифрования, ассоциированными с кодом авторизации.
Блок владельца экземпляра и среда исполнения могут быть реализованы на двух отдельных аппаратных субъектах, соединенных посредством сети. Система позволяет улучшить доверие к экземпляру виртуальной машины, который эксплуатируется блоком владельца экземпляра из удаленного расположения по сети, посредством контролирования кода авторизации, предоставленного экземпляру виртуальной машины и/или ключей данных, выпущенных для экземпляра виртуальной машины.
Блок ключа данных может быть выполнен с возможностью включения в запрос ключа данных кода, который указывает на положение запроса в последовательности запросов, выданных экземпляром виртуальной машины. Это позволяет обнаруживать незаконную копию экземпляра виртуальной машины, так как когда два экземпляра виртуальной машины используют одни и те же учетные данные для авторизации экземпляра, это может быть обнаружено кодом, указывающим на положение запроса в последовательности запросов, выданных экземпляром виртуальной машины. В частности, может обнаруживаться не строго увеличивающееся положение в последующих запросах.
Экземпляр виртуальной машины может быть выполнен с возможностью хранения ключа данных и данных, расшифрованных с использованием ключа данных, в энергозависимой памяти и/или стирания ключа данных и данных, расшифрованных с использованием ключа данных, после использования. Это предотвращает то, что ключ данных и/или элемент данных будут сохраняться в постоянной памяти и/или будут присутствовать в памяти в течение более длительной продолжительности, чем необходимо.
Согласно другому аспекту изобретения, предложена система сервера ключей для выпуска ключей для экземпляра виртуальной машины, причем система сервера ключей содержит
блок идентификации экземпляра для идентификации экземпляра виртуальной машины, основываясь на по меньшей мере одном атрибуте, который является характерным для экземпляра виртуальной машины;
средство определения (определитель) авторизации экземпляра для определения учетных данных для авторизации экземпляра и однозначного связывания учетных данных для авторизации экземпляра с экземпляром виртуальной машины;
блок предоставления авторизации экземпляра для предоставления учетных данных для авторизации экземпляра экземпляру виртуальной машины;
средство приема (приемник) запроса ключа данных для приема запроса ключа данных от экземпляра виртуальной машины, причем запрос ключа данных содержит компонент авторизации экземпляра, связанный с учетными данными для авторизации экземпляра;
блок авторизации данных для определения того, авторизован ли экземпляр виртуальной машины для приема ключа данных, основываясь на компоненте авторизации экземпляра; и
блок предоставления ключа данных для предоставления ключа данных экземпляру виртуальной машины, если экземпляр виртуальной машины авторизован на прием ключа данных.
Система сервера ключей может контролировать распределение ключа данных экземпляру виртуальной машины. Из-за атрибута, который является характерным для экземпляра виртуальной машины, и последующего выпуска учетных данных для авторизации экземпляра, которые однозначно связываются с экземпляром виртуальной машины, аутентификация экземпляра виртуальной машины выполняется более безопасно, а также процесс авторизации. Кроме того, «незаконные» экземпляры виртуальной машины могут представляться бесполезными, так как им не могут быть даны учетные данные для авторизации экземпляра, так что они не могут генерировать действительный запрос ключа данных. Блок авторизации данных может использовать одну или несколько политик для определения того, авторизован ли экземпляр виртуальной машины на прием ключа данных. Такая политика может указывать, что разрешено и что не разрешено, может быть статичной или динамичной, и может зависеть от свойств данных, вышеупомянутых атрибутов и упомянутых в другом месте ассоциированных пользователей и/или расположения. По меньшей мере одним атрибутом, например, может быть набор атрибутов, которые вместе однозначно идентифицируют экземпляр виртуальной машины.
Система сервера ключей может дополнительно содержать приемник запроса учетных данных экземпляра для приема запроса учетных данных для авторизации экземпляра от экземпляра виртуальной машины, причем запрос указывает атрибут, который является характерным для экземпляра виртуальной машины; и блок проверки достоверности экземпляра для верификации достоверности экземпляра виртуальной машины, основываясь на атрибуте. Это позволяет самому экземпляру виртуальной машины запрашивать учетные данные для авторизации экземпляра виртуальной машины. Используя атрибут, который является характерным для экземпляра виртуальной машины, становится возможным идентифицировать экземпляр виртуальной машины для системы сервера ключей.
Блок проверки достоверности экземпляра может быть выполнен с возможностью выполнения верификации достоверности экземпляра виртуальной машины, дополнительно основываясь на атрибуте, указывающим на расположение экземпляра виртуальной машины, или блок авторизации данных выполнен с возможностью выполнения определения того, авторизован ли экземпляр виртуальной машины на прием ключа данных, дополнительно основываясь на расположении экземпляра виртуальной машины. Это позволяет выполнять мониторинг расположения экземпляра виртуальной машины и запрещать учетные данные для авторизации экземпляра или ключ данных для экземпляра виртуальной машины, который не находится в надлежащем расположении. Расположение экземпляра виртуальной машины, например, может представлять собой расположение физического устройства, содержащего процессор и/или память и/или запоминающее устройство, на котором исполняется экземпляр виртуальной машины.
Запрос ключа данных может дополнительно указывать на учетные данные пользователя, которые связаны с пользователем или группой пользователей экземпляра виртуальной машины. Блок авторизации данных может быть выполнен с возможностью выполнения определения того, авторизован ли экземпляр виртуальной машины на прием ключа данных, дополнительно основываясь на указании учетных данных пользователя, принятых с запросом ключа данных, и политике доступа к данным, защищенным ключом данных. Таким образом, ключ данных предоставляется только авторизованному экземпляру виртуальной машины и только если экземпляр виртуальной машины обладает соответствующими учетными данными пользователя.
Система сервера ключей может содержать блок записи для записи информации, относящейся к передачам данных, касающимся запросов авторизации, учетных данных и/или ключей данных. Такая информация записи может использоваться для выполнения анализа прошедших событий, обнаружения любых возможных паттернов, указывающих, например, на злоупотребление.
Согласно другому аспекту, изобретение предусматривает образ виртуальной машины, способный реализоваться в виде экземпляра виртуальной машины, причем образ виртуальной машины содержит:
код инструкции, вызывающий прием экземпляром виртуальной машины учетных данных для авторизации экземпляра, причем учетные данные для авторизации экземпляра однозначно связаны с экземпляром виртуальной машины;
код инструкции, вызывающий генерирование экземпляром виртуальной машины запроса ключа данных, основываясь на учетных данных для авторизации экземпляра, связанных с экземпляром виртуальной машины; и
код инструкции, вызывающий расшифрование экземпляром виртуальной машины элемента данных, основываясь на ключе данных.
Согласно еще одному аспекту, изобретение предусматривает способ исполнения экземпляра виртуальной машины, причем способ содержит, посредством экземпляра виртуальной машины:
прием учетных данных для авторизации экземпляра, причем учетные данные для авторизации экземпляра однозначно связаны с экземпляром виртуальной машины;
генерирование запроса ключа данных, основываясь на учетных данных для авторизации экземпляра, связанных с экземпляром виртуальной машины; и
расшифрование элемента данных, основываясь на ключе данных.
Согласно еще одному аспекту, изобретение предусматривает способ выпуска ключей для экземпляра виртуальной машины, содержащий
идентификацию экземпляра виртуальной машины, основываясь на по меньшей мере одном атрибуте, который является характерным для экземпляра виртуальной машины;
определение учетных данных для авторизации экземпляра, и однозначное связывание учетных данных для авторизации экземпляра с экземпляром виртуальной машины;
предоставление учетных данных для авторизации экземпляра экземпляру виртуальной машины;
прием запроса ключа данных от экземпляра виртуальной машины, причем запрос ключа данных содержит компонент авторизации экземпляра, связанный с учетными данными для авторизации экземпляра;
определение того, является ли экземпляр виртуальной машины авторизованным на прием ключа данных, основываясь на компоненте авторизации экземпляра; и
предоставление ключа данных экземпляру виртуальной машины, если экземпляр виртуальной машины авторизован на прием ключа данных.
Согласно еще одному аспекту, изобретение предусматривает компьютерный программный продукт, содержащий инструкции, вызывающие выполнение процессорной системой любого способа, изложенного в данном документе.
Для специалиста в данной области техники понятно, что два или более из вышеупомянутых вариантов осуществления, реализаций и/или аспектов изобретения могут быть объединены любым образом, который считается полезным.
Модификации и изменения системы, экземпляра виртуальной машины, системы сервера ключей, способов и/или компьютерного программного продукта, которые соответствуют описанным модификациям и изменениям системы, могут осуществляться специалистом в данной области техники на основе настоящего описания.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Эти и другие аспекты изобретения очевидны из чертежей и разъясняются ниже в данном документе со ссылкой на них. На чертежах подобные элементы обозначены одинаковыми ссылочными позициями.
Фиг.1 представляет блок-схему среды исполнения, в которой может исполняться экземпляр виртуальной машины.
Фиг.2 представляет блок-схему системы сервера ключей.
Фиг.3 представляет блок-схему образа виртуальной машины.
Фиг.4 представляет блок-схему последовательности операций способа исполнения экземпляра виртуальной машины.
Фиг.5 представляет блок-схему последовательности операций способа выпуска ключей экземпляру виртуальной машины.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Виртуальная машина может рассматриваться как изолированная установка гостевой операционной системы в нормальной главной операционной системе или выделенный гипервизор. Например, виртуальная машина может быть реализована посредством или эмуляции программных средств или виртуализации аппаратных средств. Как эмуляция программных средств, так и виртуализация аппаратных средств могут быть реализованы вместе. Программные средства, исполняющиеся в виртуальной машине, могут ограничиваться ресурсами и абстракциями, обеспечиваемыми виртуальной машиной - она не может нарушить свою виртуальную среду. Хотя первоначально виртуальные машины имели своей целью обеспечение эффективного изолированного дублирования реальной машины. Однако текущее использование виртуальных машин включает в себя виртуальные машины, которые не имеют прямого соответствия с любыми реальными аппаратными средствами.
Экземпляр виртуальной машины может иметь определение типа, включающее в себя, например, образ виртуальной машины, который определяет данные, содержащиеся в виртуальной машине при запуске исполнения виртуальной машины. Фактическая виртуальная машина, когда она исполняется в среде исполнения, может отличаться от определения типа виртуальной машины термином экземпляр виртуальной машины.
Фиг.1 иллюстрирует аспекты системы для исполнения экземпляра 10 виртуальной машины. Система может содержать среду 11 исполнения, которая контролирует исполнение экземпляра 10 виртуальной машины. Среда 11 исполнения может быть выполнена с возможностью контролирования исполнения множества экземпляров 10 виртуальной машины, которые могут работать на распределенной компьютерной системе. Система может содержать создателя 15 экземпляра, который может быть частью среды 11 исполнения, как показано на фиг.1, или он может быть выполнен в виде блока, отдельного от среды 11 исполнения. Создатель 15 экземпляра может создавать экземпляр 10 виртуальной машины, например, основываясь на образе виртуальной машины (не показан), который определяет код инструкции виртуальной машины. Создатель 15 экземпляра, возможно вместе с образом виртуальной машины, может действовать для создания одного или нескольких экземпляров 10 виртуальной машины таким образом, что экземпляр 10 виртуальной машины включает в себя несколько кодов инструкции. Коды инструкции, которые вместе являются ответственными за конкретную функциональную возможность, могут упоминаться как блок. Такие блоки могут логически размещаться в программных модулях; однако, они также могут быть разделены на множество программных модулей.
Экземпляр 10 виртуальной машины может содержать блок 1 авторизации экземпляра, выполненный с возможностью приема учетных данных для авторизации экземпляра. Эти учетные данные для авторизации экземпляра могут создаваться вне экземпляра виртуальной машины авторизованным субъектом. Кроме того, учетные данные для авторизации экземпляра могут однозначно связываться с экземпляром 10 виртуальной машины. Это означает, что одни и те же учетные данные для авторизации не предоставляются никакому другому экземпляру 10 виртуальной машины.
Экземпляр виртуальной машины может дополнительно содержать блок 2 ключа данных, выполненный с возможностью генерирования запроса ключа данных, основываясь на учетных данных для авторизации экземпляра, связанных с экземпляром 10 виртуальной машины. Например, учетные данные для авторизации могут быть включены в запрос, или подтверждение того, что виртуальная машина обладает учетными данными для авторизации, может быть включено в запрос. Запрос может дополнительно указывать один или несколько элементов данных, например, элементов контента или защищенных элементов истории болезни, причем эти элементы данных могут быть зашифрованными. Запрос может влечь за собой запрос ключа данных для одного или нескольких элементов данных.
Блок 2 ключа данных может быть дополнительно выполнен с возможностью приема ключа данных, который может посылаться экземпляру 10 виртуальной машины в ответ на запрос.
Экземпляр виртуальной машины может дополнительно содержать блок 3 расшифрования, выполненный с возможностью расшифрования элемента 7 данных, основываясь на ключе данных. Например, элемент 7 данных извлекается из внешней базы данных в зашифрованном виде. Способ, посредством которого экземпляр виртуальной машины получает доступ к зашифрованному элементу 7 данных, может быть любым известным для специалиста в данной области техники. Например, зашифрованный элемент 7 данных может извлекаться посредством интерфейса базы данных или посредством файловой системы. Может использоваться любой подходящий алгоритм шифрования.
Экземпляр 10 виртуальной машины может дополнительно содержать блок 4 учетных данных пользователя, выполненный с возможностью получения учетных данных пользователя, ассоциированных с пользователем или группой пользователей, и при этом блок 2 ключа данных выполнен с возможностью генерирования запроса, дополнительно основываясь на учетных данных пользователя, или блок 3 расшифрования выполнен с возможностью расшифрования элемента 7 данных, дополнительно основываясь на учетных данных пользователя. В любом случае, это добавляет способ аутентификации пользователя к способу аутентификации виртуальной машины, описанному выше. Учетные данные пользователя могут использоваться для обеспечения того, что только авторизованные пользователи могут получить доступ к защищенным данным. Учетные данные для авторизации экземпляра могут использоваться для обеспечения того, что такой авторизованный доступ происходит только через авторизованные экземпляры виртуальной машины. Таким образом, неавторизованные (и потенциально злонамеренные) экземпляры виртуальной машины, даже если они сумеют получить учетные данные пользователя, не могут использоваться для получения неавторизованного доступа к защищенным данным, из-за отсутствия учетных данных для авторизации экземпляра.
Блок 1 авторизации экземпляра может быть выполнен с возможностью выдачи запроса учетных данных для авторизации экземпляра, причем запрос указывает на по меньшей мере один атрибут, который является характерным для экземпляра виртуальной машины. Например, запрос может посылаться на сервер, который является ответственным за предоставление учетных данных для авторизации экземпляра. Атрибут может указывать, например, время создания экземпляра или идентификатор (ID) процесса, адрес сети и другие виды параметров, которые (вместе) могут идентифицировать экземпляр виртуальной машины. «По меньшей мере одним атрибутом, который является характерным для экземпляра виртуальной машины» может быть набор значений, которые вместе являются характерными или уникальными для идентификации экземпляра виртуальной машины.
В одной примерной реализации система может включать в себя блок 5 владельца экземпляра для регистрации кода авторизации, связанного с экземпляром 10 виртуальной машины в системе 6 сервера ключей, и предоставления кода авторизации экземпляру 10 виртуальной машины. Блок 1 авторизации экземпляра может быть выполнен с возможностью включения атрибута, указывающего код авторизации в запросе учетных данных для авторизации экземпляра.
Блок 5 владельца экземпляра может быть выполнен с возможностью посылки инструкции, содержащей код авторизации, среде 11 исполнения виртуальных машин, и при этом среда 11 исполнения выполнена с возможностью создания экземпляра 10 виртуальной машины и предоставления кода авторизации экземпляру 10 виртуальной машины в ответ на прием инструкции. Например, блок 5 владельца экземпляра может быть выполнен с возможностью посылки инструкции, содержащей код авторизации, блоку 13 контроля среды 11 исполнения, как указано стрелкой 14. Блок 13 контроля затем взаимодействует с создателем 15 экземпляра для создания экземпляра 10 виртуальной машины и обеспечения его с кодом авторизации. Альтернативно, блок 5 владельца экземпляра может быть выполнен с возможностью посылки кода авторизации блоку 1 авторизации экземпляра в экземпляре 10 виртуальной машины, как указано стрелкой 12 на фиг.1.
Среда 11 исполнения альтернативно может быть выполнена с возможностью предоставлять учетные данные для авторизации экземпляра экземпляру 10 виртуальной машины автоматически, когда она создает экземпляр 10 виртуальной машины, и согласовывать с системой 6 сервера ключей то, какие использовать учетные данные для авторизации экземпляра.
Блок 2 ключа данных может быть выполнен с возможностью включения в запрос ключа данных кода, который указывает на положение запроса в последовательности запросов ключей данных, выдаваемых экземпляром 10 виртуальной машины. Посредством использования нумерации запросов ключа, может быть обнаружено, когда больше субъектов, например, более одного экземпляра виртуальной машины, используют одни и те же учетные данные для авторизации экземпляра. Код может содержать, например, порядковый номер. Этот порядковый номер может шифроваться, либо хеш-код или подпись порядкового номера может использоваться, например, для повышения защищенности.
Экземпляр 10 виртуальной машины может быть выполнен с возможностью сохранения ключа данных и/или данных, расшифрованных с использованием ключа данных, в энергозависимой памяти и/или стирания ключа данных и данных, расшифрованных с использованием ключа данных, после использования. Таким образом, защищенные данные не хранятся внутри среды 11 исполнения больше того времени, которое необходимо для немедленного использования. Если снова необходим элемент 7 данных, может снова запрашиваться ключ данных.
Фиг.2 иллюстрирует систему 6 сервера ключей для выпуска ключей для экземпляра 10 виртуальной машины. Система 6 сервера ключей и/или среда 11 исполнения могут быть реализованы на одной и той же или отдельной серверной системе.
Система сервера ключей может содержать средство 32 выпуска учетных данных экземпляра, содержащее модули, ответственные за выпуск учетных данных для авторизации экземпляра. Кроме того, система сервера ключей содержит средство 31 выпуска ключа данных, содержащее модули, ответственные за выпуск ключей данных. Это изображено на фиг.2. Однако это только примерная неограничивающая архитектура реализации системы 6 сервера ключей.
Система 6 сервера ключей может содержать блок 20 идентификации экземпляра, выполненный с возможностью идентификации экземпляра 10 виртуальной машины, основываясь на по меньшей мере одном атрибуте, который является характерным для экземпляра 10 виртуальной машины. Например, система сервера ключей может вести таблицу, которая содержит один или несколько представительных атрибутов для каждого экземпляра 10 виртуальной машины.
Системе 6 сервера ключей может дополнительно содержать определитель 21 авторизации экземпляра, выполненный с возможностью определения учетных данных для авторизации экземпляра. Например, средство определения (определитель) 21 авторизации экземпляра может быть выполнено с возможностью генерирования учетных данных для авторизации экземпляра, например, используя генератор псевдослучайных чисел, в частности криптостойкий генератор псевдослучайных чисел. Учетные данные для авторизации экземпляра, например, могут указывать криптографический ключ. Определитель авторизации экземпляра может быть выполнен с возможностью однозначного связывания учетных данных для авторизации экземпляра с экземпляром 10 виртуальной машины. Это может быть реализовано, например, посредством вышеупомянутой таблицы. Другие реализации, такие как использование базы данных, являются известными для специалиста в данной области техники.
Система 6 сервера ключей может содержать блок 22 предоставления авторизации экземпляра, выполненный с возможностью предоставления учетных данных для авторизации экземпляра экземпляру 10 виртуальной машины. Например, учетные данные доставляются экземпляру 10 виртуальной машины, используя протокол передачи данных.
Система 6 сервера ключей может дополнительно содержать средство приема (приемник) 23 запроса ключа данных, выполненное с возможностью приема запроса ключа данных от экземпляра 10 виртуальной машины. Запрос ключа данных может содержать компонент авторизации экземпляра, связанный с учетными данными для авторизации экземпляра. Этот компонент может иметь любой подходящий вид, такой как отдельный элемент данных или конкретное преобразование другого элемента данных запроса, такого как криптографическая подпись.
Система 6 сервера ключей может дополнительно содержать блок 24 авторизации данных, выполненный с возможностью определения того, является ли экземпляр 10 виртуальной машины авторизованным на прием ключа данных, основываясь на компоненте авторизации экземпляра. Эта функциональная возможность может обеспечивать верификацию криптографического ключа, связанного с компонентом авторизации экземпляра.
Система 6 сервера ключей может дополнительно содержать блок 25 представления ключа данных, выполненный с возможностью предоставления ключа данных экземпляру 10 виртуальной машины, если экземпляр 10 виртуальной машины авторизован на прием ключа данных, что определяется блоком 24 авторизации данных.
Система 6 сервера ключей может дополнительно содержать приемник 27 запроса учетных данных экземпляра, выполненный с возможностью приема запроса учетных данных для авторизации экземпляра от экземпляра 10 виртуальной машины. Запрос может указывать атрибут, который является характерным для экземпляра 10 виртуальной машины.
Система 6 сервера ключей может дополнительно содержать блок 28 проверки достоверности экземпляра, выполненный с возможностью верификации достоверности экземпляра 10 виртуальной машины, основываясь на указании атрибута, принятого приемником 27 запроса учетных данных экземпляра.
Блок 28 проверки достоверности экземпляра может быть выполнен с возможностью выполнения верификации достоверности экземпляра 10 виртуальной машины, дополнительно основываясь на атрибуте, указывающем на расположение экземпляра 10 виртуальной машины. Кроме того, блок 24 авторизации данных может быть выполнен с возможностью выполнения определения того, является ли экземпляр 10 виртуальной машины авторизованным на прием ключа данных, дополнительно основываясь на расположении экземпляра 10 виртуальной машины.
Запрос ключа данных может дополнительно указывать учетные данные пользователя, которые связаны с пользователем или группой пользователей экземпляра 10 виртуальной машины. Кроме того, блок 24 авторизации данных может быть выполнен с возможностью выполнения определения того, является ли экземпляр 10 виртуальной машины авторизованным на прием ключа данных, дополнительно основываясь на указании учетных данных пользователя, принятых с запросом ключа данных, и на политике доступа к данным, защищенным ключом данных.
Система 6 сервера ключей может дополнительно содержать блок 29, 30 записи для записи информации, относящейся к передаче данных, касающейся запросов авторизации, учетных данных и/или ключей данных. Запись может выполняться средством 32 выпуска учетных данных экземпляра и также средством 31 выпуска ключа данных. Это может выполняться единым блоком записи или двумя отдельными блоками 29, 30 записи.
Фиг.3 иллюстрирует компоненты образа 100 виртуальной машины. Образ 100 виртуальной машины может обеспечивать определение виртуальной машины. Среда 11 исполнения может быть выполнена с возможностью создания экземпляра 10 виртуальной машины, основываясь на образе 100 виртуальной машины. Образ виртуальной машины может содержать код 101 инструкции, вызывающий прием экземпляром 10 виртуальной машины учетных данных для авторизации экземпляра, причем учетные данные для авторизации экземпляра однозначно связаны с экземпляром 10 виртуальной машины; код 102 инструкции, вызывающий генерирование экземпляром 10 виртуальной машины запроса ключа данных, основываясь на учетных данных для авторизации экземпляра, связанных с экземпляром 10 виртуальной машины; и/или код 103 инструкции, вызывающий расшифрование экземпляром 10 виртуальной машины элемента данных, основываясь на ключе данных. Данный образ 100 виртуальной машины может быть расширен и/или модифицирован специалистом в данной области техники, основываясь на описании и фигурах, относящихся, между прочим, к экземпляру 10 виртуальной машины в настоящем раскрытии.
Фиг.4 иллюстрирует способ исполнения экземпляра виртуальной машины. Виртуальная машина может выполнять следующие этапы во время своего исполнения:
- прием 20