Button Up

Защита лицензионного ключа от подделки и кейгенов

Защита лицензионного ключа от подделки и кейгенов

Лицензионный ключ подделывают тремя способами: генерируют валидные ключи кейгеном, публикуют один купленный ключ для всех и патчат программу, вырезая проверку. Защита от кейгена строится на асимметричной криптографии: ключи подписываются закрытым ключом, который никогда не попадает в программу. От массового использования одного номера защищает онлайн-активация с привязкой к устройству и учётом на сервере. От патчинга защищают обфускация и виртуализация кода проверки. В StarForce ProActive серийные номера генерируются и учитываются на сервере StarForce, а лицензия подтверждается двумя проверками: наличием номера и подлинностью привязки к компьютеру или флешке.

Три способа обхода лицензионного ключа

Как подделывают ключи и что помогает защититься
Способ обходаЧто происходитМеханизм защиты
КейгенГенерация валидных ключей по восстановленному алгоритмуАсимметричная криптография: закрытый ключ остаётся вне программы
Публикация одного номераОдин купленный ключ используют многие пользователиОнлайн-активация, привязка к устройству, лимит активаций и учёт на сервере
Патч программыПроверку лицензии вырезают из приложенияОбфускация и виртуализация кода проверки

Главный вывод из таблицы: проверка «ключ соответствует формуле» без сервера и без защиты кода обходится всегда. Вопрос только во времени.

Почему контрольная сумма не защищает от кейгена

Многие разработчики начинают с простого: ключ содержит контрольную сумму, программа её пересчитывает. Такой алгоритм находится в отладчике за несколько часов, после чего кейген пишется за вечер. Даже «хитрые» формулы с XOR и перестановками не помогают: всё, что программа может проверить у себя, взломщик может воспроизвести. Как именно исследуют программы, мы подробно разбирали в статье о реверс-инжиниринге ПО.

Криптографическая подпись меняет ситуацию. Если ключ подписан закрытым ключом по алгоритму с открытым ключом (RSA, ECDSA или ГОСТ), в программе хранится только открытая часть. Сгенерировать новый валидный ключ без закрытой части невозможно, поэтому классический кейген становится бессмысленным. Но остаются утечка и патч.

Шесть уровней защиты лицензионного ключа

Шесть уровней защиты лицензионного ключа
УровеньМеханизмНазначение
1. Криптографическая подписьПодпись закрытым ключом; в приложении — открытый ключПроверка подлинности и защита от генерации новых валидных ключей
2. Генерация и учёт на сервереСерийные номера создаются вне программы и учитываются на сервере лицензийЦентрализованное управление выданными номерами
3. Онлайн-активацияСверка номера и ограничений лицензии с серверомКонтроль действительности лицензии и лимита активаций
4. Привязка к устройствуСравнение параметров компьютера или ключа на флешкеОграничение использования номера на других устройствах
5. Защита кода проверкиОбфускация, виртуализация, защита функций и внутренних переменныхУсложнение поиска и удаления проверки лицензии
6. Управление выданными лицензиямиЧёрный список и изменение параметров номера или партииБлокировка утёкших номеров, изменение срока и числа запусков

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

Как работает защита ключей в StarForce ProActive

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

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

Когда нужна обфускация исходного кода

Если продукт защищает ключи для стандартных DRM (например, ключи устройств для аудио- и видеопотоков), критичный код имеет смысл обфусцировать на уровне исходников. Для C/C++ это делает StarForce C++ Obfuscator, методы которого мы разбираем в отдельной статье об обфускации кода C/C++.

Как связать защиту ключа с моделью лицензирования

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

Бесплатный пилот и анализ защиты

Запросите бесплатный пилот StarForce ProActive: защиту и активацию можно проверить на своей программе до покупки. Если нужно оценить текущую схему ключей, специалисты StarForce проведут анализ защиты, выполненной вашей командой, или установят защиту под ключ. Оставить заявку можно по телефону +7 (495) 967-14-50 или через страницу контактов.

FAQ

Частые вопросы

Короткие ответы на основные вопросы по материалу.

Как защитить программу от кейгена?

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

Как проверить подлинность лицензионного ключа?

Надёжная проверка включает три шага: проверку подписи ключа, сверку с сервером лицензий при активации и сравнение привязки с параметрами текущего компьютера или носителя. Проверка только формата ключа подлинность не гарантирует.

Что делать, если серийный номер слили в интернет?

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

Достаточно ли зашифровать ключ?

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

Можно ли изменить условия уже выданного ключа?

В StarForce ProActive параметры отдельного серийного номера или целой партии можно отредактировать на сервере: продлить срок, изменить максимальное число запусков или заблокировать номер.

Новости компании

01.10.2026
17.04.2026
04.03.2026
10.02.2026
������ ����� � ����� ��� macOS
������ ������ �� USB