реклама на сайте
подробности

 
 
5 страниц V  < 1 2 3 4 5 >  
Reply to this topicStart new topic
> Лицензирование программы для микроконтроллера
vovanse
сообщение Apr 21 2016, 10:13
Сообщение #31


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 14-02-06
Из: Кемерово
Пользователь №: 14 293



Может RFID? А в метке шифрованная информация. Просто и удобно - поднес, ключ введен.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 21 2016, 10:14
Сообщение #32


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Насмешек я не писал. Критику - да. Моя критика не уменьшит возможного дохода от изделия, так и переживать не о чем. Успехов!
Go to the top of the page
 
+Quote Post
d7d1cd
сообщение Apr 21 2016, 11:16
Сообщение #33


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Цитата(ViKo @ Apr 21 2016, 13:14) *
Насмешек я не писал.


Тогда к чему это:
Цитата(ViKo @ Apr 21 2016, 12:45) *
Или дальнейших насмешек боится?


Цитата(ViKo @ Apr 21 2016, 13:14) *
Моя критика не уменьшит возможного дохода от изделия, так и переживать не о чем. Успехов!

Здесь полностью с Вами согласен. Спасибо за пожелание успехов!

Цитата(vovanse @ Apr 21 2016, 13:13) *
Может RFID? А в метке шифрованная информация. Просто и удобно - поднес, ключ введен.

Можно кратко об этой технологии?
Go to the top of the page
 
+Quote Post
vovanse
сообщение Apr 21 2016, 11:36
Сообщение #34


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 14-02-06
Из: Кемерово
Пользователь №: 14 293



Цитата(d7d1cd @ Apr 21 2016, 18:16) *
Можно кратко об этой технологии?


Ключи от домофона http://ru.aliexpress.com/wholesale?catId=0...archText=EM4305
http://www.emmicroelectronic.com/sites/def...205-4305_ds.pdf

Есть немного памяти куда можно записать данные.
Go to the top of the page
 
+Quote Post
aiwa
сообщение Apr 22 2016, 01:56
Сообщение #35


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(d7d1cd @ Apr 19 2016, 11:05) *
Сейчас есть следующая идея. Программа в устройстве пользователя генерирует ключ шифрования случайным образом. Пользователь с помощью кнопок устройства определяет этот ключ и передает его продавцу лицензий. Продавец лицензий с помощью этого ключа создает код активации, в который "вшит" нужный срок действия программы, и продает этот код пользователю устройства. Пользователь вводит код активации в устройство. Программа устройства, если код активации "правильный", устанавливает время работы.

Если у кого-то есть другие идеи, поделитесь, пожалуйста.


В свое время делал нечто подобное - для компакт-дисков. Только у меня, в отличие от переменного количества суток, функционал выдавался порциями, и поэтому алгоритм был немного попроще, но это не принципиально.
Я написал алгоритм, выдающий последовательность строк из шести букв и этот алгоритм включил в обе программы: в программу для бухгалтерии - продавца лицензий, и непосредственно в рабочую.
При обнулении счетчика. рабочая программа ожидала ввода следующего ключа, который формировался алгоритмом на основании старого и являлся следующим элементом последовательности.
Начальную строку для каждого компакта поначалу генерировали индивидуально, а потом, увидев кровавые мозоли от сего действа, начали шлепать идентичными.
Go to the top of the page
 
+Quote Post
yes
сообщение Apr 22 2016, 12:49
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



всю тему не осилил, если пишу боян - сори

просто берете серийный номер устройства + срок лицензии + еще что хотите (например случайное чисто)
добавляете CRC
потом обычным AES-128 (да и DES можно, наверно) код
к коду прилепить еще CRC для проверки ввода

в устройстве открываете (AES ключ секретен так же, как и прошивка), проверяете CRC, серийный номер и дату

по-моему получать что-то из устройства будет излишне


Go to the top of the page
 
+Quote Post
d7d1cd
сообщение Apr 24 2016, 07:20
Сообщение #37


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Цитата(yes @ Apr 22 2016, 15:49) *
всю тему не осилил, если пишу боян - сори

просто берете серийный номер устройства + срок лицензии + еще что хотите (например случайное чисто)
добавляете CRC
потом обычным AES-128 (да и DES можно, наверно) код
к коду прилепить еще CRC для проверки ввода

в устройстве открываете (AES ключ секретен так же, как и прошивка), проверяете CRC, серийный номер и дату

по-моему получать что-то из устройства будет излишне

Вы написали не боян. Скажите, зачем нужен серийный номер?

Что если делать так: срок лицензии + "мусор" из случайных чисел + CRC ранее перечисленного. Далее шифруем все это с помощью AES. После вычисляем CRC шифровки. Передаем шифровку с CRC покупателю.
Go to the top of the page
 
+Quote Post
slanted
сообщение Apr 24 2016, 09:15
Сообщение #38


Частый гость
**

Группа: Участник
Сообщений: 140
Регистрация: 2-01-08
Пользователь №: 33 768



Цитата(d7d1cd @ Apr 24 2016, 11:20) *
Вы написали не боян. Скажите, зачем нужен серийный номер?

Что если делать так: срок лицензии + "мусор" из случайных чисел + CRC ранее перечисленного. Далее шифруем все это с помощью AES. После вычисляем CRC шифровки. Передаем шифровку с CRC покупателю.


