Перейти к содержанию
    

Лицензирование программы для микроконтроллера

Придумываете пароль длиной до 32 символов.

Шифруете AES256. Получаете мастер ключ длиной 256бит (MKEY256).

Из S/N формируете блок длиной 256бит. Мастер ключом шифруете этот блок.

Получаете уникальный ключ для прибора KEY256.

Делите ключ на две половины по 128бит (KEY128_PRI, KEY128_SEC).

Один ключ KEY128_PRI зашиваете в прибор. Это будет начальный ключ прибора.

Формируете блок лицензии с некоторыми данными, например: S/N, срок окончания, число запусков и т.д.

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

Ключом KEY128_PRI шифруете лицензию по AES128. После расшифровки блока лицензии и проверки достоверности обновляете начальный ключ на KEY128_SEC.

Теперь новый ключ будет использоваться для расшифровки лицензии. Если S/N прибора и лицензии не совпадают, то ключи не обновляются и лицензия не работает.

Если надо продлить лицензию генерите новую пару ключей [P,S].

P = KEY128_SEC.

S = IV(KEY128_SEC) + AES128(S/N, KEY128_PRI).

KEY128_PRI <= P,

KEY128_SEC <= S.

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

Надо только запомнить пароль и знать для какого S/N генерить лицензию, и порядковый номер лицензии.

 

Осталось только решить вопрос как вводить в прибор много цифр.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

 

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте все! Есть устройство на базе микроконтроллера MSP430F249. Под этот микроконтроллер написана программа. Для того, чтобы программа выполняла свои основные функции, пользователь должен приобрести код активации ...

Я бы еще мог понять топикстартера, если речь шла о "чистом" прикладном ПО, устанавливаемом на персональный компьютер...

А когда речь идет о "встроенном" ПО - извините! Человек, покупая ваше изделие, "автоматически" приобретает права на использование вашего ПО, по факту покупки.

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

Вы что, взомнили себя "мелко-мягкими" монополистами, чтобы диктовать свои условия? Представьте, что у вас, грубо говоря, помещение горит, а автоматическая система пожаротушения говорит вам, что нужно "обновить лицензию", мол "срок годности" вышел!

Такие "изделяя" ни один серьезный заказчик покупать не будет. На фиг они не нужны! Идите в "бытовуху" и там "развлекайтесть" со своими "кодами доступа". Китайцы бысто объяснят вам, что к чему...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я бы еще мог понять топикстартера, если речь шла о "чистом" прикладном ПО, устанавливаемом на персональный компьютер...

А когда речь идет о "встроенном" ПО - извините! Человек, покупая ваше изделие, "автоматически" приобретает права на использование вашего ПО, по факту покупки.

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

Вы что, взомнили себя "мелко-мягкими" монополистами, чтобы диктовать свои условия? Представьте, что у вас, грубо говоря, помещение горит, а автоматическая система пожаротушения говорит вам, что нужно "обновить лицензию", мол "срок годности" вышел!

Такие "изделяя" ни один серьезный заказчик покупать не будет. На фиг они не нужны! Идите в "бытовуху" и там "развлекайтесть" со своими "кодами доступа". Китайцы бысто объяснят вам, что к чему...

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

 

P. S. Следующий раз, когда будете проходить мимо этой темы, проходите мимо...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... нужны устройства или "на фиг не нужны" решать точно не Вам...
... И , увы, точно не Вам, к вашему сожалению.

Решать будет потенциальный покупатель ваших изделий.

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

как это выглядит с "противоположной стороны".

Так что, зря Вы обижаетесь...

P. S. Следующий раз, когда будете проходить мимо этой темы, проходите мимо...
Как Вам будет угодно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Под этот микроконтроллер написана программа. Для того, чтобы программа выполняла свои основные функции, пользователь должен приобрести код активации и передать его в устройство. Код активации устанавливает время работы основных функций программы в сутках. Программа микроконтроллера не доступна пользователю (микроконтроллер заблокирован на чтение программы). Код активации будет вводиться в устройство посредством кнопок самого устройства и его ЖК дисплея. Код активации, естественно, должен быть устойчив к взлому. Посоветуйте, как реализовать данный функционал.

Я подобную задачу решил очень банально:

- устройство отдает программе постоянно меняющиеся данные и их хэш, сгенерированный тремя способами.

- программа принимает данные и проверяет соответствие рассчитанного хэша и полученного

Результат:

Без подключенного "своего" устройства программа не работает.

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

 

Если Вы предпочитаете код авторизации, то целесообразно подсмотреть (если получится) идеологию в системе STS, используемый для предоплаты мобильников и счетчиков.

Код авторизации выглядит как 20-значное число, вводимое 5ю группами по четыре цифры. Это число (в терминах стандарта - "token") содержит количество "биткоинов", которые отсчитывает телефон или счетчик, и, разумеется, ключи. Даже африканские старушки умеют вводить такие числа в счетчик - предоплата существует в основном в бедных странах.

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

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

Да, еще. Программа, раздающая токены, должна работать на вашем сервере, и база должна быть защищена.

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

 

Хотя, по размещению этой темы в разделе MSP430, многое становится ясно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

del

Изменено пользователем Эдди

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... И , увы, точно не Вам, к вашему сожалению.

Решать будет потенциальный покупатель ваших изделий.

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Речь идёт скорее не о " знании", а о внутреннем неприятии такого подхода на уровне железа. И я думаю, что это преобладающая общественная точка зрения, за исключением отдельных индивидуумов, которые с маниакальным упорством продвигают такую бизнес модель.

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Про мечты согласен. Но мечтатели находятся с обоих сторон.

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

Однако мы заправляем их по пять и более раз.

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

Автопроизводители мечтают, чтобы мы пользовались официально купленными адаптерами и их сервисным ПО. А мы покупаем адаптер в китае за 5 баксов, а ПО взламываем.

И так далее и тому подобное. Чем востребованнее продукт, тем проще найти решение.

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

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

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

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

Потом они (бренды) вынуждены были в разы понижать цены, делать скидки, но уже поздно, свою долю рынка мы получили. Импортозамещение, - так сказать.

А если бы ценник сразу был адекватный, у нас бы и мыслей не возникло лезть в эту нишу.

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

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

 

Теперь, по поводу "повсеместного кодирования элементарных вещей".

У нормального производителя каждый серийный экземпляр имеет свой уникальный заводской номер. Причем, это может касаться не только изделия в целом, но и отдельных модулей, чипов и т.п. Это нормальный, правильный подход к делу. Однако, это не повод "выписывать лицензию" конечному пользователю "на каждую гайку". И встроенное ПО, в этом отношении, ничем не отличается от других компонентов. Почему топикстартер ограничился только лицензированием встроенного ПО? Давайте еще будем лицензировать использование электрической схемы, например. И дальше будем развивать этот подход, пока до последней гайки не дойдем...

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Согласен, что платить за отдельную лицензию в уже готовом устройстве - это бред собачий. Это примерно, как нанимать программиста для оплаченного написания программы моей железки и предоставлением исходников за отдельные деньги. И не надо тут оправдывать, что компы тоже покупаем и за винду нужно платить - это совсем другое дело. За комп платится, как за просто железо, а у ТСа железка стоит явно больше того, что было затрачено на ее производство и прибыль с этого (т.е. без встроенного ПО), по такой логике, при покупке компа нужно было бы платить за лицензию биос! Барыг у нас хватает, конечно, но это их дело... Меня больше интересует вопрос защиты ПО в процах, у которых нет встроенного флеша...

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...