Как я могу защитить свой Исходный код ASP.NET От Моих Разработчиков

Лично я придерживаюсь одного или другого. Это не имеет значения. И обеспечение Вашего собственного значения к любой кавычке должно только смутить других людей, когда Вы сотрудничаете.

17
задан Cyril Gupta 18 July 2009 в 05:46
поделиться

8 ответов

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

Изменить: вы можете использовать переменную окружения, ключ реестра, наличие счетчика производительности, непонятный параметр в machine.config и т. Д. И сделать это выглядит как подлинная настройка, затем замаскируйте и подпишите строгим именем.

8
ответ дан 30 November 2019 в 13:54
поделиться

Это странное положение ... мои соболезнования.

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

Другой подход, который использовали некоторые люди, - это написать действительно конфиденциальный код на C ++, скомпилировать его в неуправляемую .dll и вызвать его из. net с использованием interop. Байт-код C ++ намного сложнее читать, чем IL, и это создает намного больше препятствий для легкого обратного проектирования.

Изменить: на основе комментариев из OP, вот обновленный ответ.

Если вы просто беспокоясь о том, что они украдут DLL, которую вы помещаете в папку bin на своем веб-сервере, просто опубликуйте ее в подпапке \ bin, заблокируйте папку с помощью разрешений Windows, чтобы они не могли попасть в нее, и измените свой web.config, чтобы проверить его.

<runtime>
   <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="bin;bin\mysubfolder;" />
   </assemblyBinding>
</runtime>

Обязательно убедитесь, что вы указали строгое имя .dll, и храните файл закрытого ключа в безопасном месте. Это делает ваш .dll однозначно идентифицируемым, и вмешательство может быть обнаружено, если они все же доберутся до него.

2
ответ дан 30 November 2019 в 13:54
поделиться

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

Что-то вроде

A. Hey, I'm sitting at [hostname->taken from env vars], can i do my job?
B. (checks records of registered hosts)  Yes you can.
A. Thanks.  (does what it does best)

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

1
ответ дан 30 November 2019 в 13:54
поделиться

Это может не соответствовать вашей ситуации, но вы можете предоставить им прокси-DLL, который не выполняет вычисления, а вместо этого вызывает вашу DLL.

Затем вы сохраняете свою DLL на другом сервер, доступ к которому есть только у вас, и прокси DLL вызывает его через какой-то протокол удаленного взаимодействия.

4
ответ дан 30 November 2019 в 13:54
поделиться

По теме: https://stackoverflow.com/questions/181991/suggest-a-good-obfuscator-for-net-closed .
Возможно, вы захотите выборочно скрыть свой код (оставьте общедоступные API как есть)

1
ответ дан 30 November 2019 в 13:54
поделиться

Я мало что знаю о правовой системе в Индии, но убедитесь, что вы заставили их подписать какую-либо форму NDA и дать им понять, что вы серьезно относитесь к этому и подаете в суд их, если они его нарушают.

И, если возможно, раскрывайте вашу DLL только через службу Windows или внепроцессный COM-сервер, чтобы вы могли изолировать свою DLL, где они не могут получить к ней прямой доступ.

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

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

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

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

1
ответ дан 30 November 2019 в 13:54
поделиться

Я бы создал веб-службу на защищенном сервере, которая открывала бы функции вашей dll. После завершения разработки вы можете изменить части кода, которые вызывают веб-службу, чтобы напрямую вызывать dll.

1
ответ дан 30 November 2019 в 13:54
поделиться

Я согласен со стратегией LachlanG по распространению прокси DLL вместо того, чтобы давать вашим разработчикам доступ к производственному, который можно легко взломать и перевернуть.

Другой вариант, который вы можете изучить, это "донгл" для защиты ваших DLL. Я наткнулся на ваш вопрос во время поиска решения моей проблемы. Я изучаю этот вариант, так как нахожусь в одном месте, но с еще более уязвимым решением на основе PHP.

Я обнаружил, что Keylok предлагает конкурентоспособный продукт по доступной цене, которую я настоятельно рассматриваю. Пока неясно, как защитить вызовы API в PHP, код которого не является двоичным и не обфусцированным. Я не предвижу никаких проблем с DLL.

Я был менеджером проекта в компании, которая защищала свое программное обеспечение для интеграции SAP с такого рода донглами. Конечным продуктом был компакт-диск с кодом, руководством по установке, донглом и лицензионным счётом за $200k. Мило!!! Это было 10 лет назад, и я еще не слышал от них ни одной истории о пиратстве или нарушении авторских прав!

Надеюсь, это поможет.

.
1
ответ дан 30 November 2019 в 13:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: