Фрилансеры предложат решение вашей задачи уже через несколько минут!

Публикация заказа на фриланс бирже не займет много времени.

8 дней назад
Андрей
28 лет, Россия
4 года в сервисе
Был онлайн 2 часа назад
1 отзыв
6% заказов с выбором исполнителя
8 дней назад

ЗАДАЧА
Требуется консультация по реализации защиты програмного обеспечения от взлома и распространения

ИСХОДНЫЕ ДАННЫЕ

Сайт tvigi.com
Программа написана на с#.
После сборки происходит обфускация итогового exe файла.
На данный момент реализована классическая система защиты, т.е привязка к железу и проверка при авторизации через запросы к серверу. В прошлом уже подделывали запросы и ломали программу. На данный момент мы усложнили проверку дополнительной инициацией аналогичной проверки из разных мест в ПО в рандомный момент.
Но глобально это картину не меняет. На данный момент стоит задача реализовать максимально сложную систему защиты для минимизации шансов взлома. Как минимум чтобы этот процесс стал нерентабельным с точки зрения времени и ресурсов, как максимум чтобы стал невозможным технически.

ПРЕДВАРИТЕЛЬНЫЙ ПЛАН

Усложнять защиту сервера смысла нет. Поэтому принято решение внедрить систему уникальных персональных лицензионных ключей, которые мы будем предоставлять только платным пользователям каким либо сторонним методом не связанным с сайтом и ПО.
Сами ключи мы планируем разместить в исходном коде ПО в зашифрованном виде и реализовать систему сверки входящего ключа с имеющимися.
Для этого планируем сделать отдельный модуль который будет открываться при запуске установленной программы и в который нужно будет ввести ключ (не стоит цель препятствовать установке т.к это пустое действие кто захочет купит и установит, цель внедрить именно как часть ПО)
Следовательно если ключ подошел открывается второй этап авторизации и там действует уже наша проверка на железо. Если не подошел то первые 2 попытки мы просто говорим что он неверный, далее если вводит 3 раза неверно то каким либо образом все должно крашится или закрываться чтобы человек не мог больше пробовать вводить ключ пока не напишет в тех поддержку свои данные чтобы мы позволили ему это сделать.
Далее при каждом входе в программу процесс будет повторятся. Мы будем присылать человеку уникальный ключ на валидную почту например и он будет вставлять его чтобы пользоваться далее.
Очевидно что после успешного приема ключа он помимо активации должен самоустраняться чтобы нельзя было использовать его повторно
ВОПРОСЫ И ЗАДАЧИ
Собственно вопросы в том каким образом лучше всего реализовать все эти принципы и цели технически, чтобы не оставить никаких дыр злоумышленникам.
Во первых чтобы нельзя было никак отключить или подделать дополнительный модуль проверки либо заменить его на свой.
Во вторых Чтобы нельзя было увидеть какие команды и пути уходят после ввода ключа,а если и моно было то чтобы среди них помимо главных путей были заведомо ложные пути, запутанные, а главные были разделены не на один и использовались рандомно от случая к случаю обращаясь к местам где происходит сверка
Тоже самое с исходящими командами после сверки, чтобы никак нельзя было подделать критерии "ДА" то есть момент пропуска дальше без процесса сверки ключа.
Ну и самое главное чтобы сам процесс сверки ключей был неотъемлемой частью исполняющего кода программы и происходил именно там в неизвестных для взломщика местах в зашифрованном виде.
По идее это должно служить принципу "БАНКОВСКИХ ДЕНЕГ" т.е если и украли и вынесли за датчик - то взорвется краска и они будут непригодны для использования. Тоже самое хотим сделать и мы путем интеграции исполняющего кода с местами проверки лицензионных ключей - чтобы если кто то несанкционированно будет пробовать запустить софт даже пробуя взломать модуль (вход-выход) то исходный код просто не будет работать т.к будет по каким либо техническим критериям, (неизвестным для взломщика и периодически меняющимся) - видеть что его обманывают и это несанкционированный доступ
Все должно свистить к тому что единственный способ взломать ПО чтобы нормально работать это расшифровать исходники что технически нерентабельно.

УСЛОВИЯ СОТРУДНИЧЕСТВА

Требуется как минимум консультация Senior специалиста как максимум - помощь в технической реализации.
Писать только после ознакомления с информацией и при наличии понимания задачи и ресурсов для помощи в ее выполнены
Необходимую дополнительную информацию предоставим при личном общении.

  • Рекламное место свободно
    33 дня за $11
  • Рекламное место свободно
    33 дня за $11
Заявки фрилансеров

Нет заявок от фрилансеров

Другие заказы в категории «Прикладное ПО»