Простая стратегия защиты от копирования

Просто подумал, что пропущу эту идею мимо гораздо более опытных руководителей. Я сделал настольное приложение в java 8. Это нишевое приложение, которое будет продаваться через один веб-сайт. Рынок - это люди в конкретной рабочей среде, которые не были бы "технически подкованы" и которые либо получают шестизначную зарплату, либо гоняются за ней. Мой клиент, издатель / продавец, ожидает продажи, может быть (не смейтесь) 50-100 в год... так что это очень ниша. Розничная цена программного обеспечения из-за небольшого объема и нишевых настроек должна составлять около 100 долларов. Так что это просто проект для домашних животных, который, возможно, поможет финансировать семейный праздник в конце года.

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

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

Вот что я придумала:

  • Поставщик имеет генератор "пароля", который использует простой алгоритм,
    адаптация формулы Луна, которая способна на несколько миллионов
    уникальные 8-символьные строки из общего возможного пула в несколько сотен миллиардов. Поэтому действительный пароль будет очень трудно угадать. Программного обеспечения
    скачанный, сгенерированный пароль по электронной почте клиенту.
  • Программное обеспечение проверяет "пароль" на достоверность, используя схему, связанную с контрольной суммой. Если он действителен, программное обеспечение разблокировано, и на жестком диске создается невидимый файл, который указывает на правильность установки программного обеспечения.
  • Другой невидимый файл записывается в родительскую папку программного обеспечения, которая содержит предоставленный оригинальный пароль. Это хранилище для паролей, которые уже были использованы и, следовательно, являются недействительными.
  • В следующий раз, когда программное обеспечение запускается, оно проверяет наличие файла флага с подтверждением - если оно существует, то программное обеспечение запускается, в противном случае пользователь запрашивает у поставщика новый пароль.

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

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

Надеюсь, что это имеет смысл. Комментарии, предложения?

1 ответ

Полный отказ от ответственности: я работаю в Link Data Security и являюсь вашим конкурентом, но это не мешает мне давать несколько советов, так как плохо выполненная защита вредит всему сообществу по защите от копирования.

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

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

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

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

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

Другие вопросы по тегам