Не сочтите за навязчивую рекламу, но, я надеюсь, многим участникам RSDN это было бы интересно: сегодня, 1го ноября, мы запустили в открытое бета-тестирование один из наших сервисов — http://licenses.me. Мы позиционируем сервис Licenses.me как инструмент для помощи таким же программистам, как и мы, либо для небольших контор, занимающихся разработкой ПО. В общем, для всех, кто по тем или иным причинам хочет распространять свои программные продукты и не беспокоиться по поводу проблемы нелегального копирования. Перед началом программной реализации сервиса был проведён небольшой опрос среди знакомых разработчиков и было выяснено, что примерно 85% опрошенных хотели бы иметь подобный функционал в своих проектах, но, по тем или иным причинам (чаще всего из-за нехватки времени), не могут реализовать это самостоятельно. А вот внешним сервисом пользовались бы с удовольствием.
Как это работает
Взаимодействие защищаемого приложения с сервисом осуществляется по протоколу XML-RPC: а, если быть точным, то в XML-RPC генерируется лишь ответ сервера, а запросы принимаются (пока) по обычному POST/GET. Схема работы сервиса очень простая:
1. Разработчик регистрируется на сайте и получает возможность создавать в рамках системы «проекты» и «лицензионные ключи», связанные с тем или иным «проектом».
2. Разработчик берёт «лицензионные ключи» и распространяет их тем или иным способом (суть: продаёт).
3. Радостный пользователь, купив «лицензионный ключ» и скачав дистрибутив, устанавливает продукт на своём компьютере. Приложение запрашивает ввод «лицензионного ключа» (или открывает пробный период, но об этом чуть позже). После того, как пользователь ввёл ключ, приложение посылает запрос к сервису Licenses.me и получает соответствующий ответ: есть ли этот «лицензионный ключ» в базе данных сервиса, валидный ли он, не привязан ли он к другому компьютеру и т.п. Если всё в порядке, то приложение посылает уникальный код именно для данного компьютера. Например:
md5 (HDD_SERIAL + CPU_ID + BIOS_DATE + OS_ID)
После этого гейт Licenses.me связывает этот код с данным «лицензионным ключом».
4. При каждом последующем запуске приложение посылает запрос вида:
LICENSE_KEY + UNIQUE_PC_ID
И, после проверки «лицензионного ключа» на стороне сервера, получает соответствующий ответ. В зависимости от ответа принимается решение: продолжать работу приложения или остановить его (в том случае, если «лицензионный ключ» не прошёл проверку).
5. ...PROFIT!!!
Что уже реализовано
Как я уже говорил ранее, в данный момент сервис находится в стадии бета-тестирования, но, тем не менее, базовый функционал уже доступен:
1. Регистрация новых юзеров и управление личными аккаунтами.
2. Регистрация и управление «проектами»: возможность создать и удалить проект, возможность назначить свойства пробного периода для данного проекта («нет пробного периода», «пробный период ограничен количеством запусков приложения», «пробный период ограничен по времени»).
3. Регистрация и управление «лицензионными ключами»: создание, удаление, блокировка.
4. Сбор разноплановой статистики: количество удачных и неудачных запусков приложения, количество «пробных» и «коммерческих» установок, запуски приложения по странам, техническая статистика компьютеров пользователей приложений (типы CPU, количество RAM, видеорежим и т.п.).
5. Экспорт ваших «лицензий» в MSExcel, CSV или HTML.
6. Система тикетов для обратной связи.
Минусы
1. Для корректной работы приложения с сервисом требуется интернет-соединение (само собой).
2. Интеграция протокола взаимодействия с сервером Licenses.me требует достаточно сложных телодвижений от разработчика приложения. Разумеется, в дальнейшем мы планируем поставлять готовые библиотеки для интеграции протокола для различных языков программирования, но пока этого нет.
3. По ряду причин, сервис изначально не был рассчитан на работу с разработчиками из России (и стран СНГ) – только на зарубежных девелоперов. Но если на эти услуги будет спрос у русскоязычных разработчиков — то адаптация под российский рынок не заставит себя долго ждать.
Дальнейшее развитие
Основной политикой развития мы избрали обратную связь с пользователями сервиса: если мы увидим, что требуется та или иная функция – то она будет реализована. Вообще говоря, обратиться ко мне и к другим разработчиком сервиса через встроенную систему тикетов можно во многих случаях: если вы нашли баг/уязвимость, если заметили опечатку, если у вас есть рацпредложение и т.д. и т.п. Пишите тикеты Но совершенно точно в ближайшее время будет реализовано:
1. Дальнейшее развитие базового функционала.
2. Собственная площадка для централизованной продажи «лицензионных ключей».
3. Система новостей: вы пишите новость в личном кабинете на сайте – ваши покупатели читают новость при запуске приложения.
4. Система обратной связи разработчиков приложения и покупателей.
Я буду рад любым предложением и любой разумной критике от вас, уважаемые коллеги! Так же я готов ответить на любые вопросы здесь, на RSDN. Спасибо за внимание!
http://snippets.pro:
The best way to keep, track and share your code snippets
Здравствуйте, RedOctoberCZ, Вы писали:
ROC>Здравствуйте, уважаемые коллеги!
ROC>Не сочтите за навязчивую рекламу, но, я надеюсь, многим участникам RSDN это было бы интересно: сегодня, 1го ноября, мы запустили в открытое бета-тестирование один из наших сервисов — http://licenses.me. Мы позиционируем сервис Licenses.me как инструмент для помощи таким же программистам, как и мы, либо для небольших контор, занимающихся разработкой ПО. В общем, для всех, кто по тем или иным причинам хочет распространять свои программные продукты и не беспокоиться по поводу проблемы нелегального копирования. Перед началом программной реализации сервиса был проведён небольшой опрос среди знакомых разработчиков и было выяснено, что примерно 85% опрошенных хотели бы иметь подобный функционал в своих проектах, но, по тем или иным причинам (чаще всего из-за нехватки времени), не могут реализовать это самостоятельно. А вот внешним сервисом пользовались бы с удовольствием.
ROC>Я буду рад любым предложением и любой разумной критике от вас, уважаемые коллеги! Так же я готов ответить на любые вопросы здесь, на RSDN. Спасибо за внимание!
а suсcess stories есть? расскажите плз
Re: Licenses.me - "облачная" защита от копирования десктоп-П
Success Stories среди кого? Среди пользователей Licenses.me? Так только сегодня открыли его, даже пока рекламы никакой не было, как-то рановато для историй успеха, не находите?
Тем не менее, мы успешно защитили этим сервисом несколько своих собственных проектов — вроде бы пока всё работает нормально.
http://snippets.pro:
The best way to keep, track and share your code snippets
Re[2]: Licenses.me - "облачная" защита от копирования дескто
Здравствуйте, RedOctoberCZ, Вы писали:
D_V>>а suсcess stories есть? расскажите плз
ROC>Success Stories среди кого? Среди пользователей Licenses.me? Так только сегодня открыли его, даже пока рекламы никакой не было, как-то рановато для историй успеха, не находите?
ROC>Тем не менее, мы успешно защитили этим сервисом несколько своих собственных проектов — вроде бы пока всё работает нормально.
>>3. По ряду причин, сервис изначально не был рассчитан на работу с разработчиками из России (и стран СНГ) – только на зарубежных девелоперов. Но если на эти услуги будет спрос у русскоязычных >>разработчиков — то адаптация под российский рынок не заставит себя долго ждать.
из этого предложения я понял что он уже существует некоторое время для не разработчиков из России.
Ну, ок, запустились так запустились. Интерес вообще есть на уровне потренироваться на живом продукте что и как вашь сервис меняет.
Как вы решаете проблему что антивирусы и брэндмауэры не любят когда софт общается с миром передавая при этом неизвестную пользователю информацию наружу?
Re[4]: Licenses.me - "облачная" защита от копирования дескто
D_V>из этого предложения я понял что он уже существует некоторое время для не разработчиков из России.
Не совсем так. Сервис существовал только для внутреннего использования в наших собственных приложениях, но вот сейчас решили поделиться им со всеми желающими
D_V>Интерес вообще есть на уровне потренироваться на живом продукте что и как вашь сервис меняет.
Не вопрос: регистрируйтесь, создавайте проект и лицензионные ключи в нём, интегрируйте механизм взаимодействия с протоколом — и вперёд
D_V>Как вы решаете проблему что антивирусы и брэндмауэры не любят когда софт общается с миром передавая при этом неизвестную пользователю информацию наружу?
Т.к. общение с гейтом сервиса представляет собой простой POST или GET запрос туда и XML-ответ оттуда — антивирусы и фаерволы считают, что это простой браузер. Во всяком случае, во время внутрених тестов никаких проблем с этим не было.
http://snippets.pro:
The best way to keep, track and share your code snippets
Re: Licenses.me - "облачная" защита от копирования десктоп-П
Здравствуйте, RedOctoberCZ, Вы писали:
ROC>Здравствуйте, уважаемые коллеги!
Я очень плохой программист. А в серверных делах разбираюсь ещё хуже.
Но месяц назад сам написал подобную систему на PHP+mySQL и админку сделал на Flex. Все работает как часы.
Re[2]: Licenses.me - "облачная" защита от копирования дескто
Здравствуйте, Volgare, Вы писали:
V>Я очень плохой программист. А в серверных делах разбираюсь ещё хуже. V>Но месяц назад сам написал подобную систему на PHP+mySQL и админку сделал на Flex. Все работает как часы.
Рад за вас Но процитирую самого себя:
>> было выяснено, что примерно 85% опрошенных хотели бы иметь подобный функционал в своих проектах, но, по тем или иным причинам (чаще всего из-за нехватки времени), не могут реализовать это самостоятельно.
Значит, вы входите в ~15% разработчиков, которые в наших услугах не нуждается
http://snippets.pro:
The best way to keep, track and share your code snippets
Re: Licenses.me - "облачная" защита от копирования десктоп-П
Здравствуйте, RedOctoberCZ, Вы писали:
ROC>Взаимодействие защищаемого приложения с сервисом осуществляется по протоколу XML-RPC: а, если быть точным, то в XML-RPC генерируется лишь ответ сервера, а запросы принимаются (пока) по обычному POST/GET.
HTTPS ?
Если нет, то описанная Вами система ломается за известное время.
Re[2]: Licenses.me - "облачная" защита от копирования дескто
Здравствуйте, okman, Вы писали:
O>HTTPS ?
Нет, на период бета-тестирования точно HTTPS не будет. В дальнейшем развитии протокола — да, скорее всего.
O>Если нет, то описанная Вами система ломается за известное время.
Совершенно очевидно, что пока мы не претендуем на титул "самой совершенной защитной системы". Мы исходим из аксиомы: "любая защита может быть взломана". Но наша задача сделать в конечном итоге так, чтобы пользователям проще было официально приобрести защищённое с помощью Licenses.me приложение, чем искать/писать кряки для него. Т.е. наша цель: сделать сам взлом нерентабельным.
http://snippets.pro:
The best way to keep, track and share your code snippets
Re: Licenses.me - "облачная" защита от копирования десктоп-П
Здравствуйте, RedOctoberCZ, Вы писали:
ROC>Что уже реализовано
ROC>1. Регистрация новых юзеров и управление личными аккаунтами. ROC>2. Регистрация и управление «проектами»: возможность создать и удалить проект, возможность назначить свойства пробного периода для данного проекта («нет пробного периода», «пробный период ограничен количеством запусков приложения», «пробный период ограничен по времени»). ROC>3. Регистрация и управление «лицензионными ключами»: создание, удаление, блокировка. ROC>4. Сбор разноплановой статистики: количество удачных и неудачных запусков приложения, количество «пробных» и «коммерческих» установок, запуски приложения по странам, техническая статистика компьютеров пользователей приложений (типы CPU, количество RAM, видеорежим и т.п.). ROC>5. Экспорт ваших «лицензий» в MSExcel, CSV или HTML. ROC>6. Система тикетов для обратной связи. ROC>
А в каком виде клиентская часть (та, что ставится на десктоп) ?
И как она интегрируется в защищаемую программу ?
Re[2]: Licenses.me - "облачная" защита от копирования дескто
Здравствуйте, okman, Вы писали:
O>А в каком виде клиентская часть (та, что ставится на десктоп) ? O>И как она интегрируется в защищаемую программу ?
Так я же написал об этом в "Минусах" системы:
>> Интеграция протокола взаимодействия с сервером Licenses.me требует достаточно сложных телодвижений от разработчика приложения. Разумеется, в дальнейшем мы планируем поставлять готовые библиотеки для интеграции протокола для различных языков программирования, но пока этого нет.
Т.е. пока мы даём только веб-админку для управления проектами и лицензиями, даём протокол обмена, и предоставляем гейт для обмена информацией между приложением и сервисом. Но как это будет реализовано на клиентской стороне — это уже ложится на плечи разработчика.
http://snippets.pro:
The best way to keep, track and share your code snippets
Re[3]: Licenses.me - "облачная" защита от копирования дескто
Здравствуйте, RedOctoberCZ, Вы писали:
O>>А в каком виде клиентская часть (та, что ставится на десктоп) ? O>>И как она интегрируется в защищаемую программу ?
ROC>Так я же написал об этом в "Минусах" системы:
Там ничего внятного не написано, кроме того что "геморно встраивать".
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re: Licenses.me - "облачная" защита от копирования десктоп-П
интересно не будет ли это ломаться однотипно, т.е. один кряк будет палить для всего софта который будет использовать систему. наличие клиентских либ уже говорит об однообразности..
any comments?
Re: Licenses.me - "облачная" защита от копирования десктоп-П
ROC>4. При каждом последующем запуске приложение посылает запрос вида:
Фигня это всё, на сервер надо выносить не ключи, а сам функционал программы, какие-нибудь вычисления там, не знаю, мало ли что. Вот и сделайте, чтобы не ключи разработчик закачивал к вам в админку, а модули, содержащие некий код. Тогда хотя бы слово "облачная" оправдаете в названии темы. А так это всё без толку, сломается каким-нибудь очередным кряком-патчем, тем более, что как уже правильно заметили, клиент (.dll) будет одинаковый для всех продуктов. А если нет, тогда разработчику всё равно придётся чем-нибудь защищать свои клиентские модули, но тогда какой смысл в ещё одной Web-защите? В общем, смысл в вашей защите не очевиден.
JID: x64j@jabber.ru
Re: Licenses.me - "облачная" защита от копирования десктоп-П
Здравствуйте, RedOctoberCZ, Вы писали:
ROC>1. Разработчик регистрируется на сайте и получает возможность создавать в рамках системы «проекты» и «лицензионные ключи», связанные с тем или иным «проектом». ROC>2. Разработчик берёт «лицензионные ключи» и распространяет их тем или иным способом (суть: продаёт).
На мой вгляд более логичным здесь выглядит интеграция с регистраторами. Тогда у вам автоматически отпадут оба верхних пункта (вместо заливания лицензий пачками они будут генериться по запросу регистратора и с доставкой в этом случае тоже нет проблем — регистратор сам доставит лицензию конечному пользователю).
ROC>3. Радостный пользователь, купив «лицензионный ключ» и скачав дистрибутив, устанавливает продукт на своём компьютере. Приложение запрашивает ввод «лицензионного ключа» (или открывает пробный период, но об этом чуть позже). После того, как пользователь ввёл ключ, приложение посылает запрос к сервису Licenses.me и получает соответствующий ответ: есть ли этот «лицензионный ключ» в базе данных сервиса, валидный ли он, не привязан ли он к другому компьютеру и т.п. Если всё в порядке, то приложение посылает уникальный код именно для данного компьютера. Например:
Вот в эту дыру вас и будут ломать. Причем если вы будете поставлять конечному ползователю DLL-ку, то заменив её на "правильную" мы скорее всего получим универсальный кряк вообще на все программы, работающие по вашей системе. Без защиты кода на стороне клиента тут делать нечего.
Re[2]: Licenses.me - "облачная" защита от копирования дескто
Здравствуйте, x64, Вы писали:
ROC>>4. При каждом последующем запуске приложение посылает запрос вида:
x64>Фигня это всё, на сервер надо выносить не ключи, а сам функционал программы, какие-нибудь вычисления там, не знаю, мало ли что. Вот и сделайте, чтобы не ключи разработчик закачивал к вам в админку, а модули, содержащие некий код.
ИМХО они такое точно не осилят Тут на самом деле очень много технических ньансов чтобы сделать действительно универсальную систему, требующую минимального вмешательства со стороны разработчика. В идеальном варианте я вижу это так — есть некая ДЛЛ, которую вендор хочет вынести на сервер. Он помечает её галкой в GUI протектора и протектор на стадии обработки файла заменяет все вызовы этой ДЛЛ на свои и уже в своих вызовах формирует конечный URL с вызовом модуля на стороне сервера. При этом на DLL-ку будет накладываться просто гигантская масса ограничений в виде невозможности использования ресурсов вызывающего процесса, использование общей кучи и т.п. Т.е. DLL должна работать только с тем что ей передали через параметры при вызове API, но при этом мы опять приходим к тому, что таким ограниченным набором возможностей будет мало кто пользоваться.
Re: Licenses.me - "облачная" защита от копирования десктоп-П
Здравствуйте, RedOctoberCZ, Вы писали: ROC>3. Радостный пользователь, купив «лицензионный ключ» и скачав дистрибутив, устанавливает продукт на своём компьютере. Приложение запрашивает ввод «лицензионного ключа» (или открывает пробный период, но об этом чуть позже). После того, как пользователь ввёл ключ, приложение посылает запрос к сервису Licenses.me и получает соответствующий ответ: есть ли этот «лицензионный ключ» в базе данных сервиса, валидный ли он, не привязан ли он к другому компьютеру и т.п. Если всё в порядке, то приложение посылает уникальный код именно для данного компьютера. Например: ROC>
Круто. Обожаю софт, обязывающий меня отчитываться перед производителями при апгрейде винта. Предлагаю добавить хэш валлпапера, чтоб наверняка.
Кстати, а шаблоны вида "ураган Катрина/хакеры/пьяный админ/DoD/разбившийся самолёт забрали licenses.me и теперь софт не работает и так как сервер не наш, то мы не сможет его починить, но пока вы можете полюбоваться скриншотами продукта и пойти на хрен" для тех.поддержки предоставляется? Или "облачная" защита здесь значит что кто-то витает в облаках и думает что licenses.me всегда будет иметь 100% аптайм?
Re[5]: Licenses.me - "облачная" защита от копирования дескто
Здравствуйте, RedOctoberCZ, Вы писали:
ROC>Т.к. общение с гейтом сервиса представляет собой простой POST или GET запрос туда и XML-ответ оттуда — антивирусы и фаерволы считают, что это простой браузер. Во всяком случае, во время внутрених тестов никаких проблем с этим не было.
А тупые малварщики и не знали что можно под браузер замаскироваться.
Они видимо используют какой-то другой тип запросов, да?