Подробная аппаратная идентификация для привязки пакета программ к компьютерной системе, имеющей некоторый доступ для аппаратных изменений

Изобретение относится к средствам генерации аппаратной идентификации для заданной компьютерной системы. Техническим результатом является обеспечение безопасности и надежности аппаратной идентификации компьютерной системы при изменении ее конфигурации. В способе идентифицируют все экземпляры компонентов в пределах каждого из n классов компонентов, генерируют множество результатов хеширования, конкатенируют множество результатов хеширования для формирования части хеширования, причем часть хеширования формирует часть подробной аппаратной идентификации для первой компьютерной системы; и конкатенируют часть заголовка, часть счетчика и часть хеширования подробной аппаратной идентификации для формирования подробной аппаратной идентификации для первой компьютерной системы. 8 н. и 42 з.п. ф-лы, 7 ил.

 

Настоящее изобретение относится к системам и способам генерации подробной (расширенной) аппаратной идентификации (ПАПИД, VHWID) для заданной компьютерной системы. Подробная аппаратная идентификация (ПАПИД) может использоваться для управления использованием программного обеспечения на заданной компьютерной системе в зависимости от степени изменений аппаратных средств в данной компьютерной системе.

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

В последние годы было предпринято значительное количество усилий для предотвращения или минимизации незаконного использования программного обеспечения. Из-за возможности копирования и легкости распространения пиратство программного обеспечения и незаконное использование программного обеспечения вне контекста лицензионного соглашения является обычным явлением, что наносит значительный вред изготовителям программного обеспечения.

В попытке уменьшить случаи пиратства программного обеспечения и незаконного использования программного обеспечения вне контекста лицензионного соглашения были разработаны различные способы. Однако такие способы часто вызывают проблемы для законных покупателей и пользователей программного обеспечения в виде неудобства для потребителей. Например, пользователь, который модернизировал свой компьютер, должен иметь возможность законным образом повторно установить программный продукт на модернизированном компьютере. Однако доступные в настоящее время способы, возможно, или (i) не позволяют установить программное обеспечение, или (ii) вынуждает пользователя (который теперь рассержен) звонить изготовителю программного обеспечения для оказания помощи.

Соответственно остается потребность в улучшенных технологических решениях для защиты от пиратства и незаконного использования, но которые также распознают потребности и действия законного покупателя и пользователя программного обеспечения и настраиваются на них.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Настоящее изобретение направлено на решение некоторых из обсуждаемых выше трудностей и проблем с помощью открытия улучшенной аппаратной идентификации для компьютерной системы. Аппаратная идентификация согласно настоящему изобретению обеспечивает способ уменьшения или предотвращения пиратства в области программного обеспечения и незаконного использования программного обеспечения вне контекста лицензионного соглашения при учете модернизации компьютеров законными пользователями программного обеспечения.

Аппаратная идентификация согласно настоящему изобретению, названная как "подробная аппаратная идентификация" (ПАПИД), идентифицирует (1) множество классов компонентов, обычно используемых для формирования аппаратной конфигурации для компьютерной системы, и (2) каждое устройство-компонент, или экземпляр, в пределах данного класса компонентов для конкретной компьютерной системы. Учитывая каждое устройство-компонент, или экземпляр, в пределах выбранного количества классов компонентов, генерируют безопасную и надежную подробную аппаратную идентификацию (идентификационную информацию) (ПАПИД) для конкретной компьютерной системы, в то же время предоставляя степень допуска для изменения компонентов в аппаратной конфигурации конкретной компьютерной системы.

Подробная аппаратная идентификация (ПАПИД) может использоваться для идентификации конкретной аппаратной конфигурации при первоначальной загрузке программного продукта на компьютере. Подробная аппаратная идентификация (ПАПИД) может быть сохранена для будущего использования, такого как (i) когда один и тот же программный продукт запускают на одном и том же компьютере или разновидности одного и того же компьютера, или (ii) когда один и тот же программный продукт повторно загружают на разновидности одного и того же компьютера или на полностью отличающемся компьютере. Например, когда один и тот же программный продукт запускают на одном и том же компьютере или на разновидности одного и того же компьютера, генерируют вторую подробную аппаратную идентификацию (вПАПИД) и сравнивают ее с исходной подробной аппаратной идентификацией (иПАПИД). Если требуемое количество совпадений существует между классами компонентов второй подробной аппаратной идентификации (вПАПИД) и классами компонентов исходной подробной аппаратной идентификации (иПАПИД), то способ настоящего изобретения позволяет запустить данный программный продукт. Однако если не существует требуемого количества соответствий (совпадений) между классами компонентов второй подробной аппаратной идентификации (вПАПИД) и классами компонентов исходной подробной аппаратной идентификацией (иПАПИД), то способ настоящего изобретения не позволит запустить данный программный продукт из-за изменений в исходной аппаратной системе, которые находятся вне требуемого порога.

Соответственно настоящее изобретение направлено на подробную аппаратную идентификацию (идентификационной информации) (ПАПИД) и способ генерации подробной аппаратной идентификации (ПАПИД). Настоящее изобретение дополнительно направлено на способ предотвращения использования программного обеспечения в компьютерной системе, если попытка запустить программный продукт генерирует новую подробную аппаратную идентификацию (ПАПИД), которая находится вне допуска по сравнению с исходной подробной аппаратной идентификацией (ПАПИД) из-за того, что одно или более аппаратное средство изменилось в исходной компьютерной системе.

Эти и другие признаки и преимущества настоящего изобретения станут очевидными после просмотра последующего подробного описания раскрытых вариантов осуществления и прилагаемой формулы изобретения.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Фиг.1 - структурная схема некоторых из первичных компонентов примерной рабочей среды для выполнения настоящего изобретения;

Фиг.2 изображает примерную аппаратную конфигурацию, содержащую восемь классов компонентов и общее количество 19 устройств-компонентов, или экземпляров, распределенных в пределах восьми классов компонентов;

Фиг.3 изображает одну возможную подробную аппаратную идентификацию (ПАПИД) для примерной аппаратной конфигурации, показанной на фиг.2;

Фиг.4-6 - последовательность операций, показывающая примерные этапы определения подробной аппаратной идентификации (ПАПИД) для аппаратной конфигурации; и

Фиг.7 - последовательность операций, показывающая примерные этапы определения, может ли программный продукт использоваться в компьютерной аппаратной системе, с помощью сравнения недавно сгенерированной подробной аппаратной идентификации (ПАПИД) с предварительно сгенерированной подробной аппаратной идентификацией (ПАПИД).

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

Чтобы содействовать пониманию принципов настоящего изобретения, далее следуют описания конкретных вариантов осуществления изобретения, и для описания этих конкретных вариантов осуществления используется специфичные термины. Однако следует понимать, что никакого ограничения объема изобретения не подразумевается при использовании этих специфичных терминов. Изменения, дополнительные модификации и другие подобные дополнительные применения обсуждаемых принципов настоящего изобретения рассматриваются как обычно совершаемые специалистом, которому принадлежит данное изобретение.

Настоящее изобретение направлено на способ идентификации аппаратной конфигурации данной компьютерной системы с помощью подробной аппаратной идентификации (идентификационной информации) (ПАПИД). Настоящее изобретение также направлено на способ генерации подробной аппаратной идентификации (ПАПИД) с помощью идентификации всех экземпляров компонентов в пределах выбранного количества классов компонентов. Настоящее изобретение дополнительно направлено на способ использования подробной аппаратной идентификации (ПАПИД) для определения, может ли данный программный продукт использоваться в данной компьютерной аппаратной конфигурации.

Подробная аппаратная идентификация (идентификационная информация) (ПАПИД) может генерироваться для компьютерной системы, содержащей разнообразие аппаратных компонентов. Примерная компьютерная система может содержать множество аппаратных компонентов, которые сгруппированы в классы, которые включают в себя жесткие диски, накопители на оптических дисках, сетевые платы, адаптеры дисплея, постоянное запоминающее устройство (ПЗУ), оперативную память (ОП) и базовую систему ввода-вывода (BIOS), но не ограничены ими. Ниже описаны примерная компьютерная система и примерная рабочая среда для использования настоящего изобретения.

