LINUX.ORG.RU

Как защитить программу, привязать к ПК

 , , , ,


0

1

Тема не решаемая на 100%. Но опишу как получается на данный момент. Программа запускается на ПК и работает с сервером в интернете, соединяется с личным кабинетом и тогда проблем с защитой нет. Часть функционала мы отдаем с сервера. Но как быть если интернета нет?..

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

Но в чем вопрос? Работа без интернета допустима, но не поощряется (нужен просто аварийный вариант на 1,2,3,4 дня вдруг сервак накроется и т.д.). Таким образом :

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

Надо сказать, что обе базы данных шифруются без проблем через sqleet. Более того есть вариант с шифрацией прямо в оперативной памяти через эмуляцию файловой системы (vfs + sqleet). Но речь о другом: пароль от расшифровки базы данных надо хранить на ПК локально, т.к. когда интернета нет - базу расшифровывать при запуске по любому как-то надо.

Думаю пароль от базы как-то привязать к паспорту компьютера, то есть к id процессора (правда их может быть не один) и/или к номеру материнки и/или RAM. И тогда не хранить пароль в явном виде ни где не надо…

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

Заранее благодарен за любые варианты.



Последнее исправление: kkmspb (всего исправлений: 1)
Ответ на: комментарий от CrX

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

Ты путаешь услугу и товар.

Если тебе продают готовый продукт за 500 баксов это не значит что затраты на его создание были тоже 500 баксов. Это значит что этот продукт затем продают кому-то еще помимо тебя. И так много раз, пока эти продажи не отобъют затраты на разработку.

Но конечно изучать основы экономики по крякам игр в интернете - перебор, лучше книги почитать по теме, какие-нибудь.

alex0x08 ★★★
()
Ответ на: комментарий от max_lapshin

Перестаньте уже за меня беспокоиться ) Мне право как-то неловко даже.

Ну и очевидно, что я ничего не знаю и не понимаю, все выдумал и питаюсь воздухом.

alex0x08 ★★★
()
Ответ на: комментарий от alex0x08

Ты путаешь услугу и товар.

Если тебе продают готовый продукт за 500 баксов это не значит что затраты на его создание были тоже 500 баксов. Это значит что этот продукт затем продают кому-то еще помимо тебя. И так много раз, пока эти продажи не отобъют затраты на разработку.

Я ничего об этом не говорил. Не я привёл «я не возьмусь за это меньше, чем за $30к» как аргумент.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Ну это же не значит что я продам тебе результат за эту сумму по аналогии с этой твоей «Денувой».

Если тебя так смутила разница между ценой товара и услуги - опять же, лучше книжки по экономике почитать. Там много интересного будет и более глубоко чем я смогу когда-либо рассказать.

alex0x08 ★★★
()
Ответ на: комментарий от alex0x08

Ну это же не значит что я продам тебе результат за эту сумму по аналогии с этой твоей «Денувой».

Ещё раз: я ничего об этом не говорил. Причём тут вообще разница товара и услуги? Ну вот серьёзно…

Если тебя так смутила разница между ценой товара и услуги - опять же, лучше книжки по экономике почитать. Там много интересного будет и более глубоко чем я смогу когда-либо рассказать.

Меня ничего не смутило. Всё, что я хотел сказать, что не надо судить по себе. Есть человек, который выполняет эту работу за $500. То, что ты бы не взялся за <$30 — это, конечно, замечательно. Но вот другие берутся. Это всё, что я хотел сказать. Цена товара здесь ни при чём, речь о цене взлома.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Цена товара здесь ни при чём, речь о цене взлома.

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

Разово это 1 (один) раз, на всякий случай.

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

alex0x08 ★★★
()
Последнее исправление: alex0x08 (всего исправлений: 1)
Ответ на: комментарий от alex0x08

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

Это цена взлома (услуги). Результат потом выкладывается в открытый доступ, и за ту же услугу кто-то ещё раз платить не станет.

Насколько я понимаю, заинтересованные зачастую скидываются кому-то одному, тот платит, а потом это всё выкладывается в интернеты для всех.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 2)
Ответ на: комментарий от alex0x08

Значит есть какие-то внутренние наработки, позволяющие клепать такие однотипные «взломы» без существенных затрат времени и сил.

Скорее всего какие-то есть, да. Несомненно.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Замечательно, хоть до чего-то договорились.

Теперь представь, что к твоим кульхацкерам, со специализацией на Denuvo обращаются какие-нибудь «любители не платить за 1С» (где есть/была привязка к железу через аппаратный ключ).

Как думаешь, сработает такой же подход за 500 баксов?

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

alex0x08 ★★★
()
Ответ на: комментарий от alex0x08

