LINUX.ORG.RU

защита исполняемого файла от нелицензионного запуска

 ,


3

1

Всех приветствую.
Нарисовалась тут задача о защите нашей интеллектуальной собственности. Мы тут торгуем специализированным программно-аппаратным комплексом на базе бытового ПК (не не совсем бытового но тем не менее).
Есть у нас там прога в которая может делать разные интересные штуки. Есть базовый функционал, есть всякие доп фичи. И вот хочется нам запилить такую систему чтобы был хардваре ключ который считается из характеристик железа. Cписок фич и срок их действия и спец. алгоритм по которому бы вычислялся лицензионный ключ при наличии которого наша бы прога работала (причем работали бы эти спец.фичи). А без него или без привычного аппаратного окружения чтобы не работала.
Нечто похожее есть у всяких консультант-плюсов и поделок от keil-а. И вот очень не хочется костылить свой велосипед, а хочется взять готовую библу и все запилить на ней. Есть ли готовые решения?

★★★★★

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

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

Говнохасп какой-нить (если оно живое еще).

Да не, это тогда нужно еще одно устройство. Хотелось бы обойтись без этого. Ведь У всяких там биосов и винчестеров есть всякие уникальные серийные номера, нам хватить и этого. Нужны готовые алгоритмы.

а если кому-то припрет поиметь его нелицензионным

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

yax123 ★★★★★
() автор топика

вот тут ребятки перетирают возможные решения..

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

Тут как раз хотим защиту от честных людей сделать.

Тогда вообще не парься. Просто сделай типа ключа лицензионного. Есть ключ - включай системы, нет - не включай.

Сложная защита источник глюков и тонн ненависти со стороны пользователей.

anonymous
()

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

anonymous
()

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

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

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

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

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

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

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

Кто сказал Oracle?

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

Кто сказал SaaS?

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

Кто сказал Microsoft?

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

Это все инерция на количестве хомячков и какой-никакой, а репутации.

другой анонимус прав. Качественный сервис важнее, чем геморрой с хаспами/хуяспами/ключами/мудачами. Я помню, когда работал в одной ОЧЕНЬ большой госконторе в начале 2000х, посылал лучи ненависти кривожопым создателям, которые ниосилили написать софт без глюков, зато говнохасп у всех, а у некоторых при этом еще и ключи. Глюююччево такое было, что хотелось лично отверткой бошки попробивать. И все это ПРИХОДИЛОСЬ ломать, потому что в лицензионном виде оно работало через жопу.

anonymous
()

rpc API ...

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

Бонус - жаждующие, будут ходить кругами как коты вокруг ведра сливок со сметаной ...

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

другой анонимус прав. Качественный сервис важнее, чем геморрой с хаспами/хуяспами/ключами/мудачами. Я помню, когда работал в одной ОЧЕНЬ большой госконторе в начале 2000х, посылал лучи ненависти кривожопым создателям, которые ниосилили написать софт без глюков, зато говнохасп у всех, а у некоторых при этом еще и ключи. Глюююччево такое было, что хотелось лично отверткой бошки попробивать. И все это ПРИХОДИЛОСЬ ломать, потому что в лицензионном виде оно работало через жопу.

Кто спорит-то. Если автор хочет таки лицензию, пускай хоть сделает по-человечески. Разобьет программу на модули и каждый загружаемый модуль будет загружен только в случае наличия нужной опции в лицензионном файле. Т.е. перед каким-нибудь dlopen() сделать проверку лицензии.

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

Тогда вообще не парься. Просто сделай типа ключа лицензионного. Есть ключ - включай системы, нет - не включай.

ключ можно с собой таскать с компа на комп

Сложная защита источник глюков и тонн ненависти со стороны пользователей.

Вот поэтому и хочу готовое решение.

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

от анонимуса тупняк прет в каждом посте, что за напасть.

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

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

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

проверяй подписанный файл лицензии,

как проверять? какой алгоритм проверки? как формировать? что за диванная аналитика в разделе development

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

ключ можно с собой таскать с компа на комп

И чем это плохо? Работает только один экземпляр программы в каждый момент времени.

Ты свои рассуждения приложи к системе в виртуалке и простоте клонирования ИДЕНТИЧНЫХ виртуалок. Ну и где теперь твой защита основанная на уникальности железа?

most-fucktum
()
Ответ на: комментарий от most-fucktum

Ты свои рассуждения приложи к системе в виртуалке и простоте клонирования ИДЕНТИЧНЫХ виртуалок

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

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

Уф... Тебе про DSA что-ли рассказать?

Расскажи, если есть что рассказать. Теоретически я все это примерно представляю как работает. А вот чтобы было готовое решение уже нет.

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

что ЭТО делает в обители опенсорса?