ПРИМЕРНАЯ РАБОЧАЯ СРЕДА

Примерные варианты осуществления настоящего изобретения описаны ниже со ссылкой на чертежи, на которых подобные цифры представляют подобные элементы на всех чертежах. Фиг.1 иллюстрирует примерную рабочую среду для воплощения настоящего изобретения. Примерная рабочая среда включает в себя универсальное вычислительное устройство в форме обычного персонального компьютера 20. В общем случае персональный компьютер 20 включает в себя процессор 21, системную память 22 и системную шину 23, которая связывает различные системные компоненты, которые включают в себя системную память 22, с процессором 21. Системная шина 23 может иметь любой из нескольких типов шинных структур, которые включают в себя шину памяти или контроллер памяти, периферийную шину и локальную шину, используя любое из разнообразия шинных архитектур. Системная память включает в себя постоянное запоминающее устройство (ПЗУ) 24 и оперативную память (ОП) 25. Базовая система ввода-вывода (BIOS) 26, содержащая основные подпрограммы, которые помогают перемещать информацию между элементами в пределах персонального компьютера 20, например, во время запуска, хранится в ПЗУ 24.

Персональный компьютер 20 дополнительно включает в себя накопитель 27 на жестком диске для считывания данных с жесткого диска, который не показан, и записи данных на него, магнитный дисковод 28 для считывания или записи данных на сменный магнитный диск 29 и оптический дисковод 30 для считывания или записи данных на сменный оптический диск 31, такой как компакт-диск или другой оптический носитель. Накопитель 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 позиционирования. Другие устройства ввода данных (не показаны) могут включать в себя микрофон, джойстик, игровую клавиатуру, спутниковую антенну, сканер или подобные им устройства. Эти и другие устройства ввода данных часто соединяются с процессором 22 через интерфейс 46 последовательного порта, который присоединен к системной шине 23, но могут соединяться с помощью других интерфейсов, таких как параллельный порт, игровой порт, универсальная последовательная шина (USB) или подобные им. Монитор 47 или другой тип устройства отображения может также соединяться с системной шиной 23 через такое средство сопряжения (интерфейс), как видеоадаптер 48. В дополнение к монитору персональные компьютеры обычно включают в себя другие периферийные устройства вывода (не показаны), такие как динамики и принтеры.

Персональный компьютер 20 может работать в сетевой среде, используя логические подключения к одному или более удаленным компьютерам 49. Удаленный компьютер 49 может быть другим персональным компьютером, сервером, клиентом, маршрутизатором, сетевым ПК, одноранговым (равноправным) устройством сети или другим обычным сетевым узлом. Хотя удаленный компьютер 49 обычно включает в себя многих или все элементы, описанные выше относительно персонального компьютера 20, на фиг.1 показано только запоминающее устройство 50. Логические подключения, изображенные на фиг.1, включают в себя локальную сеть (ЛС, LAN) 51 и глобальную сеть (ГС, WAN) 52. Такие сетевые среды распространены в офисах, компьютерных сетях в масштабах предприятия, корпоративных сетях (интранет) и Интернете.

При работе в среде ЛС, персональный компьютер 20 связан с локальной сетью 51 через сетевой интерфейс, или адаптер 53. При работе в среде ГС персональный компьютер 20 обычно включает в себя модем 54 или другие средства для установления связи по ГС 52, такой как Интернет. Модем 54, который может быть внутренним или внешним, соединен с системной шиной 23 через интерфейс 46 последовательного порта. В сетевой среде модули программ, изображенные относительно персонального компьютера 20 или его частей, могут храниться в удаленном запоминающем устройстве 50. Следует признать, что показанные сетевые подключения являются примерными и что могут использоваться другие средства установления линии связи между компьютерами.

Кроме того, специалисты должны признать, что настоящее изобретение может воплощаться в других конфигурациях компьютерной системы, которая включает в себя карманные устройства, многопроцессорные системы, программируемую или основанную на микропроцессоре бытовую электронику, сетевые компьютеры, миникомпьютеры, универсальные компьютеры и т.п. Настоящее изобретение может также использоваться в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, которые связаны через систему коммуникаций. В распределенной вычислительной среде модули программ могут быть расположены и в местных, и в удаленных запоминающих устройствах.

ВОПЛОЩЕНИЯ ПРИМЕРНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ НАСТОЯЩЕГО

ИЗОБРЕТЕНИЯ

Как описано выше, компьютерная система типично содержит многочисленные классы аппаратных компонентов. Дополнительно, компьютерная система может содержать многочисленные компоненты (например, два жестких диска) в пределах каждого класса аппаратных компонентов.

Подробная аппаратная идентификация (ПАПИД) согласно настоящему изобретению учитывает каждый компонент (также упоминается как каждый "экземпляр") в пределах каждого необходимого класса аппаратных компонентов, используемых для определения ПАПИД. Подробная аппаратная идентификация (ПАПИД) согласно настоящему изобретению может также учитывать отсутствие компонента в пределах данного класса компонентов компьютерной аппаратной системы. Например, определение классов компонентов, которые используются для идентификации заданной компьютерной аппаратной конфигурации, может быть сделано до исследования данной компьютерной аппаратной конфигурации. Компьютерная аппаратная конфигурация может содержать или может не содержать экземпляр компонента для каждого из выбранных классов компонентов, которые используются для создания подробной аппаратной идентификации (идентификационной информации) (ПАПИД) компьютерной аппаратной конфигурации.

Примерный способ настоящего изобретения для генерации подробной аппаратной идентификации (ПАПИД) дается ниже. Дополнительно, примерный способ настоящего изобретения для использования подробной аппаратной идентификации (ПАПИД) в качестве инструмента борьбы с пиратством также описан ниже.

I. ГЕНЕРАЦИЯ ПОДРОБНОЙ АППАРАТНОЙ ИДЕНТИФИКАЦИИ (ПАПИД) ДЛЯ КОМПЬЮТЕРНОЙ СИСТЕМЫ

Описание компонентов примерной подробной аппаратной идентификации (ПАПИД) представлено ниже.

А. ПОДРОБНАЯ. АППАРАТНАЯ ИДЕНТИФИКАЦИЯ (ПАПИД)

Подробная аппаратная идентификация (ПАПИД) заданной компьютерной системы желательно содержит три части: (1) компонент заголовка, (2) компонент счетчика и (3) компонент хеширования. Каждая часть возможной подробной аппаратной идентификации (ПАПИД) может быть получена из аппаратной конфигурации данной компьютерной системы. Пример компьютерной аппаратной конфигурации и экземпляров в пределах каждого класса компонентов показан на фиг.2.

Как показано на фиг.2, примерная компьютерная аппаратная конфигурация 20 содержит восемь отличающихся классов 21-28 компонентов, имеющих всего 19 экземпляров 200 компонентов, распределенных среди классов 21-28 компонентов. Класс 21 компонентов приводов компакт-дисков содержит четыре экземпляра компонентов; класс 22 устройств с интерфейсом IDE содержит два экземпляра компонентов; класс 23 дисководов содержит один экземпляр компонентов; класс 24 дисплеев содержит один экземпляр компонентов; класс 25 устройств с интерфейсом SCSI содержит два экземпляра компонентов; класс 26 дисков содержит шесть экземпляров компонентов; класс 27 сетевых плат содержит один экземпляр компонентов; и класс 28 процессоров (т.е. центральных процессоров) содержит два экземпляра компонентов. Ряд 29 на фиг.2 изображает строку чисел, которые представляют количества экземпляров компонентов в пределах каждого из восьми классов 21-28 компонентов.

Следует отметить, что количество экземпляров компонентов в пределах данного класса компонентов может изменяться от нуля до значения, необходимого для представления заданной аппаратной конфигурации, хотя воплощение может произвольно ограничивать количество экземпляров компонентов в классе компонентов. Как правило, заданная аппаратная конфигурация содержит приблизительно от нуля до шести экземпляров компонентов в классе компонентов. Как описано ниже, даже когда класс компонентов не содержит экземпляра компонентов, отсутствие экземпляра компонентов в пределах класса компонентов вносит часть информации, которая включается в подробную аппаратную идентификацию (ПАПИД).