Теперь представь, что к твоим кульхацкерам, со специализацией на Denuvo обращаются какие-нибудь «любители не платить за 1С» (где есть/была привязка к железу через аппаратный ключ).

Как думаешь, сработает такой же подход за 500 баксов?

Вероятно, нет. Скорее всего будет в разы дороже, но не думаю, что на порядки. Но тут, конечно, можно долго теоретизировать. В идеале надо бы просто «прицениться» у кого-нибудь, кто на взломе софта таки специализируется.

CrX ★★★★★
()
Ответ на: комментарий от CrX

но не думаю, что на порядки

А зря не думаешь, думать это полезное занятие.

Потому что если немного подумать, окажется что любая, даже самая уникальная услуга легко поддается оценке.

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

Допустим, есть задача «раскрасить собственные яйца под хохлому», чтобы жене на Пасху сюрприз сделать.

Уникальная задача? Уникальная, такой «услуги» никто не предоставляет, в каталогах ее нет.

Что в этом случае надо сделать? Надо разбить уникальную работу на мелкие стандартные части, которые уже поддаются оценке. Для примера с яйцами это будет работа двух специалистов: уролога и художника.

Первый проконсультирует в плане безопасности всей затеи и подберет нужные краски, которые не вызовут раздражения на самом интересном месте. Второй собственно проведет работы.

Ценник на каждую работу выясняется элементарно: часовая ставка специалиста + надбавка сверху за уникальность задачи.

Вот так это и работает.

alex0x08 ★★★
()
Ответ на: комментарий от alex0x08

А зря не думаешь, думать это полезное занятие.

Ой, сбавь менторский тон.

Вот так это и работает.

Звучит, несомненно, логично. Но на практиче всегда есть куча дополнительных факторов в обе стороны. В конце концов, практика — критерий истины. Точно узнать, сколько будет стоить взлом того или иного уникального или не очень DRM, надо просто узнать, сколько за это запросят в реальности.

CrX ★★★★★
()
Ответ на: комментарий от keir

А если юзер сам проверяет: как без интернета программа будет работать или нет. И что не так будет. А может интернета у него год не будет в деревне и т.д.

kkmspb
() автор топика
Ответ на: комментарий от CrX

Ой, сбавь менторский тон.

Так ты повод не давай считать себя идиотом.

Точно узнать, сколько будет стоить взлом того или иного уникального или не очень DRM, надо просто узнать, сколько за это запросят в реальности.

Без вопросов, начни с картеля «Синалола», там самые серьезные профессионалы, помогут с оценкой.

alex0x08 ★★★
()

Но в чем вопрос? Работа без интернета допустима, но не поощряется (нужен просто аварийный вариант на 1,2,3,4 дня вдруг сервак накроется и т.д.). Таким образом :

Если допустима, но не поощряется, можно делать как 1С. Раз в 5 минут запрашиваешь в Интернете актуальность лицензии. Если Интернета нет, выдаёшь окошко типа https://infostart.ru/upload/iblock/b01/b01ae67fdfd73705b9e66d8b6f6aad2a.png

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

monk ★★★★★
()
Ответ на: комментарий от monk

выдаёшь окошко типа https://infostart.ru/upload/iblock/b01/b01ae67fdfd73705b9e66d8b6f6aad2a.png

спс, это можно и пореже делать 1 раз в день. Но это конечно,чтобы пользователя не держать совсем за идиота, чтобы он понимал.

Но классное решение было бы сделать ЭЦП с ограниченным кол-вом шифраций/дешифраций или с ограничением по времени шифрации/дешифрации.

Похоже такого еще не придумали.

kkmspb
() автор топика
Ответ на: комментарий от kkmspb

спс, это можно и пореже делать 1 раз в день. Но это конечно,чтобы пользователя не держать совсем за идиота, чтобы он понимал.

Это как раз для дискомфорта работы без лицензии. Знаю тех, кто лицензию на 1С купил, чтобы табличка не мешала.

Но классное решение было бы сделать ЭЦП с ограниченным кол-вом шифраций/дешифраций или с ограничением по времени шифрации/дешифрации.

Так-то есть: https://glavkniga.ru/situations/s505582

monk ★★★★★
()
Ответ на: комментарий от monk

Так-то есть: https://glavkniga.ru/situations/s505582

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

Время - абстракция придуманная человеком.

kkmspb
() автор топика
Последнее исправление: kkmspb (всего исправлений: 1)
Ответ на: комментарий от kkmspb

С истекшим сроком можно прекрасно шифровать/дешифровать данные без проблем (технически).

Технически, то есть в обход стандартных библиотек.

Время - абстракция придуманная человеком.

Это как раз обойти несложно. Считай операции и уменьшай какой-нибудь счётчик. Как дошло до нуля, значит время вышло.

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

monk ★★★★★
()