Как защитить API, написанный на .Net

Это вариант существующего вопроса в SO о защите/запутывании приложений .Net в целом.

Я разрабатываю API на С#, который включает в себя некоторые алгоритмы, которые я хочу защитить. Я понимаю, что ни один метод не будет идеальным, но каков общепринятый метод для этого?

Я бы хотел, чтобы мои клиенты могли кодировать API, но я не хочу, чтобы они реконструировали то, что внутри (по крайней мере, я не хочу, чтобы им было легко).

Если я запутаю код, не запутает ли это и API?

Мы смотрим на smartAssembly, любые мысли, комментарии по продукту будут оценены.


person Community    schedule 17.03.2010    source источник
comment
Джиперс, не ожидал, что так быстро откликнутся. Я посмотрю, что smartAssembly делает с общедоступными методами. В свете этих ответов это кажется очевидным. Я бы не хотел раздавать API, но мы хотим использовать для обработки клиентский ЦП, а не ЦП на сервере.   -  person    schedule 17.03.2010


Ответы (4)


Возможно, это не вариант для вас, но подумайте о том, чтобы защитить алгоритмы, никогда их не раздавая. Можете ли вы обеспечить обработку через веб-сервис, .asmx или WCF?

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

person Dave Swersky    schedule 17.03.2010

Запутать это. Инструменты запутывания не запутывают общедоступный API, поскольку это нарушит работу внешнего кода, зависящего от него.

person Alfred Myers    schedule 17.03.2010

Вы упомянули smartAssembly. Существует также Dotnetreactor, Dotfuscator и обфускатор с открытым исходным кодом: sharpobfuscator.

person tobsen    schedule 17.03.2010

Хороший обфускатор кода возьмет список исключений, чтобы не запутывать, и В ОБЩЕМ имеет переключатель ТОЛЬКО для запутывания деталей реализации и не затрагивает общедоступный API (классы, свойства и т. д.). Итак, если вы правильно закодировали (фасад общедоступен, все детали реализации закрыты), он должен работать хорошо.

person TomTom    schedule 17.03.2010