Примерная подробная аппаратная идентификация (ПАПИД) показана на фиг.3. Примерная подробная аппаратная идентификация (ПАПИД) 33 на фиг.3 является одним возможным способом идентификации компьютерной аппаратной конфигурации, показанной на фиг.2. Как обсуждалось выше, подробная аппаратная идентификация (ПАПИД) 34 желательно содержит по меньшей мере три отдельных части: часть 31 заголовка, часть 32 счетчика и часть 33 хеширования. Каждая из трех отдельных частей подробной аппаратной идентификации (ПАПИД) 34 изображена на фиг.3. Желательно, чтобы часть 31 заголовка содержала компонент 310 версии и усеченную числовую часть 312.

Компонент 310 версии из части 31 заголовка идентифицирует конкретную версию подробной аппаратной идентификации (ПАПИД) 34, используемой для идентификации заданной компьютерной системы. Например, конкретная версия (например, версия "I") подробной аппаратной идентификации (ПАПИД) может отличаться от другой версии (например, версии "2") подробной аппаратной идентификации (ПАПИД), используя один набор параметров для создания версии 1 при использовании другого, отличающегося, набора параметров для создания версии 2. Различные параметры могут использоваться для создания заданной версии подробной аппаратной идентификации (ПАПИД). Соответствующие параметры включают в себя, но не ограничены ими: (1) количество классов компонентов, представленных в части 31 заголовка подробной аппаратной идентификации (ПАПИД) 34; (2) подвергается ли идентифицирующая строка для одного. или более экземпляров компонентов, используемая для формирования части 31 заголовка, хеш-функции или некоторому другому процессу обработки данных (например, усечению идентифицирующей строки); (3) максимальное и/или минимальное количество классов компонентов, используемых для создания подробной аппаратной идентификации (ПАПИД) 34; (4) максимальное и/или минимальное количество экземпляров компонентов, которые будут рассматриваться в пределах данного класса компонентов; (5) хеш-функция, используемая для создания значений хеш-функции для каждого экземпляра компонентов; (6) длина каждого результата хеширования, используемого для формирования подробной аппаратной идентификации (ПАПИД) 34; и (7) полная и/или максимальная длина подробной аппаратной идентификации (ПАПИД) 34.

Некоторые классы компонентов не могут иметь многочисленных экземпляров компонентов и известны как классы с единственным экземпляром. ОП всей системы - один пример класса с единственным экземпляром. Данные для класса с единственным экземпляром хешируют и усекают в случае необходимости, затем сохраняют в усеченной числовой части 312 в части 31 заголовка. Каждый класс с единственным экземпляром, представленный в заголовке, будет иметь связанную усеченную числовую часть 312.

Желательно, чтобы часть 31 заголовка подробной аппаратной идентификации (ПАПИД) 34 имела фиксированную длину, которая согласуется со всей подробной аппаратной идентификацией, имеющей определенный тип версии (например, версия 1 ПАПИД). Например, часть 31 заголовка подробной аппаратной идентификации (ПАПИД) 34 может иметь фиксированную длину от приблизительно 10 до приблизительно 24 байтов с общим количеством байтов, распределенным среди компонента 310 версии и усеченной числовой частью 312.

Часть 32 счетчика содержит строку чисел, которые представляют количество экземпляров компонентов в пределах каждого из классов компонентов, используемых для подготовки подробной аппаратной идентификации (ПАПИД) 34. Как показано на фиг.3, часть 32 счетчика содержит строку чисел: "42112612", которая соответствует экземплярам компонентов в пределах классов 21-28 компонентов, показанных на фиг.2. Следует отметить, что если класс компонентов не содержит экземпляра компонентов, то часть 32 счетчика содержит "0" для определенного класса компонентов.

Подобно описанной выше части 31 заголовка желательно, чтобы часть 32 счетчика из подробной аппаратной идентификации (ПАПИД) 34 имела фиксированную длину, которая соответствует всей подробной аппаратной идентификации, имеющей определенный тип версии. Часть 32 счетчика всегда имеет длину, равную n-количеству классов компонентов, используемых для создания подробной аппаратной идентификации (ПАПИД) 34. Как правило, часть 32 счетчика из подробной аппаратной идентификации (ПАПИД) 34 имеет фиксированную длину от приблизительно 6 до приблизительно 16 символов.

Часть 33 хеширования содержит составную строку значений хеш-функции, представляющих каждый из 19 экземпляров компонентов в пределах классов 21-28 компонентов, показанных на фиг.2. Каждый отдельный результат хеширования может иметь длину приблизительно до 160 битов. Желательно, чтобы каждый отдельный результат хеширования имел длину от приблизительно 10 до приблизительно 20 битов, более желательно приблизительно 16 битов. В данном примере результирующая часть 33 хеширования из подробной аппаратной идентификации (ПАПИД) 34 имеет требуемую полную длину 304 битов (т.е. 19х16=304).

Часть 33 хеширования подробной аппаратной идентификации (ПАПИД) 34 обычно имеют длину, которая изменяется в зависимости от количества экземпляров компонентов в пределах n классов компонентов данной аппаратной конфигурации. Полная длина части 33 хеширования равна количеству экземпляров компонентов, умноженному на необходимую длину результата хеширования для каждого результата хеширования экземпляра компонентов.

Как показано на фиг.3, подробная аппаратная идентификация (идентификационная информация) (ПАПИД) 34 представлена составной (конкатенированной) строкой части 31 заголовка, части 32 счетчика и части 33 хеширования. Примерный способ определения подробной аппаратной идентификации (ПАПИД) 34 для компьютерной аппаратной конфигурации описан ниже.

Следует отметить, что подробная аппаратная идентификация (ПАПИД) согласно настоящему изобретению может содержать только одну часть. В одном примерном варианте осуществления настоящего изобретения подробная аппаратная идентификация (ПАПИД) заданной компьютерной аппаратной конфигурации содержит одну часть 33 хеширования. В этом варианте осуществления подробная аппаратная идентификация (ПАПИД) не содержит часть 31 заголовка или часть 32 счетчика. В дополнительном варианте осуществления настоящего изобретения подробная аппаратная идентификация (ПАПИД) содержит только часть 32 счетчика в комбинации с частью 33 хеширования. В другом варианте осуществления настоящего изобретения подробная аппаратная идентификация (ПАПИД) содержит только часть 31 заголовка и часть 33 хеширования, она создана таким образом, что часть 32 счетчика скрыта.

В. ОПРЕДЕЛЕНИЕ ПОДРОБНОЙ АППАРАТНОЙ ИДЕНТИФИКАЦИИ (ПАПИД) ДЛЯ КОМПЬЮТЕРНОЙ СИСТЕМЫ

ПАПИД согласно настоящему изобретению может определяться примерным способом, который показан на фиг.4-6. Этапы примерного способа могут выполняться с помощью кода программы в программном продукте на компьютере клиента, подобном компьютеру 20, описанному выше по отношению к фиг.1. Как показано на фиг.4-6, примерное определение ПАПИД для заданной компьютерной аппаратной конфигурации (указанной как "HW1") начинается с этапа 401, на котором выбирают количество n классов компонентов для идентификации данной компьютерной аппаратной конфигурации HW1. Как обсуждалось выше, данная компьютерная система может включать в себя разные аппаратные компоненты и классы аппаратных компонентов. Примерные классы аппаратных компонентов включают в себя жесткие диски, логические диски, оптические диски, сетевые платы, адаптеры дисплея, постоянное запоминающее устройство (ПЗУ), оперативную память (ОП), устройства с интерфейсом IDE, звуковые платы, видеоплаты, процессоры, устройства с интерфейсом SCSI и систему BIOS, но не ограничены ими. Желательно, чтобы количество n аппаратных классов компонентов было целым числом в пределах от приблизительно 2 до приблизительно 16. В общем случае желательно, чтобы n было как можно больше для того, (i) чтобы более точно идентифицировать заданную компьютерную систему, и (ii) чтобы более точно измерить степень допуска заданной компьютерной системы.

