Защита высокого значения приложение C# только с одним пользователем

Мне нравится Consolas самому, но когда дело доходит до моноширинных шрифтов существуют довольно многие другие опции для выбора из:

10
задан user226007 7 December 2009 в 00:15
поделиться

9 ответов

За 10 КБ в месяц вы могли позволить себе запускать его на вашем оборудовании, которое вы администрируете, а не на их оборудовании. Вы можете поместить свое оборудование в центр обработки данных, к которому у них нет физического доступа.


Аппаратное обеспечение должно работать на оборудовании на объекте клиента.

Итак, я полагаю, они чувствительны к тому, где находятся их данные. находится.

Существует много сторонних лицензионных решений (например, Infralution, .Net Reactor, Oreans WinLicense, Armadillo, XHEO DeployLX и, предположительно, многие другие). Если вас интересует собственное решение Microsoft, см. InishTech здесь и здесь .

12
ответ дан 3 December 2019 в 13:51
поделиться

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

Заблокировать приложение

… для MAC адрес, серийный номер жесткого диска и ключ продукта Windows операционной системы хоста (при наличии). Вы можете жестко запрограммировать это в приложении после того, как соберете его на сайте. Если обнаружено неправильное оборудование, выключите его. Кроме того, поищите в реестре элементы, которые предполагают наличие функций интеграции VMware или Virtual PC и отказываются запускаться при обнаружении .

Запутать

… так что будет труднее перепроектировать, а также удалить лицензию. CIL чрезвычайно легко реконструировать, так что это должно быть в центре внимания вашего приложения (как описано), независимо от того, что еще вы делаете. Это может занять много времени, особенно если вы полагаетесь на сериализацию. Если возможно, оберните все свои сборки в один файл EXE, который зашифрован и имеет неуправляемый загрузчик.

Отправьте контрольный сигнал

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

И последнее замечание: не переусердствуйте . Предположительно, вам платят 10 000 долларов из-за опыта вашего приложения по сравнению с возможными альтернативами (какими бы они ни были). По мере добавления защитных мер вы увеличиваете количество возможных (очень раздражающих) ошибок, добавить расходы на обслуживание и головную боль для вашего клиента. Подрывная схема лицензирования может заставить вашего клиента думать иначе.

9
ответ дан 3 December 2019 в 13:51
поделиться

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

  1. запуск приложения на сервере, которым вы управляете, обновление приложения, чтобы оно работало только в этой системе, и предоставление им доступа к удаленному рабочему столу
  2. , заставляя программу связываться с удаленной подпиской и система авторизации, которую вы контролируете (хотя это можно обойти путем реинжиниринга кода)

Боковое примечание: блин, мне нужно найти клиента, который будет платить мне 10 тысяч долларов в месяц за программный пакет! LOL.

8
ответ дан 3 December 2019 в 13:51
поделиться

Безопасность - это процесс.

Я сомневаюсь, почему кто-то будет платить 10 тысяч в месяц за приложение. Дублирование функциональности этого приложения, вероятно, не будет стоить такой большой суммы. Итак, если объект, использующий его, описывает его другому программисту, могут ли они его продублировать? Вероятно.

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

3
ответ дан 3 December 2019 в 13:51
поделиться

Я собираюсь использовать платформу Windows (то есть не Mono).

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

Эта ссылка может быть хорошим началом для вас, чтобы проверить это .

3
ответ дан 3 December 2019 в 13:51
поделиться

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

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

118878]

2
ответ дан 3 December 2019 в 13:51
поделиться

Похоже на ситуацию, когда может потребоваться аппаратный ключ. Платите кому-нибудь за создание аппаратного ключа (похоже, вы можете себе это позволить!) И отправьте один клиенту.

2
ответ дан 3 December 2019 в 13:51
поделиться

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

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

1
ответ дан 3 December 2019 в 13:51
поделиться

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

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

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

Обязательный отказ от ответственности и вилка: компания, соучредителем которой я являюсь, производит OffByZero Cobalt решение для лицензирования программного обеспечения для .NET.

.
0
ответ дан 3 December 2019 в 13:51
поделиться
Другие вопросы по тегам:

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