Нужны средства, чтобы лицензировать приложение по часам - PullRequest
3 голосов
/ 20 января 2011

Я хотел бы лицензировать одно из наших (настольных или серверных) приложений Windows, чтобы его можно было использовать (с предоплаченным ключом) в течение определенного количества часов. Должна быть предусмотрена возможность его остановки и перезапуска и периоды работы, выбранные пользователем. Время не нужно записывать с точностью до секунды, минуты будут в порядке; и хотя он должен быть защищен от мошенничества технически компетентным пользователем, ему не нужно противостоять атакам на уровне государственных органов! Приложение может оставаться установленным (его использование запрещено) до тех пор, пока пользователь не приобретет другой ключ. Ключ' должно быть только программное обеспечение, ключи не подходят для этого приложения.

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

Ответы [ 4 ]

2 голосов
/ 20 января 2011

Я предлагаю вам взглянуть на WinLicense от Oreans: http://www.oreans.com/winlicense.php

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

Winlicense легко интегрируется в Delphi и имеет множество вариантов конфигурации.Я использовал его в течение прошлого года и был очень доволен программным обеспечением и его поддержкой.

alt text

1 голос
/ 20 января 2011

Когда пользователь покупает несколько часов использования, вы можете дать ему (уникальный) лицензионный ключ, а также сохранить этот ключ на своем веб-сервере licensing.yourdomain.com вместе с количеством приобретенных часов и количеством минут, потраченных (так называемый «счетчик минут») до настоящего времени (то есть 0). Теперь в приложении есть функция CheckLicensed: boolean, которая выполняется, например, TTimer раз в минуту. Это делает легкий запрос POST на licensing.yourdomain.com, отправляя лицензионный ключ. Затем сервер увеличивает счетчик минут на единицу. Если счетчик минут меньше количества купленных минут, функция CheckLicensed возвращает значение true. Если срок действия лицензии истек, с другой стороны, он возвращает false, и вы можете отключить функции или даже закрыть приложение (в зависимости, конечно, от характера приложения).

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

Этот подход требует постоянного доступа в Интернет, но это не может быть проблемой для вас. Это очень безопасно. Например, конечный пользователь не может обмануть, изменив свое системное время или счетчик минут (поскольку он находится на вашем сервере, и только правительственное агентство (США) может получить к нему доступ).

Как отправить POST запрос? Я уже дал ответ на этот вопрос ранее на Как отправить HTTP-запрос Post в Delphi 2010 с помощью WinInet

1 голос
/ 20 января 2011

Сделайте так, чтобы веб-сервис вызывался из вашего интернет-магазина, который генерирует ключ на основе: Имя пользователя + электронная почта + дата-время + NumHoursPurchased Используйте простой алгоритм, такой как шифрование этой строки с помощью AES256.

В вашем приложении они будут вводить свое имя и адрес электронной почты. Затем они вставляют ключ, полученный в магазине электронной коммерции. Теперь вы знаете, когда они его приобрели, и сколько часов. Если дата / время покупки недавно (в течение последних 30 минут?), Разблокируйте приложение и запустите часы. Вам нужно будет отслеживать время самостоятельно, хранить его в безопасном месте, идеально зашифрованном или скрытом.

0 голосов
/ 21 января 2011

Я бы предложил Software Passport, который построен на ядре защиты Armadillo. Это послужило мне очень хорошо в течение нескольких лет.

На одном этапе вам потребовалась лицензия Armadillo pro, чтобы иметь возможность создавать сертификаты, из которых можно создавать ключи, срок действия которых истекает на x минут, но я думаю, что с появлением Software Passport (раньше Armadillo был отдельным продуктом), он входит в стандартную комплектацию, хотя сайт не очень ясно об этом.

Поскольку паспорт программного обеспечения от Digital River, дополнительным преимуществом является легкая интеграция со всеми сайтами портала программного обеспечения с цифровой рекой в ​​качестве "корзины покупок".

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

Авторы: http://www.siliconrealms.com/

...