Я предполагаю, что вы задали вопрос, потому что хотите реализовать нечто подобное самостоятельно.
Здесь я обрисую схему, которая может быть использована для защиты легитимности приобретенного программного обеспечения. Это помогает защитить компанию от пиратства и помогает сделать ценные покупки клиентов законными и относительно простыми для регистрации.
Эта схема работает путем отслеживания трех отдельных элементов данных: один создается автоматически, один вводится пользователем и один рассчитывается на основе этих двух. Когда продукт не активирован, он может либо работать с ограниченным набором функций, либо просто не запускаться.
Процедура включает в себя связь с веб-сайтом, но когда веб-сайт недоступен, существуют альтернативные механизмы, позволяющие пользователю по-прежнему использовать программное обеспечение, не расстраиваясь из-за проблем с лицензированием. Методология
Программа использует три основных элемента данных:
- [IC] Код установки: автоматически сгенерированный код; это может быть что угодно, созданное конкретной установкой и уникальное для данной установки. Он изменится при переустановке программного обеспечения и не зависит от того, кто его устанавливает. В прошлом некоторые поставщики использовали аппаратный хэш, но с таким же успехом это мог быть случайно сгенерированный код, который сохранялся для извлечения при каждом создании экземпляра. Удаление кода из хранилища по сути то же самое, что удаление программного обеспечения.
- [UI] User ID: уникальный идентификатор зарегистрированного; вы можете называть это кодом разблокировки, кодом клиента, компании или серийным номером. Он однозначно идентифицирует, кто купил эту конкретную установку.
- [HASH] Хеш: вычисленное значение; эта последняя часть аутентификации сообщает программному обеспечению, что оно зарегистрировано законно и готово к работе. Он должен быть получен из двух других частей и где-то храниться, либо в файловой системе, либо в реестре Windows, либо где-то еще.
Логический поток
В псевдокоде программа выполняет следующую процедуру:
begin:
load IC
if not IC: IC = generateIC
load UI
if not UI: UI = promptUser
testHash:
load HASH
if HASH=hash(IC,UI): goto valid
HASH = activateLicense()
if not HASH=hash(IC,UI): goto invalid
valid:
REV = revokeLicense()
if REV: goto invalid
done : run software
invalid:
done : do not run software
generateIC:
IC = some unique identifier
store IC
return IC
promptUser:
UI = get id from user input
store UI
return UI
activateLicense:
HASH = wwwResponse('activationRequest')
store HASH
return HASH
revokeLicense:
REV = wwwResponse('checkIfRevoked')
if REV: erase HASH
return REV
Псевдокод также включает необязательный четвертый элемент:
- [REV] Признак отозванной лицензии: компания-производитель программного обеспечения могла отслеживать количество активаций программного обеспечения и отозвать доступ злоумышленникам. Его не нужно сохранять, и его можно будет получить только при наличии доступного подключения к www.
Отказ подключиться к веб-сайту будет означать только то, что состояние лицензии не изменится. Если программное обеспечение не может напрямую подключиться к веб-сайту, то альтернативная процедура может быть доступна из точки подключения к Интернету, где пользователь вводит свой IC и UI в браузер, а браузер отправляет им по электронной почте HASH, который они могут вручную ввести в программное обеспечение. Это лишь немного сложнее, но все же позволяет пользователю делать это самостоятельно с важным фактором, заключающимся в том, что они должны ввести действительный адрес электронной почты, если они хотят получить хэш-код, который будет отправлен им по электронной почте.
Он не защищен от взлома и не является непобедимым, но он служит для защиты обеих сторон разумным способом, который не приводит к разочарованию. Фактические задействованные механизмы должны строго охраняться секретами компании.
Примечание.
На самом деле в этой схеме не имеет значения, является ли IC хешем на оборудовании компьютера или это просто какой-то случайно сгенерированный ключ. Все, что произойдет, когда оно изменится, - это то, что программное обеспечение перерегистрируется, что может не быть проблемой, если компьютер, на котором оно установлено, подключен к Интернету, или может быть небольшим неудобством, если снова потребуется взаимодействие с пользователем, но как указано выше, эта часть может быть реализована на сайте как функция самообслуживания. Компания-разработчик программного обеспечения решает, хотят ли они подсчитать количество активаций или отслеживать другую информацию.
person
Octopus
schedule
11.04.2014