Блог им. Eugene777

Технологии защиты интеллектуальной собственности при продаже роботов.

Поскольку за последние несколько дней тема продажи алгоритмов стала популярна, решил написать немного на тему защиты интеллектуальной собственности. 

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

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


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



Вариант номер два: робот на .NET, скомпилированные скрипты Wealth-Lab, Ninja Trader. Думаю, это самый распространенный вариант. Тут возможно использование обфускатора кода и паковщика, но оба варианта ненадежны, так как код сборки легко достается перед выполнением а обфускатор снимается деобфускатором, а далее приводится к виду исходника с помощью многочисленных декомпиляторов.  Изучая вопрос, я находил специальный обфукатор для скриптов Ninja стоимостью US$1500, но в действии его не видел и вероятность, что это надежное приложение на фоне всех остальных, оцениваю как чрезвычайно низкую. 

Вариант три: скриптовые языки: Quick, eSignal, еще что-то. Не знаю, как квик, но eSignal, например, позволяет компилировать модули в защищенном варианте. Честно говоря, степень надежность оценить не могу. Скорее всего, все сведется к расшифровки кода после загрузки. 

Собственно, решение проблемы с вариантами два и три мне видится как создание модуля с нативным кодом, содержащего алгоритм, защита этого модуля и организации интерфейса из .NET или скрипта. 

Существует идеальный вариант защиты, исходя из критериев надежность/скорость работы/удобство пользователя. Это электронный ключ с технологией исполняемого кода. Существует несколько ключей различных производителей, я расскажу про SenseLock, который мы здесь продаем. Не сочтите за откровенную рекламу, я действительно не думаю, что это как-то существенно увеличит продажи, но технология действительно достойна того, чтобы быть упомянутой. 

Суть в том, что основную часть алгоритма надо написать на языке C, собрать и записать в ключ. После этого необходимо организовать интерфейс обмена данными между внешним модулем и ключом и, в итоге, получится действительно черный ящик. Существуют определенные ограничения на размер данных и объем передачи, но, при определенных навыках, все это можно свести к минимальному набору, и обеспечить хорошее быстродействие. Не буду описывать технические нюансы, кому интересно, можете задать вопрос. У нас были клиенты, которые использовали ключи для защиты роботов. 

Дополнительным плюсом является наличие встроенной системы лицензирования, которая позволяет устанавливать ограничения по количеству запусков или по времени, что позволяет организовать различные схемы продажи. 
★5
17 комментариев
Рабочие алгоритмы не продаются, впаривают то, что перестает приносить прибыль.
Так что там особо нечего защищать — к копирастам никогда не выстроится очередь.
avatar
Engi, продается все, даже люди. все зависит от цены.
avatar
Eugene777, их нет смысла продавать, пока они рабочие.
Это из разряда «секреты миллионеров».
avatar
Engi, их нет смысла продавать до тех пор, пока вы с них можете заработать больше, что зависит не только от качества сигналов, но и от того, насколько хорош ваш счёт. Потом, если бы их никто не покупал, думаю никто бы и не думал их продавать.
avatar
quant_trader, зависит от алгоритма, на самом деле. транслировать проще всего, согласен, но опять же, есть проблемы с этим. короче, во всем есть свои плюсы и минусы.
avatar
Eugene777, спасибо. интересно. +++.
avatar
Можно также использовать клиент-серверную архитектуру, когда ядро выполняется на сервере. Как правило обмен данными можно свести к минимуму, защищая только критичные части алгоритма.
Иван Митяев, да, конечно. Я уже писал, во всем есть свои плюсы и свои минусы. Таким образом вообще алгоритм надо оставлять на сервере, передавая лишь сигналы. Электронные ключи — это во многом маркетинг.
avatar
смысла нет покупать черный ящик!!! Покупается технология или как вы ее называет интеллектуальная собственность, так как если что то перестает работать ты получаешь знание, а не какую то хрень, в виде черного ящика! И еще, как вы можете покупать черный ящик?
Бредовая затея, т.к. нужно понимать на что вы собираетесь ставить деньги! Так как это может оказаться просто перегонщиком денег со счета на счет.
avatar
SMA, я Вас умоляю… Если Вы его не купите, это же не значит, что его не купит никто. Опять же, есть примеры очень удачных продаж.
avatar
Eugene777, есть, но очень редки, можно сказать не более 10% из всей массы. Игра в казино так сказать) всего лишь.так что вообще не вариант.
avatar
SMA, я полностью с Вами согласен. Но это не значит, что рынка нет.
avatar
Eugene777, согласен с вами полностью
avatar
Очень интересная тема!
Если есть желание и возможность, то раскройте, пожалуйста, тему более широко.
avatar
kreativ_25, спасибо. На самом деле, раскрывать более широко даже не соображу что. Что Вас конкретно интересует?
avatar
Проще взять триал понравишихся платформ и посмотреть подробнее.

Можно брать здесь: http://getanyplatform.com

теги блога Eugene777

....все тэги



UPDONW
Новый дизайн