Компактная идентификация аппаратных средств для привязки пакета программного обеспечения к компьютерной системе, имеющей допуск на изменения аппаратных средств
Иллюстрации
Показать всеИзобретение относится к системам и способам для генерации компактной идентификации аппаратных средств для данной компьютерной системы. Техническим результатом является усовершенствование идентификации аппаратных средств для компьютерной системы. Компактная идентификация аппаратных средств (CHWID) может использоваться для контроля использования программного обеспечения на данной компьютерной системе в зависимости от степени изменений аппаратных средств компьютерной системы. Компактная идентификация аппаратных средств (CHWID) может электронным способом пересылаться в среде передачи с ограниченной шириной полосы частот, например, по телефону. 3. н. и 24 з.п. ф-лы, 10 ил., 1 табл.
Реферат
Область техники
Настоящее изобретение относится к системам и способам для генерации компактной идентификации аппаратных средств (CHWID) для данной компьютерной системы. Компактная идентификация аппаратных средств (CHWID) может использоваться для контроля использования программного обеспечения на данной компьютерной системе в зависимости от степени изменений аппаратных средств в компьютерной системе. Компактная идентификация аппаратных средств (CHWID) может электронным способом пересылаться в среде передачи с ограниченной шириной полосы частот, например по телефону.
Предшествующий уровень техники
В последние годы большие усилия направляются на предотвращение или минимизацию незаконного использования компьютерного программного обеспечения. Ввиду его воспроизводимости и простоты распространения нарушение авторских прав на программное обеспечение вне рамок лицензионного соглашения приобрело массовый характер, что наносит существенный ущерб производителям программного обеспечения.
Разработаны способы, направленные на снижение масштабов компьютерного пиратства и незаконного использования компьютерного программного обеспечения вне рамок лицензионного соглашения. Однако такие способы часто вызывают проблемы для правомочных покупателей и пользователей программного обеспечения, что проявляется в форме неудобства для потребителей. Например, пользователь, который модернизировал свой компьютер, должен был бы иметь возможность правомерным образом переустановить программный продукт на модернизированной машине. Однако современные методы могут либо (i) не позволить инсталлировать программное обеспечение, либо (ii) вынудить пользователя, вызывая его раздражение, обратиться за помощью к производителю программного обеспечения.
Соответственно имеется потребность в улучшенных технологических решениях по отношению к пиратству и противозаконному использованию, которые также учитывают потребности и практическую деятельность правомочных покупателей и пользователей программного обеспечения.
Сущность изобретения
Настоящее изобретение направлено на решение некоторых из вышеуказанных проблем за счет создания усовершенствованной идентификации аппаратных средств для компьютерной системы. Идентификация аппаратных средств согласно настоящему изобретению обеспечивает способ минимизации или предотвращения компьютерного пиратства и противозаконного использования компьютерного программного обеспечения вне рамок лицензионного соглашения, обеспечивая при этом правомочным пользователям программного обеспечения возможность модернизации их компьютеров.
Идентификация аппаратных средств согласно настоящему изобретению, определяемая здесь как «компактная идентификация аппаратных средств» (CHWID), идентифицирует: (1) ряд классов компонентов, обычно используемых для формирования конфигурации аппаратных средств, и (2) одиночное устройство или экземпляр компонента в пределах заданного класса компонентов для конкретной компьютерной системы. Принимая во внимание одиночное устройство или экземпляр компонента в выбранном номере класса компонентов, генерируется защищенная и надежная компактная идентификация аппаратных средств (CHWID) для конкретной компьютерной системы, допуская некоторую степень допуска для изменений компонентов в конфигурации аппаратных средств конкретной компьютерной системы.
Компактная идентификация аппаратных средств (CHWID) может быть использована, когда доступен ограниченный объем пространства для идентификации конкретной конфигурации аппаратных средств при первоначальной загрузке программного продукта в компьютер. Компактная идентификация аппаратных средств (CHWID) может быть сохранена для будущего использования, например, (i) когда тот же программный продукт запускается на том же компьютере или на версии того же самого компьютера, или (ii) когда тот же самый программный продукт перезагружается в версию того же самого компьютера или полностью другой компьютер. Например, когда программный продукт запускается на том же самом компьютере или на версии того же самого компьютера, вторая компактная идентификация аппаратных средств (sCHWID) генерируется и сравнивается с (1) предварительно сохраненной компактной идентификацией аппаратных средств (iCHWID) или (2) предварительно сохраненной расширенной идентификацией аппаратных средств (VHWID), описанной ниже. Если существует требуемое количество совпадений между классами компонентов второй компактной идентификации аппаратных средств (sCHWID) и соответствующими классами компонентов либо (1) предварительно сохраненной компактной идентификации аппаратных средств (iCHWID), либо (2) предварительно сохраненной расширенной идентификации аппаратных средств (VHWID), то способ, соответствующий настоящему изобретению, позволяет запустить программный продукт. Однако если не существует требуемого количества совпадений между классами компонентов второй компактной идентификации аппаратных средств (sCHWID) и соответствующими классами компонентов либо (1) предварительно сохраненной компактной идентификации аппаратных средств (iCHWID), либо (2) предварительно сохраненной расширенной идентификации аппаратных средств (VHWID), то способ, соответствующий настоящему изобретению, не позволит запустить программный продукт ввиду изменений исходной системы аппаратных средств, превышающих необходимое пороговое значение.
Соответственно настоящее изобретение направлено на создание компактной идентификации аппаратных средств (CHWID) и способ генерации компактной идентификации аппаратных средств (CHWID). Настоящее изобретение также направлено на способ предотвращения использования программного обеспечения на компьютерной системе, если попытка запустить программный продукт генерирует новую компактную идентификацию аппаратных средств (CHWID), которая находится за пределами допуска при сравнении либо с (1) предварительно сохраненной компактной идентификацией аппаратных средств (iCHWID), либо с (2) предварительно сохраненной расширенной идентификацией аппаратных средств (VHWID) ввиду одного или более изменений системы аппаратных средств исходной компьютерной системы.
Эти и другие признаки и преимущества настоящего изобретения поясняются в последующем детальном описании раскрытых вариантов осуществления и в формуле изобретения.
Краткое описание чертежей
Фиг.1 - блок-схема некоторых из основных компонентов приведенной для примера операционной среды для реализации настоящего изобретения;
Фиг.2 - приведенная для примера конфигурация аппаратных средств, содержащая восемь классов компонентов и всего 19 устройств или экземпляров компонентов, распределенных в пределах восьми классов компонентов;
Фиг.3 - возможная расширенная идентификация аппаратных средств (VHWID) и соответствующая компактная идентификация аппаратных средств (CHWID) для приведенной для примера конфигурации аппаратных средств, представленной на фиг.2;
Фиг.4-8 - блок-схемы последовательностей этапов определения компактной идентификации аппаратных средств (CHWID) для конфигурации аппаратных средств; и
Фиг.9-10 - блок-схема, иллюстрирующая приведенные для примера этапы определения того, может ли программный продукт использоваться в системе аппаратных средств компьютера путем сравнения вновь генерируемой компактной идентификации аппаратных средств (CHWID) либо с (1) предварительно сохраненной компактной идентификацией аппаратных средств (iCHWID), либо с (2) предварительно сохраненной расширенной идентификацией аппаратных средств (VHWID).
Детальное описание изобретения
Для пояснения принципов настоящего изобретения ниже приведено описание конкретных вариантов осуществления изобретения с использованием конкретной терминологии для описания соответствующих конкретных вариантов осуществления. Тем не менее, следует иметь в виду, что использование данной конкретной терминологии не накладывает никаких ограничений на объем изобретения. Изменения, дальнейшие модификации и такие дальнейшие применения принципов настоящего изобретения рассматриваются как очевидные для специалистов в области техники, к которой относится настоящее изобретение.
Настоящее изобретение направлено на способ для идентификации конфигурации аппаратных средств данной компьютерной системы с помощью компактной идентификации аппаратных средств (CHWID). Настоящее изобретение также направлено на способ генерации компактной идентификации аппаратных средств (CHWID) путем идентификации одного экземпляра компонента в пределах каждого из выбранного количества классов компонентов. Кроме того, настоящее изобретение направлено на способ использования компактной идентификации аппаратных средств (CHWID) для определения того, может ли использоваться программный продукт на некоторой конфигурации аппаратных средств компьютера.
Компактная идентификация аппаратных средств (CHWID) может генерироваться для компьютерной системы, содержащей множество компонентов аппаратных средств. Иллюстративная компьютерная система может содержать ряд компонентов аппаратных средств, которые сгруппированы в классы, включающие, но не ограничивающиеся названным, дисководы жестких дисков, дисководы оптических дисков, сетевые карты, адаптеры дисплеев, постоянную память (ROM), оперативную память (RAM) и базовую систему ввода-вывода (BIOS). Иллюстративная компьютерная система и иллюстративная операционная среда для реализации настоящего изобретения описаны ниже.
Иллюстративная операционная среда
Приведенные для примера варианты осуществления настоящего изобретения описаны ниже со ссылками на чертежи, на которых одинаковыми ссылочными позициями обозначены подобные элементы на разных чертежах. На фиг.1 представлена иллюстративная операционная среда для реализации настоящего изобретения. Иллюстративная операционная среда включает в себя универсальный компьютер в форме персонального компьютера (ПК) 20. В общем случае ПК 20 включает в себя блок 21 обработки, системную память 22 и системную шину 23, которая связывает различные системные компоненты, включая системную память 22, с блоком 21 обработки. Системная шина 23 может быть любой из различных типов шинных структур, включая шину памяти или контроллер памяти, шину периферийных устройств, локальную шину, использующую любую из разнообразных шинных архитектур. Системная память включает в себя постоянную память (ПЗУ, ROM) 24 и оперативную память (ОЗУ, RAM) 25. Базовая система ввода/вывода (BIOS) 26, содержащая базовые подпрограммы, которые способствуют переносу информации между элементами в ПК 20, например при запуске, сохранена в ПЗУ 24.
ПК 20 также включает в себя дисковод 27 жестких дисков для считывания с жесткого диска (не показан) и записи на него, дисковод 28 магнитных дисков для считывания со съемного магнитного диска 29 и записи на него и дисковод 30 оптических дисков для считывания со съемного оптического диска 31 или записи на оптический диск, такой как, например, ПЗУ на компакт-диске (CD-ROM) или иные оптические носители записи. Дисковод 27 жестких дисков, дисковод 28 магнитных дисков и дисковод 30 оптических дисков соединены с системной шиной 23 посредством интерфейса 32 дисковода жестких дисков, интерфейса 33 дисковода магнитных дисков и интерфейса 34 дисковода оптических дисков соответственно. Хотя описываемая приведенная для примера среда использует жесткий диск 27, съемный магнитный диск 29 и съемный оптический диск 31, специалистам в данной области техники должно быть понятно, что в приведенной для примера операционной среде могут использоваться и другие типы считываемых компьютером носителей для хранения данных, которые могут хранить данные, доступные для вычислительного устройства, такие как магнитные кассеты, платы флэш-памяти, цифровые видеодиски, картриджи Бернулли, ОЗУ, ПЗУ и т.п. Дисководы и связанные с ними считываемые компьютером носители обеспечивают энергонезависимую память для хранения исполняемых компьютером команд, структур данных, программных модулей и других данных для ПК 20. Например, один или более файлов 60 данных (не показаны) могут быть сохранены в ОЗУ 25 или на жестком диске 27 персонального компьютера 20.
Ряд программных модулей могут быть сохранены на жестком диске 27, магнитном диске 29, оптическом диске 31, ПЗУ 24 или ОЗУ 25, включая операционную систему 35, одну или несколько прикладных программ (приложений) 36, другие программные модули 37 и программные данные 38. Программные модули включают в себя, не ограничиваясь указанным, стандартные программы, подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют некоторые абстрактные типы данных. Аспекты настоящего изобретения могут быть реализованы как составная часть модуля 36 прикладной программы или как часть другого программного модуля 37.
Пользователь может вводить команды и информацию в ПК 20 посредством устройства ввода, например клавиатуры 40 или указательного устройства 42. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую параболическую антенну, сканер и т.п. Эти и другие устройства ввода часто соединяются с блоком 21 обработки через интерфейс 46 последовательного порта, связанный с системной шиной 23, но могут быть соединены и посредством других интерфейсов, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB) и т.д. Монитор 47 или иное устройство отображения может также быть соединено с системной шиной 23 через интерфейс, например, такой как видеоадаптер 48. Помимо монитора ПК в типовом случае включают в себя другие периферийные устройства вывода (не показаны), например громкоговорители и принтеры.
ПК 20 может работать в сетевой среде с использованием логических соединений с одним или более удаленными компьютерами, такими как удаленный компьютер 49. Удаленный компьютер 49 может представлять собой, в общем случае, другой ПК, сервер, маршрутизатор, сетевой ПК, одноранговое устройство или другой обычный сетевой узел. Хотя удаленный компьютер 49 в типовом случае включает в себя многие или все из элементов, описанных выше применительно к ПК 20, на фиг.1 показано только устройство 50 памяти. Логические соединения, показанные на фиг.1, включают в себя локальную сеть (LAN) 51 и глобальную сеть (сеть широкого охвата - WAN) 52. Такие сетевые среды являются общеизвестными в офисах, компьютерных сетях предприятий, интранетах и в Интернет.
При использовании в сетевой среде локальной сети (LAN) ПК 20 соединяется с локальной сетью 51 через сетевой интерфейс или адаптер 53. При использовании в сетевой среде глобальной сети (WAN) ПК 20 в типовом случае включает в себя модем 54 или иное средство для установления связи в глобальной сети 52, такой как Интернет. Модем 54, который может быть внутренним или внешним, соединен с системной шиной 23 через интерфейс 46 последовательного порта. В сетевой среде программные модули, изображенные по отношению к ПК 20, или их части могут быть сохранены в удаленном устройстве 50 памяти. Следует иметь в виду, что показанные сетевые соединения приведены для примера и что могут быть использованы и другие средства установления канала связи между компьютерами.
Кроме того, специалистам в данной области техники должно быть ясно, что изобретение может быть реализовано в других конфигурациях компьютерных систем, включая портативные устройства, мультипроцессорные системы, приборы бытовой электроники, основанные на микропроцессорах или программируемые сетевые ПК, миникомпьютеры, универсальные компьютеры и т.п. Изобретение также может быть реализовано в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, которые связаны коммуникационной сетью. В распределенной вычислительной среде программные модули могут быть расположены как в локальных, так и в удаленных устройствах памяти.
Реализация приведенных для примера вариантов осуществления настоящего изобретения
Как описано выше, компьютерная система в общем случае включает в себя множество классов компонентов аппаратных средств. Кроме того, компьютерная система может содержать множество компонентов (например, два дисковода жестких дисков) в пределах каждого класса компонентов аппаратных средств.
Компактная идентификация аппаратных средств (CHWID) согласно настоящему изобретению может учитывать единственное компонентное устройство (также упоминаемое здесь как «экземпляр») в пределах каждого необходимого класса компонентов аппаратных средств, используемого для определения СHWID. Компактная идентификация аппаратных средств (CHWID) согласно настоящему изобретению также может учитывать отсутствие компонентного устройства в заданном классе компонентов системы аппаратных средств компьютера. Например, определение классов компонентов, которые подлежат использованию для идентификации данной конфигурации аппаратных средств компьютера, может быть осуществлено перед проверкой данной конфигурации аппаратных средств компьютера. Конфигурация аппаратных средств компьютера может содержать или не содержать экземпляр компонента для каждого из выбранных классов компонентов, используемых для генерации компактной идентификации аппаратных средств (CHWID) конфигурации аппаратных средств компьютера.
Приведенный для примера соответствующий настоящему изобретению способ генерации компактной идентификации аппаратных средств (CHWID) описан ниже. Кроме того, приведенный для примера соответствующий настоящему изобретению способ использования компактной идентификации аппаратных средств (CHWID) в качестве инструмента противодействия пиратству, также описан ниже.
1. Генерация компактной идентификации аппаратных средств (CHWID) для компьютерной системы
Описание компонентов компактной идентификации аппаратных средств (CHWID) приведено ниже.
А. Компактная идентификация аппаратных средств (CHWID)
Компактная идентификация аппаратных средств (CHWID) данной компьютерной системы желательным образом содержит две отдельные части: (1) опционный компонент версии и (2) хеш-компонент.
Каждая из частей компактной идентификации аппаратных средств (CHWID) может быть получена из конфигурации аппаратных средств данной компьютерной системы. Пример конфигурации аппаратных средств компьютерной системы и экземпляры компонентов в каждом классе компонентов показаны на фиг.2. Как показано на фиг.2, приведенная для примера конфигурация 20 аппаратных средств компьютера содержит 8 отдельных классов 21-28 компонентов, имеющих в целом 19 экземпляров 200 компонентов, распределенных по классами 21-28 компонентов. Класс 21 компонентов CD-DOM (ПЗУ на КД) содержит 4 экземпляра компонентов; класс 22 компонентов IDE (встроенный интерфейс дисководов) содержит 2 экземпляра компонентов; класс 23 компонентов дисковода содержит 1 экземпляр компонента; класс 24 компонента дисплея содержит 1 экземпляр компонента; класс 25 компонентов SCSI (интерфейс малых компьютерных систем) содержит 2 экземпляра компонентов; класс 26 компонентов дисков содержит 6 экземпляров компонентов; класс 27 компонентов сетевых карт содержит 1 экземпляр компонентов; и класс 28 компонентов процессоров содержит 2 экземпляра компонентов. Строка 29 на фиг.2 изображает последовательность чисел, которые представляют число экземпляров компонентов в каждом из 8 классов 21-28 компонентов.
Следует отметить, что число экземпляров компонентов в заданном классе компонентов может изменяться от 0 до такого количества, как требуется для представления данной конфигурации аппаратных средств, хотя конкретная реализация может произвольно ограничить число экземпляров компонентов на класс компонентов. В типовом случае данная конфигурация аппаратных средств содержит от 0 до 6 экземпляров компонентов на класс компонентов. Как описано ниже, даже если класс компонентов не содержит экземпляра компонента, отсутствие экземпляра компонента в классе компонентов создает часть информации, которая включается в компактную идентификацию аппаратных средств (CHWID).
Примерная компактная идентификация аппаратных средств (CHWID) показана на фиг.3. Примерная компактная идентификация аппаратных средств (CHWID) 35 является одним из возможных способов идентификации конфигурации аппаратных средств компьютера, показанной на фиг.2. Как описано выше, компактная идентификация аппаратных средств (CHWID) 35 желательным образом содержит два отдельных компонента: компонент 31' версии и хеш-компонент 33'. Каждая из двух отдельных частей компактной идентификации аппаратных средств (CHWID) 35 показана на фиг.3.
Компонент 310 версии заголовочной части 31 идентифицирует конкретную версию расширенной идентификации аппаратных средств (VHWID) 34 и ее соответствующую компактную идентификацию аппаратных средств (CHWID) 35, используемую для идентификации конкретной компьютерной системы. Например, конкретная версия (например, версия «1») расширенной идентификации аппаратных средств (VHWID) или компактной идентификации аппаратных средств (CHWID) может изменяться относительно другой версии (например, версии «2») расширенной идентификации аппаратных средств (VHWID) или компактной идентификации аппаратных средств (CHWID) за счет использования одного набора параметров для создания версии 1 и использования отдельного, отличающегося набора параметров для создания версии 2. Различные параметры могут использоваться для создания данной версии расширенной идентификации аппаратных средств (VHWID) и соответствующей ей компактной идентификации аппаратных средств (CHWID). Соответствующие параметры включают в себя, без ограничения указанным: (1) число классов компонентов, представленных в компактной идентификации аппаратных средств (CHWID) 35; (2) максимальное и/или минимальное число классов компонентов, используемых для создания расширенной идентификации аппаратных средств (VHWID) 34; (3) максимальное и/или минимальное число экземпляров компонентов, которые должны учитываться в данном классе компонентов VHWID; (4) первую хеш-функцию, используемую для формирования хеш-значений для каждого экземпляра компонента в расширенной идентификации аппаратных средств (VHWID) 34; (5) длину каждого хеш-результата, используемого для формирования расширенной идентификации аппаратных средств (VHWID) 34; (6) максимальную длину расширенной идентификации аппаратных средств (VHWID) 34; (7) максимальное и/или минимальное число хеш-результатов классов компонентов, используемых для создания компактной идентификации аппаратных средств (СHWID) 35; (8) вторую хеш-функцию, используемую для формирования вторых хеш-значений для каждого экземпляра компонента; (9) длину каждого второго хеш-результата, используемого для формирования компактной идентификации аппаратных средств (СHWID) 35, и (10) максимальную длину компактной идентификации аппаратных средств (СHWID) 35.
Некоторые классы компонентов не могут иметь множества экземпляров компонентов и известны как классы одного экземпляра. Вся система RAM (ОЗУ) является примером класса одного экземпляра. Данные для класса одного экземпляра подвергаются хешированию и усечению, если необходимо, затем сохраняются в усеченной числовой части 312 заголовочной части 31. Каждый одноэкземплярный класс, представленный в заголовке, будет иметь ассоциированную с ним усеченную числовую часть 312.
Желательным образом, компонент 31' версии компактной идентификации аппаратных средств (СHWID) 35 имеет фиксированную длину, которая является согласованной для всех компактных идентификаций аппаратных средств, имеющих конкретный тип версии (например, СHWID версии 1).
Счетная часть 32 содержит последовательность из n чисел, которые представляют число экземпляров компонентов в каждом из n классов компонентов, используемых для формирования расширенной идентификации аппаратных средств (VHWID) 34. Как показано на фиг.3, счетная часть 32 содержит последовательность чисел «4 2 1 1 2 6 1 2», что соответствует экземплярам компонентов в классах 21-28 компонентов, показанных на фиг.2. Следует отметить, что если класс компонентов не содержит экземпляра компонента, то счетная часть 32 содержит «0» для конкретного класса компонента.
Хеш-часть 33, используемая для создания расширенной идентификации аппаратных средств (VHWID) 34, содержит конкатенированную последовательность первых хеш-значений, представляющих каждый из 19 экземпляров компонентов в классах 21-28 компонентов, показанных на фиг.2. Каждый отдельный хеш-результат может иметь длину до 160 битов. Желательно, чтобы каждый отдельный хеш-результат мог иметь длину примерно от 10 до 20 битов, наиболее предпочтительно 16 битов.
Хеш-часть 33 расширенной идентификации аппаратных средств (VHWID) 34 в типовом случае имеет длину, которая варьируется в зависимости от числа экземпляров компонентов в n классах компонентов данной конфигурации аппаратных средств. Полная длина хеш-части 33 равна числу экземпляров компонентов, умноженному на желательную длину хеш-результата для каждого хеш-результата экземпляра компонента. В данном примере результирующая хеш-часть 33 расширенной идентификации аппаратных средств (VHWID) 34 имеет желательную полную длину 304 бита (т.е. 19 х 16 = 304).
Хеш-часть 33' компактной идентификации аппаратных средств (СHWID) 35 отличается от хеш-части 33, используемой для создания расширенной идентификации аппаратных средств (VHWID) 34. В одном приведенном для примера варианте осуществления настоящего изобретения хеш-часть 33' компактной идентификации аппаратных средств (СHWID) 35 содержит одно второе хеш-значение экземпляра компонента на класс компонента, являющееся результатом выполнения второй хеш-функции над одним первым хеш-значением экземпляра компонента на класс компонента. Первое хеш-значение экземпляра компонента выбирается из одного или более из n классов компонентов, используемых для создания хеш-части 33 расширенной идентификации аппаратных средств (VHWID) 34. Метод выбора первых хеш-значений экземпляра компонента в пределах хеш-части 33, подлежащей дальнейшей обработке посредством второй хеш-функции, может представлять собой (i) процедуру случайного выбора или (ii) предварительно определенный метод. Приведенный для примера предварительно определенный метод включает в себя выбор первого экземпляра в каждом классе компонентов, как показано на фиг.3.
Результирующая хеш-часть 33' компактной идентификации аппаратных средств (СHWID) 35 содержит конкатенированную последовательность вторых хеш-значений (v'x) экземпляра компонента, являющихся результатом выполнения второй хеш-функции над выбранными первыми хеш-значениями экземпляров компонентов хеш-части 33. Каждое отдельное второе хеш-значение экземпляра компонента может иметь длину до 16 битов. Желательно, чтобы каждое второе хеш-значение экземпляра компонента имело длину до 8 битов, более предпочтительно, от трех до 6 битов. Вторые хеш-значения (v'x) экземпляров компонентов показаны на фиг.3 и получаются путем выполнения второй хеш-функции над следующей последовательностью первых хеш-значений: v1, v5, v7, v8, v9, v11, v17 и v18 для формирования вторых хеш-значений экземпляров компонентов: v'1, v'5, v'7, v'8, v'9, v'11, v'17 и v'18.
Хеш-часть 33' компактной идентификации аппаратных средств (СHWID) 35 в типовом случае имеет длину менее 64 битов. Длина хеш-части 33' может изменяться в зависимости от (i) числа первых хеш-значений экземпляров компонентов, используемых для создания хеш-части 33', и (ii) длины второго хеш-значения для каждого отдельного второго хеш-значения экземпляра компонента.
Как показано на фиг.3, расширенная идентификация аппаратных средств (VHWID) 34 может быть представлена конкатенированной последовательностью заголовочной части 31, счетной части 32 и хеш-части 33. Аналогичным образом компактная идентификация аппаратных средств (СHWID) 35 может быть представлена конкатенированной последовательностью компонента 31' версии и хеш-части 33'. Приведенный для примера способ определения расширенной идентификации аппаратных средств (VHWID) 34 и компактной идентификации аппаратных средств (СHWID) 35 для конфигурации аппаратных средств компьютера описан ниже.
Следует отметить, что компактная идентификация аппаратных средств (СHWID) согласно настоящему изобретению может содержать только одну из вышеописанных частей. В одном примере осуществления компактная идентификация аппаратных средств (СHWID) 35 данной конфигурации аппаратных средств компьютера содержит только хеш-часть 33'. В этом варианте осуществления компактная идентификация аппаратных средств (СHWID) 35 не содержит части 31' версии.
Независимо от компонентов, используемых для создания компактной идентификации аппаратных средств (СHWID) 35, компактная идентификация аппаратных средств (СHWID) 35 предпочтительно имеет полную длину менее 256 битов. В одном приведенном для примера варианте осуществления настоящего изобретения компактная идентификация аппаратных средств (СHWID) 35 имеет полную длину примерно от 32 битов до 64 битов.
В. Определение расширенной идентификации аппаратных средств (VHWID) для компьютерной системы
VHWID согласно настоящему изобретению может определяться приведенным для примера способом, представленным на фиг.4-6. Этапы этого способа могут выполняться программным кодом в рамках программного продукта на пользовательском компьютере, аналогичном компьютеру 20, описанному выше со ссылками на фиг.1. Как показано на фиг.4-6, определение VHWID для данной конфигурации аппаратных средств компьютера (далее упоминается как “HW1”) начинается с этапа 401, на котором выбирается число классов компонентов для идентификации данной конфигурации аппаратных средств компьютера HW1. Как описано выше, данная компьютерная система может включать в себя множество компонентов аппаратных средств и классов компонентов аппаратного обеспечения. Приведенные для примера классы компонентов аппаратных средств включают в себя, не ограничиваясь указанным, дисководы жестких дисков, логические разделы диска, оптические диски, сетевые карты, адаптеры дисплеев, ПЗУ, ОЗУ, устройства IDE, аудиокарты, видеокарты, устройства SCSI и BIOS системы. Предпочтительно число n, определяющее число классов компонентов аппаратных средств, является целым числом в пределах от 2 до 16. В общем случае, желательно, чтобы n было по возможности большим, чтобы (i) более точно идентифицировать данную компьютерную систему и (ii) более точно измерять степень допуска для данной компьютерной системы.
После выбора числа n классов компонентов на этапе 401 каждый класс компонента идентифицируется на этапе 402. Классы компонентов могут включать в себя вышеописанные классы компонентов, такие как класс дисководов жестких дисков. Примерный список классов компонентов, используемый для идентификации примера конфигурации аппаратных средств HW1, приведен ниже в Таблице 1.
Таблица 1Примерный список классов компонентов, используемый для идентификации примера конфигурации аппаратных средств HW1 | ||
№ класса компонента | Описание класса | Идентификатор класса |
1 | CD-ROM | Идентификатор устройства CD-ROM |
2 | Устройства IDE | Идентификатор устройства IDE |
3 | Дисковод жесткихдисков | Порядковый номер разбиения жесткого диска на разделы |
4 | Устройство адаптера Дисплея | Идентификатор |
5 | Устройства SCSI | Идентификатор устройства SCSI |
6 | Устройства дисков | Идентификатор устройства диска |
7 | Сетевая карта | Адрес MAC (протокола управления доступом к среде) |
8 | Процессоры | Идентификатор устройства процессора |
Как показано в таблице 1, в данном примере n равно 8, и идентифицируемые классы компонентов аппаратных средств включают в себя следующее: (1) класс CD-ROM, (2) класс устройств IDE, (3) класс дисковода, (4) класс устройства адаптера дисплея, (5) класс устройств SCSI, (6) класс дисков, (7) класс сетевой карты, (8) класс процессоров CPU (центрального процессорного блока).
После того как каждый класс компонента идентифицирован на этапе 402, все устройства или экземпляры в каждом классе компонентов аппаратных средств идентифицируются на этапе 403. «Отсчет» (то есть число устройств компонентов или экземпляров в пределах каждого класса компонента) также определяется на этапе 403. Предпочтительно каждый экземпляр в конкретном классе компонента идентифицируется наиболее уникальной идентификационной последовательностью, ассоциированной с данным экземпляром. Например, конфигурация аппаратных средств может содержать CD-ROM, изготовленный NEC Corporation и имеющий идентификационную последовательность “NEC CDRW24 S15”. Любой доступный способ определения наиболее уникальной идентификационной последовательностью данного экземпляра может быть использован в настоящем изобретении. Этап присвоения идентификационной последовательности для каждого экземпляра компонента показан как этап 404.
Как только идентификационная последовательность для каждого экземпляра компонента присвоена, на этапе 405 подготавливается заголовочная часть расширенной идентификации аппаратных средств (VHWID). На этапе 406 конкретная версия расширенной идентификации аппаратных средств (VHWID) вводится в заголовок для формирования заголовочной части 310 (как показано на фиг.3). Как описано выше, номер версии может представлять один или более параметров, используемых для определения расширенной идентификации аппаратных средств (VHWID) и соответствующей ей компактной идентификации аппаратных средств (СHWID).
На этапе 407 идентифицируется класс компонента для представления в заголовке. В типовом случае классы компонентов, которые могут иметь только один экземпляр компонента или классы одного экземпляра, представляются в заголовочной части VHWID. Подходящие классы компонентов, которые могут быть представлены в заголовочной части VHWID, включают, не ограничиваясь указанным, класс компонента памяти, класс компонентов «переносимости» компьютера (то есть является ли компьютер «плавающим», «перетаскиваемым»), систему BIOS или комбинацию указанного. В примерном варианте осуществления настоящего изобретения заголовочная часть VHWID включает в себя информацию из класса одного компонента конфигурации аппаратных средств.
От этапа 407 способ переходит к этапу 409 принятия решения. На этапе 409 принимается решение, должна ли идентификационная последовательность экземпляра компонента, использованная в заголовочной части, подвергаться воздействию функции хеширования. Идентификационная последовательность может подвергаться обработке функцией хеширования или усекаться до требуемого числа битов. Хотя на фиг.5 не показано в качестве опции, однако следует отметить, что идентификационная последовательность может быть использована «дословно» (полностью), если идентификационная последовательность имеет число символов меньшее, чем необходимое максимальное число, в типовом случае меньше чем 16 битов.
Если идентификационная последовательность должна подвергаться обработке функцией хеширования, то способ переходит к этапу 411, где выполняется функция хеширования над идентификационной последовательностью экземпляра компонентов и усечение до требуемой длины в битах. Предпочтительно результат хеширования усекается до длины около 16 битов. На этапе 412 усеченный результат хеширования вводится в усеченную числовую часть 312 заголовочной части 31 (как показано на фиг.3). Если идентификационная последовательность не подвергалась хешированию, то способ переходит на этап 410, где идентификационная строка усекается до желательной длины и вводится в усеченную числовую часть 312 заголовочной части 31. Предпочтительно идентификационная последовательность усекается до длины менее чем 16 битов.
После того как результат хеширования с этапа 412 или усеченная идентификационная последовательность с этапа 410 введена в усеченную числовую часть 312 заголовочной части 31, способ переходит к этапу 413 принятия решения. На этапе 413 принимается решение, следует ли добавить детали другого класса компонента к заголовочной части 31 VHWID. Если дополнительные детали другого класса компонен