Родственная заявка
Данная заявка является частичным продолжением (CIP) следующей находящейся одновременно на рассмотрении Патентной заявки (США), по меньшей мере, с одним общим автором изобретения и назначенной тому же правопреемнику: серийный номер 11/612300, зарегистрирована 18 декабря 2006 года и озаглавлена "System and Method for Securely Updating Remaining Time or Subscription Data for a Rental Computer".
Уровень техники
Область техники, к которой относится изобретение
Настоящее изобретение относится к системе и способу, который обновляет данные об оставшемся времени или подписке для предоставляемой в аренду вычислительной машины. Более конкретно, настоящее изобретение связано с системой и способом, который обновляет данные об оставшемся времени или подписке с помощью гипервизора (программа управления операционными системами), который управляет доступом к гостевым операционным системам.
Описание предшествующего уровня техники
При работе с вычислительными машинами некоторые компании (или пользователи) предпочитают покупке лизинг или аренду. Срок лизинга вычислительной машины типично длится от двух до четырех лет. С другой стороны, компания может арендовать вычислительную машину на ежемесячной основе или на основе интенсивности использования. Таким образом, решение о том, следует ли брать в лизинг или аренду вычислительные машины, зачастую зависит от периода времени, в течение которого компания планирует держать взятые в лизинг/аренду вычислительные машины.
С точки зрения пользователей, одна сложная проблема, ассоциативно связанная с лизингом вычислительных машин, состоит в том, чтобы обеспечивать то, что все взятые в лизинг вычислительные машины возвращаются по окончании лизинга вычислительных машин; в противном случае пользователь должен продолжить оплачивать по лизинговой ставке за все взятые в лизинг вычислительные машины, которые не возвращены. С точки зрения арендующей компании, одна сложная проблема, ассоциативно связанная с арендой вычислительных машин, заключается в том, чтобы не допускать осуществление арендаторами несанкционированных изменений предоставляемых в аренду вычислительных машин с тем, чтобы арендаторы не могли использовать предоставляемые в аренду вычислительные машины при этом не оплачивая обязательные арендные платежи.
Настоящая заявка раскрывает способ и устройство для недопущения несанкционированных модификаций в предоставляемых в аренду вычислительных машинах, с тем чтобы было не практичным и/или экономным модифицировать предоставляемые в аренду вычислительные машины для того, чтобы избегать обязательных арендных платежей.
Сущность изобретения
Обнаружено, что вышеупомянутые сложные проблемы разрешаются с помощью системы, способа и вычислительного программного продукта, который приводит в исполнение гипервизор, чтобы управлять доступом к предоставляемой в аренду вычислительной системе. Гипервизор выполняет этапы, которые включают в себя: считывание показателя аренды из энергонезависимой области хранения, сравнение показателя аренды с пределом аренды, разрешение на использование одной или более гостевых операционных систем пользователем вычислительной системы в ответ на попадание показателя аренды в рамки предела аренды и запрет на использование гостевых операционных систем пользователем вычислительной системы в ответ на превышение показателем аренды предела аренды.
В одном варианте осуществления защищенный код BIOS запускается до приведения в исполнение гипервизора. Защищенный код BIOS выполняет этапы, которые включают в себя: проверку достоверности приводимого в исполнение модуля гипервизора, при этом проверка достоверности приводит к результату проверки достоверности; загрузку приводимого в исполнение модуля гипервизора и приведение в исполнение гипервизора в ответ на результат проверки достоверности, указывающий успешную проверку достоверности, и запрет на использование вычислительной системы в ответ на результат проверки достоверности, указывающий неудачную проверку достоверности. В дополнительном варианте осуществления достоверность кода гипервизора проверяется либо посредством расшифровки кода с помощью ключа, доступного для кода BIOS, либо посредством сравнения хеш-данных кода гипервизора с ожидаемым результатом хеш-функции.
В одном варианте осуществления запрет включает в себя этапы, на которых предлагают пользователю приобрести дополнительное время аренды и принимают данные о приобретении от пользователя. Затем гипервизор отправляет принятые данные о приобретении на сервер аренды, который соединен с вычислительной системой посредством вычислительной сети, такой как Интернет. Затем принимается ответ от сервера аренды через вычислительную сеть. Если ответом является сообщение об ошибке (к примеру, недостаточно средств на счете), гипервизор продолжает блокирование вычислительной системы. С другой стороны, в ответ на ответ, указывающий успешную транзакцию, гипервизор обновляет предел аренды, сохраняет обновленный предел аренды в энергонезависимой области хранения, сравнивает показатель аренды с обновленным пределом аренды, разрешает пользователю использовать гостевые операционные системы в ответ на попадание показателя аренды в рамки, задаваемые обновленным пределом аренды, и продолжает блокирование использования гостевых операционных систем в ответ на превышение показателем аренды обновленного предела аренды.
В одном варианте осуществления разрешение дополнительно включает в себя этапы, на которых периодически обновляют показатели аренды посредством сохранения обновленных показателей аренды в энергонезависимой области хранения. Далее гипервизор сравнивает предел аренды с обновленными показателями аренды. Гипервизор продолжает разрешать использование гостевых операционных системы в ответ на попадание обновленного показателя аренды в рамки, задаваемые пределом аренды, тем не менее, если обновленный показатель аренды превышает предел аренды, гипервизор отвечает посредством блокирования использования гостевых операционных систем пользователем.
В одном варианте осуществления разрешение дополнительно включает в себя этапы, на которых перехватывают действия, запрошенные гостевыми операционными системами. Действия, которые пытаются модифицировать данные об аренде, сохраняемые гипервизором, идентифицируются и отклоняются гипервизором.
В дополнительном варианте осуществления вычислительная система включает в себя доверенный платформенный модуль (TPM), который включает в себя энергонезависимое ОЗУ. В этом варианте осуществления предел аренды и показатель аренды сохраняются в энергонезависимом ОЗУ TPM.
Выше приведена сущность, и она, таким образом, при необходимости содержит упрощения, обобщения и опускание подробностей; следовательно, специалисты в данной области техники должны принимать во внимание, что сущность является просто иллюстративной и не предназначена для того, чтобы быть ограниченной каким-либо образом. Другие аспекты, изобретаемые признаки и преимущества настоящего изобретения, заданные исключительно посредством формулы изобретения, должны стать очевидными из неограничивающего подробного описания, излагаемого ниже.
Краткое описание чертежей
Настоящее изобретение может быть лучше понимаемо, а его различные объекты, признаки и преимущества очевидны специалистам в данной области техники посредством ссылки на прилагаемые чертежи, на которых:
фиг.1 - это блок-схема предоставляемой в аренду вычислительной системы, посредством которой реализуется предпочтительный вариант осуществления настоящего изобретения;
фиг.2 - это блок-схема устройства недопущения несанкционированных модификаций в предоставляемые в аренду вычислительные системы в соответствии с предпочтительным вариантом осуществления настоящего изобретения;
фиг.3 - это высокоуровневая логическая блок-схема последовательности операций способа задания защищенного времени/дня, чтобы предотвращать несанкционированные модификации в предоставляемые в аренду вычислительные системы, в соответствии с предпочтительным вариантом осуществления настоящего изобретения;
фиг.4 - это высокоуровневая логическая блок-схема последовательности операций способа предотвращения внесения несанкционированных модификаций в предоставляемые в аренду вычислительные системы в соответствии с предпочтительным вариантом осуществления настоящего изобретения;
фиг.5 - это блок-схема последовательности операций способа, иллюстрирующая этапы, выполняемые посредством карты времени-дня при обновлении данных арендной подписки;
фиг.6 - это блок-схема последовательности операций способа, иллюстрирующая этапы, осуществляемые посредством защищенной процедуры BIOS, чтобы активировать правила подписки;
фиг.7 - это блок-схема последовательности операций способа, иллюстрирующая этапы, осуществляемые для того, чтобы приобрести дополнительное время аренды;
фиг.8 - это блок-схема последовательности операций способа, иллюстрирующая дополнительные этапы, осуществляемые в ходе приобретения и обновления дополнительного времени аренды;
фиг.9 - это схема, иллюстрирующая компоненты, используемые в предоставляемой в аренду вычислительной системе;
фиг.10 - это схема, иллюстрирующая высокоуровневую блок-схему последовательности операций способа и системные компоненты, используемые при управлении предоставляемой в аренду вычислительной системой с помощью гипервизора;
фиг.11 - это блок-схема последовательности операций способа, иллюстрирующая этапы, выполняемые посредством защищенного BIOS, чтобы проверять достоверность приводимого в исполнение кода гипервизора и приводить в исполнение гипервизор на основе проверки достоверности;
фиг.12 - это блок-схема последовательности операций способа, иллюстрирующая этапы, осуществляемые посредством гипервизора, чтобы отслеживать действия, выполняемые гостевыми операционными системами, и обновлять показатели аренды при необходимости;
фиг.13 - это блок-схема последовательности операций способа, иллюстрирующая этапы, осуществляемые посредством гипервизора, чтобы приобретать дополнительное время и обновлять пределы аренды; и
фиг.14 - это блок-схема системы обработки данных, в которой могут быть реализованы способы, описанные в данном документе.
Подробное описание изобретения
Нижеприведенное пояснение предназначено для того, чтобы предоставить подробное описание примера изобретения, и не должно рассматриваться как ограничивающее само изобретение. Наоборот, любое число вариаций может попадать в рамки области применения изобретения, которое задано в прилагаемой формуле изобретения.
Ссылаясь теперь на чертежи, и в частности на фиг.1, проиллюстрирована блок-схема предоставляемой в аренду вычислительной системы, в которой содержится предпочтительный вариант осуществления настоящего изобретения. Как показано, предоставляемая в аренду вычислительная система 100 включает в себя процессор 102 и запоминающее устройство 104. Запоминающее устройство 104 включает в себя энергозависимое запоминающее устройство 105 (такое как оперативное запоминающее устройство) и энергонезависимое запоминающее устройство 106 (такое как постоянное запоминающее устройство). Предоставляемая в аренду вычислительная система 100 также содержит съемные устройства 108 хранения, такие как компакт-диски, оптические диски, магнитные ленты и т.д., а также стационарные устройства 110 хранения, такие как жесткие диски. Помимо этого предоставляемая в аренду вычислительная система 100 может содержать каналы 112 связи для предоставления связи с другими системами по вычислительной сети 120. Предоставляемая в аренду вычислительная система 100 также может иметь компоненты 114 ввода, такие как клавиатура, мышь и т.д., и компоненты 116 вывода, такие как дисплеи, громкоговорители, принтеры и т.д.
Доверенный платформенный модуль (TPM) 117 включен в предоставляемую в аренду вычислительную систему 100, чтобы предоставлять защищенное формирование криптографических ключей, и ограничивает использование этих ключей для подписки/проверки или шифрования/расшифровки, как известно специалистам в данной области техники. TPM 117 может быть использован для того, чтобы обеспечить защищенное хранение данных, используемых для того, чтобы получать доступ к операционной системе предоставляемой в аренду вычислительной системы 100.
Ссылаясь теперь на фиг.2, проиллюстрирована блок-схема устройства недопущения внесения несанкционированных модификаций в предоставляемые в аренду вычислительные системы в соответствии с предпочтительным вариантом осуществления настоящего изобретения. Как показано, карта 200 времени-дня включает в себя генератор 210 импульсов времени и аккумулятор 220. Карта 210 времени-дня также включает в себя регистр 230 и счетчик 240. Регистр 230 используется для того, чтобы указывать то, снят аккумулятор 220 и/или его питание закончилось либо нет. Например, бит в регистре 230 может быть заблокирован в ответ на снятие аккумулятора 220 или полное окончание питания аккумулятора 220. Предпочтительно, карта 210 времени-дня должна быть вставлена в одно из гнезд памяти, например гнезда памяти SIMM или DIMM, на материнской плате предоставляемой в аренду вычислительной системы, такой как предоставляемая в аренду вычислительная система 100 по фиг.1. После этого доступ к генератору 210 импульсов времени может быть осуществлен посредством шины, соединенной с предоставляемой в аренду вычислительной системой. Время и день карты 210 времени-дня первоначально задаются в ходе изготовления предоставляемой в аренду вычислительной системы.
Ссылаясь теперь на фиг.3, проиллюстрирована высокоуровневая логическая блок-схема последовательности операций способа задания защищенного значения времени/дня, чтобы предотвращать внесение несанкционированных модификаций в предоставляемые в аренду вычислительные системы, в соответствии с предпочтительным вариантом осуществления настоящего изобретения. В ходе процедуры самотестирования при включении питания (POST) базовая система ввода-вывода (BIOS) определяет, имеется ли карта времени-дня, такая как карта 210 времени-дня фиг.2, в предоставляемой в аренду вычислительной системе, как показано на этапе 310. Это достигается посредством проверки микросхемы счетчика, которая имеет регистры для хранения определенных адресов с корректной информацией, которая привязывается к BIOS во время изготовления, т.е. карта времени-дня действительна только в одной предоставляемой в аренду вычислительной системе. Другими словами, карта времени-дня не может переставляться из одной предоставляемой в аренду вычислительной системы в другую.
Если карта времени-дня имеется, то выполняется еще одно определение в отношении того, привязана ли карта времени-дня к предоставляемой в аренду вычислительной машине, как проиллюстрировано на этапе 315. Привязка - это простой закрытый/открытый ключ, использующий TPM. Если карта времени-дня вынута из предоставляемой в аренду вычислительной системы, BIOS не загружается, тем самым делая предоставляемую в аренду вычислительную систему неработающей. Если карта времени-дня привязана к предоставляемой в аренду вычислительной машине, выполняется еще одно определение того, был ли снят аккумулятор на карте времени-дня, как показано на этапе 320. Если аккумулятор на карте времени-дня не снят, BIOS считывает информацию времени/даты из генератора реального времени на карте времени-дня, как показано на этапе 325.
Если карта времени-дня отсутствует, или если карта времени-дня не привязана к предоставляемой в аренду вычислительной системе, или если аккумулятор на карте времени-дня снят либо закончилось электропитание, POST прекращает отображать сообщение об ошибке, и предоставляемая в аренду вычислительная система не продолжает загрузку, как показано на этапе 330.
Информация времени/даты из генератора реального времени карты 5 времени-дня сравнивается с текущим защищенным значением времени/даты, сохраненным в защищенной области хранения в ходе последнего отключения питания (или заводским значением при первом включении питания). Выполняется определение в отношении того, является ли информация времени/даты из генератора реального времени меньше текущего защищенного значения времени/даты, как показано на этапе 335. Если информация времени/дня меньше текущего защищенного значения времени/даты, то BIOS получает новое защищенное значение времени/даты по сети, и новое защищенное значение времени/даты из сети становится текущим защищенным значением времени/даты, как показано на этапе 345. Если информация времени/дня не меньше текущего защищенного значения времени/даты, то значение времени/даты окончания аренды защищенно считывается из защищенной области хранения, как показано на этапе 345.
Далее выполняется определение в отношении того, меньше ли текущее защищенное значение времени/даты значения времени/даты окончания аренды, как показано на этапе 350. Если текущее защищенное значение времени/даты не меньше значения времени/даты окончания аренды, арендатору предлагается купить дополнительное время аренды на предоставляемой в аренду вычислительной машине (посредством защищенной процедуры покупки из BIOS), как проиллюстрировано на этапе 355. После того как дополнительное время аренды приобретено арендатором, значение времени/даты окончания аренды, сохраненное в защищенной области хранения, защищенно обновляется, как показано на этапе 360, и процесс переходит к этапу 345.
В противном случае, если защищенное значение времени/даты меньше значения времени/даты окончания аренды, предоставляемая в аренду вычислительная система продолжает загружаться, как показано на этапе 370.
Ссылаясь теперь на фиг.4, проиллюстрирована высокоуровневая логическая блок-схема последовательности операций способа предотвращения несанкционированных модификаций в предоставляемые в аренду вычислительные системы в соответствии с предпочтительным вариантом осуществления настоящего изобретения. Поскольку SMI BIOS всегда выполняется каждые x единиц времени, SMI BIOS может быть использован для того, чтобы определять то, является ли текущее защищенное значение времени/даты меньше значения времени/даты окончания аренды, на регулярной основе, как показано на этапе 410. Если текущее защищенное значение времени/даты не меньше значения времени/даты окончания аренды, арендатору предлагается купить дополнительное время аренды на предоставляемой в аренду вычислительной машине, как показано на этапе 420. После того как дополнительное время аренды приобретено арендатором, значение времени/даты окончания защищенно обновляется, как показано на этапе 430, и процесс возвращается к этапу 410.
Если текущее защищенное значение времени/даты меньше значения 10 времени/даты окончания аренды, выполняется еще одно определение в отношении того, попадает ли текущее защищенное значение времени/даты в окно значения времени/даты окончания аренды, как показано на этапе 440. Размер окна управляется политиками. Например, окно может составлять три дня от значения времени/даты окончания. Если текущее защищенное значение времени/даты попадает в окно, арендатор предупреждается о том, что вскоре должна быть приобретена дополнительная аренда, и арендатору предлагается вариант приобрести дополнительное арендное время, как показано на этапе 450. Если текущее защищенное значение времени/даты не попадает в окно, процесс возвращается к этапу 410.
Как описано, настоящее изобретение предоставляет способ и устройство для недопущения несанкционированных модификаций в предоставляемые в аренду вычислительные системы. Настоящее изобретение использует карту времени-дня и защищенный BIOS для того, чтобы предотвратить все несанкционированные манипуляции с предоставляемой в аренду вычислительной системой. С помощью карты времени-дня арендатору невозможно модифицировать дату на предоставляемой в аренду вычислительной системе. По сути, арендатор не может подделать количество оставшегося времени использования на предоставляемой в аренду вычислительной системе.
Фиг.5 - это блок-схема последовательности операций способа, иллюстрирующая этапы, выполняемые посредством карты времени-дня при обновлении данных арендной подписки. Обработка начинается на этапе 500, после чего на этапе 510 обработка ожидает в течение периода времени (к примеру, одной минуты и т.д.) до определения того, истек ли период времени аренды (этап 520 принятия решения), посредством сравнения текущего значения времени-дна со значением времени-дня окончания, приобретенным пользователем. Если период аренды не истек, то этап 520 принятия решения переходит к ветви 522 "нет", которая возвращается в начало к этапу 510, и этот цикл продолжается до тех пор, пока количество приобретенного арендного времени не истечет. В одном варианте осуществления, используя отдельную процедуру, показанную на фиг.7 и 8, пользователь может периодически приобретать дополнительное арендное время до того, как арендное время истечет.
Если сравнение текущего значения времени-дня со значением времени-дня окончания показывает, что приобретенный арендный период истек, то этап 520 принятия решения переходит к ветви 524 "да". На этапе 530 при необходимости пользователю может быть предоставлен период времени, например 15 минут, чтобы приобрести дополнительное арендное время до перезагрузки системы с помощью защищенной операционной системы. Помимо этого, пользователю может отображаться предупреждение, запрашивающее пользователя приобрести дополнительное время, или вычислительная система перезагружается и загружает защищенную операционную систему. На этапе 540 заранее определенная область памяти, например защищенный почтовый ящик, проверяется на наличие ответа от сервера аренды. В одном варианте осуществления заранее определенная область памяти используется для того, чтобы сохранять зашифрованный ответ по аренде, чтобы не допускать взлом пользователем ответа и скрытное добавление им дополнительного времени аренды без оплаты. Ответ сервера аренды может быть сохранен в заранее определенной области памяти в результате предупреждения, выдаваемого пользователю, на этапе 530.
Выполняется определение в отношении того, приобрел ли пользователь дополнительное время аренды (этап 550 принятия решения). Если пользователь приобрел дополнительное время аренды, то этап 550 принятия решения переходит к ветви 555 "да", после чего на этапе 560 зашифрованное количество дополнительного времени, которое сохранено в заранее определенной области памяти, расшифровывается с помощью одного или более ключей шифрования, сохраненных в энергонезависимом запоминающем устройстве модуля времени-дня. В одном варианте осуществления ключи шифрования на карте времени-дня включают в себя закрытый ключ, назначенный карте времени-дня, и открытый ключ, назначенный серверу аренды. Данные, сохраненные в заранее определенной области памяти, зашифрованы с помощью открытого ключа модуля времени-дня, а также закрытого ключа сервера аренды. С помощью асинхронных ключей зашифрованное значение затем расшифровывается с помощью закрытого ключа модуля времени-дня и открытого ключа сервера аренды. На этапе 570 значение времени-дня окончания аренды обновляется на основе приобретенного количества дополнительного времени, и обновленное значение времени-дня окончания сохраняется в защищенной области хранения. В одном варианте осуществления значение времени-дня окончания сохраняется в энергонезависимой области хранения модуля времени-дня. В другом варианте осуществления значение времени-дня окончания зашифровывается и сохраняется в основной энергонезависимой области хранения вычислительной системы (к примеру, на жестком диске вычислительной системы). Затем процесс обработки возвращается обратно, чтобы определить то, имеется ли сейчас достаточное время аренды, посредством сравнения обновленного значения времени-дня с текущим значением времени-дня. Если приобретено достаточно времени, то этап 520 принятия решения выполняется, чтобы вернуться обратно к этапу 510, пока приобретенное время аренды не будет исчерпано. С другой стороны, если пользователь не приобрел достаточно времени аренды, то этап 520 принятия решения должен снова перейти к ветви 524 "да" и запросить, чтобы пользователь приобрел дополнительное время аренды.
Возвращаясь к этапу 550 принятия решения, если пользователь не приобретает дополнительное время аренды, то этап 550 принятия решения переходит к ветви 572 "нет", после чего на этапе 572 флаг защищенной операционной системы устанавливается в энергонезависимом (к примеру, CMOS) запоминающем устройстве 580. В ходе заранее заданного процесса 590 принудительно инициируется перезагрузка системы (смотрите фиг.6 и соответствующий текст для получения подробных сведений по обработке). Поскольку флаг защищенной операционной системы установлен, то вычислительная система, когда перезагружена, загружает защищенную операционную систему. Эта защищенная операционная система предоставляет ограниченный объем функциональности, главным образом ограниченный функциями, используемыми для того, чтобы приобретать дополнительное время аренды.
Фиг.6 - это блок-схема последовательности операций способа, иллюстрирующая этапы, осуществляемые посредством защищенной процедуры BIOS, чтобы активировать правила подписки. Обработка начинается на этапе 600, когда вычислительная система перезагружается или включается. На этапе 610 процедуры BIOS считывает флаг защищенной операционной системы из энергонезависимой области 580 хранения. Если, возможно, флаг защищенной операционной системы установлен, когда процедура модуля времени-дня аренды обнаружила, что приобретенное время аренды истекло (смотрите этап 575 на фиг.5), ссылаясь на фиг.6, выполняется определение того, задан ли флаг защищенной операционной системы (этап 620 принятия решения). Если флаг защищенной операционной системы не установлен (или снят), то этап 620 принятия решения переходит к ветви 625 "нет", и на этапе 630 процедура BIOS продолжает загрузку незащищенной операционной системы. В персональном вычислительном окружении примеры незащищенных операционных систем включают в себя операционные системы Microsoft Windows™, операционные системы Linux™, операционные системы UNIX или AIX, операционную систему Apple Macintosh (к примеру, Mac OS X). При использовании в данном документе незащищенная операционная система не относится к операционной системе, которая устойчива к злоумышленному коду, такому как вирусы, а вместо этого относится к тому, разрешено ли пользователю устанавливать, загружать и приводить в исполнение множество программ. Следовательно, при использовании в данном документе "защищенная операционная система" относится к операционной системе, которая ограничивает действия, которые могут быть выполнены с помощью вычислительной системы, посредством ограничения программных приложений, которые могут быть приведены в исполнение, когда вычислительная система работает под управлением защищенной операционной системы. В предоставляемом в аренду вычислительном окружении действия, которые разрешено приводить в исполнение пользователю, когда вычислительная система работает под управлением защищенной операционной системы, - это приложение(-я), которое установлено для того, чтобы предоставить возможность пользователю приобретать дополнительное арендное время. Когда дополнительное арендное время приобретено, как можно видеть на этапах 640-690 по фиг.6, вычислительная система перегружается, с тем чтобы (если достаточное арендное время приобретено) вычислительная система перезагружалась и загружала незащищенную операционную систему. В предоставляемом в аренду мобильном телефоне незащищенная операционная система позволяет пользователю использовать мобильный телефон в обычном режиме, тогда как защищенная операционная система должна ограничивать пользователя телефона действиями, используемыми для того, чтобы приобретать дополнительное арендное время (к примеру, набирать заранее заданный телефонный номер, чтобы приобретать время, подключать мобильный телефон к вычислительной сети, в которой дополнительное время может быть приобретено, и т.д.). В развлекательном окружении, таком как мобильный музыкальный проигрыватель (к примеру, MP3-проигрыватель, iPod™ и т.д.), защищенная операционная система должна ограничивать пользователя действиями, используемыми для того, чтобы приобретать дополнительное время, и не разрешать обычную работу устройства, тогда как незащищенная операционная система разрешает обычную работу устройства (к примеру, воспроизведение музыки и т.д.).
Возвращаясь к этапу 620 принятия решений, если флаг защищенной операционной системы задан, то этап 620 принятия решения переходит к ветви 635 "да", после чего на этапе 640 посредством вычислительной системы загружается защищенная операционная система, ограничивая действия пользователя действиями, относящимися к приобретению дополнительного арендного времени для вычислительной системы. В ходе заранее заданного процесса 650 пользователь приобретает дополнительное арендное время, при этом приводя в исполнение защищенную операционную систему (смотрите фиг.7 и соответствующий текст для получения сведений об обработке). Далее выполняется определение в отношении того, приобрел ли пользователь достаточно времени для того, чтобы продолжить использование предоставляемой в аренду вычислительной системы (этап 660 принятия решения). Если не приобретено достаточно времени, то этап 660 принятия решения переходит к ветви 665 "нет", после чего на этапе 670 электропитание предоставляемой в аренду вычислительной системы отключается. Отметим, что если пользователь пытается снова включить питание, флаг защищенной операционной системы по-прежнему установлен так, что система будет приводить в исполнение этапы, показанные на фиг.6, и продолжит переходить к ветви 635 "да" из этапа 620 принятия решения, пока не будет приобретено достаточного арендного времени. Возвращаясь к этапу 660 принятия решения, если пользователь приобрел достаточно арендного времени, чтобы продолжить использование вычислительной системы, то этап 660 принятия решения переходит к ветви 675 "да", после чего на этапе 680 флаг защищенной операционной системы снимается в энергонезависимом запоминающем устройстве 580, и вычислительная система перегружается на этапе 690. Отметим, что поскольку флаг защищенной операционной системы снят, когда вычислительная система перегружается, и этапы, показанные на фиг.6, повторно приводятся в исполнение, этап 620 принятия решения переходит к ветви 625 "нет", и начинается обычная работа вычислительной системы, когда загружена незащищенная операционная система.
Фиг.7 - это блок-схема последовательности операций способа, иллюстрирующая этапы, осуществляемые для того, чтобы приобрести дополнительное время аренды. Операции, выполняемые в предоставляемой в аренду вычислительной системе, начинаются на этапе 700, тогда как операции, выполняемые в веб-сервере аренды, начинаются на этапе 701. На этапе 705 предоставляемая в аренду вычислительная система запрашивает защищенное соединение с веб-сервером аренды с помощью такого протокола, как протокол защищенных сокетов (SSL) или другой защищенный протокол связи. На этапе 710 веб-сервер аренды принимает запрос и устанавливает защищенное соединение с предоставляемой в аренду вычислительной системой. Возвращаясь к обработке, выполняемой посредством предоставляемой в аренду вычислительной системы, на этапе 715 идентификационные данные предоставляемой в аренду вычислительной системы зашифровываются (к примеру, с помощью зашифрованного протокола связи, отдельно используя общий ключ, используя открытый ключ, соответствующий веб-серверу аренды, и т.д.). В одном варианте осуществления информация ключа шифрования, используемая для того, чтобы шифровать данные, хранится в модуле времени-дня. На этапе 720 идентификационные данные предоставляемой в аренду вычислительной системы передаются в веб-сервер аренды.
Обращаясь снова к обработке веб-сервера аренды, на этапе 725 веб-сервер аренды принимает и расшифровывает идентификационные данные предоставляемой в аренду вычислительной системы, и на этапе 730 информация учетной записи арендатора извлекается из хранилища 740 информации учетных записей. На этапе 745 веб-сервер аренды использует информацию учетных данных для того, чтобы создать веб-страницу обновления учетной записи, которая включает в себя сведения о предоставляемой в аренду вычислительной системе, включающие в себя оставшееся количество времени аренды, а также стоимость для приобретения дополнительного времени аренды. Эта веб-страница возвращается в предоставляемую в аренду вычислительную систему. На этапе 750 веб-страница обновления учетной записи принимается в предоставляемой в аренду вычислительной системе и отображается пользователю. В ходе заранее заданных процессов 760 и 770 предоставляемая в аренду вычислительная система и веб-сервер аренды, соответственно, выполняют действия, чтобы обрабатывать оплату дополнительного времени аренды, а веб-сервер аренды обновляет информацию учетной записи арендатора, чтобы отразить дополнительное время, которое приобретено. Смотрите фиг.8 и соответствующий текст для получения сведений, относящихся к этапам, используемым для того, чтобы обрабатывать платежи и обновлять информацию учетной записи арендатора. На этапах 775 и 785 предоставляемая в аренду вычислительная система и веб-сервер аренды, соответственно, завершают защищенное соединение, а на этапах 780 и 790, соответственно, обработка, используемая для того, чтобы приобретать дополнительное время аренды, завершается.
Фиг.8 - это блок-схема последовательности операций способа, иллюстрирующая дополнительные этапы, осуществляемые в ходе приобретения и обновления дополнительного времени аренды. Этапы, выполняемые посредством предоставляемой в аренду вычислительной системы, показаны начиная с 800, тогда как этапы, выполняемые посредством веб-сервера аренды, показаны начиная с 801. На этапе 805 пользователь предоставляемой в аренду вычислительной системы вводит запрос на дополнительное время аренды и предоставляет данные для оплаты (к примеру, номер и сопутствующие сведения о кредитной или дебетовой карте и т.д.), и эта информация отправляется в веб-сервер аренды.
На этапе 810 веб-сервер аренды принимает запрос на дополнительное время аренды и данные оплаты. На этапе 815 веб-сервер аренды проверяет достоверность данных оплаты (к примеру, проверяет данные кредитной/дебетовой карты на предмет достаточности кредита/средств и т.д.). Выполняется определение в отношении того, была ли подтверждена достоверность информации оплаты (этап 820 принятия решения). Если достоверность информации оплаты не подтверждена, этап 820 принятия решения переходит к ветви 822 "нет", после чего на этапе 825 сообщение об ошибке возвращается в предоставляемую в аренду вычислительную систему, и обработка возвращается в вызывающую процедуру (смотрите фиг.7) на этапе 830. С другой стороны, если достоверность оплаты проверена, то этап 820 принятия решения переходит к ветви 832 "да", после чего на этапе 835 информация учетной записи арендатора обновляется и сохраняется в хранилище 740 информации учетной записи. На этапе 840 данные времени, которые включают в себя количество дополнительного времени, приобретенного арендатором, шифруются с помощью закрытого ключа веб-сервера аренды и открытого ключа предоставляемой в аренду вычислительной системы. На этапе 850 зашифрованные данные времени отправляются обратно в предоставляемую в аренду вычислительную систему. Далее, обработка, выполняемая веб-сервером аренды, возвращается в вызывающую процедуру на этапе 855 (смотрите фиг.7).
Снова обращаясь к обработке, выполняемой предоставляемой в аренду вычислительной системой, на этапе 860 предоставляемая в аренду вычислительная система принимает ответ от веб-сервера аренды в ответ на запрос дополнительного арендного времени. Выполняется определение в отношении того, является ли ответ ответом с ошибкой (этап 865 принятия решения). Если ответом является ошибка, то этап 865 принятия решения переходит к ветви 866 "да", которая возвращает пользователя к началу, чтобы повторить запрос на дополнительное время аренды (к примеру, пользователь предоставляет другую дебетовую/кредитную карту для оплаты и т.д.). Эта циклическая обработка продолжается до тех пор, пока предоставляемая в аренду вычислительная система не примет ответ без ошибки, и при этом этап 865 принятия решения переходит к ветви 868 "нет", и выполняется определение в отношении того, работает ли предоставляемая в аренду вычислительная система под управлением защищенной операционной системы (этап 870 принятия решения). Если предоставляемая в аренду вычислительная система в данный момент работает под управлением защищенной операционной системы, то этап 870 принятия решения переходит к ветви 872 "да", после чего на этапе 875 защищенная операционная система расшифровывает ответные данные аренды с помощью закрытого ключа предоставляемой в аренду вычислительной системы и закрытого ключа веб-сервера аренды, а на этапе 880 защищенная операционная система обновляет значение времени-дня окончания аренды, чтобы отразить дополнительное время, приобретенное пользователем. С другой стороны, если предоставляемая в аренду вычислительная система не работает в данный момент под управлением защищенной операционной системы, вместо этого работает под управлением обычной операционной системы (к примеру, Microsoft Windows™, Linux™, AIX™ и т.д.), то этап 870 принятия решения переходит к ветви 885 "нет", после чего на этапе 890 зашифрованный ответ, принимаемый из веб-сервера аренды, сохраняется в заранее определенной области хранения, например в почтовом ящике. Следующий раз, когда система перезагружается или проверяет приобретение дополнительного времени аренды (смотрите фиг.5), заранее определенная область хранения проверяется, и дополнительное приобретенное время аренды используется для того, чтобы обновлять значение времени-дня окончания. Отметим, что в показанном варианте осуществления ключи шифрования не предоставляются из незащищенной операционной системы, чтобы не допустить использование ключей шифрования хакером для того, чтобы добавлять дополнительное время аренды без оплаты. Далее обработка веб-сервера аренды возвращается в вызывающую процедуру (смотрите фиг.7) на этапе 895.
Фиг.9 - это схема, иллюстрирующая компоненты, используемые в предоставляемой в аренду вычислительной системе. Предоставляемая в аренду вычислительная система 900 включает в себя карту 910 времени-дня. В одном варианте осуществления карта 910 времени-дня устанавливается в гнездо DIMM (память с двухрядным расположением выводов) и соединяется с шиной главного процессора вычислительной системы. При описании в данном документе предоставляемая в аренду вычислительная система переводится в неработоспособное состояние, если карта времени-дня отсутствует в вычислительной системе. В одном варианте осуществления карта 910 времени-дня включает в себя защищенные данные карты 920 времени-дня, которые недоступны для пользователя предоставляемой в аренду вычислительной системы 900. Эта информация включает в себя открытый ключ веб-сервера аренды, закрытый ключ предоставляемой в аренду вычислительной системы, текущее значение времени-дня, которое отражает текущее время и дату, и значение времени-дня окончания, которое отражает время и дату, когда истекает период аренды. При загрузке предоставляемая в аренду вычислительная система 900 приводит в исполнение BIOS 930, которая включает в себя защищенную процедуру BIOS, которая не может быть изменена пользователем предоставляемой в аренду вычислительной системы. Защищенная процедура BIOS удостоверяется, что карта времени-дня установлена, считывает идентификационные данные карты времени-дня, чтобы гарантировать, что карта времени-дня не заменена на другую карту времени-дня с другими значениями аренды, и данные по использованию заранее оплаченной аренды (к примеру, значение времени-дня окончания и т.д.), которые указывают, когда истек период аренды. Как показано, BIOS 930 либо загружает защищенную операционную систему 940, если период аренды истек, либо, если период аренды не истек, то BIOS 930 загружает незащищенную операционную систему 950, такую как Microsoft Windows™, Linux™, AIX™ и т.п.
Фиг.10 - это схема, иллюстрирующая высокоуровневую блок-схему последовательности операций способа и системные компоненты, используемые при управлении предоставляемой в аренду вычислительной системой с помощью гипервизора. Выбранные компоненты 1000 вычислительной системы включают в себя доверенный платформенный модуль (TPM) 1050, который включает в себя энергонезависимое ОЗУ 1060, которое является защищенной областью хранения, которая недоступна из гостевых операционных систем 1075, которые работают под управлением гипервизора 1020.
Когда вычислительная система запущена, приводится в исполнение защищенная BIOS. Обработка защищенной системы BIOS показана начиная с этапа 1005. BIOS невозможно обновлять клиенту-арендатору, который арендует и использует предоставляемую в аренду вычислительную систему. Вместо этого, защищенную систему BIOS может обновлять только обладающий полномочиями пользователь, например сотрудник организации, которая предоставляет в аренду предоставляемую в аренду вычислительную систему. В одном варианте осуществления криптографические ключи, сохраненные в TPM, используются для того, чтобы аутентифицировать обладающего полномочиями пользователя и разрешать обладающему полномочиями пользователю обновлять BIOS при необходимости. Тем не менее, как правило, после того как установлена в предоставляемой в аренду вычислительной системе, защищенную систему BIOS практически никогда не требуется обновлять.
На этапе 1010 защищенная система BIOS загружает гипервизор 1020 в память (ОЗУ) предоставляемой в аренду вычислительной системы. На этапе 1070 либо защищенная система BIOS, либо гипервизор загружает одну или более гостевых операционных систем, которые работают под управлением гипервизора. Как показано, при работе гостевые операционные системы 1075 формируют действия (или функции), которые перехватываются и отслеживаются гипервизором 1020. Действия, которые могут подвергнуть риску целостность или безопасность предоставляемой в аренду вычислительной системы, запрещаются гипервизором. Действия, которые показаны выполняющимися посредством гипервизора, включают в себя отслеживание показателей 1025. Показатели включают в себя период времени, в котором предоставляемая в аренду вычислительная система использовалась пользователем системы. Когда показатели падают ниже предела аренды, гипервизор запрещает использование гостевых операционных систем пользователем. Периодически гипервизор 1020 выполняет обновление в энергонезависимом ОЗУ (1030). Оно включает в себя обновление показателей аренды (к примеру, использованное время), а также обновление предела аренды (к примеру, приобретенное время), когда пользователь приобретает дополнительное время. Функция 1040 приобретения времени используется для того, чтобы приобретать дополнительное время посредством подключения к серверу 1001 аренды через вычислительную сеть 120, например Интернет. Как показано, данные оплаты предоставляются пользователем, и когда их достоверность подтверждена, дополнительное время аренды возвращается в предоставляемую в аренду вычислительную систему и обрабатывается посредством гипервизора. Помимо этого, функция 1045 мониторинга и перехвата имеет такую функциональность, чтобы отслеживать действия, запрошенные гостевыми операционными системами. Действия, которые могут подвергать риску данные безопасности аренды, такие как доступ к энергонезависимому ОЗУ 1060 или внесение изменений в код гипервизора, перехватываются и запрещаются гипервизором.
Фиг.11 - это блок-схема последовательности операций способа, иллюстрирующая этапы, выполняемые посредством защищенной BIOS, чтобы проверять достоверность приводимого в исполнение кода гипервизора и приводить в исполнение гипервизор на основе проверки достоверности. Обработка защищенной BIOS начинается на этапе 1100, после чего на этапе 1110 BIOS анализирует приводимый в исполнение образ гипервизора. В одном варианте осуществления анализ образа гипервизора выполняется с помощью хеш-алгоритма, который приводит к результату хеш-функции. В другом варианте осуществления анализ образа гипервизора выполняется посредством расшифровки образа гипервизора с помощью ключа, сохраненного в энергонезависимом ОЗУ 1060 TPM. Когда используется хеш-алгоритм, на этапе 1125 результирующее значение 1120 хеш-функции сравнивается с ожидаемым значением хеш-функции, сохраненным в энергонезависимом ОЗУ TPM, чтобы удостовериться, что образ гипервизора не изменен или заменен. Если пользователь пытается изменить или заменить образ гипервизора, чтобы обойти функции предоставляемой в аренду вычислительной системы, результирующее значение хеш-функции замененного/измененного образа гипервизора не совпадает с ожидаемым значением хеш-функции, и BIOS не загружает замененную/измененную версию гипервизора. Аналогично, если гипервизор зашифрован, то только версия гипервизора, которая зашифрована с помощью крипто-ключа, сохраненного в энергонезависимом ОЗУ TPM, успешно расшифрует образ гипервизора. Защищенный BIOS и гипервизор имеют такую функциональность, чтобы не допускать несанкционированного доступа к TPM 1050 и энергонезависимому ОЗУ 1060 TPM, с тем чтобы злоумышленные пользователи не могли получить криптографический ключ. В одном варианте осуществления асимметричные ключи используются вместе с закрытым ключом, используемым для того, чтобы шифровать образ гипервизора, и открытым ключом, сохраненным в энергонезависимом ОЗУ TPM, используемым для того, чтобы расшифровывать образ. Таким образом, закрытый ключ, требуемый для того, чтобы шифровать образ гипервизора, не сохраняется в удаленной вычислительной системе, а сохраняется только организацией, которая сдает в аренду вычислительную систему. В дополнительном варианте осуществления и шифрование образа гипервизора (к примеру, с помощью асимметричных ключей), и хеширование используется для того, чтобы дополнительно защищать целостность образа гипервизора.
Выполняется определение в отношении того, является ли образ гипервизора неизмененным и не был ли он подделан злоумышленным пользователем (этап 1130 принятия решения). Если образ гипервизора изменен или заменен, этап 1130 переходит к ветви "нет", после чего на этапе 1140 формируется отчет, указывающий, что образ гипервизора изменен или заменен, и на этапе 1150 предоставляемая в аренду вычислительная система отключается. Если пользователь пытается перезапустить систему, оповещается, что гипервизор является измененным/замененным, и система повторно отключается. В одном варианте осуществления пользователь отправляет предоставляемую в аренду вычислительную систему обратно в арендную организацию, чтобы восстановить систему. Арендная организация может переустанавливать систему, поскольку у нее есть пароль (ключ), необходимый для того, чтобы изменить BIOS, и поэтому может запустить систему с измененным гипервизором, а затем переустановить корректную версию гипервизора.
Возвращаясь к этапу 1130 принятия решения, если образ гипервизора не изменен (к примеру, хороший образ гипервизора), то этап 1130 принятия решения переходит к ветви 1155 "да", после чего на этапе 1160 гипервизор загружается и выполняет заранее заданный процесс 1170 (смотрите фиг.12 и соответствующий текст для получения сведений об обработке). Помимо этого, на этапе 1180 либо BIOS, либо гипервизор загружает одну или более гостевых операционных систем, которые работают под управлением гипервизора, и выполняет заранее заданный процесс 1190 (смотрите фиг.12 и соответствующий текст для получения сведений об обработке). Как показано, действия, запрашиваемые посредством гостевых операционных систем, отслеживаются гипервизором. Помимо этого, если показатели аренды превышают предел аренды (к примеру, у пользователя истекает время аренды), гипервизор запрещает использование гостевых операционных систем до тех пор, пока пользователь не приобретет дополнительное время аренды. После этого обработка запуска BIOS завершается на этапе 1195.
Фиг.12 - это блок-схема последовательности операций способа, иллюстрирующая этапы, осуществляемые посредством гипервизора, чтобы отслеживать действия, выполняемые посредством гостевых операционных системы и обновлять показатели аренды при необходимости. Обработка, выполняемая гипервизором, показана начиная с этапа 1200, после чего на этапе 1205 гипервизор выполняет начальное считывание показателей аренды и пределов аренды. Выполняется определение в отношении того, превышают ли показатели аренды пределы аренды (этап 1210 принятия решения). Например, превышает ли количество использованного времени аренды количество приобретенного времени аренды. Если показатели аренды превышают пределы аренды, то этап 1210 принятия решения переходит к ветви 1215 "да", после чего на этапе 1220 гипервизор запрещает использование гостевых операционных систем. В ходе заранее заданного процесса 1225 гипервизор запускает функцию, чтобы дать возможность пользователю приобрести дополнительное время аренды для предоставляемой в аренду вычислительной системы (заранее заданный процесс 1225, смотрите фиг.13 и соответствующий текст для получения сведений об обработке). После того как пользователь приобретает дополнительное время аренды, обработка возвращается назад к этапу 1210 принятия решения, чтобы определить то, достаточно ли времени приобретено успешно, для того чтобы продолжить использование системы. Если показатели аренды не превышают пределы аренды, то этап 1210 принятия решения переходит к ветви 1230 "нет", пропуская этапы 1220 и 1225.
На этапе 1235 гипервизор отслеживает действия, запрошенные посредством гостевых операционных систем. Выполняется определение гипервизором того, является ли запрошенное действие интересующим действием (этап 1240 принятия решения). Интересующие действия включают в себя действия, которые могут быть использованы для того, чтобы обойти защищенные аспекты аренды предоставляемой в аренду вычислительной системы. Эти действия включают в себя попытку гостевых операционных систем осуществить доступ к энергонезависимым областям хранения (например, энергонезависимому ОЗУ 1060), где крипто-ключи, значения хеш-функции, пределы аренды и показатели аренды сохранены, чтобы не допустить осуществление доступа и/или изменение злоумышленным пользователем данных, используемых гипервизором для того, чтобы управлять аспектами аренды предоставляемой в аренду вычислительной системы. Если действие является интересующим действием, этап 1240 принятия решения переходит к ветви 1245 "да", и на этапе 1250 гипервизор принимает решение, следует ли разрешить действие. Если действие не разрешено (например, осуществление доступа или изменение данных аренды), то гипервизор запрещает действие и возвращает ошибку в запрашивающие гостевые операционные системы. Некоторые действия могут быть в определенной степени разрешены. Например, если системные часы используются в качестве показателя аренды, чтобы определять период аренды, небольшие изменения (например, изменение часовых поясов) могут быть разрешены, но более крупные изменения в системных часах идентифицируются гипервизором как попытка обойти аспекты аренды предоставляемой в аренду вычислительной системы и блокируются. Возвращаясь к этапу 1240 принятия решения, если действие не представляет интереса для гипервизора, то этап 1240 принятия решения переходит к ветви 1255 "нет", пропуская этап 1250.
Периодически, на этапе 1260, гипервизор обновляет показатели аренды и сохраняет обновленные показатели аренды в энергонезависимом ОЗУ 1060. Затем обработка гипервизора возвращается назад, чтобы определить то, истекло ли время аренды, и продолжает отслеживать действия, выполняемые посредством гостевых операционных систем. Эта циклическая обработка продолжается все время, пока используется предоставляемая в аренду вычислительная система. Когда система отключается и перезагружается, данные показателей аренды и данные пределов аренды извлекаются из энергонезависимого ОЗУ 1060, и обработка продолжается так, как описано выше.
Возвращаясь к обработке посредством гостевых операционных систем, операции гостевых операционных систем показаны начиная с этапа 1270. На этапе 1275 пользователь выполняет действия с вычислительной системой с помощью гостевой операционной системы. На этапе 1280 в ходе использования гостевой операционной системы запрашиваются действия. Поскольку гостевая операционная система функционирует под управлением гипервизора, гипервизор перехватывает действия и принимает решение о том, могут ли быть выполнены действия. Выполняется определение в отношении того, отключена ли гостевая операционная система посредством гипервизора, когда время аренды истекло (этап 1285 принятия решения). Когда время аренды истекло, этап 1285 принятия решения переходит к ветви 1288 "да", после чего использование гостевой операционной системы запрещается до тех пор, пока пользователь не приобретет дополнительное время аренды. С другой стороны, если гостевая операционная система не отключена посредством гипервизора, то этап 1285 принятия решения переходит к ветви 1286 "нет", и пользователь может продолжать использование предоставляемой в аренду вычислительной системы до тех пор, пока время аренды не истечет.
Фиг.13 - это блок-схема последовательности операций способа, иллюстрирующая этапы, осуществляемые посредством гипервизора, чтобы приобретать дополнительное время и обновлять пределы аренды. Фиг.13 аналогична фиг.8, тем не менее, на фиг.13 гипервизор используется для того, чтобы принимать и сохранять ответ от сервера аренды. Этапы, выполняемые посредством предоставляемой в аренду вычислительной системы, показаны начиная с 1300, тогда как этапы, выполняемые посредством веб-сервера аренды, показаны начиная с 1301. На этапе 1305 пользователь предоставляемой в аренду вычислительной системы вводит запрос на дополнительное время аренды и предоставляет данные для оплаты (к примеру, номер и сопутствующие сведения о кредитной или дебетовой карте и т.д.), и эта информация отправляется в веб-сервер аренды.
На этапе 1310 веб-сервер аренды принимает запрос на дополнительное время аренды и данные оплаты. На этапе 1315 веб-сервер аренды проверяет достоверность данных оплаты (к примеру, проверяет данные кредитной/дебетовой карты на предмет достаточности кредита/средств и т.д.). Выполняется определение в отношении того, была ли подтверждена достоверность информации оплаты (этап 1320 принятия решения). Если достоверность информации оплаты не подтверждена, этап 1320 принятия решения переходит к ветви 1322 "нет", после чего на этапе 1325 сообщение об ошибке возвращается в предоставляемую в аренду вычислительную систему, и обработка возвращается в вызывающую процедуру (смотрите фиг.12) на этапе 1330. С другой стороны, если достоверность оплаты проверена, то этап 1320 принятия решения переходит к ветви 1332 "да", после чего на этапе 1335 информация учетной записи арендатора обновляется и сохраняется в хранилище 740 информации учетной записи. На этапе 1340 данные времени, которые включают в себя количество дополнительного времени, приобретенного арендатором, шифруются с помощью закрытого ключа веб-сервера аренды и открытого ключа предоставляемой в аренду вычислительной системы. На этапе 1350 зашифрованные данные времени отправляются обратно в предоставляемую в аренду вычислительную систему. Далее обработка веб-сервера аренды возвращается в вызывающую процедуру на этапе 1355 (смотрите фиг.12).
Снова обращаясь к обработке предоставляемой в аренду вычислительной системы, на этапе 1360 предоставляемая в аренду вычислительная система принимает ответ от веб-сервера аренды в ответ на запрос дополнительного арендного времени. Выполняется определение в отношении того, является ли ответ ответом с ошибкой (этап 1365 принятия решения). Если ответом является ошибка, то этап 1365 принятия решения переходит к ветви 1366 "да", которая возвращает пользователя к началу, чтобы повторить запрос на дополнительное время аренды (к примеру, пользователь предоставляет другую дебетовую/кредитную карту для оплаты и т.д.). Эта циклическая обработка продолжается до тех пор, пока предоставляемая в аренду вычислительная система не примет ответ без ошибки, и при этом этап 1365 принятия решения переходит к ветви 1368 "нет", после чего на этапе 1375 гипервизор расшифровывает ответ. В одном варианте осуществления гипервизор расшифровывает ответ с помощью ключа, который извлекается из энергонезависимого ОЗУ 1060 в рамках доверенного платформенного модуля (TPM) 1050. В дополнительном варианте осуществления гипервизор перехватывает действия, выполняемые посредством гостевых операционных систем, например попытка принять данные аренды из энергонезависимого ОЗУ 1060, и не допускает выполнения этих действия, чтобы защитить данные аренды, сохраненные в энергонезависимом ОЗУ 1060. На этапе 1380 гипервизор обновляет предел аренды, например время окончания или дату окончания, в энергонезависимом ОЗУ 1060. После этого обработка возвращается в вызывающую процедуру (смотрите фиг.12) на этапе 1395.
Фиг.14 иллюстрирует систему 1401 обработки информации, которая является упрощенным примером вычислительной системы, допускающей выполнение операций вычисления, описанных в данном документе. Вычислительная система 1401 включает в себя процессоры 1400, которые соединены с шиной 1402 главного процессора. Карта 1499 времени-дня и кэш-память 1404 второго уровня (L2) также соединены с шиной 1402 главного процессора. Мост 1406 хост-PCI соединен с основной памятью 1408, включает в себя функции управления кэш-памятью и основной памятью и предоставляет шинный контроллер, чтобы обрабатывать передачи между PCI-шиной 1410, процессором 1400, L2-кэшем 1404, основной памятью 1408 и шиной 1402 главного процессора. Основная память 1408 соединена с мостом 1406 хост-PCI, а также шиной 1402 главного процессора. Устройства, используемые исключительно посредством главного процессора(-ов) 1400, такие как LAN-плата 1430, соединены с PCI-шиной 1410. Интерфейс служебного процессора и транзитный путь 1412 доступа к ISA предоставляет интерфейс между PCI-шиной 1410 и PCI-шиной 1414. Таким образом, PCI-шина 1414 изолирована от PCI-шины 1410. Устройства, такие как флэш-память 1418, соединены с PCI-шиной 1414. В одной реализации флэш-память 1418 включает в себя код BIOS, который содержит необходимый приводимый в исполнение процессором код для множества низкоуровневых системных функций и функций системной загрузки. Доверенный платформенный модуль (TPM 1050) соединен с шиной, доступной посредством процессоров 1400. В одном варианте осуществления TPM 1050 соединен с шиной 1402 главного процессора. TPM 1050 включает в себя энергонезависимое ОЗУ 1060, используемое для того, чтобы сохранять защищенные данные, такие как показатели аренды, пределы аренды, ожидаемые коды хеш-функции и криптографические ключи.
PCI-шина 1414 предоставляет интерфейс для множества устройств, которые совместно используются посредством главного процессора(ов) 1400 и служебного процессора 1416, в том числе, например, флэш-память 1418. Мост 1435 PCI-ISA предоставляет шинный контроллер, чтобы обрабатывать передачи между PCI-шиной 1414 и ISA-шиной 1440, функциональностью 1445 универсальной последовательной шины (USB), функциональностью 1455 управления питанием, и может включать в себя другие непоказанные функциональные элементы, такие как часы реального времени (RTC), элемент управления DMA, поддержка прерываний и поддержка системной шины управления. Энергонезависимое ОЗУ 1420 соединено с ISA-шиной 1440. Служебный процессор 1416 включает в себя JTAG- и I2C-шины 1422 для обмена данными с процессором(-ами) 1400 в ходе этапов инициализации. JTAG/I2C-шины 1422 также соединены с L2-кэшем 1404. Мост 1406 хост-PCI и основная память предоставляют путь обмена данными между процессором, служебным процессором, L2-кэшем, мостом хост-PCI и основной памятью. Служебный процессор 1416 также имеет доступ к ресурсам системного питания для уменьшения энергопотребления устройства 1401 обработки информации.
Периферийные устройства и устройства ввода-вывода (I/O) могут быть соединены с различными интерфейсами (к примеру, параллельным интерфейсом 1462, последовательным интерфейсом 1464, интерфейсом 1468 клавиатуры и интерфейсом 1470 мыши, соединенным с ISA-шиной 1440. Альтернативно, многие устройства ввода-вывода могут размещаться в суперконтроллере ввода-вывода (не показан), соединенном с ISA-шиной 1440.
Чтобы соединять вычислительную систему 1401 с другой вычислительной системой, чтобы копировать файлы по сети, LAN-плата 1430 соединена с PCI-шиной 1410. Аналогично, чтобы соединять вычислительную систему 1401 с ISP, чтобы подключаться к Интернету с помощью подключения по телефонной линии, модем 1475 соединен с последовательным портом 1464 и мостом 1435 PCI-ISA.
Хотя фиг.14 иллюстрирует одну систему обработки информации, система обработки информации может принимать множество форм. Например, система обработки информации может принимать форму настольной вычислительной машины, сервера, портативной вычислительной машины, переносной вычислительной машины, ноутбука либо вычислительной машины или системы обработки данных с другим форм-фактором. Помимо этого, система обработки информации может принимать другие форм-факторы, такие как персональное цифровое устройство (PDA), игровая приставка, ATM-автомат, портативное телефонное устройство, устройство связи или другие устройства, которые включают в себя процессор и запоминающее устройство.
Одной из предпочтительных реализаций изобретения является клиентское приложение, т.е. набор инструкций (программный код) или другой функциональный описательный материал в модуле кода, которые может, например, размещаться в оперативном запоминающем устройстве вычислительной машины. Пока не затребован посредством вычислительной машины, набор инструкций может быть сохранен в другом запоминающем устройстве вычислительной машины, например на жестком диске или съемном запоминающем устройстве, таком как оптический диск (для возможного использования в CD-ROM) или гибкий диск (для возможного использования в накопителе на гибких дисках), или загружен через Интернет или другую вычислительную сеть. Таким образом, настоящее изобретение может быть реализовано как вычислительный программный продукт для использования в вычислительной машине. Помимо этого, хотя различные описанные способы удобно реализуются в вычислительной машине общего назначения, выборочно активируемой или переконфигурируемой посредством программного обеспечения, специалисты в данной области техники также должны признавать, что эти способы могут осуществляться в аппаратных средствах, в микропрограммном обеспечении или в более специализированных устройствах, созданных для того, чтобы выполнять требуемые этапы способа. Функциональный описательный материал - это информация, которая предоставляет функциональность машине. Функциональный описательный материал включает в себя, но не только, вычислительные программы, инструкции, правила, факты, определения вычисляемых функций, объекты и структуры данных.
Хотя показаны и описаны конкретные варианты осуществления настоящего изобретения, специалистам в данной области техники должно быть очевидным из идей настоящего документа, что изменения и модификации могут быть выполнены без отступления от изобретения и его более широких аспектов. Следовательно, прилагаемая формула изобретения должна включать в область применения все эти изменения и модификации, как находящиеся в рамках настоящего духа и области применения этого изобретения. Более того, следует понимать, что изобретение задается исключительно посредством прилагаемой формулы изобретения. Специалисты в данной области техники должны понимать, что если назначено конкретное число элементов формулы изобретения, это намерение должно быть указано в явной форме в пункте формулы изобретения, и при отсутствии такого указания ограничение не налагается. В качестве неограничивающего примера, для помощи в понимании прилагаемая формула изобретения содержит использование вводных фраз "по меньшей мере, один" и "один или более", чтобы вводить пункты формулы изобретения. Тем не менее, использование таких фраз не должно истолковываться так, чтобы подразумевать то, что введение элемента формулы изобретения посредством неопределенных артиклей "a" или "an" ограничивает все конкретные пункты, содержащие этот вводимый элемент формулы изобретения, изобретениями, содержащими только один такой элемент, даже когда этот же пункт формулы изобретения включает в себя вводные фразы "один или более" или "по меньшей мере, один" и неопределенные артикли, такие как "a" или "an"; то же истинно для использования в пунктах формулы изобретения в определенных артиклях.
название | год | авторы | номер документа |
---|---|---|---|
РЕАЛИЗАЦИЯ ЗАЩИЩЕННОГО ОБМЕНА ИНФОРМАЦИЕЙ В ИСПОЛНЯЮЩЕЙ СИСТЕМЕ | 2012 |
|
RU2584570C2 |
АТТЕСТАЦИЯ ХОСТА, СОДЕРЖАЩЕГО ДОВЕРИТЕЛЬНУЮ СРЕДУ ИСПОЛНЕНИЯ | 2015 |
|
RU2679721C2 |
МАСШТАБИРОВАНИЕ ЭКЗЕМПЛЯРА ВИРТУАЛЬНОЙ МАШИНЫ | 2013 |
|
RU2616167C2 |
ДВУКРАТНАЯ САМОДИАГНОСТИКА ПАМЯТИ ДЛЯ ЗАЩИТЫ МНОЖЕСТВА СЕТЕВЫХ КОНЕЧНЫХ ТОЧЕК | 2016 |
|
RU2714607C2 |
УСТРОЙСТВО МОБИЛЬНОЙ СВЯЗИ И СПОСОБ РАБОТЫ С НИМ | 2014 |
|
RU2672712C2 |
СПОСОБ АВТОРИЗАЦИИ ОПЕРАЦИИ, ПРЕДНАЗНАЧЕННОЙ ДЛЯ ВЫПОЛНЕНИЯ НА ЗАДАННОМ ВЫЧИСЛИТЕЛЬНОМ УСТРОЙСТВЕ | 2014 |
|
RU2675902C2 |
Система взаимодействия пользователей при совершении сделок с объектами недвижимости | 2016 |
|
RU2634208C1 |
СПОСОБ ДОВЕРЕННОЙ ЗАГРУЗКИ В ВИРТУАЛИЗИРОВАННЫХ СРЕДАХ | 2014 |
|
RU2581552C2 |
СИСТЕМА И СПОСОБЫ АУДИТА ВИРТУАЛЬНОЙ МАШИНЫ | 2017 |
|
RU2691187C1 |
Система и способ поэтапного повышения информационной безопасности элементов технологической системы | 2019 |
|
RU2728504C1 |
Изобретение относится к средствам слежения за арендой времени или подписки предоставляемой вычислительной системы. Техническим результатом является защита от несанкционированных модификаций при предоставлении аренды. В способе и системе приводят в исполнение гипервизор, чтобы управлять доступом к предоставляемой в аренду вычислительной системе. Гипервизор выполняет этапы, которые включают в себя: считывание показателя аренды из энергонезависимой области хранения, сравнение показателя аренды с пределом аренды, разрешение на использование одной или более гостевых операционных систем посредством пользователя вычислительной системы в ответ на попадание показателя аренды в рамки, задаваемые пределом аренды, и запрет на использование гостевых операционных систем посредством пользователя вычислительной системы в ответ на превышение показателем аренды предела аренды. 3 н. и 17 з.п. ф-лы, 14 ил.
1. Способ управления доступом операционных систем с помощью гипервизора, содержащий этапы, на которых:
приводят в исполнение гипервизор на вычислительной системе, при этом гипервизор выполняет этапы, на которых:
считывают показатель аренды из энергонезависимой области хранения;
сравнивают показатель аренды с пределом аренды;
разрешают пользователю вычислительной системы использование одной или более гостевых операционных систем в ответ на попадание показателя аренды в рамки, задаваемые пределом аренды; и
запрещают пользователю вычислительной системы использование гостевых операционных систем в ответ на превышение показателем аренды предела аренды.
2. Способ по п.1, дополнительно содержащий этапы, на которых:
запускают защищенный код BIOS до приведения в исполнение гипервизора, при этом защищенный код BIOS выполняет этапы, на которых:
проверяют достоверность приводимого в исполнение модуля гипервизора, при этом проверка достоверности приводит к результату проверки достоверности;
загружают приводимый в исполнение модуль гипервизора и приводят в исполнение гипервизор в ответ на результат проверки достоверности, указывающий успешную проверку достоверности; и
запрещают использование вычислительной системы в ответ на результат проверки достоверности, указывающий неудачную проверку достоверности.
3. Способ по п.2, в котором проверка достоверности дополнительно содержит, по меньшей мере, один этап, выбранный из группы, состоящей из этапов, на которых расшифровывают приводимый в исполнение код гипервизора, и сравнивают хеш-данные приводимого в исполнение кода гипервизора с ожидаемым результатом хеш-функции.
4. Способ по п.1, в котором этап запрещения дополнительно содержит этапы, на которых:
предлагают пользователю приобрести дополнительное арендное время;
принимают данные приобретения от пользователя;
отправляют принимаемые данные приобретения на сервер аренды, который соединен с вычислительной системой посредством вычислительной сети;
принимают ответ от сервера аренды посредством вычислительной сети;
продолжают запрещать использование в ответ на ответ с ошибкой; и
в ответ на ответ, указывающий успешную транзакцию:
обновляют предел аренды;
сохраняют обновленный предел аренды в энергонезависимой области хранения;
сравнивают показатель аренды с обновленным пределом аренды;
разрешают использовать гостевые операционные системы в ответ на попадание показателя аренды в рамки, задаваемые обновленным пределом аренды; и
продолжают запрещать использование в ответ на превышение показателем аренды обновленного предела аренды.
5. Способ по п.1, в котором этап разрешения дополнительно содержит этапы, на которых:
периодически обновляют показатели аренды, при этом обновление включает в себя этапы, на которых:
сохраняют обновленные показатели аренды в энергонезависимой области хранения;
сравнивают предел аренды с обновленными показателями аренды;
продолжают разрешать использование гостевых операционных систем в ответ на попадание показателя аренды в рамки, задаваемые обновленным пределом аренды; и
запрещают использование гостевых операционных систем пользователем вычислительной системы в ответ на превышение обновленным показателем аренды предела аренды.
6. Способ по п.1, в котором этап разрешения дополнительно содержит этапы, на которых:
перехватывают посредством гипервизора множество действий, запрошенных посредством гостевых операционных систем;
идентифицируют, по меньшей мере, одно из действий, которое пытается модифицировать данные аренды, поддерживаемые посредством гипервизора, при этом данные аренды выбираются из группы, состоящей из предела аренды и показателя аренды; и
отклоняют такие идентифицированные действия.
7. Способ по п.1, дополнительно содержащий этап, на котором:
сохраняют предел аренды и показатель аренды в энергонезависимой области хранения, при этом энергонезависимой областью хранения является энергонезависимое ОЗУ, включенное в доверенный платформенный модуль (ТРМ), включенный в вычислительную систему.
8. Система для управления доступом операционных систем с помощью гипервизора, содержащая:
один или более процессоров;
запоминающее устройство, доступное посредством, по меньшей мере, одного из процессоров;
одну или более энергонезависимых областей хранения, доступных посредством, по меньшей мере, одного из процессоров, при этом защищенный BIOS хранится в одной или более энергонезависимых областей хранения;
сетевой интерфейсный адаптер, соединяющий систему обработки информации с вычислительной сетью; и
набор инструкций, сохраненных в запоминающем устройстве, при этом один или более процессоров исполняет набор инструкций, чтобы выполнять действия, на которых:
приводят в исполнение гипервизор, при этом гипервизор выполняет этапы, на которых:
считывают показатель аренды и предел аренды из одной или более энергонезависимых областей хранения;
сравнивают показатель аренды с пределом аренды;
разрешают пользователю использовать одну или более гостевых операционных систем, которые работают под управлением гипервизора, в ответ на попадание показателя аренды в рамки, задаваемые пределом аренды; и
запрещают пользователю использовать гостевые операционные системы в ответ на превышение показателем аренды предела аренды.
9. Система по п.8, дополнительно содержащая:
запуск защищенного BIOS до приведения в исполнение гипервизора, при этом защищенный BIOS выполняет этапы, на которых:
проверяют достоверность приводимого в исполнение модуля гипервизора, при этом проверка достоверности приводит к результату проверки достоверности;
загружают приводимый в исполнение модуль гипервизора и приводят в исполнение гипервизор в ответ на результат проверки достоверности, указывающий успешную проверку достоверности; и
запрещают использование гостевых вычислительных систем в ответ на результат проверки достоверности, указывающий неудачную проверку достоверности.
10. Система по п.9, в которой проверка достоверности дополнительно содержит, по меньшей мере, один этап, выбранный из группы, состоящей из этапов, на которых расшифровывают приводимый в исполнение код гипервизора, и сравнивают хеш-данные приводимого в исполнение кода гипервизора с ожидаемым результатом хеш-функции.
11. Система по п.8, в которой этап запрещения дополнительно содержит:
предложение пользователю приобрести дополнительное арендное время;
прием данных приобретения от пользователя;
отправку принимаемых данных приобретения на сервер аренды, который соединен с вычислительной системой посредством вычислительной сети, доступ к которой осуществляется посредством сетевого интерфейсного адаптера;
прием ответа от сервера аренды через вычислительную сеть;
продолжают запрещать использование в ответ на ответ с ошибкой; и
в ответ на ответ, указывающий успешную транзакцию:
обновление предела аренды;
сохранение обновленного предела аренды в энергонезависимой области хранения;
сравнение показателя аренды с обновленным пределом аренды;
разрешение использовать гостевые операционные системы в ответ на попадание показателя аренды в рамки, задаваемые обновленным пределом аренды; и
продолжают запрещать использование в ответ на превышение показателем аренды обновленного предела аренды.
12. Система по п.8, в которой этап разрешения дополнительно содержит:
периодическое обновление показателей аренды, при этом обновление включает в себя:
сохранение обновленных показателей аренды в энергонезависимой области хранения;
сравнение предела аренды с обновленными показателями аренды;
продолжают разрешать использование гостевых операционных систем в ответ на попадание показателя аренды в рамки, задаваемые обновленным пределом аренды; и
запрещают пользователю системы обработки информации использование гостевых операционных систем в ответ на превышение обновленным показателем аренды предела аренды.
13. Система по п.8, в которой этап разрешения дополнительно содержит:
перехват посредством гипервизора множества действий, запрошенных посредством гостевых операционных систем;
идентификацию, по меньшей мере, одного из действий, которое пытается модифицировать данные аренды, поддерживаемые посредством гипервизора, при этом данные аренды выбираются из группы, состоящей из предела аренды и показателя аренды; и
отклоняют такие идентифицированные действия.
14. Система по п.8, дополнительно содержащая:
доверенный платформенный модуль (ТРМ), доступный посредством, по меньшей мере, одного из процессоров, при этом ТРМ включает в себя энергонезависимое ОЗУ, причем гипервизор выполняет дополнительный этап, на котором:
сохраняют предел аренды и показатель аренды в энергонезависимом ОЗУ ТРМ.
15. Машиночитаемый носитель, имеющий компьютерную программу, хранящуюся на нем, которая, когда исполняется посредством системы обработки информации, побуждает ее выполнять действия для осуществления способа управления доступом операционных систем с помощью гипервизора, содержащего этапы, на которых:
приводят в исполнение гипервизор на вычислительной системе, при этом гипервизор выполняет этапы, на которых:
считывают показатель аренды из энергонезависимой области хранения;
сравнивают показатель аренды с пределом аренды;
разрешают использование одной или более гостевых операционных систем посредством пользователя вычислительной системы в ответ на попадание показателя аренды в рамки, задаваемые пределом аренды; и
запрещают использование гостевых операционных систем посредством пользователя вычислительной системы в ответ на превышение показателем аренды предела аренды.
16. Машиночитаемый носитель по п.15, в котором действия дополнительно содержат этапы, на которых:
запускают защищенный BIOS до приведения в исполнение гипервизора, при этом защищенный BIOS выполняет этапы, на которых;
проверяют достоверность приводимого в исполнение модуля гипервизора, при этом проверка достоверности приводит к результату проверки достоверности;
загружают приводимый в исполнение модуль гипервизора и приводят в исполнение гипервизор в ответ на результат проверки достоверности, указывающий успешную проверку достоверности; и
запрещают использование вычислительной системы в ответ на результат проверки достоверности, указывающий неудачную проверку достоверности.
17. Машиночитаемый носитель по п.16, в котором действие проверки достоверности дополнительно содержит, по меньшей мере, один этап, выбранный из группы, состоящей из этапов, на которых расшифровывают приводимый в исполнение код гипервизора, и сравнивают хеш-данные приводимого в исполнение кода гипервизора с ожидаемым результатом хеш-функции.
18. Машиночитаемый носитель по п.15, в котором действие запрета включает в себя дополнительные действия, содержащие этапы, на которых:
предлагают пользователю приобрести дополнительное арендное время;
принимают данные приобретения от пользователя;
отправляют принимаемые данные приобретения на сервер аренды, который соединен с вычислительной системой посредством вычислительной сети;
принимают ответ от сервера аренды через вычислительную сеть;
продолжают запрещать использование в ответ на ответ с ошибкой; и
в ответ на ответ, указывающий успешную транзакцию:
обновляют предел аренды;
сохраняют обновленный предел аренды в энергонезависимой области хранения;
сравнивают показатель аренды с обновленным пределом аренды;
разрешают использовать гостевые операционные системы в ответ на попадание показателя аренды в рамки, задаваемые обновленным пределом аренды; и
продолжают запрещать использование в ответ на превышение показателем аренды обновленного предела аренды.
19. Машиночитаемый носитель по п.15, в котором действие разрешения включает в себя дополнительные действия, содержащие этапы, на которых:
периодически обновляют показатели аренды, при этом обновление включает в себя этапы, на которых:
сохраняют обновленные показатели аренды в энергонезависимой области хранения;
сравнивают предел аренды с обновленными показателями аренды;
продолжают разрешать использование гостевых операционных систем в ответ на попадание показателя аренды в рамки, задаваемые обновленным пределом аренды; и
запрещают использование гостевых операционных систем посредством пользователя вычислительной системы в ответ на превышение обновленным показателем аренды предела аренды.
20. Машиночитаемый носитель по п.15, в котором действие разрешения включает в себя дополнительные действия, содержащие этапы, на которых:
перехватывают посредством гипервизора множество действий, запрошенных посредством гостевых операционных систем;
идентифицируют, по меньшей мере, одно из действий, которое пытается модифицировать данные аренды, поддерживаемые посредством гипервизора, при этом данные аренды выбираются из группы, состоящей из предела аренды и показателя аренды; и
отклоняют такие идентифицированные действия.
НОВЫЙ РЕЖИМ ПРОЦЕССОРА ДЛЯ ОГРАНИЧЕНИЯ ФУНКЦИОНИРОВАНИЯ ГОСТЕВОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ВЫПОЛНЯЮЩЕГОСЯ НА ВИРТУАЛЬНОЙ МАШИНЕ, ПОДДЕРЖИВАЕМОЙ МОНИТОРОМ ВИРТУАЛЬНОЙ МАШИНЫ | 2001 |
|
RU2265880C2 |
US 2007028244 A1, 01.02.2007 | |||
JP 2006127524 A, 18.05.2006 | |||
US 2004215992 A1, 28.10.2004 | |||
US 2005251806 A1, 10.11.2005. |
Авторы
Даты
2010-03-27—Публикация
2007-12-07—Подача