Ключ продукта

Ключ продукта , также известный как программный ключ, серийный ключ или ключ активации , представляет собой специальный программный ключ для компьютерной программы . Он удостоверяет, что копия программы является оригинальной.
Ключи продукта состоят из ряда цифр и/или букв. Эта последовательность обычно вводится пользователем во время установки компьютерного программного обеспечения, а затем передается функции проверки в программе. Эта функция манипулирует последовательностью ключей в соответствии с математическим алгоритмом и пытается сопоставить результаты с набором допустимых решений.
Эффективность
Стандартная генерация ключей, при которой ключи продукта генерируются математически, не полностью эффективна для предотвращения нарушения авторских прав на программное обеспечение , поскольку эти ключи могут распространяться. Кроме того, с улучшением связи благодаря развитию Интернета , более сложные атаки на ключи, такие как взломы (устраняющие необходимость в ключе) и генераторы ключей продуктов стали обычным явлением .
По этой причине издатели программного обеспечения используют дополнительные методы активации продукта , чтобы убедиться, что ключи действительны и нескомпрометированы. Один из методов назначает ключ продукта на основе уникальной особенности компьютерного оборудования покупателя, которую невозможно легко скопировать, поскольку она зависит от аппаратного обеспечения пользователя. Другой метод предполагает требование однократной или периодической проверки ключа продукта на интернет-сервере (для игр с онлайн-компонентом это делается каждый раз, когда пользователь входит в систему). Сервер может деактивировать немодифицированное клиентское программное обеспечение, предоставляющее неверные или скомпрометированные ключи. Модифицированные клиенты могут обходить эти проверки. [1] но сервер все равно может отказать этим клиентам в предоставлении информации или общении.
Примеры
Розничный ключ Windows 95
Ключи розничных продуктов Windows 95 имеют формат XXX-XXXXXXX. [2] Чтобы определить, действителен ли ключ, Windows 95 выполняет следующие проверки:
- Первые 3 символа не должны быть равны 333, 444, 555, 666, 777, 888 или 999.
- Последние 7 символов должны быть цифрами от 0 до 8.
- Сумма последних 7 чисел должна делиться на 7 без остатка.
- Четвертый символ не отмечен.
Если все проверки пройдены, ключ продукта действителен. Следовательно, ключ продукта 000-0000000 будет считаться действительным в этих условиях.
OEM-ключ Windows 95
OEM-ключи Windows 95 имеют вид XXXXX-OEM-XXXXXXX-XXXXX.
- Первые 3 символа должны быть числами от 0 до 366.
- Следующие 2 символа должны быть числами от 04 до 93.
- Следующие 3 символа должны быть OEM.
- Сумма следующих 7 чисел должна делиться на 7 без остатка.
- Остальные персонажи не отмечены.
Розничный ключ Windows XP
Windows XP использует для активации идентификатор установки, идентификатор продукта и ключ продукта. [3] [4]
Идентификатор установки
Идентификатор установки представляет собой десятичную строку из 50 цифр, разделенную на 5 групп по шесть цифр каждая с двумя цифрами в конце, которая принимает форму XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XX. Идентификатор установки обновляется при каждом запуске msoobe.exe.
Проверьте цифры
Крайняя правая цифра в каждой группе идентификатора установки является контрольной цифрой.
- Каждая контрольная цифра рассчитывается путем сложения остальных пяти цифр в ее группе.
- Затем добавляем цифры в этой группе в четные позиции во второй раз.
- Затем разделите их сумму на 7.
- Остаток — это значение контрольной цифры в своей группе.
Декодирование
Удаление контрольных цифр приводит к получению 136-битного целого числа с многоточечным кодированием из 41 цифры в десятичном формате , которое сохраняется в порядке байтов с прямым байтов порядком байтов в виде массива .
Расшифровка
Младшие 16 байт идентификатора установки зашифрованы, тогда как наиболее значимый байт хранится в виде открытого текста. Криптографический алгоритм, используемый для шифрования идентификатора установки, представляет собой собственный четырехраундовый шифр Фейстеля . Поскольку блок входных байтов, передаваемый шифру Фейстеля, разделен на два блока одинакового размера, этот класс шифров обычно применяется к входным блокам, состоящим из четного числа байтов, в данном случае младших 16 из 17 входных байтов. Раундовая функция шифра представляет собой SHA-1, алгоритм дайджеста сообщения основанный на четырехбайтовой последовательности.
Пусть + обозначает конкатенацию двух последовательностей байтов, ^ операцию XOR , L и R — левую и правую входную половину восьмибайта для одного раунда, L’ и R’ — выходные половины указанного раунда, а First-8() a функция, которая возвращает первые восемь байтов дайджеста сообщения SHA-1.
Тогда один раунд расшифровки выглядит следующим образом.
L' = R ^ Первый-8(SHA-1(L + Ключ))
Р' = Л
Результатом расшифровки являются 16 байт открытого текста, которые вместе с 17-м незашифрованным байтом будут интерпретироваться как четыре двойных слова в порядке байтов с прямым порядком байтов, за которыми следует один байт.
Имя | Размер | Компенсировать |
---|---|---|
H1 | Двойное слово | 0 |
Н2 | Двойное слово | 4 |
П1 | Двойное слово | 8 |
П2 | Двойное слово | 12 |
П3 | Байт | 16 |
H1 и H2 определяют конфигурацию оборудования, с которой связан идентификатор установки. P1 и P2, а также оставшийся байт P3 содержат идентификатор продукта, связанный с идентификатором установки.
Идентификатор продукта
Идентификатор продукта состоит из пяти групп десятичных цифр, например AAAAA-BBB-CCCCCCCC-DDEEE.
Декодирование
Сопоставление идентификатора продукта в десятичном представлении и его двоичного кодирования в двойных словах P1 и P2 и байте P3 приведено в следующей таблице.
Цифры | Длина | Кодирование | Значение |
---|---|---|---|
ААААА | 17 бит | От бита 0 до бита 16 P1 | Всегда 55034 (в Windows XP RC1) |
ВВВ | 10 бит | Биты 17–26 P1 | Наиболее значимые три цифры необработанного ключа продукта |
CCCCCCC | 28 бит | От бита 27 до бита 31 P1 (нижние 5 битов) и от бита 0 до бита 22 P2 (старшие 23 бита) | Младшие шесть цифр необработанного ключа продукта и контрольная цифра |
ДДЕЕЕ | 17 бит | От бита 23 до бита 31 P2 (младшие 9 битов) и от бита 0 до бита 7 P3 (старшие 8 битов) | DD = индекс открытого ключа, используемого для проверки ключа продукта.
EEE = случайное значение |
Ключ продукта
Ключ продукта принимает форму XXXXX-XXXXX-XXXXX-XXXXX-XXXXX. Каждый символ представляет собой одну из следующих 24 букв и цифр: BCDFGHJKMPQRTVWXY 2 3 4 6 7 8 9
25 символов ключа продукта образуют кодировку Base-24 двоичного представления ключа продукта. Ключ продукта — это целое число многократной точности длиной примерно 115 бит, которое хранится в порядке байтов с прямым порядком байтов в массиве размером 15 байт. Из этих 15 байтов наименее значимые четыре байта содержат необработанный ключ продукта в порядке байтов с прямым порядком байтов. Младший бит удаляется путем сдвига этого 32-битного значения влево на одну битовую позицию. Оставшиеся одиннадцать байт образуют цифровую подпись, позволяющую проверить подлинность ключа продукта с помощью жестко закодированного открытого ключа.
Чтобы получить компонент CCCCCCC, добавляется контрольная цифра, а контрольная цифра выбирается так, чтобы сумма всех цифр, включая контрольную цифру, делилась на семь. Для проверки ключа продукта более одного открытого ключа доступно . Если проверка с использованием первого открытого ключа не удалась, пробуется второй и т. д. Компонент DD идентификатора продукта указывает, какой из открытых ключей в этой последовательности был успешно использован для проверки ключа продукта.
Битовые поля информации об оборудовании
Конфигурация оборудования, связанная с идентификатором установки, представлена двумя двойными словами H1 и H2. Для этого двойные слова делятся на двенадцать битовых полей.
Двойное слово | Компенсировать | Длина | Значение битового поля на основе |
---|---|---|---|
H1 | 0 | 10 | Строка серийного номера тома системного тома |
H1 | 10 | 10 | сетевого адаптера MAC-адреса Строка |
H1 | 20 | 7 | Строка идентификации оборудования привода CD-ROM |
H1 | 27 | 5 | Строка идентификации оборудования графического адаптера |
Н2 | 0 | 3 | Не используется, установлен на 001. |
Н2 | 3 | 6 | Строка серийного номера ЦП |
Н2 | 9 | 7 | Строка идентификации оборудования жесткого диска |
Н2 | 16 | 5 | SCSI Строка идентификации оборудования хост-адаптера |
Н2 | 21 | 4 | IDE Строка идентификации оборудования контроллера |
Н2 | 25 | 3 | Строка модели процессора |
Н2 | 28 | 3 | оперативной памяти Размер |
Н2 | 31 | 1 | 1 = закрепляемый, 0 = не закрепляемый |
Если стыковка возможна, механизм активации будет более терпим к будущим модификациям оборудования. Если присутствует аппаратный компонент, соответствующий одному из оставшихся десяти битовых полей, соответствующее битовое поле содержит ненулевое значение, описывающее компонент. Значение 0 отмечает отсутствие аппаратного компонента. Все аппаратные компоненты идентифицируются строкой идентификации оборудования, полученной из реестра. Хэширование этой строки дает значение соответствующего битового поля.
Хеширование
Результат хеширования получается путем подачи строки идентификации оборудования в алгоритм дайджеста сообщения MD5 и выбора количества битов, необходимых для битового поля, из заранее определенных мест в полученном дайджесте сообщения. Для разных битовых полей используются разные заранее определенные местоположения. Кроме того, нулевой результат хэширования можно избежать, вычислив . Где BitFieldMax — максимальное значение, которое может быть сохранено в рассматриваемом битовом поле, например 1023 для 10-битного битового поля, а «x % y» обозначает остаток от деления x на y. В результате получаются значения от 1 до BitFieldMax. Полученное значение затем сохраняется в соответствующем битовом поле.
Битовое поле ОЗУ
Битовое поле, связанное с объемом оперативной памяти, доступной операционной системе, рассчитывается иначе, чем другие битовые поля, как показано в таблице.
Ценить | Возможный объем оперативной памяти |
---|---|
0 | (битовое поле не используется) |
1 | Менее 32 МБ |
2 | от 32 МБ до 63 МБ |
3 | От 64 МБ до 127 МБ |
4 | От 128 МБ до 255 МБ |
5 | От 256 МБ до 511 МБ |
6 | От 512 МБ до 1023 МБ |
7 | Выше 1023 МБ |
Обратите внимание, что объем ОЗУ извлекается путем вызова функции GlobalMemoryStatus(), которая сообщает, что на несколько сотен килобайт меньше объема физически установленной ОЗУ. Таким образом, 128 МБ ОЗУ обычно классифицируются как «между 64 МБ и 127 МБ».
Аппаратные модификации
wpa.dbl — это база данных, зашифрованная RC4 , в которой хранится информация об истечении срока действия, идентификатор подтверждения активированной установки, значения битовых полей, представляющие текущую конфигурацию оборудования, и значения битовых полей, представляющие конфигурацию оборудования на момент активации продукта. и т. д. Текущая конфигурация оборудования автоматически обновляется каждый раз, когда конфигурация оборудования изменяется, чтобы отразить изменения, при этом значения, представляющие конфигурацию оборудования на момент активации продукта, фиксируются. При принятии решения о необходимости повторной активации значения битовых полей текущей конфигурации оборудования сравниваются с конфигурацией оборудования на момент активации.
Нестыкуемые компьютеры
Сравниваются все битовые поля, за исключением неиспользуемого поля и закрепляемого поля. Если с момента активации продукта в текущей конфигурации оборудования изменилось более трех из этих десяти битовых полей, требуется повторная активация.
Подключаемые компьютеры
Если бит 31 H2 указывает, что наш компьютер поддерживает док-станцию, сравниваются только семь из десяти битовых полей, упомянутых выше. Битовые поля, соответствующие хост-адаптеру SCSI, контроллеру IDE и графической плате, опущены. Из этих оставшихся семи битовых полей только до трех могут быть изменены без необходимости повторной активации.
Споры
Некоторые из наиболее эффективных средств защиты ключей продукта вызывают споры из-за неудобств, строгого соблюдения требований, суровых наказаний и, в некоторых случаях, ложных срабатываний. В некоторых ключах продуктов используются бескомпромиссные цифровые процедуры для обеспечения соблюдения лицензионного соглашения.
Неудобство
Ключи продукта несколько неудобны для конечных пользователей. Их не только необходимо вводить при каждой установке программы, но пользователь также должен быть уверен, что не потеряет их. Потеря ключа продукта обычно означает, что после удаления программное обеспечение становится бесполезным, если только перед удалением не используется приложение для восстановления ключа (хотя не все программы поддерживают это). [5]
Ключи продуктов также открывают новые пути неправильного распространения. Если продукт поставляется с отсутствующими или недействительными ключами, то сам продукт бесполезен. Например, все копии Splinter Cell: Pandora Tomorrow изначально поставлялись в Австралию без ключей продукта. [6]
Правоприменение и штрафы
Существует множество случаев перманентных блокировок, налагаемых компаниями, обнаружившими нарушения в использовании. Онлайн-системы обычно сразу же помещают в черный список учетную запись, уличенную в использовании взлома или, в некоторых случаях, мошенничества. Это приводит к перманентному бану. Игроки, желающие продолжить использование программного обеспечения, должны приобрести его повторно. Это неизбежно привело к критике мотивов введения постоянных запретов. [ нужна ссылка ]
Особенно спорной является ситуация, возникающая при связывании ключей нескольких продуктов. Если продукты зависят от других продуктов (как в случае с пакетами расширения ), компании обычно запрещают все связанные продукты. Например, если в пакете расширения используется поддельный ключ, сервер может заблокировать законные ключи из исходной игры. Аналогично, с сервисом Steam от Valve все купленные пользователем продукты привязаны к одной учетной записи. Если эта учетная запись заблокирована, пользователь потеряет доступ ко всем продуктам, связанным с той же учетной записью. [7]
Этот «мульти-запрет» весьма спорен, поскольку он запрещает пользователям пользоваться продуктами, которые они законно приобрели и использовали. [ нужна ссылка ]
Ложные срабатывания
Баны вводятся серверами сразу же после обнаружения взлома или читов, обычно без вмешательства человека. Иногда законных пользователей ошибочно считают нарушителями лицензии и блокируют. В крупных случаях ложных срабатываний их иногда исправляют (как это произошло в World of Warcraft . [8] ) Однако отдельным случаям можно не уделять никакого внимания. [ нужна ссылка ]
Распространенной причиной ложных срабатываний (как в случае с World of Warcraft, описанным выше) являются пользователи неподдерживаемых платформ. Например, пользователи Linux могут запускать приложения Windows через уровни совместимости, такие как Wine и Cedega . Эта комбинация программного обеспечения иногда запускает античитерское программное обеспечение игрового сервера, что приводит к бану из-за того, что Wine или Cedega являются уровнем совместимости Windows API для Linux, поэтому сервер игры считает его сторонним (читерским) программным обеспечением. [9] [ нужна ссылка ]
См. также
- Биометрический паспорт
- Криптографическая хэш-функция
- Служба обновления Intel
- Кейген
- Менеджер лицензий
- Активация продукта
- Серийный номер
- Сервер лицензий на программное обеспечение
- Ключ корпоративной лицензии
Ссылки
- ^ Чанг, Хой; Аталлах, Михаил Дж. (2002). «Защита программных кодов охранниками». Безопасность и конфиденциальность в управлении цифровыми правами . Спрингер. п. 160-175. дои : 10.1007/3-540-47870-1_10 . ISBN 978-3-540-47870-6 .
- ^ Упадхьяй, Сакет (14 мая 2021 г.). «Отмена механизма проверки ключей продукта Microsoft Windows95» .
- ^ Парди, Кевин (26 мая 2023 г.). «Зеленые холмы навсегда: алгоритм активации Windows XP взломан спустя 21 год» . Арс Техника . Проверено 29 июня 2024 г.
- ^ Шоссе, Рудауэр (июль 2001 г.). «Внутренняя активация продукта Windows» . Лицентурион . Проверено 28 июня 2024 г.
- ^ «ProduKey — восстановить утерянный ключ продукта (CD-ключ) Windows/MS-Office/SQL Server» . НирСофт . Проверено 9 февраля 2021 г.
- ^ Австралийские проблемы с компакт-диском Pandora Tomorrow Shack News
- ^ «Valve заблокировала 20 000 аккаунтов Steam» . ГеймСпот . Проверено 15 мая 2013 г.
- ^ Blizzard разбанила Linux-игроков World of Warcraft Softpedia
- ^ «Пользователи Linux забанены в Diablo 3 – End Gamers» . Архивировано из оригинала 10 июля 2012 г. Проверено 14 августа 2012 г.