![]() |
|
![]() ![]() ![]() |
|
Competitor |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 23.3.2005 Где: Tula Репутация: нет Всего: -1 |
Привет всем,
задача: создать серийник на основе уникальных характеристик железа (берутся через WMI), далее каким-либо образом пользователь должен связаться с вендором, который по серийнику выдаст ему активационный ключ, который пользователь введет в программу, и активирует ее. Вопрос: как лучше организовать этот процесс? Придумал вот такой алгоритм (возможно бред): Серийный номер пользователя будет не что иное, как открытый открытый ключ ассиметричного алгоритма шифрования (RSA) + примесь из закодированных характеристик железа юзера. Вендор получает этот серийник, вытаскивает из него открытый ключ и характеристики железа. Далее шифрует эти характеристики железа симметричным алгоритмом, например AES (ключ шифрования hiddenKey1 зашит также в пользовательском ПО). Далее вычисляет хеш MD5 получившегося шифротекста, и далее снова шифрует этот хеш по средством открытого ключа юзера, и отправляет этот шифротекст ему обратно. Юзер расшифровывает это сообщение своим закрытым ключом. При этом получает хеш MD5. Далее снова его у себя вычисляет на основе характеристик железа и ключа hiddenKey1. И далее сравнивает оба хеша, определяя правильность активационного ключа. Пните пожалуйста, или направление для размышлений задайте, или может ссылку какую дадите, где почитать можно, как подобную тривиальную задачу решить лучше. Спасибо |
|||
|
||||
CrackMe |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 12.1.2009 Репутация: нет Всего: нет |
лучшими являются схемы с использованием стойких асимметричных криптоалгоритмов (el-gamal, rsa, ecdsa), но слабой стороной системы будет получение hardware id, т.к. имея один ключ под конкретное железо можно подменить hwid и пользоваться лицензией где угодно. криптография в таком случае защитит лишь от создания генератора ключей (если нормально выбраны числа).
|
|||
|
||||
tva94 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 18.9.2007 Репутация: нет Всего: нет |
Я бы посоветовал что-то типа следующего: Юзер вводит Ключ1(это типа CD-key) на основе которого сгенерируем индивидуальный для него индефикатор (MD5). Потом собирем инфу о процессоре, винчестере и видеокарте и ихние индефикаторы хешируем. Потом собираем это до кучи и зашивровуем встроеным в прогу RSA ключём(открытым) и выводим в текст. Потом просим пользователя войти на сайт, где он вводит эту строку в поле. На нашем серваке разшифровуем закрытым RSA ключем и в БД смотрим на данные ключа. Если такой ключ есть, то смотрим на данные оборудования. Если заполнены, то сверить, и при несовпадении послать, при совпадении дать код подтверждения (для надежности лутше файликом). Если поля не заполнены, то мы приписуем эти данные в поля и даем юзверю код подтверждения. Я бы советовал сделать так, чтобы при установке была демка с определенными ДЛЛками для демки. Сделать отдельную прогу для активации(aktivator.exe) которая это все спросит. При правильности она из лежащего збоку файлика достает дллки(розшифровуя их) и вписует в определенное поле(ресурс) данные регистрации. Самая елементрарная, но сложноломаемая. И кстати - припмшите проверку целестности проги контрольным числом(дляна исполняемого файла + сумма значений байт или как сами захотите) чтобы не патчили. Потом ещё можна ещё что-то для роверки. Кароче сами додумывайте.
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Технологии защиты программного обеспечения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |