компактная идентификация аппаратных средств для привязки пакета программного обеспечения к компьютерной системе, имеющей допуск на изменения аппаратных средств
Классы МПК: | G06F21/22 путем ограничения доступа к программам или процессам G06F9/00 Устройства для программного управления, например блоки управления G06F12/00 Выборка, адресация или распределение данных в системах или архитектурах памяти |
Автор(ы): | ГУНИАКТИ Каглар (US), АЛАБРАБА Фердинанд Джей (US), ХЬЮЗ Эйдан Т. (US) |
Патентообладатель(и): | МАЙКРОСОФТ КОРПОРЕЙШН (US) |
Приоритеты: |
подача заявки:
2004-03-02 публикация патента:
27.07.2009 |
Изобретение относится к системам и способам для генерации компактной идентификации аппаратных средств для данной компьютерной системы. Техническим результатом является усовершенствование идентификации аппаратных средств для компьютерной системы. Компактная идентификация аппаратных средств (CHWID) может использоваться для контроля использования программного обеспечения на данной компьютерной системе в зависимости от степени изменений аппаратных средств компьютерной системы. Компактная идентификация аппаратных средств (CHWID) может электронным способом пересылаться в среде передачи с ограниченной шириной полосы частот, например, по телефону. 3. н. и 24 з.п. ф-лы, 10 ил., 1 табл.
Формула изобретения
1. Способ генерации компактной идентификации аппаратных средств для первой компьютерной системы, имеющей первую конфигурацию аппаратных средств, причем первая компьютерная система содержит ряд устройств компонентов аппаратных средств, сгруппированных в классы компонентов аппаратных средств, причем способ содержит:
определение расширенной идентификации (34) аппаратных средств для первой компьютерной системы, включающее в себя:
выбор (401, 402) n классов компонентов аппаратных средств, идентификацию (403) всех устройств компонентов аппаратных средств в каждом из n классов компонентов аппаратных средств,
генерацию (415) множества первых хеш-результатов путем выполнения первой хэш-функции над идентификационными последовательностями для каждого идентифицированного устройства компонента аппаратных средств, и генерацию специального первого хеш-результата, указывающего, что данный один из n классов компонентов аппаратных средств не содержит устройства компонента аппаратных средств;
компоновку (416) хеш-части (33) расширенной идентификации аппаратных средств путем конкатенации первых хеш-результатов; и
сохранение (418) расширенной идентификации аппаратных средств; и
определение компактной идентификации (35) аппаратных средств для первой компьютерной системы, включающее в себя:
генерацию (420) множества вторых хеш-результатов, получаемых в результате выполнения второй хеш-функции над выбранными первыми хеш-результатами в одном или нескольких классах компонентов аппаратных средств, выбранных из упомянутых n классов компонентов аппаратных средств; и
конкатенацию (421) множества вторых хеш-результатов для формирования хеш-части (33') компактной идентификации аппаратных средств.
2. Способ по п.1, дополнительно содержащий конкатенацию (i) компонента версии и (ii) хеш-части компактной идентификации аппаратных средств для формирования компактной идентификации аппаратных средств для первой компьютерной системы.
3. Способ по п.1, в котором n является целым числом в пределах 16.
4. Способ по п.2, в котором компонент версии включает в себя номер версии.
5. Способ по п.1, в котором, по меньшей мере, один из n классов компонентов включает в себя два или более устройства компонентов аппаратных средств.
6. Способ по п.1, в котором каждый из n классов компонентов аппаратных средств содержит от 0 до 14 устройств компонента аппаратных средств.
7. Способ по п.1, в котором первый хеш-результат усечен до 16-битового числа.
8. Способ по п.1, в котором второй хеш-результат усечен до числа, содержащего менее 8 битов.
9. Способ по п.1, в котором компактная идентификация аппаратных средств для первой компьютерной системы имеет длину примерно до 256 битов.
10. Способ по п.9, в котором компактная идентификация аппаратных средств для первой компьютерной системы имеет длину примерно от 32 до 64 битов.
11. Способ по п.1, причем способ инициируют на этапе загрузки программного продукта в первую компьютерную систему.
12. Машиночитаемый носитель, имеющий сохраненные на нем исполняемые компьютером инструкции для выполнения способа генерации компактной идентификации аппаратных средств для первой компьютерной системы, имеющей первую конфигурацию аппаратных средств, причем первая компьютерная система содержит ряд устройств компонентов аппаратных средств, сгруппированных в классы компонентов аппаратных средств, причем способ содержит:
определение расширенной идентификации (34) аппаратных средств для первой компьютерной системы, включающее в себя:
выбор n классов компонентов аппаратных средств,
идентификацию всех устройств компонентов аппаратных средств в каждом из n классов компонентов аппаратных средств,
генерацию множества первых хеш-результатов путем выполнения первой хэш-функции над идентификационными последовательностями для каждого идентифицированного устройства компонента аппаратных средств, и генерацию специального первого хеш-результата, указывающего, что данный один из n классов компонентов аппаратных средств не содержит устройства компонента аппаратных средств;
компоновку хеш-части (33) расширенной идентификации аппаратных средств путем конкатенации первых хеш-результатов; и
сохранение расширенной идентификации аппаратных средств; и
определение компактной идентификации (35) аппаратных средств для первой компьютерной системы, включающее в себя:
генерацию множества вторых хеш-результатов, получаемых в результате выполнения второй хеш-функции над выбранными первыми хеш-результатами в одном или нескольких классах компонентов аппаратных средств, выбранных из упомянутых n классов компонентов аппаратных средств; и
конкатенацию множества вторых хеш-результатов для формирования хеш-части (33') компактной идентификации аппаратных средств.
13. Машиночитаемый носитель по п.12, дополнительно содержащий конкатенацию (i) компонента версии и (ii) хеш-части компактной идентификации аппаратных средств для формирования компактной идентификации аппаратных средств для первой компьютерной системы.
14. Машиночитаемый носитель по п.12, в котором n является целым числом в пределах 16.
15. Машиночитаемый носитель по п.14, в котором компонент версии включает в себя номер версии.
16. Машиночитаемый носитель по п.12, в котором, по меньшей мере, один из n классов компонентов включает в себя два или более устройства компонентов аппаратных средств.
17. Машиночитаемый носитель по п.12, в котором каждый из n классов компонентов аппаратных средств содержит от 0 до 14 устройств компонента аппаратных средств.
18. Машиночитаемый носитель по п.12, в котором компактная идентификация аппаратных средств для первой компьютерной системы имеет длину примерно до 256 битов.
19. Машиночитаемый носитель по п.12, причем способ инициируется на этапе загрузки программного продукта в первую компьютерную систему.
20. Вычислительная система, содержащая, по меньшей мере, один модуль прикладной программы, используемый на вычислительной системе, при этом, по меньшей мере, один модуль прикладной программы содержит код прикладной программы для выполнения способа генерации компактной идентификации аппаратных средств для первой компьютерной системы, имеющей первую конфигурацию аппаратных средств, причем первая компьютерная система содержит ряд устройств компонентов аппаратных средств, сгруппированных в классы компонентов аппаратных средств, причем способ содержит:
определение расширенной идентификации (34) аппаратных средств для первой компьютерной системы, включающее в себя:
выбор n классов компонентов аппаратных средств,
идентификацию всех устройств компонентов аппаратных средств в каждом из n классов компонентов аппаратных средств,
генерацию множества первых хеш-результатов путем выполнения первой хэш-функции над идентификационными последовательностями для каждого идентифицированного устройства компонента аппаратных средств, и генерацию специального первого хеш-результата, указывающего, что данный один из n классов компонентов аппаратных средств не содержит устройства компонента аппаратных средств;
компоновку хеш-части (33) расширенной идентификации аппаратных средств путем конкатенации первых хеш-результатов; и
сохранение расширенной идентификации аппаратных средств; и
определение компактной идентификации (35) аппаратных средств для первой компьютерной системы, включающее в себя:
генерацию множества вторых хеш-результатов, получаемых в результате выполнения второй хеш-функции над выбранными первыми хеш-результатами в одном или нескольких классах компонентов аппаратных средств, выбранных из упомянутых n классов компонентов аппаратных средств; и
конкатенацию множества вторых хеш-результатов для формирования хеш-части (33') компактной идентификации аппаратных средств.
21. Вычислительная система по п.20, дополнительно содержащая конкатенацию (i) компонента версии и (ii) хеш-части компактной идентификации аппаратных средств для формирования компактной идентификации аппаратных средств для первой компьютерной системы.
22. Вычислительная система по п.20, в которой n является целым числом в пределах 16.
23. Вычислительная система по п.21, в которой компонент версии включает в себя номер версии.
24. Вычислительная система по п.20, в которой, по меньшей мере, один из n классов компонентов включает в себя два или более устройства компонентов аппаратных средств.
25. Вычислительная система по п.20, в которой каждый из n классов компонентов аппаратных средств содержит от 0 до 14 устройств компонента аппаратных средств.
26. Вычислительная система по п.20, в которой компактная идентификация аппаратных средств для первой компьютерной системы имеет длину примерно до 256 битов.
27. Вычислительная система по п.20, в которой способ инициируется на этапе загрузки программного продукта в первую компьютерную систему.
Описание изобретения к патенту
Область техники
Настоящее изобретение относится к системам и способам для генерации компактной идентификации аппаратных средств (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 и получаются путем выполнения второй хеш-функции над следующей последовательностью первых хеш-значений: v 1, 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. Если дополнительные детали другого класса компонента следует добавить к заголовочной части 31 VHWID, то способ переходит к этапу 407 и осуществляет обработку, как описано выше. Если никакой другой информации не требуется добавлять к заголовочной части 31 VHWID, то способ переходит к этапу 414, где подготавливается счетная часть 32 VHWID. Как описано выше, счетная часть 32 VHWID содержит числовую последовательность из n чисел, которые представляют число экземпляров компонентов в каждом из n классов компонентов, используемых для формирования VHWID. (См. счетную часть 32 на фиг.3.)
На этапе 415 выполняется первая хеш-функция над идентификационными последовательностями для каждого экземпляра компонента, представленного в счетной части 32 VHWID. Если данный класс компонента не содержит экземпляра компонента, то специальный первый хеш-результат может генерироваться для использования в VHWID, причем специальный первый хеш-результат указывает, что данный класс компонента не содержит экземпляра компонента. Альтернативно никакое первое хеш-значение может не сохраняться, и часть счетной части 32, соответствующая отсутствующему классу компонента, будет установлена на нуль, указывая, что класс компонента отсутствует. Первые хеш-результаты для каждого экземпляра компонента могут быть усечены до желательной длины. В одном варианте осуществления настоящего изобретения каждый из результатов первой хеш-функции усекается до длины от 10 до 20 битов, более предпочтительно до 16 битов.
Любая известная хеш-функция может быть использована в настоящем изобретении, если данная хеш-функция допускает идентификационную последовательность произвольной длины и формирует хеш-результат, имеющий фиксированную длину менее 160 битов. Примеры подходящих хеш-функций включают в себя, не ограничиваясь указанным, алгоритмы хеш-функций HAVAL, MD2, MD4, MD5 и SHA-1, которые хорошо известны специалистам в данной области техники. Подходящие хеш-функции и их описание содержатся в публикации Applied Cryptography, Bruce Schneider, John Wiley&Sons-Publishers (ISBN#0471117099), раскрытие которой включено в настоящее описание посредством ссылки во всей своей полноте.
В одном варианте осуществления настоящего изобретения к идентификатору экземпляра компонента может быть добавлено «значение «соли» (помеха) перед выполнением первой хеш-функции для данного экземпляра компонента. В этом варианте осуществления использование этого добавочного значения позволяет осуществить генерацию различных VHWID на основе той же самой конфигурации аппаратных средств компьютера. Различные VHWID для одной и той же конфигурации аппаратных средств компьютера могут быть полезными при исполнении различных приложений или различных прогонов программы. Пример ситуации, когда различные VHWID для одной и той же конфигурации аппаратных средств могут быть полезными, описан ниже.
Например, если пользователь активизирует множество пакетов программного обеспечения, приобретенных у одного и того же продавца, можно использовать VHWID, чтобы связать отдельные записи активации для построения картины привычек пользователя при закупках программного обеспечения. Чтобы защититься от этого, различные VHWID для одного и того же компьютера могут быть сделаны несвязанными за счет формирования каждого отдельного хеша с использованием хеш-функции следующего вида: хешх=MD5[(значение «добавки») х + идентификационная последовательность], где значение «добавки» различается для каждого пакета программ.
На этапе 416 первые хеш-результаты для каждого экземпляра компонента конкатенируются для формирования хеш-части 33 расширенной идентификации аппаратных средств (VHWID) 34 (как показано на фиг.3). На этапе 417 окончательная расширенная идентификация аппаратных средств (VHWID) 34 компонуется путем конкатенации заголовочной части 31, счетной части 32 и хеш-части 33.
На этапе 418 полученная в результате расширенная идентификация аппаратных средств (VHWID) для конфигурации аппаратных средств HW1 сохраняется для последующего использования. Расширенная идентификация аппаратных средств (VHWID) для конфигурации аппаратных средств HW1 может быть сохранена логически (например, в регистре, файловой системе или защищенной памяти), в удаленном местоположении, к которому имеется доступ (например, в базе данных), или может передаваться на сервер центра обмена информацией для приобретения лицензий.
Хотя описанный выше способ формирует расширенную идентификацию аппаратных средств (VHWID), содержащую заголовочную часть 31, счетную часть 32 и хеш-часть 33, в некоторых вариантах осуществления настоящего изобретения расширенная идентификация аппаратных средств (VHWID) для конфигурации аппаратных средств HW1 может содержать только (i) хеш-часть 33 или (ii) счетную часть 32 в комбинации с хеш-частью 33, такую как VHWID, содержащую счетную часть 32, конкатенированную с хеш-частью 33.
С. Определение компактной идентификации аппаратных средств (CHWID) для компьютерной системы
Компактная идентификация аппаратных средств (СHWID) согласно настоящему изобретению может быть определена, как показано на фиг.7-8. Этапы приведенного для примера способа для формирования компактной идентификации аппаратных средств (СHWID) могут выполняться программным кодом в составе программного продукта на компьютере пользователя, подобном компьютеру 20, описанному выше со ссылками на фиг.1. Как показано на фиг.7-8, приведенный для примера способ формирования возможной компактной идентификации аппаратных средств (СHWID) для конфигурации аппаратных средств HW1 начинается с этапа 420.
На этапе 420 выполняется вторая хеш-функция над первым хеш-значением экземпляра одного компонента из каждого из q классов компонентов, выбранных из одного и более n классов компонентов, используемых для создания хеш-части 33 расширенной идентификации аппаратных средств (VHWID) 34. Как описано выше, вторая хеш-функция может быть выполнена над одним или более первыми хеш-значениями экземпляров компонентов, причем способ выбора первых хеш-значений экземпляров компонентов из одного или более из n классов компонентов выполняется посредством (i) процедуры случайного выбора или (ii) предварительного определенного метода. Предпочтительно первое хеш-значение одного экземпляра компонента выбирается, по меньшей мере, из (n-5) классов компонентов, более предпочтительно, по меньшей мере, из (n-3) классов компонентов и еще более предпочтительно, по меньшей мере, из (n-2) классов компонентов. В одном варианте осуществления настоящего изобретения первое хеш-значение одного экземпляра компонента выбирается из всех n классов компонентов для формирования соответствующих вторых хеш-значений экземпляров компонентов.
Как в случае первой хеш-функции, использованной для формирования хеш-части 33 расширенной идентификации аппаратных средств (VHWID) 34, любая известная хеш-функция может быть использована в настоящем изобретении, если эта хеш-функция допускает использование первого хеш-значения экземпляра компонента размером до 160 битов и обеспечивает формирование второго хеш-значения экземпляра компонента, имеющего фиксированную длину менее 32 битов. Примеры подходящих вторых хеш-функций включают в себя, не ограничиваясь указанным, алгоритмы хеш-функций HAVAL, MD2, MD4, MD5 и SHA-1, которые хорошо известны специалистам в данной области техники, как описано выше.
В возможном варианте осуществления настоящего изобретения значение «добавки» может быть добавлено к первому хеш-значению экземпляра компонента перед выполнением второй хеш-функции для данного первого хеш-значения экземпляра компонента. В этом варианте добавление значения «добавки» позволяет сформировать отличающуюся компактную идентификацию аппаратных средств (СHWID) на основе той же самой конфигурации аппаратных средств компьютера. Отличающиеся компактные идентификации аппаратных средств (СHWID) для той же самой конфигурации аппаратных средств могут быть полезными при исполнении различающихся приложений или при различных прогонах программы. Пример ситуации, в которой может быть полезным использование различных СHWID для той же самой конфигурации аппаратных средств, описан ниже.
Например, если пользователь активизирует множество пакетов программного обеспечения, приобретенных у одного и того же продавца, можно использовать СHWID, чтобы связать отдельные записи активации для построения картины привычек пользователя при закупках программного обеспечения. Чтобы защититься от этого, различные СHWID для одного и того же компьютера могут быть сделаны несвязанными за счет формирования каждого отдельного хеша с использованием хеш-функции следующего вида: хешх=MD5[(значение «добавки») х + идентификационная последовательность], где значение «добавки» различается для каждого пакета программ.
На этапе 421 вторые хеш-значения экземпляров компонентов конкатенируются для формирования хеш-части 33' компактной идентификации аппаратных средств (СHWID) 35 (как показано на фиг.3).
На этапе 427 компонент 31' версии компактной идентификации аппаратных средств (СHWID) конкатенируется с хеш-частью 33' компактной идентификации аппаратных средств (СHWID) для формирования окончательной компактной идентификации аппаратных средств (СHWID) для конфигурации аппаратных средств HW1. Затем способ переходит к этапу 428. Возвращаясь к этапу 425 принятия решения, описанному выше, если компактная идентификация аппаратных средств (СHWID) не содержит компонент 31' версии, то способ непосредственно переходит к этапу 428.
На этапе 428 результирующая компактная идентификация аппаратных средств (СHWID) для конфигурации аппаратных средств HW1 сохраняется для последующего использования. Компактная идентификация аппаратных средств (СHWID) для конфигурации аппаратных средств HW1 может быть сохранена логически (например, в регистре, файловой системе или защищенной памяти), в удаленном местоположении, к которому имеется доступ (например, в базе данных), как описано ниже.
Как описано выше, в некоторых вариантах осуществления настоящего изобретения компактная идентификация аппаратных средств (СHWID) для конфигурации аппаратных средств HW1 может содержать только хеш-часть 33.
II. Использование компактной идентификации аппаратных средств (СHWID) для обеспечения возможности использования программного продукта в компьютерной системе
Настоящее изобретение также направлено на способ использования компактной идентификации аппаратных средств (СHWID) для обеспечения использования программного продукта в компьютерной системе, имеющей данную конфигурацию аппаратных средств. В одном варианте осуществления настоящего изобретения способ использования компактной идентификации аппаратных средств (СHWID) для обеспечения использования программного продукта в компьютерной системе, имеющей данную конфигурацию аппаратных средств, инициируется (i) в процессе любой инсталляции программного продукта на компьютере, иной чем первоначальная инсталляция, (ii) в процессе запуска программного продукта или приложения, уже существующего на компоненте конфигурации аппаратных средств компьютера, или (iii) в комбинации обоих этих случаев. Приведенный для примера способ использования компактной идентификации аппаратных средств (СHWID) описан на фиг.9-10. Этапы этого способа могут выполняться программным кодом в составе программного продукта на пользовательском компьютере, аналогичном компьютеру 20, описанному выше со ссылками на фиг.1.
Как показано на этапе 501 на фиг.9, программный продукт либо загружается, либо запускается на компьютере, имеющем конфигурацию аппаратных средств HW2. Конфигурация аппаратных средств HW2 компьютера (i) может быть идентичной конфигурации аппаратных средств HW1, использованной для формирования исходной расширенной идентификации аппаратных средств (упоминаемой здесь как iVHWID), или первоначальной компактной идентификации аппаратных средств (упоминаемой здесь как iСHWID), или (ii) может быть полностью другим компьютером.
На этапе 502 новая компактная идентификация аппаратных средств (упоминаемая здесь как nСHWID) генерируется для конфигурации аппаратных средств HW2. Новая компактная идентификация аппаратных средств (nСHWID) для конфигурации аппаратных средств HW2 может генерироваться, как описано выше и показано на фиг.4-8. После того как новая компактная идентификация аппаратных средств (nСHWID) генерирована для конфигурации аппаратных средств HW2, на этапе 503 вызывается сохраненная расширенная идентификация аппаратных средств (VHWID) или сохраненная компактная идентификация аппаратных средств (СHWID). В типовом случае сохраненная расширенная идентификация аппаратных средств (VHWID) является исходной расширенной идентификацией аппаратных средств (iVHWID), которая была генерирована на первой конфигурации аппаратных средств HW1 компьютера в процессе первоначальной инсталляции программного продукта на HW1. Аналогично сохраненная компактная идентификация аппаратных средств (СHWID) в типовом случае является исходной компактной идентификацией аппаратных средств (iСHWID), которая была генерирована на первой конфигурации аппаратных средств HW1 компьютера в процессе первоначальной инсталляции программного продукта на HW1.
На этапе 504 принятия решения принимается решение, является ли предварительно сохраненная идентификация аппаратных средств сохраненной компактной идентификацией аппаратных средств (СHWID). Если предварительно сохраненная идентификация аппаратных средств является сохраненной компактной идентификацией аппаратных средств (sСHWID), то способ переходит к этапу 505, где новая компактная идентификация аппаратных средств (nСHWID) конфигурации аппаратных средств HW2 сравнивается с предварительно сохраненной идентификацией аппаратных средств (sСHWID) конфигурации аппаратных средств HW1. Если предварительно сохраненная идентификация аппаратных средств является сохраненной расширенной идентификацией аппаратных средств (sVHWID), то способ переходит к этапу 509. На этапе 509 новая компактная идентификацией аппаратных средств (СHWID) сравнивается с сохраненной расширенной идентификацией аппаратных средств (VHWID). Вторая хеш-функция выполняется для каждого из первых хеш-значений в каждом классе компонентов сохраненной расширенной идентификации аппаратных средств (VHWID), и результаты сравниваются с вторым хеш-значением, связанным с каждым классом компонентов в новой компактной идентификации аппаратных средств (СHWID). Затем способ переходит к этапу 506 принятия решения.
На этапе 506 принятия решения принимается решение о том, является ли число совпадений классов компонентов равным или превышающим требуемое число m совпадений классов компонентов, необходимое для разрешения использования программного продукта в конфигурации аппаратных средств HW2. Если число совпадений классов компонентов равно или превышает требуемое число m совпадений классов компонентов, то способ переходит на этап 507, на котором способ разрешает использование программного продукта на конфигурации аппаратных средств HW2. Если число совпадений классов компонентов меньше требуемого числа m совпадений классов компонентов, то способ переходит на этап 508, на котором способ блокирует использование программного продукта на конфигурации аппаратных средств HW2.
На этапе 505 сравнение новой компактной идентификации аппаратных средств (nСHWID) конфигурации аппаратных средств HW2 с (1) ранее сохраненной компактной идентификацией аппаратных средств (СHWID) конфигурации аппаратных средств HW1 или (2) ранее сохраненной расширенной идентификацией аппаратных средств (VHWID) конфигурации аппаратных средств HW1, совместно называемых здесь «идентификацией аппаратных средств (HWID) конфигурации аппаратных средств HW1», может быть связано с одним или несколькими правилами для определения того, имеет ли место совпадение для данного класса компонента. Предпочтительно способ использования компактной идентификации аппаратных средств (СHWID) для разрешения использования программного продукта включает в себя одно или несколько из следующих правил для определения числа совпадений классов компонентов между вновь генерируемой компактной идентификацией аппаратных средств (nСHWID) для конфигурации аппаратных средств HW2 и компактной идентификацией аппаратных средств (СHWID) или расширенной идентификацией аппаратных средств (VHWID) конфигурации аппаратных средств HW1:
(i) второй хеш-результат каждого экземпляра компонента в новой компактной идентификации аппаратных средств (nСHWID), представляющей выбранные экземпляры компонентов одного или нескольких классов компонентов конфигурации аппаратных средств HW2, сравнивается с вторым хеш-результатом каждого экземпляра компонента в соответствующем одном или нескольких классах компонентов в компактной идентификации аппаратных средств (СHWID) или полученным из расширенной идентификации аппаратных средств (VHWID) конфигурации аппаратных средств HW1;
(ii) совпадение имеется между классом компонента конфигурации аппаратных средств HW2 и соответствующим классом компонента конфигурации аппаратных средств HW1, когда один второй хеш-результат экземпляра компонента в классе компонента новой компактной идентификации аппаратных средств (nСHWID) для конфигурации аппаратных средств HW2 совпадает с одним из вторых хеш-результатов экземпляра компонента в соответствующем классе компонента в компактной идентификации аппаратных средств (СHWID) или полученным из расширенной идентификации аппаратных средств (VHWID) конфигурации аппаратных средств HW1;
(iii) единственное совпадение имеется между классом компонента конфигурации аппаратных средств HW2 и соответствующим классом компонента конфигурации аппаратных средств HW1, когда один второй хеш-результат экземпляра компонента в классе компонента, используемый для формирования новой компактной идентификации аппаратных средств (nСHWID) для конфигурации аппаратных средств HW2, совпадает с двумя или несколькими производными вторыми хеш-результатами экземпляра компонента в соответствующем классе компонента, используемыми для формирования расширенной идентификации аппаратных средств (VHWID) конфигурации аппаратных средств HW1;
(iv) отсутствует совпадение между классом компонента конфигурации аппаратных средств HW2 и соответствующим классом компонента конфигурации аппаратных средств HW1, если класс компонента в конфигурации аппаратных средств HW2 не содержит второго хеш-результата экземпляра компонента, и соответствующий класс компонента в конфигурации аппаратных средств HW1 не содержит второго хеш-результата экземпляра компонента;
(v) отсутствует совпадение между классом компонента конфигурации аппаратных средств HW2 и соответствующим классом компонента конфигурации аппаратных средств HW1, если класс компонента в конфигурации аппаратных средств HW2 содержит единственный второй хеш-результат экземпляра компонента, и соответствующий класс компонента в конфигурации аппаратных средств HW1 не содержит второго хеш-результата экземпляра компонента;
(vi) совпадение существует между классом компонента конфигурации аппаратных средств HW2 и соответствующим классом компонента конфигурации аппаратных средств HW1, если класс компонента в конфигурации аппаратных средств HW2 не содержит второго хеш-результата экземпляра компонента, и соответствующий класс компонента в конфигурации аппаратных средств HW1 не содержит второго хеш-результата экземпляра компонента; и
(vii) число m требуемых совпадений классов компонентов между конфигурацией аппаратных средств HW2 и конфигурацией аппаратных средств HW1 может быть определено предварительно и включено в код данного программного продукта.
Число m требуемых совпадений классов компонентов выбирается в зависимости от степени допуска, желательного для изменений компонентов конфигурации аппаратных средств. Число m требуемых совпадений классов компонентов может быть (i) равно числу, являющемуся полным числом классов компонентов, учитываемых при определении расширенной идентификации аппаратных средств (VHWID), или (ii) равно числу q, являющемуся полным числом выбранных классов компонентов, учитываемых при определении компактной идентификации аппаратных средств (CНWID), или (iii) равно 1. По мере увеличения m степень допуска на изменения конфигурации аппаратных средств снижается. Например, если полное число n классов компонентов равно 10 и m равно 7, то 7 из 10 классов компонентов должны совпадать по меньшей мере в одном экземпляре компонента, чтобы разрешить загрузку или исполнение программного продукта. Если число совпадений классов компонентов меньше 7, то программный продукт не будет исполняться или загружаться на конфигурации аппаратных средств компьютера.
Число m требуемых совпадений классов компонентов может быть определено предварительно изготовителем программного обеспечения и закодировано в коде программного продукта, используемом для генерации компактной идентификации аппаратных средств (CНWID). В возможном варианте осуществления изобретения m предпочтительно равно (n-3). Более предпочтительно m равно (n-2). В другом возможном варианте осуществления изобретения m предпочтительно равно (q-3). Более предпочтительно m равно (q-2). Однако, как указано выше, m может находиться в диапазоне от 1 до n.
Этапы способа, описанные выше и показанные на фиг.4-10, могут выполняться локально или в удаленном местоположении. В типовом случае пользователь приобретает программный продукт, который может исполняться на данном компьютере, таком как компьютер 20 на фиг.1. Программный продукт может представлять собой продукт ограниченного использования, имеющий программное обеспечение, сохраненное на переносном носителе, считываемом компьютером, таком как CD-ROM или дискета. Альтернативно программный продукт может поставляться электронным способом через сеть, например через локальную сеть (LAN) 51 или сеть широкого охвата (WAN) 52. Пользователь загружает программный продукт в компьютер 20 в виде программы, сохраненной в системной памяти 22.
В процессе инсталляции программного продукта пользователь в типовом случае вводит часть идентификатора программного продукта (PID) для данного программного продукта в компьютер 20. PID может быть получен, например, из CD-ключа, напечатанного на этикетке упаковки (оберточной лицензии). Пользователь вводит PID, который ассоциирован с программным обеспечением данного программного продукта. PID сохраняется локально на компьютере 20 и/или дистанционно в местоположении, к которому может быть получен доступ либо по локальной сети (LAN) 51, либо по сети широкого охвата (WAN) 52 у третьей стороны, например, уполномоченной для активации.
Как описано выше, при инсталляции или активации программного продукта также генерируется расширенная идентификация аппаратных средств (VНWID) или компактная идентификация аппаратных средств (CНWID) с использованием кода в составе программного продукта, или она запускается при инсталляции программного продукта. Расширенная идентификация аппаратных средств (VНWID) и/или компактная идентификация аппаратных средств (CНWID), генерируемая способом, соответствующим настоящему изобретению, ассоциирована с идентификатором программного продукта (PID) и сохраняется вместе с идентификатором программного продукта (PID) локально на компьютере 20 и/или дистанционно в местоположении, к которому может быть получен доступ по локальной сети (LAN) 51 или сети широкого охвата (WAN) 52, например у третьей стороны, уполномоченной для активации.
В качестве части процесса инсталляции от пользователя может потребоваться активировать программный продукт у органа, имеющего полномочия на активацию. Такой полномочный орган может являться, например, изготовителем продукта или авторизованной третьей стороной. Процесс активации предназначается для стимулирования пользователя активировать программный продукт (i) для инсталляции и использования на конкретном компьютере или (ii) для инсталляции и использования в рамках лицензионного соглашения, предусмотренного для продукта. Такой процесс активации детально описан в патенте США № 6243468, переуступленном компании Microsoft Corporation (Redford, WA), содержание которого включено в настоящее описание во всей своей полноте посредством ссылки.
Расширенная идентификация аппаратных средств (VНWID) и/или компактная идентификации аппаратных средств (CНWID), генерируемая способом, соответствующим настоящему изобретению, и идентификатор программного продукта (PID) могут быть сохранены вместе с идентификатором программного продукта (PID) локально на компьютере 20 и/или дистанционно в местоположении, к которому может быть получен доступ по локальной сети (LAN) 51 или сети широкого охвата (WAN) 52, у уполномоченной для активации стороны. Предпочтительно программный продукт (i) сохраняет (а) расширенную идентификацию аппаратных средств (VНWID) и/или компактную идентификацию аппаратных средств (CНWID) и (b) ассоциированный идентификатор программного продукта (PID) на компьютере 20 и (ii) посылает (а) расширенную идентификацию аппаратных средств (VНWID) и/или компактную идентификацию аппаратных средств (CНWID) и (b) ассоциированный идентификатор программного продукта (PID) электронным способом по сети широкого охвата (WAN) 52 на сервер активации. Предпочтительно программный продукт автоматически отображает диалоговое окно графического пользовательского интерфейса (UI), при его первом запуске, и предлагает пользователю установить соединение с сервером активации для проведения активации. Сервер активации поддерживает базу данных для сохранения (а) расширенных идентификаций аппаратных средств (VНWID) и/или компактных идентификаций аппаратных средств (CНWID) и (b) ассоциированных идентификаторов программного продукта (PID).
Расширенная идентификация аппаратных средств (VНWID) и/или компактная идентификация аппаратных средств (CНWID) и (b) ассоциированный идентификатор программного продукта (PID) для данного программного продукта могут быть сохранены в течение неопределенного периода времени до тех пор, пока программный продукт не будет повторно инсталлирован на другом компьютере или запущен на первом компьютере (т.е. на компьютере, использовавшемся в процессе первоначальной инсталляции). Если тот же самый программный продукт повторно инсталлируется на другом компьютере или запускается на первом компьютере, код на программном продукте инициирует способ генерации новой компактной идентификации аппаратных средств (CНWID) в соответствии с настоящим изобретением. Программный продукт также извлекает ране сохраненные (а) расширенную идентификацию аппаратных средств (VНWID) и/или компактную идентификацию аппаратных средств (CНWID) и (b) ассоциированный идентификатор программного продукта (PID) для данного программного продукта либо из местного компьютера 20, либо из удаленного местоположения через локальную сеть (LAN) 51 или сеть широкого охвата (WAN) 52. Сравнение новой компактной идентификации аппаратных средств (СНWID) и предварительно сохраненной компактной идентификации аппаратных средств (CНWID) производится, как описано выше.
В альтернативном ручном режиме пользователь предоставляет обслуживающему представителю компактную идентификацию аппаратных средств (CНWID) по телефону, и обслуживающий представитель предоставляет пользователю идентификацию подтверждения (CID) на основе компактной идентификации аппаратных средств (CНWID). Пользователь вводит идентификацию подтверждения (CID) посредством окна пользовательского интерфейса.
Если в использовании программного продукта отказано вследствие значительных изменений в конфигурации аппаратных средств первого компьютера (т.е. компьютера, использовавшегося при первоначальной инсталляции), то пользователю может быть представлено диалоговое окно, указывающее на отказ в использовании программного продукта и на то, что дополнительная информация относительно будущего использования программного продукта может быть получена из данного источника.
III. Другие использования компактной идентификации аппаратных средств (CНWID)
Компактная идентификация аппаратных средств (CНWID) согласно настоящему изобретению может быть также использована для других целей, чем описанные выше. В одном варианте осуществления настоящего изобретения компактная идентификация аппаратных средств (CНWID) используется для создания квазиуникального идентификатора инсталляции для отслеживания использования компьютера. В другом варианте осуществления настоящего изобретения компактная идентификация аппаратных средств (CНWID) используется на сервере центра обмена информацией при выдаче лицензий на использование программного обеспечения на пользовательском компьютере.
Хотя изобретение описано в деталях по отношению к конкретным вариантам его осуществления, специалистам в данной области техники должно быть понятно, каким образом на основе изучения представленной выше информации можно осуществить изменения, вариации и эквиваленты представленных вариантов осуществления. Соответственно объем настоящего изобретения должен определяться только пунктами формулы изобретения и их эквивалентами.
Класс G06F21/22 путем ограничения доступа к программам или процессам
Класс G06F9/00 Устройства для программного управления, например блоки управления
Класс G06F12/00 Выборка, адресация или распределение данных в системах или архитектурах памяти