Способы защиты для клиент-серверных программ
От: VinMike Россия  
Дата: 10.10.08 19:32
Оценка:
Добрый день уважаемые разработчики!
Хочу посоветоваться с Вами насчет предложенной ниже модели защиты.
Наши программы работают с базой данных MS SQL и обычно используются на нескольких десятках компьютерах в каждой организации.
Сейчас лицензионная политика предполагает фиксированную цену программного комплекса для организации, независимо от кол-ва компьютеров.
Стоит цель:
Защитить программы от использования в другой организации, но не усложнять жизнь простым пользователям клиентского ПО.
Для этого можно поступить активация только сервера, а клиенты проверяют наличие в базе ключа активации.
— при установке базы данных администратор должен активировать сервер, с помощью программки, которая вышлет нам, например GUID установленного SQL Server или MAC-адрес сервера.
— мы подписываем эту строку закрытым ключом и высылаем администратору для помещения ее в базу.
— клиент при подключении к базе проверяет соотвествие номера сервера c помощью публичного ключа.
Т.е. пользователю при установке клиентского ПО не требуется вводить серийники или активировать программу ( инета у всех может не быть)
Возникают вопросы:
1) Какие могут быть проблемы при использовании вышеописанной схемы?
2) Что лучше использовать в качестве уникального ключа сервера? Он по идее должен быть доступен для считывания извне, как MAC-адрес, или с использование сервера БД.
3) Можно ли доработать эту схему, ограничив кол-во максимальное кол-во компьютеров, которые могут подключаться к сервер одновременно или в течении месяца?

Буду благодарен за любые советы.
С уважением Михаил
Re: Способы защиты для клиент-серверных программ
От: zakima Канада  
Дата: 10.10.08 21:12
Оценка:
Здравствуйте, VinMike, Вы писали:

VM>3) Можно ли доработать эту схему, ограничив кол-во максимальное кол-во компьютеров, которые могут подключаться к сервер одновременно или в течении месяца?


Про одновременно в принципе достаточно легко — просто используете что-нибудь типа

MYCLIENT clients[MAX_CLIENTS];


для хранения клиентов, а потом везде бегаете используете их похожими методами (например, нужно пробежает по всем клиентам — простой for от нуля до всех). Тогда взломать для изменения кол-ва клиентов почти нереально...

Такой подход очень успешно применяется в достаточно большом сервер-клиент приложении...

Соответственно, если докупают лицензии, то просто высылаются другие бинарки собранные с нужной константой.
Re: Способы защиты для клиент-серверных программ
От: mopnex Россия  
Дата: 11.10.08 06:52
Оценка:
Здравствуйте, VinMike, Вы писали:


VM>1) Какие могут быть проблемы при использовании вышеописанной схемы?


Атака на такую схему м.б. такая: патчится сервер в месте считывания данных для активации (MAC или GUID) и
задается фикс. ключ. Далее, по схеме, атакующий получает от вас подписанный ключ и распространяет его вместе с пропатченым exe.
Re: Способы защиты для клиент-серверных программ
От: xbit Россия  
Дата: 11.10.08 11:46
Оценка:
Здравствуйте, VinMike, Вы писали:

VM>2) Что лучше использовать в качестве уникального ключа сервера? Он по идее должен быть доступен для считывания извне, как MAC-адрес, или с использование сервера БД.

MAC адрес я думаю не стоит использовать, т.к. могут поменять сетевую карту, если она сломается. Лучше я думаю использовать, что-то вроде физического HASP ключа.
Нас не догонят!
Re: Способы защиты для клиент-серверных программ
От: VinMike Россия  
Дата: 20.10.08 08:50
Оценка:
Добрый все день!
Нашел протектор, который пости полностью удовлетворяет требованиям, описанным в исходном сообщении.
Это StarForce Corporative
http://allsoft.ru/program_page.php?grp=42369
Ключевые моменты:
Основной принцип работы продукта состоит в том, что функции защиты «привязываются» к серверу в локальной сети, на котором установлено приложение, и имеется лицензия на пользование данным продуктом. На продукт дается одна лицензия, которая определяет логику работы защищенного приложения (количество одновременно запущенных клиентских приложений, срок работы и т.д.) При запуске клиентские приложения подключаются к серверу в локальной сети, запрашивая разрешение на запуск.

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

Кто-нибудь пользуется защитами StarForce, особенно StarForce Corporative? Было бы очень интересно узнать о впечатлениях.
Продукт достаточно дорогой — 100 серийников стоит 40 000 рублей.
Если не найдется других вариантов придется брать этот продукт. Может Вы знаете другие аналогичные протекторы?
Re[2]: Способы защиты для клиент-серверных программ
От: pva  
Дата: 20.10.08 11:25
Оценка:
Здравствуйте, VinMike, Вы писали:

VM>Продукт достаточно дорогой — 100 серийников стоит 40 000 рублей.

VM>Если не найдется других вариантов придется брать этот продукт. Может Вы знаете другие аналогичные протекторы?
Железячный ключ SenseLock-EL. Часть кода (написанного разработчиком) выполняется внутри ключа. Для сетевой модели — протектится сервер, а клиенты запрашивают лицензии при обращении к серверу.
newbie
защита по senselock
Re[3]: Способы защиты для клиент-серверных программ
От: VinMike Россия  
Дата: 20.10.08 11:30
Оценка:
Здравствуйте, pva, Вы писали:

pva>Здравствуйте, VinMike, Вы писали:


VM>>Продукт достаточно дорогой — 100 серийников стоит 40 000 рублей.

VM>>Если не найдется других вариантов придется брать этот продукт. Может Вы знаете другие аналогичные протекторы?
pva>Железячный ключ SenseLock-EL. Часть кода (написанного разработчиком) выполняется внутри ключа. Для сетевой модели — протектится сервер, а клиенты запрашивают лицензии при обращении к серверу.

Да не хотелось бы высылать существующим и новым клиентам железячные ключи, они и стоит будут подороже, я думаю, в расчете на 1 сервер
Re[4]: Способы защиты для клиент-серверных программ
От: PolyTech Россия https://vmpsoft.com
Дата: 20.10.08 13:10
Оценка:
Здравствуйте, VinMike, Вы писали:

VM>Да не хотелось бы высылать существующим и новым клиентам железячные ключи,


Если лень это делать самим, то можно запатить деньги за доставку томуже SenseLock-у.

VM>они и стоит будут подороже, я думаю, в расчете на 1 сервер


А думать и не надо — надо просто взглянуть на цены SenseLock-EL: http://senselock.ru/order.php
Re[5]: Способы защиты для клиент-серверных программ
От: VinMike Россия  
Дата: 20.10.08 17:07
Оценка:
Здравствуйте, PolyTech, Вы писали:

VM>>Да не хотелось бы высылать существующим и новым клиентам железячные ключи,

PT>Если лень это делать самим, то можно запатить деньги за доставку томуже SenseLock-у.
PT>А думать и не надо — надо просто взглянуть на цены SenseLock-EL: http://senselock.ru/order.php
Я конечно понимаю, что Вам нужно продвигать свои продукты, но мне не нужно решение с железными ключами.
Но ключ стоит 600-700 рублей, а серийник у StarForce 200-300. Да и не планируется рассылка USB-ключей по всем существующим клиентам.
А если клиент купил 5 разных программ ему 5 ключей в сервер втыкать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.