После выбора количества n классов компонентов на этапе 401 на этапе 402 идентифицируют каждый класс компонентов. Классы компонентов могут включать в себя любой из описанных выше классов компонентов, например класс жестких дисков. Примерный список классов компонентов, используемых для идентификации примерной аппаратной конфигурации HW1, приведен ниже в таблице 1.

Таблица 1

Примерный список классов аппаратных компонентов, используемых для идентификации примерной аппаратной конфигурации HW1
Номер класса компонентовОписание классаИдентификатор класса
1Привод компакт-дисковИдентификатор привода компакт-диска
2Устройства с интерфейсом IDEИдентификатор устройства с интерфейсом IDE
3Жесткий дискСерийный номер диска
4Адаптер дисплеяИдентификатор
5Устройства с интерфейсом SCSIИдентификатор устройства с интерфейсом SCSI
6ДисководИдентификатор дисковода
7Сетевая платаМАС-адрес
8ПроцессорыИдентификатор процессора

Как показано в таблице 1, в данном примере, n равняется 8, и идентифицированные аппаратные классы компонентов включают в себя: (1) класс приводов компакт-диска; (2) класс устройств с интерфейсом IDE; (3) класс жестких дисков; (4) класс адаптеров дисплея; (5) класс устройств с интерфейсом SCSI; (6) класс дисководов; (7) класс сетевых плат и (8) класс центральных процессоров.

После того как каждый класс компонентов идентифицирован на этапе 402, на этапе 403 идентифицируют все устройства, или экземпляры, в пределах каждого класса аппаратных компонентов. На этапе 403 также определяют "счетчик" (т.е. количество компонентов, или экземпляров, в пределах каждого класса компонентов). Желательно, чтобы каждый экземпляр в пределах конкретного класса компонентов был идентифицирован наиболее уникальной идентифицирующей строкой, связанной с данным экземпляром. Например, аппаратная конфигурация может содержать привод компакт диска, изготовленный NEC Corporation и имеющий идентифицирующую строку "NEC CDRW24 315". Любой доступный способ определения наиболее уникальной идентифицирующей строки в заданном экземпляре может использоваться в настоящем изобретении. Этап назначения идентифицирующей строки для каждого экземпляра компонентов показан на этапе 404.

Когда идентифицирующая строка для каждого экземпляра компонентов назначена, на этапе 405 готовится часть заголовка подробной аппаратной идентификации (ПАПИД). На этапе 406 конкретная версия ПАПИД вводится в заголовок для формирования части 310 заголовка, как показано на фиг.3. Как описано выше, номер версии может представлять один или более параметров, используемых для определения подробной аппаратной идентификации (ПАПИД).

На этапе 407 идентифицируют класс компонентов, который должен быть представлен в заголовке. Как правило, классы компонентов, имеющие только единственный экземпляр компонентов, или классы с единственным экземпляром компонентов, представлены в части заголовка ПАПИД. Соответствующие классы компонентов, которые могут быть представлены в части заголовка ПАПИД, включают в себя класс компонентов памяти, класс возможности подключать компьютер к установочному модулю (т.е. можно ли устанавливать в компьютер в установочный модуль или нет), систему BIOS или их комбинацию, но не ограничены ими. В одном из примерных вариантов осуществления настоящего изобретения часть заголовка ПАПИД содержит информацию класса с единственным компонентом аппаратной конфигурации.

На этапе 409 решения принимают решение относительно того, подвергается ли хешированию идентифицирующая строка класса с единственным экземпляром компонентов, которая должна быть включена в заголовок. Заголовок может включать в себя идентифицирующую строку целиком, подвергнутую хешированию и/или усеченную до необходимого количества битов.

Если идентифицирующая строка должна быть подвергнута хешированию, то способ продолжается на этапе 411, на котором выполняют хеширование идентифицирующей строки экземпляра компонентов. Желательно, чтобы результат хеширования усекался до длины приблизительно 16 битов. На этапе 412 результат хеширования вводят в усеченную числовую часть 312 части 31 заголовка (как показано на фиг.3). Если идентифицирующая строка не подвергается хешированию, то способ продолжается на этапе 410, где идентифицирующую строку усекают до необходимой длины и вводят в усеченную числовую часть 312 части 31 заголовка. Желательно, чтобы идентифицирующая строка усекалась до длины, меньше чем приблизительно 16 битов.

Когда усеченный результат хеширования с этапа 412 или усеченную идентифицирующую строку с этапа 410 вводят в усеченную числовую часть 312 части 31 заголовка, способ продолжается на этапе 413 принятия решения. На этапе 413 принятия решения принимают решение, добавить ли дополнительную информацию о другом классе компонентов к части 31 заголовка ПАПИД. Если дополнительную информацию о другом классе компонентов нужно добавить к части 31 заголовка ПАПИД, то способ возвращается на этап 407 и выполняется, как описано выше. Если дополнительную информацию не нужно добавлять к части 31 заголовка ПАПИД, то способ продолжается на этапе 414, где подготавливается часть счетчика 32 для ПАПИД. Как обсуждалось выше, часть 32 счетчика ПАПИД содержит числовую строку из n чисел, которые представляют количество экземпляров компонентов в пределах каждого из п классов компонентов, используемых для формирования ПАПИД. (См. часть 32 счетчика на фиг.3.)

На этапе 415 выполняют хеширование идентифицирующих строк для каждого экземпляра компонентов, представленного в части 32 счетчика ПАПИД. Если данный класс компонентов не содержит экземпляра компонентов, то специальный результат хеширования может быть сгенерирован для использования в ПАПИД, причем специальный результат хеширования указывает, что данный класс компонентов не содержал экземпляра компонентов. Альтернативно, значение хеш-функции может не сохраняться и часть 32 счетчика, соответствующая отсутствующему классу компонентов, будет установлена в ноль, указывая, что данный класс компонентов отсутствует. Результаты хеширования для каждого экземпляра компонентов могут усекаться до необходимой длины. В одном из примерных вариантов осуществления настоящего изобретения каждый из результатов хеширования усекают до длины от приблизительно 10 до приблизительно 20 битов, более желательно приблизительно до 16 битов.

