LINUX.ORG.RU

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

 , , , ,


0

1

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

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

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

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

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

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

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

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



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

Что за хрень я сейчас прочитал?

Ну если срок закончился у ЭЦП (см.свойства сертификата), сама ЭЦП работоспособна и ты можешь ей шифровать/расшифровывать данные без проблем

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

Никак.

но прошу помощи у гуру как можно усложнить этот процесс, какие есть у кого может были варианты

Всё шифровать и обсфусцировать, у куча форков поверх форков. В итоге займёт чуть дольше времени.

Усложнить достаточно значимо не получится.

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

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

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)

хотелось бы, чтобы программа начала подтормаживать без интернета и в какой-то момент вставала колом.

Например, такой вариант: проверка наличие сети, в случае отсутствия, программа «отъедает» определённый объём оперативной памяти. Только колом может встать не отдельно взятая программа, а вся система.

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

Я давно приметил одну закономерность: чем хуже программа, тем сильнее авторы озабочены ее «защитой». В данном случае мы, скорее всего, имеем дело с отборным дерьмом.

utanho ★★★★★
()

Часть функционала мы отдаем с сервера. Но как быть если интернета нет?..

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

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

А если ты openssl используешь и у тебя свой центр сертификации создан, какой у тебя крипто провайдер? Ты подписываешь свой софт, шифруешь/дешифруешь данные. Какой крипто провайдер?

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

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

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

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

Я давно приметил одну закономерность: чем хуже программа, тем сильнее авторы озабочены ее «защитой». В данном случае мы, скорее всего, имеем дело с отборным дерьмом.

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

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

Только колом может встать не отдельно взятая программа, а вся система.

Надо уточнить: конечно я погорячился - колом система не встаёт, просто визуально зависает приложение, так многие делают, если замечали

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

Ну это вариант, когда ты сам бесплатно отдаешь свой софт всем желающим.

Почему обязательно бесплатно? Само приобретение программы может быть и платным, равно как и создание учётки изначально.

Ну а далее… Смотря что за прога, и что она делает. Из выше написанного я понял, что ей вообще интернет не нужен? Или таки нужен, но не постоянно? Если первое, то подписочная модель не нужна — не жадничай, поставь просто ценник повыше, если очень хочется, но единовременно. Если второе, то проверка при синхронизации решает проблему. Если всё же первое, но жадности слишком много — лучше всего сделать тупо два варианта покупки: полная оффлайн-версия с неограниченной работой оффлайн и синхронизацией при желании, но за тонны нефти + бесплатно распространяемая онлайн-версия с платной подпиской на использование сервера, которая без интернета не работает вообще.

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

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

Товары заводятся только на сервере в ЛК. Также там приходуем товар.

В программе только продаем и результаты выгружаем на сервак. Получаем актуальные остатки.

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

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

Мы не планируем много зарабатывать на своем софте.

Но огородить хотим, да. Классическое комбо 80 уровня.

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

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

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

Замысел таков, что в этом случае потребуется просто заново в программе подключить пользователя (указать его логин и пароль в ЛК) и подключить заново оборудование. В остальном все данные сохраняются.

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

Денува вроде сделана так, чтобы иметь мозг опытным товарищам

Больше пользователям, судя по отзывам.

Проблема современности что воровать из софта а) нечего б) некому, ибо все кто умели уже давно при делах и все у всех хорошо.

Нейросетки пробовал для решения этой проблемы?

У меня нет этой проблемы.

alex0x08 ★★★
()

Было дело, читал документацию Sentinel про их подход к работе софтварных ключей, которые по заверениям достаточно надёжно работают без интернета. Гуглить что-то вроде Sentinel Software License, точно не помню.

Что помню: они как-то хранятся в неразмеченной области диска для защиты от клонирования и затруднения к ним доступа. Этим не ограничивается, там ещё много всего интересного, но я почти всё позабывал за ненадобностью.

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

Денува вроде сделана так, чтобы иметь мозг опытным товарищам

Как я понял это своя ОС у них получается, то есть прогу надо вместе с компьютерами получается распространять.

Еще забыл сказать,что кросплатформенность приветствуется.

Хотелось бы просто: скачал с сайта инсталлятор, установил, зарегистрировал пользователя и работай (да еще тестовый период 2 недели есть).

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

