Защитите исходный код при доставке клиенту

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

1) Очевидно использовать обфускатор. Вопрос в том, какой именно.

2) Как можно больше зашифруйте файлы конфигурации (особенно информацию о конечных точках).

3) Перенесите как можно больше логики в веб-службу.

4) Используйте SSL для передачи данных.

Проект написан на C # / WPF и подключается к набору веб-сервисов, размещенных на IIS 7. Мы упаковываем наши поставки с помощью WIX, может ли WIX что-нибудь предоставить?

Я понимаю, что, в конце концов, все двоичные файлы можно взломать и что, как второстепенной компании, мы, вероятно, должны сосредоточиться на написании кода, а не на его защите. Но эти незначительные шаги по крайней мере усложнят задачу. Что еще можно сделать? Есть ли у сообщества еще какие-нибудь советы по этому поводу? Ссылки на внутренние / внешние ресурсы приветствуются.


person Avada Kedavra    schedule 20.06.2011    source источник
comment
Возьмите бизнес в другое место. Если так поступит достаточно людей, злая компания разорится.   -  person ChrisF    schedule 21.06.2011
comment
Как насчет того, чтобы (1) вообще не отдавать им программу или (2) заставить их заключить лицензионное соглашение, по которому они не могут реконструировать ваше программное обеспечение под страхом смерти или что-то в этом роде.   -  person Chris Eberle    schedule 21.06.2011
comment
Именно по этой причине многие люди используют c ++.   -  person normalppl    schedule 21.06.2011
comment
@ChrisF: Справедливо, но это будет сложно сделать. У нас есть контракт с компанией, которая использует воровскую компанию для всех своих ИТ-установок / обслуживания. Так что на данный момент это не реальный вариант.   -  person Avada Kedavra    schedule 21.06.2011
comment
@Chris +1, вы должны опубликовать свой комментарий в качестве ответа (я собирался опубликовать то же самое, но не хотел красть у вас). Лицензирование - очень хороший способ.   -  person Nix    schedule 21.06.2011
comment
Как сказал Крис, большая часть смысла возникает из-за того, что вы делаете часть условий вашего бизнеса, что любая компания, согласившаяся использовать ваш продукт, также соглашается не отменять реверсию engeineer или повторно использовать его или его части каким-либо образом без вашего согласия.   -  person BugFinder    schedule 21.06.2011
comment
@ Крис, пожалуйста, укажите это (лицензирование) в ответе. Очень верный момент.   -  person Avada Kedavra    schedule 21.06.2011
comment
И то, что он лицензирован, не означает, что вы должны его продавать. Это контракт, и он позволяет вам преследовать кого-то, кто на законных основаниях делает глупости.   -  person Nix    schedule 21.06.2011
comment
@Avada - Я так и догадался, поэтому я написал комментарий, а не ответ. Эти вещи часто находятся вне вашего контроля. Прислушайтесь к совету другого Криса - заключите жесткое соглашение.   -  person ChrisF    schedule 21.06.2011
comment
Дубликат потока stackoverflow.com/questions/506282 / прочтите это, это очень плодотворная дискуссия и, безусловно, долгая.   -  person Usman Masood    schedule 21.06.2011


Ответы (3)


Вот ваши варианты:

  • Не давайте им программу, они уже злоупотребили своей властью
  • Have them enter into a license agreement wherein:
    • They can reverse engineer the program or even see the source code within the confines defined by your legal team
    • Они ничего не могут сделать, не навлекая на себя мир юридических обид
  • Выпустите код как открытый исходный код. Вы удивитесь, если «запретный плод» не запрещен, они могут просто надоесть и оставить его в покое.
  • Перенесите проприетарные вычисления на свои серверы, по сути превратив вашу программу в тонкий клиент.
  • Обратный инжиниринг некоторых из их инструментов. Вступите в своего рода холодную войну.
  • Запаситесь патентами, и когда вы увидите свой собственный код в дикой природе, предайте компанию в суд за нарушение вашего патента.
  • Заплатите мафии, чтобы она выгнала своих "друзей" из города.
  • Отправьте им корзину кексов с запиской «PlZ st0p wit teh H4x».
  • Оденьтесь как призрак профессиональной честности, навещайте каждого из сотрудников в их доме и преподайте им уроки этики и морали.
  • Выкупите компанию, уволите всех сотрудников.
person Chris Eberle    schedule 20.06.2011
comment
+1 По юридической части. +1 за мир юридических повреждений, если бы +2 был вариант :) - person Avada Kedavra; 21.06.2011
comment
+1 за решение «холодной войны». Я действительно хотел напечатать заявление с русским акцентом и что-нибудь про ядерное оружие, но здесь у меня ничего не вышло. - person Chris Marisic; 21.06.2011
comment
Желаю, чтобы мой кошелек позволил мне принять выкуп компании, уволить всех сотрудников :)) - person Avada Kedavra; 21.06.2011
comment
Я прочитал на форуме, что один из крупных частных инвесторов CCP также инвестировал в российскую пивоварню, конкуренция которой либо сгорела, либо была изгнана из города. Похоже, решение 7 действительно используется в реальном мире ... - person Kheldar; 05.09.2011

Согласие с @Chris, как и все остальное.

Нанять адвоката и составить соответствующие условия лицензии.

Время от времени связывайтесь с компанией-нарушителем и спрашивайте, есть ли у нее в продаже что-то похожее на ваше программное обеспечение. В случае, если они скажут «да», получите демоверсию. Если он хоть немного похож на ваш, предайте их в суд. Одним из первых этапов судебного процесса такого типа является обнаружение. В этот момент вы узнаете, скопировали ли они ваш код или нет.

Престо, проблема решена.

Дело в том, что единственное реальное решение - использовать правовую систему.

person NotMe    schedule 20.06.2011
comment
+1 Хорошее продолжение ответа Криса. Спросить их, продают ли они этот тип программного обеспечения, - отличная идея. Ваше здоровье! - person Avada Kedavra; 21.06.2011

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

Если кто-то хочет украсть, они украдут.

Изменить: о, RE Obfuscator, насколько я ненавижу рекомендовать Red Gate после их обработки отражателем, их Умная сборка очень хороша.

person Tim Jarvis    schedule 20.06.2011
comment
+1 Спасибо, что предложили Smart Assembly. Вы его сравнивали, например, с dotfuscator? Умная сборка кажется разумной по цене. Не удалось найти стоимость лицензии для dotfuscator. - person Avada Kedavra; 21.06.2011
comment
Да, я сравнивал, и, к сожалению, Smart Assembly действительно выглядит лучше, может быть, из-за неясности ;-) Есть приложения вокруг этого утверждения, которые могут понять Dotfuscator, я не видел таких же заявлений для Smart Assembly. Кроме того, отчеты об ошибках на самом деле очень полезны. Не знаю, сколько стоит Dotfuscator, разве это не бесплатно? - person Tim Jarvis; 21.06.2011
comment
DotFuscator light поставляется вместе с Visual Studio, но предлагает лишь небольшой набор функций в профессиональной версии. Предположим, профессиональная версия лучше .. Я буду следить за этим, ура! - person Avada Kedavra; 21.06.2011