Задать вопрос
@Jljl4890

Как мне сделать свой сервер для проверки лицензии?

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

я создаю свою программу на python/немного c++, и я хочу хоть немного защитить его от взлома, в общем мой метод защиты выглядит так:

• почти все файлы программы будут зашифрованы с использованием пароля

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

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

• и ещё несколько мелких методов, например защита от копирования файлов и запуска на другом пк, которые я не буду рассказывать, потому я и так затянул с вступлением.

И так есть ли сервисы в которых я могу создать свой сервер для проверки лицензии с выше перечисленные требования?, да я знаю что есть такие сервисы так aws, azure, google cloud, но может есть другие сервисы и который я не знаю или возможно више перечисленные сервисы могут иметь проблемы с безопасностью для моего случая, и плюс как бонус вопрос можно ли советы для моего метода защиты программы?
  • Вопрос задан
  • 184 просмотра
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик с нуля
    6 месяцев
    Далее
  • Skillfactory
    DevOps-инженер
    6 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@tukreb
Никак. Всё что доступно на клиентской стороне - взламывается. А так как вы задаёте этот вопрос, то у вас вообще 0 знаний по этому вопросу, поэтому вам просто не по силам будет что либо такое сделать.
Самое простое решение - всё доступно только на сервере, то есть в вашем случае через браузер.
Ответ написан
Комментировать
@rPman
Проблема не во внешних онлайн сервисах, а исключительно локально на машине пользователя. Все что вы даете пользователю может быть проанализировано и взломано. Вопрос только в цене. Обычно стоимость затрат на защиту сравнима с затратами на взлом, но бывают выбросы, например можно долго и нудно обфусцировать код, скрывать логику работы программы, отсчитывать секунды работы (например если хотите выдать бесплатный пробный период, не привязывая ко времени), а пользователь простым телодвижением запустит программу в виртуалке в момент выдачи лицензии снимет снапшот памяти и будет запускать программу с него.

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

За привязку лицензии к машине лучше обратиться к готовым инструментам, встроенным в ОС (а там и железные фичи типа защищенное хранилище получится использовать).. настоятельно советую погуглить и побеседовать с ИИ на этот вопрос в разрезе вашей задачи. Это не надежное решение, это возможность не пилить бесполезный велосипед, ваша задача сэкономить свои деньги и время на создание защиты.
Ключевые слова: DPAPI (инструменты шифрования без TPM), CNG Key Storage Provider (KSP) + TPM, Credential Manager...

p.p.s. если у пользователя используется онлайн аккаунт майкрософт, а приложение распространяется через microsoft store, то там какие то инструменты для этого встроены, и контроль за лицензиями, и онлайн инфраструктура для покупок, но я никогда этим не интересовался, потому что все что я знаю про майкрософт - они жадные у***и, в лучшем случае придется с ними делиться, в худшем, разденут до нитки, не хуже пиратов, от которых защищаешься. Не говоря про то что в россии с ними уже не поработаешь как следует.

--------------

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

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

Войдите, чтобы написать ответ

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