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

Какие современные методы защиты программного обеспечения?

Добрый день!

Есть довольно крупный и старый проект, включает большое количество приложений (15-20).

Сейчас в нем реализована функция защиты он несанкционированного использования через USB-токен.
Способ распространения такого ПО - пользователь покупает лицензию (по сути оффлайн), качает "заточенную" для него версию, а токен получает по почте.
Пара ключей (или что-то подобное) "зашивается" в программный код при формировании дистрибутива.
Это работает и отлажено (но методы "зашивания" и защиты сильно устарели, по современным меркам софт ну очень старый)

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

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


Буду признателен любым комментариям!

ps вариант распространения по подписке пока не рассматриваем
  • Вопрос задан
  • 341 просмотр
Подписаться 1 Средний Комментировать
Решения вопроса 1
dollar
@dollar
Делай добро и бросай его в воду.
Самый современный метод - это активация по сети. Дело в том, что это удобно. То есть если у вас уникальный софт, и аналогов ему нет, то можете издеваться над пользователем, как хотите. Но если покупка у конкурентов проще, то вы просто потеряете клиентов.

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

Ну а если у пользователей нет Интернета, то берите не современные методы, а проверенные старые. Но в современном мире это практически невозможно. Так что, как минимум, одноразовую онлайн-активацию пользователь должен суметь пройти. Соответственно, здесь подход примерно такой же - у пользователя должен быть личный кабинет, связанный с купленным софтом. В этом ЛК он управляет своими ключами. В частности, он может отвязывать свои ключи от старого (возможно, утраченного) железа. Но здесь и проблема - если софт не может проверить свой статус по сети, то он и не узнает о том, что произошла отвязка. Поэтому время от времени софт всё равно должен стучаться в Интернет. Вот дальше начинаются тонкости, как часто, где это хранить и шифровать надежней, как определить текущее время и т.д. Для простоты можно не заморачиваться и заставлять пользователя быть онлайн, хотя бы чисто для запуска приложения.

А если приложение простое, которое конкуренты могут слепить за месяц, то здесь важно, извиняюсь, не защищать приложение вообще. Его наверняка спиратят, если оно хорошее, но это только на пользу идёт, реклама, и его больше будут покупать. Опять же, смотря какие цены, но на простое приложение цена должна быть копеечной, а основной упор на массовость продаж в купе с микроскопической себестоимостью.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
NeiroNx
@NeiroNx
Программист
Думаю вам нужно вести базу пользователей и онлайн-активацию - при смене железа или новой установке. Софт привязывается к железу, а потом переактивируется - через сайт или "по телефону". В момент переактивации проверяется легальность использования. Плюс постоянные онлайн обновления.
Ответ написан
CityCat4
@CityCat4 Куратор тега Информационная безопасность
//COPY01 EXEC PGM=IEBGENER
Начать надо с того, насколько это приложение популярное и дорогое. Особо специализированное, узкопрофессиональное вообще не имеет смысл особо сильно защищать - оно нужно только небольшой группе, шансы, что в этой группе найдется фанат-одиночка, которому будет захачить просто по приколу, конечно есть, но очень низкие. Найдите мне например кейген на программу NAKIVO Backup & Replication :)
Если приложение популярное и относительно дорогое - его все равно сломают, какую бы защиту Вы не навешивали. 1С чего только ни придумывала и как только не извращалась - ломали, ломают и будут ломать. Собственно, поэтому и начали бороться административными методами.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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