2012-01-09 3 views
12

Для моего текущего приложения я использую очень простую схему регистрации новых пользователей. Когда новый пользователь регистрирует электронное письмо, он отправляется с ключом. Чтобы проверить, правильно ли указан этот ключ, вычисляется какая-то контрольная сумма (проверка 3-7-11 цифр), которая добавляется в качестве последних двух цифр ключа. Нет никакой проверки на дальнейшую действительность ключа. Приложение не проверяет, был ли ключ признан недействительным.Как создать регистрационный ключ пользователя в Delphi?

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

  • Есть ли библиотека Delphi, которую я мог бы использовать?
  • Возможно ли использовать некоторые данные, предоставленные пользователем в ключе, например, его имя?
  • Есть ли лучший способ регистрации пользователей?
  • Что-нибудь еще, что я забыл?

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

Любое предложение или ссылка для надежного способа регистрации новых пользователей приветствуется.

+0

Что вы хотите сделать? Зарегистрировать пользователей легко; просто сохраните их в своей базе данных. Вы хотите иметь лицензионный ключ для использования с вашим программным обеспечением? («активировать»?) –

+4

Что бы вы ни делали, оно будет разбито. Вопрос в том, насколько это вас беспокоит? –

+0

@David Вы совершенно правы, и это заставляет меня пропускать деньги за каждый незарегистрированный продукт. Вот почему я хотел бы иметь какой-то способ защиты. – Arnold

ответ

11

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

+0

Это звучит интересно. У вас есть ссылка на алгоритмы? – Arnold

+2

+1 Любые примеры или ссылки на те, которые предназначены для этого конкретного использования RSA? –

+0

Клиент может подать в суд и выдержать хорошие шансы на победу! –

4

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

Хороший алгоритм генератора ключей должен генерировать ключи, которые нелегко предсказуемы, но могут быть проверены, если они действительны. Есть разные, нет «общего», зависит от ваших потребностей, некоторые могут также включать в себя какие функции для активации или истечения срока действия информации. Некоторые ключи могут быть строками, другие могут быть целыми файлами лицензии (как те, которые используются самим Delphi). В любом случае код можно разобрать, чтобы попытаться угадать алгоритм, некоторые методы, чтобы запутать его и сделать его труднее понять, могут быть использованы.

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

Уровень защиты зависит от вас. Если вам нужен простой механизм регистрации, и вы не против, чтобы ваше программное обеспечение было взломанным, вы можете использовать простой. Если вам нужен более безопасный, тогда есть более сложный.

+0

Спасибо за ссылку. Я был довольно ошеломлен, когда увидел, что кто-то побеспокоился о разборке программы. Это научило меня, что растрескивание всегда возможно, но я могу сделать их жизнь немного сложнее. Ваши советы помогут. – Arnold

+0

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

+0

@ Арнольд, я однажды нашел cracking TUTORIAL, который использовал мое приложение в качестве цели. Крекер был очень доволен моим приложением, хотя, и описал, как это было очень полезно для его взломанных действий. –

4

Если ваша цель - заставить людей загружать взломанный EXE из Интернета вместо генератора ключей из Интернета, то асимметричная криптография - это ваш ответ.

Если ваша цель - убрать серийные номера, выпущенные в дикую природу, ограничить количество установок или заставить пользователя иметь реальный «оплаченный» серийный номер, тогда активация - ваш ответ. Тем не менее, если они взломают ваш EXE, они могут обойти это.

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

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

После всего этого приложение составляет всего 4,99 доллара США, но без отдельной поддержки. Цель состоит в том, чтобы сделать его настолько доступным, что, если они хотят его использовать, даже однажды, это хорошая ценность.

+0

Это разумный подход, я думал о более низкой цене, хотя 20 долларов США не так много для сложного приложения. Я использовал активацию до сих пор, но решил исследовать альтернативы, следовательно, этот вопрос. Спасибо за ваши соображения. – Arnold

2

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

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

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

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

Смежные вопросы