бу-га-га: «Обитель опенсорса»! Скорее заповедник школоты, девственников и троллей всех размеров и цветов.

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

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

Купили для одной виртуалки, склонировать на все хосты.

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

Купили для одной виртуалки, склонировать на все хосты.

Щаз он ещё начнёт требовать детектор виртуалок, погоди.

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

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

Лол, расскажи это загеивающим юбисофт и eagames, которые только и делают, что крутят своих пользователей на МПХ.

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

Расскажи, если есть что рассказать. Теоретически я все это примерно представляю как работает. А вот чтобы было готовое решение уже нет.

Эээ... У тебя есть некий основной модуль. Туда зашит открытый ключ. У тебя есть некий софт, который лицензии выписывает, у него есть закрытый ключ. Ты выписываешь файл лицензии (уж текстовый файл-то распарсить ты без подсказок сможешь?) на опеделенную железку (твой основной модуль генерит уникальный ключ, основывая на параметрах системы), подписываешь его закрытым ключом, даешь его клиентам. Клиенты присовывают файл в твою хреновину. Твоя хреновина файл парсит, проверяет, что файл сгенерирован тем, кем нужно, проверяет ключ системы, разрешает / запрешает загружать какие-то плагины. Всё.

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

Железяка - это нечто большее, чем комп? Если да, то что мешает в этом самом железе хранить лицензю и управлять фичами клиентского софта?

qbe
()

уточни, а ось какая? или ты ищешь универсальное решение? так-то каких-нибудь хешей от dmidecode хватило бы наверно.

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

К счастью наши железяки

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

anonymous
()

всё бессмысленно, если есть физический доступ к железке, любая защита может быть взломана, выпускай под GPL

а за денюжку можно продавать инструкции по компиляции, чтоб работало :)

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

всё бессмысленно, если есть физический доступ к железке, любая защита может быть взломана

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

выпускай под GPL

Лучше уж под BSD.

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

Эээ... У тебя есть некий основной модуль.... бла-бла-бла

Ничего нового не узнал.

Туда зашит открытый ключ

как и чем его генерить?

у него есть закрытый ключ

как и чем его генерить?

Ты выписываешь файл лицензии

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

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

Железяка - это нечто большее, чем комп? Если да, то что мешает в этом самом железе хранить лицензю и управлять фичами клиентского софта?

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

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

точни, а ось какая? или ты ищешь универсальное решение? так-то каких-нибудь хешей от dmidecode хватило бы наверно.

Пока основной софт под winxp, в дальнейшем возможно что-то будет под линукс (хотя фиг знает когда, работать некому). Нужно универсальное решение на уровне алгоритмов. Версии для разных ОС можно отдельные написать.

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

Добавь...

Я даже читать дальше не буду. Не хочу ничего добавлять

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

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

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

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

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

есть люди, которые занимаются этим just for fun, а потом выкладывают взломанное для всех желающих, не хотящих заниматься мастурбацией

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

как и чем его генерить?

libressl

как и чем его генерить?

libressl

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

Я бы очень удивился, если бы было непонятно. Схеме сто лет в обед.

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

Зачем? В лицензии зашит hardware-key (назовем его так), уникальный для каждой сервера, где стоит твой софт (можешь парсить хоть dmidecode). Остальные его сколько угодно могут видеть, он должен подходить только для одного сервера. Ключи нужны только для аутентификации источника лицензионного файла.

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

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

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

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

Ммм... Для специфичного софта такое редко кто делает. Просто потому, что мало кто о таком софте знает.

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

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

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

А какой-нибудь усб-токен прикупить не вариант?

Да блин, дело не в токене. Токен это аналог серийника биоса и харда. Мне нужна программная инфраструктура для поддержки всего, а не спобоб выбора привязки по к компу.

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

есть люди, которые занимаются этим just for fun, а потом выкладывают взломанное для всех желающих, не хотящих заниматься мастурбацией

Этих комплексов продано всего чуть больше сотни. Так что вероятность встретится с ними в реальной жизни для любителя «just for fun» стремится к нулю.

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

libressl

оно уже научилось на отличных от bsd платформ компилироваться и запускаться? )

чем ванильный openssl для сабжа не подходит?

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

программная инфраструктура

Подразумевается, что продаван токена пилит еще и свой API.

thesis ★★★★★
()

Короче...

hardware-key: 0a45bceff00             <- UUID твоего сервера
supported-features: blowjob, coffee   <- список опций

00 11 22 33 44 55 66 77 88 99         <- Цифровая подпись блока выше
aa bb cc dd ee ff .. .. .. ..
.. .. .. .. .. .. .. .. .. ..

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

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

чем ванильный openssl для сабжа не подходит?

Мне название больше нравится.

kirk_johnson ★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.