В настоящем изобретении могут использоваться любые известные хеш-функции, которые способны принимать идентифицирующие строки произвольной длины и создавать выходное значение, или результат, хэш-функции, имеющий фиксированную длину, меньшую или равную приблизительно 160 битам. Примеры соответствующих хеш-функций включают в себя алгоритмы хеширования HAVAL, MD2, MD4, MD5 и SHA-1, которые известны специалистам, но не ограничены ими. Другие соответствующие хеш-функции для использования в настоящем изобретении раскрыты в работе "Applied Cryptography", Bruce Schneier, опубликованной John Wiley & Sons (ISBN #0471117099), раскрытие которой полностью представлено для справки.

В одном из вариантов осуществления настоящего изобретения к идентификатору экземпляра компонентов могут добавлять модификатор ("солт-значение") до выполнения хеш-функции для заданного экземпляра компонентов. В данном варианте осуществления добавление модификатора дает возможность создавать различные ПАПИД, основанные на одной и той же компьютерной аппаратной конфигурации. Различные ПАПИД для одной и той же аппаратной конфигурации могут быть выгодны при выполнении различных приложений или различных прогонов программы. Один из примеров ситуации, когда различные ПАПИД для одной и той же аппаратной конфигурации могут быть выгодны, описан ниже.

Например, если пользователь активизирует многочисленные пакеты программ от одного и того же поставщика, то можно использовать ПАПИД для соотнесения отдельных записей активации для формирования картины тенденций покупки программного обеспечения пользователя. Чтобы предпринять меры против этого, могут создаваться различные ПАПИД для одного и того же компьютера, чтобы они казались несвязанными, с помощью создания каждого отдельного результата хеширования, используя хеш-функцию, такую как hash х=MD5 [(модификатор) х+строка ИД], где значение модификатора отличается для каждого пакета программ.

На этапе 416 результаты хеширования для каждого экземпляра компонентов соединяют для формирования части 33 хеширования для подробной аппаратной идентификации (ПАПИД) 34, как показано на фиг.3. На этапе 217 собирают окончательную подробную аппаратную идентификацию (ПАПИД) 34, соединяя часть 31 заголовка, часть 32 счетчика и часть 33 хеширования.

На этапе 418 результирующую подробную аппаратную идентификацию (идентификационную информацию) (ПАПИД) для аппаратной конфигурации HW1 сохраняют для будущего использования. Подробная аппаратная идентификация (ПАПИД) для аппаратной конфигурации HW1 может храниться локально (например, в регистре, файловой системе или защищенном запоминающем устройстве) или в доступном удаленном месте (например, в базе данных) или может передаваться на сервер центра обмена информацией для получения лицензии.

Как описано выше, в некоторых вариантах осуществления настоящего изобретения подробная аппаратная идентификация (ПАПИД) для аппаратной конфигурации HW1 может содержать только (i) часть 33 хеширования или (ii) часть 32 счетчика в комбинации с частью 33 хеширования, например, ПАПИД, содержащая часть 32 счетчика, объединенную с частью 33 хеширования.

II. ИСПОЛЬЗОВАНИЕ ПОДРОБНОЙ АППАРАТНОЙ ИДЕНТИФИКАЦИИ (ПАПИД) ДЛЯ РАЗРЕШЕНИЯ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ПРОДУКТА В КОМПЬЮТЕРНОЙ СИСТЕМЕ

Настоящее изобретение дополнительно направлено на способ использования подробной аппаратной идентификации (идентификационной информации) (ПАПИД) для разрешения использования программного продукта в компьютерной системе, имеющей данную компьютерную аппаратную конфигурацию. В одном из вариантов осуществления настоящего изобретения способ использования подробной аппаратной идентификации (ПАПИД) для разрешения использования программного продукта в компьютерной системе, имеющей данную компьютерную аппаратную конфигурацию, инициализируют (i) во время любой инсталляции программного продукта на другом компьютере, кроме начальной инсталляции, (ii) во время запуска программного продукта или приложения, уже существующего на компоненте компьютерной аппаратной конфигурации, или (iii) в обоих случаях. Примерный способ использования подробной аппаратной идентификации (ПАПИД) описан на фиг.7. Этапы примерного способа могут выполняться с помощью кода программы в программном продукте в компьютере клиента, подобном компьютеру 20, описанном выше по отношению к фиг.1.

Как показано на этапе 501 на фиг.7, программный продукт или загружают, или запускают на компьютере, имеющем аппаратную конфигурацию HW2. Компьютерная аппаратная конфигурация HW2 может быть идентична аппаратной конфигурации HW1, используемой для создания исходной подробной аппаратной идентификации (указана как иПАПИД), или может быть полностью отличающимся компьютером. На этапе 502 генерируют новую подробную аппаратную идентификацию (указана как нПАПИД) для компьютерной аппаратной конфигурации HW2. Подробную аппаратную идентификацию (нПАПИД) для компьютерной аппаратной конфигурации HW2 можно генерировать так, как описано выше и показано на фиг.4-6. Когда новая подробная аппаратная идентификация (нПАПИД) сгенерирована для компьютерной аппаратной конфигурации HW2, на этапе 503 восстанавливают сохраненную подробную аппаратную идентификацию (ПАПИД). Как правило, сохраненная подробная аппаратная идентификация (ПАПИД) - исходная подробная аппаратная идентификация (иПАПИД), которая была сгенерирована для первой компьютерной аппаратной конфигурации HW1 во время начальной инсталляции программного продукта на HW1 или вскоре после нее.

На этапе 504 новую подробную аппаратную идентификацию (нПАПИД) аппаратной конфигурации HW2 сравнивают с исходной подробной аппаратной идентификацией (иПАПИД) аппаратной конфигурации HW1. Способ продолжается на этапе 505 принятия решения. На этапе 505 решения определяют, равно или превышает ли количество соответствий классов компонентов требуемое количество m соответствий классов компонентов, необходимое для разрешения использования программного продукта на аппаратной конфигурации HW2. Если количество соответствий классов компонентов равно или превышает требуемое количество m соответствий классов компонентов, то способ продолжается на этапе 506, на котором способ разрешает использование программного продукта на аппаратной конфигурации. HW2. Если количество соответствий классов компонентов меньше требуемого количества m соответствий классов компонентов, то способ продолжается на этапе 507, на котором способ запрещает использование программного продукта на аппаратной конфигурации HW2.

На этапе 504 сравнения новой подробной аппаратной идентификации (нПАПИД) аппаратной конфигурации HW2 с исходной подробной аппаратной идентификацией (иПАПИД) аппаратной конфигурации HW1 могут использовать одно или более правил для определения, существует или нет соответствие для данного класса компонентов. Желательно, чтобы способ использования подробной аппаратной идентификации (ПАПИД) для разрешения использования программного продукта содержал одно или больше из следующих правил определения количества соответствий классов компонентов между недавно сгенерированной подробной аппаратной идентификацией и предварительно сохраненной подробной аппаратной идентификацией:

(i) каждый результат хеширования в пределах новой подробной аппаратной идентификации (нПАПИД), который представляет экземпляр компонентов в пределах класса компонентов аппаратной конфигурации HW2, сравнивают с каждым результатом хеширования в пределах исходной подробной аппаратной идентификации (иПАПИД), которая представляет соответствующий класс компонентов в аппаратной конфигурации HW1;

(ii) между классом компонентов аппаратной конфигурации HW2 и соответствующим классом компонентов аппаратной конфигурации HW1 существует соответствие (совпадение), когда один результат хеширования в пределах новой подробной аппаратной идентификации (нПАПИД), который представляет экземпляр компонентов в пределах класса компонентов аппаратной конфигурации HW2, соответствует любому из результатов хеширования в пределах исходной подробной аппаратной идентификации (иПАПИД), которая представляет соответствующий класс компонентов в аппаратной конфигурации HW1;

(iii) между классом компонентов аппаратной конфигурации HW2 и соответствующим классом компонентов аппаратной конфигурации HW1 существует единственное соответствие (совпадение), когда два или больше результата хеширования в пределах новой подробной аппаратной идентификации (нПАПИД), которая представляет два или больше экземпляров компонентов в пределах класса компонентов аппаратной конфигурации HW2, соответствуют двум или больше результатам хеширования в пределах исходной подробной аппаратной идентификации (иПАПИД), которая представляет соответствующий класс компонентов в аппаратной конфигурации HW1;

(iv) между классом компонентов аппаратных конфигураций HW2 и соответствующим классом компонентов аппаратной конфигурации HW1 не существуют соответствий, когда класс компонентов в аппаратной конфигурации HW2 не содержит экземпляр компонентов, а соответствующий класс компонентов в аппаратной конфигурации HW1 содержит экземпляр компонентов;

(v) между классом компонентов аппаратной конфигурации HW2 и соответствующим классом компонентов аппаратной конфигурации HW1 не существует соответствия, когда класс компонентов в аппаратной конфигурации HW2 содержит единственный экземпляр компонентов, а соответствующий класс компонентов в аппаратной конфигурации HW1 не содержит экземпляр компонентов;

(vi) требуемое количество m соответствий (совпадений) классов компонентов между аппаратной конфигурацией HW2 и аппаратной конфигурацией HW1 может определяться предварительно и внедряться в код заданного программного продукта.

Требуемое количество m соответствий (совпадений) классов компонентов выбирают в зависимости от степени допуска, требуемого для изменений компонентов аппаратной конфигурации. Требуемое количество m соответствий (совпадений) классов компонентов может быть таким же большим, как n, общее количество классов компонентов, которые рассматривают во время определения подробной аппаратной идентификации (ПАПИД), или может быть всего 1. Когда m увеличивается, степень допуска изменений конфигурации компьютерной аппаратуры уменьшается. Например, если общее количество классов компонентов n равно 10, и m равно 7, то в 7 из 10 классов компонентов должен соответствовать по меньшей мере один экземпляр компонентов для разрешения загрузки или выполнения программного продукта. Если количество соответствий классов компонентов меньше 7, то программный продукт не будет работать, загружаться или лицензироваться для работы в данной компьютерной аппаратной конфигурации.

Требуемое количество m соответствий классов компонентов может быть предопределено изготовителем программного обеспечения и закодировано в код программного продукта, используемого для генерации подробной аппаратной идентификации (ПАПИД). Желательно, чтобы m было больше или равно (n-3), еще более желательно, чтобы m было больше или равно (n-2). Однако, как указано выше, m может быть от 1 до n.

Этапы способа, описанные выше и иллюстрированные на фиг.4-6 и 1, могут выполняться локально или удаленно. Как правило, клиент покупает программный продукт, который может работать на данном компьютере, таком как компьютер 20, показанный на фиг.1. Программный продукт может быть запакован в упаковку, содержащую программу на переносимом считываемом компьютером носителе, таком как компакт-диск или гибкая дискета. Альтернативно программный продукт может доставляться электронными средствами по сети, такой как локальная сеть (ЛС) 51 или глобальная сеть (ГС) 52. Клиент загружает программный продукт в компьютер 20 как программу, хранящуюся в системной памяти 22.

Во время инсталляции программного продукта клиента обычно просят ввести в компьютер 20 часть идентификатора программного продукта (ИПП, PID) для программного продукта. ИПП может быть получен, например, из ключа компакт-диска, напечатанного на этикетке упакованного комплекта. Клиент вводит ИПП, который связан с программой программного продукта. ИПП хранится локально на компьютере 20 и/или удаленно в доступном месте или в локальной сети (ЛС) 51, или в глобальной сети (ГС) 52 третьим лицом, таким как организация активации.

Как описано выше, во время инсталляции или активации программного продукта подробная аппаратная идентификация (ПАПИД) также генерируется с использованием кода в программном продукте или запускается с помощью инсталляции программного продукта. Подробная аппаратная идентификация (идентификационная информация) (ПАПИД), сгенерированная способом настоящего изобретения, связана с идентификатором программного продукта (ИПП) и хранится наряду с идентификатором программного продукта (ИПП) локально на компьютере 20 и/или удаленно в доступном месте или в локальной сети (ЛС) 51, или в глобальной сети (ГС) 52, например, у третьего лица организации активации.

Как часть инсталляционного процесса от клиента могут потребовать активизировать программный продукт с помощью организации активации. Этой организацией может быть, например, изготовитель продукта или уполномоченное третье лицо. Процесс активации предназначен для того, чтобы вынудить клиента активизировать программный продукт (i) для инсталляции и использования на определенном компьютере или (ii) для инсталляции и использования согласно условиям лицензионного соглашение по данному продукту. Такой процесс активации подробно описан в патенте США №6243468, переуступленном Microsoft Corporation (Redmond., WA), содержание которого полностью представлено для справки.

Подробная аппаратная идентификация (ПАПИД), сгенерированная способом согласно настоящему изобретению, и идентификатор программного продукта (ИПП) могут храниться локально на компьютере 20 и/или удаленно в доступном месте или в локальной сети (ЛС) 51, или в глобальной сети (ГС) 52 организацией активации. Желательно, чтобы программный продукт (i) хранил и подробную аппаратную идентификацию (ПАПИД), и связанный идентификатор программного продукта (ИПП) на компьютере 20, и (ii) посылал и подробную аппаратную идентификацию (ПАПИД), и связанный с ней идентификатор программного продукта (ИПП) с помощью электронных средств по глобальной сети (ГС) 52 на сервер активации. Желательно, чтобы при первом запуске программный продукт автоматически отображал окно диалога графического интерфейса пользователя (ИП, UI), который запрашивает пользователя инициировать подключение к серверу активации для собственной активации. Сервер активации поддерживает базу данных для хранения принятых подробных аппаратных идентификаций (ПАПИД) и связанных идентификаторов программного продукта (ИПП).

Подробная аппаратная идентификация (идентификационная информация) (ПАПИД) и связанный идентификатор программного продукта (ИПП) для данного программного продукта могут храниться в течение неопределенного периода времени, пока данный программный продукт не будет повторно устанавливаться на другой компьютер или запускаться на первом компьютере (т.е. компьютере, используемом во время начальной инсталляции). Когда один и тот же программный продукт повторно устанавливают на другом компьютере или запускают на первом компьютере, код в программном продукте инициирует способ создания новой подробной аппаратной идентификации (ПАПИД) согласно настоящему изобретению. Программный продукт также восстанавливает предварительно сохраненную подробную аппаратную идентификацию (ПАПИД), связанную с идентификатором программного продукта (ИПП), или из локального компьютера 20, или из удаленного места через локальную сеть (ЛС) 51, или через глобальную сеть (ГС) 52. Сравнение между новой подробной аппаратной идентификацией (ПАПИД) и предварительно сохраненной подробной аппаратной идентификацией (ПАПИД) выполняют, как описано выше.

Когда в использовании данного программного продукта отказано из-за существенных изменений в аппаратной конфигурации первого компьютера (т.е. компьютера, используемого во время начальной инсталляции), диалоговое окно может обеспечивать клиенту указание, что использование данного программного продукта запрещено и что дополнительная информация относительно будущего использования данного программного продукта может быть получена из указанного источника.

III. ДРУГИЕ ВАРИАНТЫ ИСПОЛЬЗОВАНИЯ ПОДРОБНОЙ АППАРАТНОЙ ИДЕНТИФИКАЦИИ (ПАПИД)

Подробная аппаратная идентификация (ПАПИД) согласно настоящему изобретению может также использоваться для других целей, чем описанные выше. В одном из вариантов осуществления настоящего изобретения подробная аппаратная идентификация (ПАПИД) используется для создания "полууникального" инсталляционного ИД для отслеживания компьютера. В другом варианте осуществления настоящего изобретения подробная аппаратная идентификация (ПАПИД) используется на сервере центра обмена информацией при предоставлении лицензий на использование программного обеспечения на компьютере клиента.

Хотя данное описание было подробно описано по отношению к определенным вариантам осуществления, следует признать, что специалисты после достижения понимания предшествующего изложения могут легко придумать изменения, разновидности и эквиваленты к данным вариантам осуществления. Соответственно форма настоящего изобретения должна определяться прилагаемой формулой изобретения и любыми ее эквивалентами.

1. Способ формирования подробной аппаратной идентификации (ПАПИД) для первой компьютерной системы, имеющей первую аппаратную конфигурацию, данный способ содержит этапы:

выбирают n классов компонентов, где n - целое число;

идентифицируют все экземпляры компонентов в пределах каждого из n классов компонентов;

генерируют множество результатов хеширования, причем множество результатов хеширования содержит результат хеширования для каждого экземпляра компонентов и по меньшей мере один результат хеширования для n классов компонентов;

конкатенируют множество результатов хеширования для формирования части хеширования, причем часть хеширования формирует часть подробной аппаратной идентификации (ПАПИД) для первой компьютерной системы; и

конкатенируют (i) часть заголовка, (ii) часть счетчика и (iii) часть хеширования подробной аппаратной идентификации (ПАПИД) для формирования подробной аппаратной идентификации (ПАПИД) для первой компьютерной системы.

2. Способ по п.1, в котором n - целое число до приблизительно 16.

3. Способ по п.1, в котором часть заголовка содержит

(а) номер версии и (b) одно из: (i) результат хеширования, полученный из

этапа выполнения хеширования идентифицирующей строки класса с единственным экземпляром, (ii) усеченная идентифицирующая строка для класса с единственным экземпляром и (iii) идентифицирующая строка для класса с единственным экземпляром.

4. Способ по п.3, в котором компоненты (а) и (b) конкатенируют для формирования части заголовка.

5. Способ по п.1, в котором часть заголовка содержит (а) номер версии и (b) одно из: (i) результат хеширования, полученный из этапа выполнения хеширования идентифицирующей строки класса с единственным экземпляром, (ii) усеченная идентифицирующая строка для класса с единственным экземпляром и (iii) идентифицирующая строка для класса с единственным экземпляром.

6. Способ по п.1, в котором часть счетчика содержит конкатенированную строку из n чисел, причем каждое число представляет количество экземпляров компонентов в пределах n классов компонентов.

7. Способ по п.1, в котором по меньшей мере один класс компонентов содержит два или больше экземпляров компонентов.

8. Способ по п.1, в котором каждый класс компонентов содержит приблизительно от 0 до 14 экземпляров компонентов.

9. Способ по п.1, в котором каждый результат хеширования усекают до 16-битного числа.

10. Способ по п.3, в котором результат хеширования усекают до 16-битного числа.

11. Способ по п.1, в котором данный способ инициализируют во время этапа загрузки программного продукта на первой компьютерной системе.

12. Способ определения, может ли программный продукт использоваться во второй компьютерной системе, имеющей вторую аппаратную конфигурацию, причем вторая компьютерная система идентична или отличается от первой компьютерной системы, данный способ содержит этапы:

генерируют вторую подробную аппаратную идентификацию (вПАПИД) для второй аппаратной конфигурации,

сравнивают вторую подробную аппаратную идентификацию (вПАПИД) для второй аппаратной конфигурации с подробной аппаратной идентификацией (ПАПИД) для первой аппаратной конфигурации, сгенерированной способом по п.1,

если между классами компонентов второй аппаратной конфигурации и соответствующими классами компонентов первой аппаратной конфигурации существует некоторое количество совпадений, и это количество совпадений равно или превышает требуемое количество m совпадений классов компонентов, то загружают программный продукт на второй компьютерной системе, и

если количество совпадений меньше m, то препятствуют загрузке программного продукта на второй компьютерной системе.

13. Способ по п.12, в котором между классом компонентов второй аппаратной конфигурации и соответствующим классом компонентов первой аппаратной конфигурации существует совпадение, когда один результат хеширования, представляющий экземпляр компонентов в пределах класса компонентов второй аппаратной конфигурации, совпадает с любым из результатов хеширования соответствующего класса компонентов в первой аппаратной конфигурации.

14. Способ по п.12, в котором между классом компонентов второй аппаратной конфигурации и соответствующим классом компонентов первой аппаратной конфигурации существует единственное совпадение, когда два или больше результатов хеширования, представляющих два или больше экземпляров компонентов в пределах класса компонентов второй аппаратной конфигурации, совпадают с двумя или более результатами хеширования соответствующего класса компонентов в первой аппаратной конфигурации.

15. Способ по п.12, в котором между классом компонентов второй аппаратной конфигурации и соответствующим классом компонентов первой аппаратной конфигурации не существует совпадений, (i) когда класс компонентов в первой аппаратной конфигурации не содержит экземпляра компонентов, а соответствующий класс компонентов во второй аппаратной конфигурации содержит экземпляр компонентов, и (ii) когда класс компонентов в первой аппаратной конфигурации содержит единственный экземпляр компонентов, а соответствующий класс компонентов во второй аппаратной конфигурации не содержит экземпляра компонентов.

16. Способ по п.12, в котором m равняется (n-3).

17. Вычислительная система, содержащая по меньшей мере один модуль прикладных программ, пригодный для использования в вычислительной системе, причем по меньшей мере один модуль прикладных программ содержит код прикладной программы для выполнения способа по п.1.

18. Считываемый компьютером носитель, хранящий на нем выполняемые компьютером команды для выполнения способа по п.1.

19. Считываемый компьютером носитель, хранящий на нем выполняемые компьютером команды для выполнения способа формирования подробной аппаратной идентификации (ПАПИД) для первой компьютерной системы, имеющей первую аппаратную конфигурацию, данный способ содержит этапы:

выбирают n классов компонентов, где n - целое число;

идентифицируют все экземпляры компонентов в пределах каждого из n классов компонентов;

генерируют множество результатов хеширования, причем множество результатов хеширования содержит результат хеширования для каждого экземпляра компонентов и по меньшей мере один результат хеширования для n классов компонентов;

конкатенируют множество результатов хеширования для формирования части хеширования, причем часть хеширования формирует часть подробной аппаратной идентификации (ПАПИД) для первой компьютерной системы; и

конкатенируют (i) часть заголовка, (ii) часть счетчика и (iii) часть хеширования подробной аппаратной идентификации (ПАПИД) для формирования подробной аппаратной идентификации (ПАПИД) для первой компьютерной системы.

20. Считываемый компьютером носитель по п.19, в котором n - целое число до приблизительно 16.

21. Считываемый компьютером носитель по п.19, в котором часть заголовка содержит (а) номер версии и (b) одно из: (i) результат хеширования, полученный из этапа выполнения хеширования идентифицирующей строки класса с единственным экземпляром, (ii) усеченная идентифицирующая строка для класса с единственным экземпляром и (iii) идентифицирующая строка для класса с единственным экземпляром.

22. Считываемый компьютером носитель по п.21, в котором компоненты (а) и (b) конкатенируют для формирования части заголовка.

23. Считываемый компьютером носитель по п.19, в котором часть заголовка содержит (а) номер версии и (b) одно из: (i) результат хеширования, полученный из этапа выполнения хеширования идентифицирующей строки класса с единственным экземпляром, (ii) усеченная идентифицирующая строка для класса с единственным экземпляром и (iii) идентифицирующая строка для класса с единственным экземпляром.

24. Считываемый компьютером носитель по п.19, в котором часть счетчика содержит конкатенированную составную строку из n чисел, причем каждое число представляет количество экземпляров компонентов в пределах n классов компонентов.

25. Считываемый компьютером носитель по п.19, в котором по меньшей мере один класс компонентов содержит два или больше экземпляра компонентов.

26. Считываемый компьютером носитель по п.19, в котором каждый класс компонентов содержит приблизительно от 0 до 14 экземпляров компонентов.

27. Считываемый компьютером носитель по п.19, в котором каждый результат хеширования усекают до 16-битного числа.

28. Считываемый компьютером носитель по п.21, в котором результат

хеширования усекают до 16-битного числа.

29. Считываемый компьютером носитель по п.19, в котором данный способ инициализируют во время этапа загрузки программного продукта на первой компьютерной системе.

30. Считываемый компьютером носитель, хранящий на нем выполняемые компьютером команды для выполнения способа определения, может ли программный продукт использоваться на второй компьютерной системе, имеющей вторую аппаратную конфигурацию, причем вторая компьютерная система идентична или отличается от первой компьютерной системы, данный способ содержит этапы:

генерируют вторую подробную аппаратную идентификацию (вПАПИД) для второй аппаратной конфигурации,

сравнивают вторую подробную аппаратную идентификацию (вПАПИД) для второй аппаратной конфигурации с подробной аппаратной идентификацией (ПАПИД) для первой аппаратной конфигурации, сгенерированной способом по п.19,

если между классами компонентов второй аппаратной конфигурации и соответствующими классами компонентов первой аппаратной конфигурации существует некоторое количество совпадений, и это количество совпадений равно или превышает требуемое количество m совпадений классов компонентов, то загружают программный продукт на второй компьютерной системе, и

если количество совпадений меньше m, то препятствуют загрузке программного продукта на второй компьютерной системе.

31. Считываемый компьютером носитель по п.30, в котором между классом компонентов второй аппаратной конфигурации и соответствующим классом компонентов первой аппаратной конфигурации существует совпадение, когда один результат хеширования, представляющий экземпляр компонентов в пределах класса компонентов второй аппаратной конфигурации, совпадает с любым результатом хеширования соответствующего класса компонентов в первой аппаратной конфигурации.

32. Считываемый компьютером носитель по п.30, в котором между классом компонентов второй аппаратной конфигурации и соответствующим классом компонентов первой аппаратной конфигурации существует единственное совпадение, когда два или больше результата хеширования, представляющие два или больше экземпляра компонентов в пределах класса компонентов второй аппаратной конфигурации, совпадают с двумя или более результатами хеширования соответствующего класса компонентов в первой аппаратной конфигурации.

33. Считываемый компьютером носитель по п.30, в котором между классом компонентов второй аппаратной конфигурации и соответствующим классом компонентов первой аппаратной конфигурации не существует совпадения, (i) когда класс компонентов в первой аппаратной конфигурации не содержит экземпляр компонентов, а соответствующий класс компонентов во второй аппаратной конфигурации содержит экземпляр компонентов, и (ii) когда класс компонентов в первой аппаратной конфигурации содержит один экземпляр компонентов, и соответствующий класс компонентов во второй аппаратной конфигурации не содержит экземпляр компонентов.

34. Считываемый компьютером носитель по п.30, в котором m равняется (n-3).

35. Вычислительная система, содержащая по меньшей мере один модуль прикладных программ, пригодный для использования в вычислительной системе, причем по меньшей мере один модуль прикладных программ содержит код прикладной программы для выполнения способа формирования подробной аппаратной идентификации (ПАПИД) для первой компьютерной системы, имеющей первую аппаратную конфигурацию, данный способ содержит этапы:

выбирают n классов компонентов, где n-целое число, идентифицируют все экземпляры компонентов в пределах каждого из n классов компонентов,

генерируют множество результатов хеширования, причем множество результатов хеширования содержит результаты хеширования для каждого экземпляра компонентов и по меньшей мере один результат хеширования для n классов компонентов,

конкатенируют множество результатов хеширования для формирования части хеширования, причем часть хеширования формирует часть подробной аппаратной идентификации (ПАПИД) для первой компьютерной системы, и

конкатенируют (i) часть заголовка, (ii) часть счетчика и (iii) часть хеширования подробной аппаратной идентификации (ПАПИД) для формирования подробной аппаратной идентификации (ПАПИД) для первой компьютерной системы.

36. Вычислительная система по п.35, в которой n - целое число приблизительно до 10.

37. Вычислительная система по п.35, в которой часть заголовка содержит (а) номер версии и (b) одно из: (i) результат хеширования, полученный из этапа выполнения хеширования идентифицирующей строки класса с единственным экземпляром, (ii) усеченная идентифицирующая строка для класса с единственным экземпляром и (iii) идентифицирующая строка для класса с единственным экземпляром.

38. Вычислительная система по п.37, в которой компоненты (а), (b) и (с) конкатенируют для формирования части заголовка.

39. Вычислительная система по п.35, в которой часть заголовка содержит (а) номер версии и (b) одно из: (i) результат хеширования, полученный из этапа выполнения хеширования идентифицирующей строки класса с единственным экземпляром, (ii) усеченная идентифицирующая строка для класса с единственным экземпляром и (iii) идентифицирующая строка для класса с единственным экземпляром.

40. Вычислительная система по п.35, в которой часть счетчика содержит конкатенированную составную строку из n чисел, причем каждое число представляет количество экземпляров компонентов в n классах компонентов.

41. Вычислительная система по п.35, в которой по меньшей мере один класс компонентов содержит два или больше экземпляра компонентов.

42. Вычислительная система по п.35, в которой каждый класс компонентов содержит приблизительно от 0 до 14 экземпляров компонентов.

43. Вычислительная система по п.35, в которой каждый результат хеширования усекают до 16-битного числа.

44. Вычислительная система по п.37, в которой результат хеширования усекают до 16-битного числа.

45. Вычислительная система по п.35, в которой данный способ инициализируют во время этапа загрузки программного продукта на первой компьютерной системе.

46. Вычислительная система, содержащая по меньшей мере один модуль прикладных программ, пригодный для использования в вычислительной системе, причем по меньшей мере один модуль прикладных программ содержит код прикладной программы для выполнения способа определения, может ли программный продукт использоваться на второй компьютерной системе, имеющей вторую аппаратную конфигурацию, причем вторая компьютерная система идентична или отличается от первой компьютерной системы, данный способ содержит этапы:

генерируют вторую подробную аппаратную идентификацию (вПАПИД) для второй аппаратной конфигурации,

сравнивают вторую подробную аппаратную идентификацию (вПАПИД) для второй аппаратной конфигурации с подробной аппаратной идентификацией (ПАПИД) для первой аппаратной конфигурации, сгенерированной способом по п.35,

если между классами компонентов второй аппаратной конфигурации и соответствующими классами компонентов первой аппаратной конфигурации существует некоторое количество совпадений, и это количество совпадений равняется или превышает требуемое количество m совпадений классов компонентов, то загружают программный продукт на второй компьютерной системе, и

если количество совпадений меньше m, то препятствуют загрузке программного продукта на второй компьютерной системе.

47. Вычислительная система по п.46, в которой между классом компонентов второй аппаратной конфигурации и соответствующим классом компонентов первой аппаратной конфигурации существует совпадение, когда один результат хеширования, представляющий экземпляр компонентов в пределах класса компонентов второй аппаратной конфигурации, совпадает с любым из результатов хеширования соответствующего класса компонентов в первой аппаратной конфигурации.

48. Вычислительная система по п.46, в которой между классом компонентов второй аппаратной конфигурации и соответствующим классом компонентов первой аппаратной конфигурации существует единственное совпадение, когда два или больше результатов хеширования, представляющие два или больше экземпляра компонентов в пределах класса компонентов второй аппаратной конфигурации, совпадают с двумя или более результатами хеширования соответствующего класса компонентов для первой аппаратной конфигурации.

49. Вычислительная система по п.46, в которой между классом компонентов второй аппаратной конфигурации и соответствующим классом компонентов первой аппаратной конфигурации не существует совпадений, (i) когда класс компонентов в первой аппаратной конфигурации не содержит экземпляра компонентов, а соответствующий класс компонентов во второй аппаратной конфигурации содержит экземпляр компонентов, и (ii) когда класс компонентов в первой аппаратной конфигурации содержит единственный экземпляр компонентов, а соответствующий класс компонентов во второй аппаратной конфигурации не содержит экземпляра компонентов.

50. Вычислительная система по п.46, в которой m равняется (n-3).



 

Похожие патенты:

Изобретение относится к области и системам сигнализации внедренных данных, а также форматированию и обработке потоков данных с внедренными данными. .

Изобретение относится к области мобильной телефонной связи и может быть использовано для получения дополнительных услуг абонентами мобильной сети. .

Изобретение относится к управлению аудио/видео (AV) устройствами при помощи веб-браузера и, более подробно, к управлению другими AV устройствами с помощью установки веб-браузера и программы, управляющей AV устройством.

Изобретение относится к технике связи, в частности к обработке приложений для использования в беспроводном устройстве. .

Изобретение относится к области обработки приложений для мобильного коммуникационных систем. .

Изобретение относится к области вычислительной техники. .

Изобретение относится к защищенной от несанкционированного доступа разработке исполняемого программного кода для портативных программируемых носителей информации.
Изобретение относится к области приборостроения. .

Изобретение относится к области вычислительной техники. .

Изобретение относится к портативным устройствам хранения данных с энергонезависимой твердотельной памятью, имеющим возможность шифрования. .

Изобретение относится к области способа деактивизации и повторной активизации модуля защиты, предназначенного, в частности, для управления обращением к данным с условным доступом.

Изобретение относится к вычислительной технике и предназначено для моделирования системы защиты вычислительной сети. .

Изобретение относится к средствам защиты от несанкционированного доступа и нарушения конфиденциальности информации, хранимой в персональной ЭВМ, и может быть использовано для серверов реляционных СУБД.

Изобретение относится к цифровому управлению правами и их исполнением для различных видов цифрового содержания мультимедийных материалов. .

Изобретение относится к проверке данных, в частности к объекту заголовка файла данных. .

Изобретение относится к вычислительной технике, в частности к системе разграничения доступа к документам в распределенной сети электронного документооборота. .

Изобретение относится к области защиты компьютерных систем от модификации, а именно способам для связывания программного обеспечения с заданной компьютерной системой
Наверх