Добрый день уважаемые разработчики!
Хочу посоветоваться с Вами насчет предложенной ниже модели защиты.
Наши программы работают с базой данных MS SQL и обычно используются на нескольких десятках компьютерах в каждой организации.
Сейчас лицензионная политика предполагает фиксированную цену программного комплекса для организации, независимо от кол-ва компьютеров.
Стоит цель:
Защитить программы от использования в другой организации, но не усложнять жизнь простым пользователям клиентского ПО.
Для этого можно поступить активация только сервера, а клиенты проверяют наличие в базе ключа активации.
— при установке базы данных администратор должен активировать сервер, с помощью программки, которая вышлет нам, например GUID установленного SQL Server или MAC-адрес сервера.
— мы подписываем эту строку закрытым ключом и высылаем администратору для помещения ее в базу.
— клиент при подключении к базе проверяет соотвествие номера сервера c помощью публичного ключа.
Т.е. пользователю при установке клиентского ПО не требуется вводить серийники или активировать программу ( инета у всех может не быть)
Возникают вопросы:
1) Какие могут быть проблемы при использовании вышеописанной схемы?
2) Что лучше использовать в качестве уникального ключа сервера? Он по идее должен быть доступен для считывания извне, как MAC-адрес, или с использование сервера БД.
3) Можно ли доработать эту схему, ограничив кол-во максимальное кол-во компьютеров, которые могут подключаться к сервер одновременно или в течении месяца?
Буду благодарен за любые советы.
С уважением Михаил
Здравствуйте, VinMike, Вы писали:
VM>3) Можно ли доработать эту схему, ограничив кол-во максимальное кол-во компьютеров, которые могут подключаться к сервер одновременно или в течении месяца?
Про одновременно в принципе достаточно легко — просто используете что-нибудь типа
MYCLIENT clients[MAX_CLIENTS];
для хранения клиентов, а потом везде бегаете используете их похожими методами (например, нужно пробежает по всем клиентам — простой for от нуля до всех). Тогда взломать для изменения кол-ва клиентов почти нереально...
Такой подход очень успешно применяется в достаточно большом сервер-клиент приложении...
Соответственно, если докупают лицензии, то просто высылаются другие бинарки собранные с нужной константой.
VM>1) Какие могут быть проблемы при использовании вышеописанной схемы?
Атака на такую схему м.б. такая: патчится сервер в месте считывания данных для активации (MAC или GUID) и
задается фикс. ключ. Далее, по схеме, атакующий получает от вас подписанный ключ и распространяет его вместе с пропатченым exe.
Здравствуйте, VinMike, Вы писали:
VM>2) Что лучше использовать в качестве уникального ключа сервера? Он по идее должен быть доступен для считывания извне, как MAC-адрес, или с использование сервера БД.
MAC адрес я думаю не стоит использовать, т.к. могут поменять сетевую карту, если она сломается. Лучше я думаю использовать, что-то вроде физического HASP ключа.
Добрый все день!
Нашел протектор, который пости полностью удовлетворяет требованиям, описанным в исходном сообщении.
Это StarForce Corporative http://allsoft.ru/program_page.php?grp=42369
Ключевые моменты:
Основной принцип работы продукта состоит в том, что функции защиты «привязываются» к серверу в локальной сети, на котором установлено приложение, и имеется лицензия на пользование данным продуктом. На продукт дается одна лицензия, которая определяет логику работы защищенного приложения (количество одновременно запущенных клиентских приложений, срок работы и т.д.) При запуске клиентские приложения подключаются к серверу в локальной сети, запрашивая разрешение на запуск.
В данном виде реализации защиты вся нагрузка по установке и активации приложения ложится не на сотрудников компании, которые будут работать с приложением, а на технического специалиста (системного администратора).
Кто-нибудь пользуется защитами StarForce, особенно StarForce Corporative? Было бы очень интересно узнать о впечатлениях.
Продукт достаточно дорогой — 100 серийников стоит 40 000 рублей.
Если не найдется других вариантов придется брать этот продукт. Может Вы знаете другие аналогичные протекторы?
Re[2]: Способы защиты для клиент-серверных программ
Здравствуйте, VinMike, Вы писали:
VM>Продукт достаточно дорогой — 100 серийников стоит 40 000 рублей. VM>Если не найдется других вариантов придется брать этот продукт. Может Вы знаете другие аналогичные протекторы?
Железячный ключ SenseLock-EL. Часть кода (написанного разработчиком) выполняется внутри ключа. Для сетевой модели — протектится сервер, а клиенты запрашивают лицензии при обращении к серверу.
Здравствуйте, pva, Вы писали:
pva>Здравствуйте, VinMike, Вы писали:
VM>>Продукт достаточно дорогой — 100 серийников стоит 40 000 рублей. VM>>Если не найдется других вариантов придется брать этот продукт. Может Вы знаете другие аналогичные протекторы? pva>Железячный ключ SenseLock-EL. Часть кода (написанного разработчиком) выполняется внутри ключа. Для сетевой модели — протектится сервер, а клиенты запрашивают лицензии при обращении к серверу.
Да не хотелось бы высылать существующим и новым клиентам железячные ключи, они и стоит будут подороже, я думаю, в расчете на 1 сервер
Re[4]: Способы защиты для клиент-серверных программ
Здравствуйте, PolyTech, Вы писали:
VM>>Да не хотелось бы высылать существующим и новым клиентам железячные ключи, PT>Если лень это делать самим, то можно запатить деньги за доставку томуже SenseLock-у. PT>А думать и не надо — надо просто взглянуть на цены SenseLock-EL: http://senselock.ru/order.php
Я конечно понимаю, что Вам нужно продвигать свои продукты, но мне не нужно решение с железными ключами.
Но ключ стоит 600-700 рублей, а серийник у StarForce 200-300. Да и не планируется рассылка USB-ключей по всем существующим клиентам.
А если клиент купил 5 разных программ ему 5 ключей в сервер втыкать?