2009-12-09 2 views
3

Типичная схема активации продукта заключается в следующемВопрос о схеме активации продукта

  1. уникальный серийный номер. назначается пользователю
  2. Уникальный идентификатор оборудования генерируется для машины пользователя.

При предоставлении этой информации продавцу поставщик выдает код активации.

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

Благодаря

+0

«[H] ow код активации сгенерирован», вероятно, отличается в случае каждого поставщика, который это делает. И, равновероятно, это тщательно охраняемая тайна. –

+1

Удостоверьтесь, что вы не мочите пользователей, кодируя 100% точное соответствие любых элементов оборудования, но допускайте некоторые варианты. Мне бы очень хотелось, чтобы программные пакеты не запускались просто потому, что я обновил второй жесткий диск или заменил мою мышь или видеокарту. –

ответ

5

Очень простой способ сделать это - составить список соответствующего оборудования ПК в строку, а затем запустить MD5-хэш поверх Это. Таким образом, ваша строка будет, например, содержат

"Pentium 4 Dual Core 3.8 GHz, HDD1: 320GB"
и т. д. Существует множество бесплатных реализаций хеширования MD5 почти на каждом языке, вы можете выполнить поиск в Google.

Вы не говорите, на какой платформе вы нацеливаетесь, но если вы используете Windows, вы можете получить конфигурацию оборудования ПК, запросив WMI или вызовы Windows API. Например, класс физической памяти для просмотра в WMI - Win32_PhysicalMemory.

Когда программное обеспечение установлено впервые, этот хэш скомпилирован и затем отправлен на сервер активации, который отправляет обратно соответствующий код, который будет соответствовать только этому хешу. Действительно простой/бесполезный пример - скажем, аппаратный хеш - 123, а алгоритм проверки - все цифры должны быть 9 после добавления хэш-кода и кода активации, сервер активации вернет 876. Программа добавит 2 кодирует вместе и получает 999, затем разблокирует его для использования.

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

Однако: Я настоятельно рекомендую вам не использовать этот метод защиты от копирования. Почему нет?

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

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

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

Я лично презираю покупку любого продукта, где нет гарантии, что я смогу использовать его, если я сменил свой компьютер, или компания отключится. Это похоже на недавний случай, когда люди покупали Джорджа Оруэлла в 1984 году за свои Kindles, а затем, когда был спор об авторских правах, Amazon удаленно удалил все копии этой книги, которые люди купили.

Только мой 2c.

1

Как Майкл (Todd) прокомментировал, методы и схемы изменяются с различными поставщиками. Если это действительно стандартно, возможно, легче «взломать», да?

Я предполагаю, что ваша конечная цель - защитить ваше программное обеспечение от несанкционированного использования?

Вот несколько связанных с SO сообщений:
How do you protect your software from illegal distribution?
Methods to stop Software Piracy ?

UPDATE:
Чтобы ответить более непосредственно на вопрос ФП в:

Я хотел бы знать, как код активации и каково его содержание?
@: Может быть проприетарным хешированием/шифрованием серийного номера. смят с информацией о пользователе/​​продукте/дате или практически что-либо еще.

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

+0

Да, конечно, я просто хочу знать, какая может быть общая схема защиты программного обеспечения. Нуждались некоторые идеи для начала. – Omkar

+0

Хорошо, добавлено больше информации к моему сообщению, см. Выше :) –

0

Я предполагаю, что вы задали вопрос, потому что вы хотите реализовать что-то подобное себе.

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

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

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

Программное обеспечение использует три основных элемента данных:

  • [IC] Установка кода: автоматически сгенерированный код; это может быть все, что генерируется конкретной установкой и уникально для установки. Он изменится при переустановке программного обеспечения и не зависит от того, кто его устанавливает.Раньше некоторые производители использовали хэш-код оборудования, но он мог быть также случайным образом сгенерированным кодом, который хранится для извлечения при каждом экземпляре. Удаление кода из хранилища по сути совпадает с удалением программного обеспечения.
  • [UI] Идентификатор пользователя: идентификатор uniqe для зарегистрированного; вы можете ссылаться на это как код разблокировки или код клиента или компании или серийный номер. Он однозначно определит, кто приобрел эту конкретную установку.
  • [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 является хэш на аппаратных средствах компьютера или, если это только некоторые случайно сгенерированный ключ. Все, что произойдет, когда оно изменится, - это то, что программное обеспечение перерегистрирует себя, что может и не быть проблемой, если устройство, на котором оно установлено, подключено к Интернету или может быть небольшим неудобством, если требуется повторное вмешательство пользователя, но как указано выше, эта часть все еще может быть реализована как функция самообслуживания на сайте. Это зависит от компании-производителя программного обеспечения, если они хотят подсчитывать количество активаций или отслеживать другую информацию.