Тройная защита кода: или как я разработал свою экосистему

Тройная защита кода: или как я разработал свою экосистему

Введение

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

Мысли 💭

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

Вторая идея — банальная регистрация и авторизация. При запуске скрипта он требует войти в аккаунт, и если аккаунта нет - то зарегистрироваться. Это тоже не подходит. Аккаунт можно продавать, регистрироваться может любой пользователь.

Третий этап мозгового штурма предложил объединить коды доступа и авторизацию. Но по аналогии с предыдущими методами это тоже не подходило.

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

Снова перебрал все в голове, доработал некоторые моменты и пришел к конечному варианту:

Сам алгоритм работы

Алгоритм такой — при покупке скрипта (если это впервые), я выдаю одноразовый код доступа для регистрации в экосистеме. Регистрация происходит в телеграм боте, бот сразу выдает логин (равный юзернейму) и генерирует пароль, которые защищает шифрованием. Аккаунты хранятся в базе данных на моем сервере. Исходный код скриптов обфусифицирован. Т.е. скрыт от чужих глаз своей нечитабельностью. При запуске скрипт предлагает войти в аккаунт экосистемы, и если при регистрации был разрешен доступ к исполнению конкретного скрипта, то этот скрипт начинает работу.

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

Дальнейшие планы

  • Разработать полностью функциональную админ панель в боте для контроля и разграничения доступа
  • Добавить возможность привязки к нескольким устройствам при одобрении заявки
  • Написать библиотеку для безопасной работы python скриптов

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

Начать дискуссию