Да, это вполне годный вариант аутентификации. Только вам не нужен AES, вам нужен криптографический хэш типа sha1.

Кстати, а какой-нибудь разъем в устройстве предусмотрен? Совать туда физический ключ — EEPROM'ку с подписью любой нужной длины.
Go to the top of the page
 
+Quote Post
d7d1cd
сообщение Apr 24 2016, 19:12
Сообщение #39


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Цитата(slanted @ Apr 24 2016, 12:15) *
Кстати, а какой-нибудь разъем в устройстве предусмотрен? Совать туда физический ключ — EEPROM'ку с подписью любой нужной длины.

Разъема в устройстве нет.

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

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

Теперь у меня вопросы: каким образом генерировать новый ключ, какой он должен быть длины и каким образом с помощью этого ключа шифровать код активации?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 25 2016, 11:02
Сообщение #40


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Дальше в лес - больше дров. Говорил уже, задайте в каждом устройстве индивидуальный серийный номер. А по нему в устройстве и в своем компе вычисляйте ключ. Который и надо задать кнопками. Пользователь вам - серийный номер, вы ему - ключЪ. Как генерить ключ, импровизируйте, на что голова нафантазирует.
Go to the top of the page
 
+Quote Post
d7d1cd
сообщение May 20 2016, 06:01
Сообщение #41


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



В общем, как в той сказке: "думал, думал и наконец придумал". А точнее, наверное, решил делать следующим образом.

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

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

Теперь у меня следующая головоломка: каким способом, используя пароль от генератора псевдослучайных чисел, мне создавать лицензионный ключ?
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 20 2016, 06:31
Сообщение #42


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



А пользователя как собираетесь определять, по фамилии? Все равно идет идентификация запрашиваемого. Чем лучше серийного номера? По серийному номеру и номеру запроса (год, второй.. ) вычисляйте свою ПСП. Криптостойкость - одинаковая.
"думал, думал..." гора родила мышь.

А если пользователь сменился? Держать в своем компе список всех пользователей? А если какая-то случайная потеря пользователя произойдет? Обратится к вам человек, "имею ваш прибор, хочу продлить жизнь". А вы ему - "а откуда прибор к вам попал? Опишите того человека, что продал вам его - лысый, с длинным носом?"
Go to the top of the page
 
+Quote Post
d7d1cd
сообщение May 20 2016, 06:56
Сообщение #43


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Цитата(ViKo @ May 20 2016, 09:31) *
А пользователя как собираетесь определять, по фамилии? Все равно идет идентификация запрашиваемого. Чем лучше серийного номера? По серийному номеру и номеру запроса (год, второй.. ) вычисляйте свою ПСП. Криптостойкость - одинаковая.
"думал, думал..." гора родила мышь.

А если пользователь сменился? Держать в своем компе список всех пользователей? А если какая-то слусчайная потеря пользователя произойдет? Обратится к вам человек, "имею ваш прибор, хочу продлить жизнь". А вы ему - "а откуда прибор к вам попал? Опишите того человека, что продал вам его - лысый, с длинным носом?"

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

У каждого устройства будет серийный номер. Следуя Вашим рекомендациям, я буду определять следующее случайное число для создания лицензионного ключа, по серийному номеру и номеру запроса. При этом все равно надо держать в своем компе список всех серийных номеров и сколько запросов от них было. Или я опять не прав?
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 20 2016, 09:55
Сообщение #44


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(d7d1cd @ May 20 2016, 09:56) *
У каждого устройства будет серийный номер. Следуя Вашим рекомендациям, я буду определять следующее случайное число для создания лицензионного ключа, по серийному номеру и номеру запроса. При этом все равно надо держать в своем компе список всех серийных номеров и сколько запросов от них было. Или я опять не прав?

Даете лицензию на год работы. По серийному номеру и текущему году (2016, в этом году) вычисляете свою хитрую комбинацию. Одинаково, что в приборе, что в компьютере. Если пользователь введет то, что вы ему дали, оно совпадет с тем, что высчитает прибор.
Время-то вы как-то будете иметь в приборе? Чтобы год работы отсчитать.
Если кто-то захочет на 5 лет лицензию купить, в следующий раз посчитаете для S/N и 2021. Э... срок-то надо уже заложить... Тогда задавайте сейчас год окончания лицензии. И пусть прибор работает, вычисляет код, пока он не совпадет со сроком окончания... Наверное, можно придумать проще.
Если интервалы будут меньше года, используйте еще и месяц. Например, 201605.
Go to the top of the page
 
+Quote Post
d7d1cd
сообщение May 20 2016, 12:36
Сообщение #45


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Цитата(ViKo @ May 20 2016, 12:55) *
Если кто-то захочет на 5 лет лицензию купить, в следующий раз посчитаете для S/N и 2021. Э... срок-то надо уже заложить... Тогда задавайте сейчас год окончания лицензии. И пусть прибор работает, вычисляет код, пока он не совпадет со сроком окончания... Наверное, можно придумать проще.

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

Сообщение отредактировал d7d1cd - May 20 2016, 12:37
Go to the top of the page
 
+Quote Post

5 страниц V  < 1 2 3 4 5 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 17:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01477 секунд с 7
ELECTRONIX ©2004-2016