Sentinel Software License

Спс,тоже слышал о «неиспользуемых» адресах на жестких дисках.

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

Все- таки лучше к сер. № процессора как мне кажется.

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

Тогда пусть при отсутствии доступа в интернет программа запускает расчёт числа пи до миллионного знака после запятой.

Им работать надо, чеки бить, а не слушать как гудит вентилятор процессора.

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

У ККМов есть серийные номера и другие уникальные идентификаторы, к ним и вязаться.

На самом деле основная привязка идет сначала по номеру телефона пользователя (подтверждение по смс).

Идея с ККМ тоже помогает : ККМ зав. номер + ИНН юл. Это сработает, если попытаться подключить кассу другого юр.лица (очень удобно запрещать такое).

А вот в банковских терминалах ИНН юр.лица нет…

(ТС это Товарищ Саахов?)

kkmspb
() автор топика

Вот если бы заложить как-то старение в алгоритм шифрации/дешифрации.

Многие вопросы решились бы.

Но тут похоже Нобелевской премией попахивает….

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

Как я понял это своя ОС у них получается, то есть прогу надо вместе с компьютерами получается распространять.

Это называется виртуальная машина, выполняющая «псевдоинструкции». Делается для того чтобы затруднить отладку.

Вот если бы заложить как-то старение в алгоритм шифрации/дешифрации.

Это называется «внутренний таймер» , независимый от текущей системной даты. Делается чтобы юзеры дату в ОС не скручивали.

Вообщем дорогой друг, мой тебе совет: забей.

Вот честно. Ты такой не первый и даже не десятый.

Даже если у тебя все получится - «в океане всегда есть рыба побольше» и имя этой рыбы - @alex0x08.

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

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

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

Есть одноразовые ЭЦП и ЭЦП с ограниченым количеством подписей.

Интересно, где ограничение прописывают?

Может это носитель какой-то типа Рутокена? И сам носитель ограничивает?

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

Со всем согласен полностью, кроме одного замечания.

только в этом случае никто не будет пытаться украсть твои разработки

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

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

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

pekmop1024 ★★★★★
()

За скромное вознаграждение в 500к.р. могу подготовить тебе полный аналитический отчёт по методам защиты и ориентировочной стоимости реализации каждого из этих методов.

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

Вообще, уверен на 100% - подобные темы на данном ресурсе есть моветон и язабан.

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

Усложни авторизацию, знаешь как в oauth делают - после авторизации сервер отдает два токена: токен доступа, с которым делаются запросы к ресурсу и у которого ограниченное время жизни и refresh токен, с которым ходят на сервер за новым токеном доступа после того как у предыдущего истекает время жизни

А молча начать тормозить это портить впечатление о своем продукте у пользователя

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

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

мораль не позволит?

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

Стоимость взлома даже поделок типа denuvo :) Не стоит путать физический доступ и удалённый. Или ты думаешь облака цветут и пахнут потому, что так и правда эффективней?

faq2
()
Ответ на: комментарий от cobold

WinRar всегда по фану ломали :) Он и денег то не особо просит, но и квалификация способного обойти свежую защиту самостоятельно позволяет годовую подписку за часовой рейт покрыть.

faq2
()
Ответ на: комментарий от cobold

токен доступа, с которым делаются запросы к ресурсу и у которого ограниченное время жизни

помониторю спс, интересно как и кто решает, что время у токена закончилось…

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

мораль не позволит?

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

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

мораль не позволит?

Соотношение времени и денег.

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

И умудриться при этом не стать популярным в отрасли, чтобы нищеброды не додумались скооперироваться, скинуться и нанять меня (или подобных товарищей) для решения проблемы.

Как по мне то ситуация малореальная.

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

Это сложный вопрос.

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

Куда проще было бы переломать мне ноги, но ввиду определенного жизненного опыта - не прокатит )

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

Те кого заботит аудит в принципе не будут ставить палёный софт же. Я вообще думаю, что автор раздувает из мухи слона и ему по-сути нужен обычный счётчик какого-то ресурса, транзакций там или секунд использования ПО. Который нелигитимными способами в обход лицензии никто не будет нарушать и ЦА. Те 2.5 кроящих, кто воспользуется кряком для извлечения прибыли точно не поруинят любой рентабельный бизнес.

faq2
()