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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Защита программы от несанкционированного распространения
d7d1cd
сообщение Aug 18 2015, 11:11
Сообщение #1


Местный
***

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



Привет всем! Мне необходимо написать свою программу для устройства на МК MSP430F249 так, чтобы она работала только в данном конкретном устройстве. Подскажите, как это можно сделать?
Получается, что программе надо каким то образом идентифицировать МК, в котором она выполняется, на признак "свой" или "чужой" (если "чужой", то прекратить работу). Припоминается, что где-то я читал информацию о том, что каждый МК указанной марки хранит в ПЗУ для загрузчика BSL некий номер, уникальный для данного МК. Или я это выдумал?.. Есть ли нечто подобное в указанных МК?

P.S. Прожиг фьюза JTAG не предлагать, ибо программирование устройства будет делать другой человек, который заинтересован в использовании программы на нескольких устройствах (а я против этого). И еще: я понимаю, что любую защиту можно взломать, поэтому прошу не указывать на это и не говорить, что все попытки данной защиты бесполезны.
Go to the top of the page
 
+Quote Post
Obam
сообщение Aug 19 2015, 06:31
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



BSL через УАПП:

Access to the MSP430 flash memory via the BSL is protected by a 256-bit userdefined
password. For more details see the MSP430 Programming Via the Bootstrap Loader User's Guide
(SLAU319).

А фузы всё равно пережигать, потому как JTAGом вычитывается вся память.


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
d7d1cd
сообщение Aug 19 2015, 06:56
Сообщение #3


Местный
***

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



Цитата(Obam @ Aug 19 2015, 09:31) *
BSL через УАПП:

Access to the MSP430 flash memory via the BSL is protected by a 256-bit userdefined
password. For more details see the MSP430 Programming Via the Bootstrap Loader User's Guide
(SLAU319).

А фузы всё равно пережигать, потому как JTAGом вычитывается вся память.


Видимо Вы не поняли постановки задачи (почитайте первый пост внимательно).
Мне необходимо сделать так, чтобы программа выполнялась только в конкретном МК. При ее загрузке в другой МК, программа "понимает", что она в "чужом" МК и прекращает свое выполнение (пустой бесконечный цикл, например).
Вопрос в том, как сделать идентификацию, что МК "свой". Если бы в каждом МК был уникальный номер, то это было бы легко сделать (или такой номер есть в МК?). Есть еще идея как-то использовать микросхемы памяти, подключенные к МК (может быть в них есть что-то уникальное), но пока не знаю как.
Есть ли какие-то сображения по этому вопросу?
Go to the top of the page
 
+Quote Post
Obam
сообщение Aug 19 2015, 07:42
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



"Припоминается, …, что каждый МК указанной марки хранит в ПЗУ для загрузчика BSL некий номер, уникальный для данного МК."

Я привел из документации, что это за номер такой требуется BSL, это раз;
"серийного" номера проца на борту проца нет, это два;
есть некая TLV Structure с калибровочными данными, они должны по идее быть уникальными, но… короче, тут вам думать, это три.


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
d7d1cd
сообщение Aug 19 2015, 08:01
Сообщение #5


Местный
***

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



Цитата(Obam @ Aug 19 2015, 10:42) *
Я привел из документации, что это за номер такой требуется BSL, это раз;

Этот номер - таблица векторов прерываний. Он пароль для BSL. Мне он не подходит.

Цитата(Obam @ Aug 19 2015, 10:42) *
"серийного" номера проца на борту проца нет, это два;

Это плохо...

Цитата(Obam @ Aug 19 2015, 10:42) *
есть некая TLV Structure с калибровочными данными, они должны по идее быть уникальными, но… короче, тут вам думать, это три.

Уверен, что эта структура хранится в FLASH памяти. Ее можно скопировать. Значит тоже не подходит.

Буду, наверное, использовать внешнюю память.
Go to the top of the page
 
+Quote Post
k155la3
сообщение Aug 19 2015, 08:46
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



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


Go to the top of the page
 
+Quote Post
d7d1cd
сообщение Aug 19 2015, 08:51
Сообщение #7


Местный
***

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



Цитата(k155la3 @ Aug 19 2015, 11:46) *
вместо внешней памяти использовать недорогой микроконтроллер, подключаемый по SPI или I2C.
Протокол свой-чужой - подобный методе лицензирования IAR через интернет.
Т.е. основной контроллер пытается получить у "держателя лицензий" разрешение на работу.

Устройства с МК, для которых надо защитить программу, уже выпущены. В них нельзя добавить что-то.
Go to the top of the page
 
+Quote Post
k155la3
сообщение Aug 19 2015, 09:01
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Ага, тогда понятно. У меня аналогичная ситуация, которая решилась пережигом JTAG и дальнейшей работой с BSL.
Если надо не защита, а примитивное ограничение доступа - прописывайте в INFO-сегменты серийные номера, хеши-CRC.
Делайте "индивидуальные" прошивки для каждого девайса.
Go to the top of the page
 
+Quote Post
d7d1cd
сообщение Aug 19 2015, 11:23
Сообщение #9


Местный
***

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



Цитата(k155la3 @ Aug 19 2015, 12:01) *
Ага, тогда понятно. У меня аналогичная ситуация, которая решилась пережигом JTAG и дальнейшей работой с BSL.
Если надо не защита, а примитивное ограничение доступа - прописывайте в INFO-сегменты серийные номера, хеши-CRC.
Делайте "индивидуальные" прошивки для каждого девайса.

Вот как раз сделать "индивидуальные" прошивки для каждого девайса мне и нужно. Однако эту прошивку я не сам буду заливать в МК. Но в то же время в моих интересах сделать так, чтобы эта прошивка работала только в одном устройстве. В противном случае, человек один раз купит у меня прошивку и будет заливать ее в такое количество устройств, какое захочет.
Ваш совет о прописывании в INFO-сегменты серийных номеров, как я понимаю, тут применить нельзя. В устройствах, для которых пишется программа, есть микросхема памяти, а так же микросхема-драйвер ЖК дисплея. Сейчас я думаю, как можно использовать эти устройства для решения моей задачи.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Aug 19 2015, 11:38
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(d7d1cd @ Aug 19 2015, 14:23) *
как можно использовать эти устройства для решения моей задачи.

А я думаю, что если Вы сами будете заливать прошивку дистанционно, то это шанс...
Go to the top of the page
 
+Quote Post
d7d1cd
сообщение Aug 19 2015, 11:41
Сообщение #11


Местный
***

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



Цитата(Tanya @ Aug 19 2015, 14:38) *
А я думаю, что если Вы сами будете заливать прошивку дистанционно, то это шанс...

Так так... Как залить дистанционно? Team Viewer?
Go to the top of the page
 
+Quote Post
Abell
сообщение Aug 19 2015, 11:43
Сообщение #12


профессиональный дилетант
****

Группа: Участник
Сообщений: 866
Регистрация: 16-03-06
Из: Шебекино - Лысьва - Тюмень
Пользователь №: 15 292



Цитата(d7d1cd @ Aug 19 2015, 14:23) *
Вот как раз сделать "индивидуальные" прошивки для каждого девайса мне и нужно. Однако эту прошивку я не сам буду заливать в МК.

Прошивка - в Ваших руках, все железо - в руках другого человека, правильно понял?
Вот чего не понял - каким образом, не зная серийников железа, вставить их в прошивку?


--------------------
Скоро дело сказывается, да не скоро сказка делается, или тише будешь - дальше уедешь...

Go to the top of the page
 
+Quote Post
d7d1cd
сообщение Aug 19 2015, 11:52
Сообщение #13


Местный
***

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



Цитата(Abell @ Aug 19 2015, 14:43) *
Прошивка - в Ваших руках, все железо - в руках другого человека, правильно понял?

Все правильно.

Цитата(Abell @ Aug 19 2015, 14:43) *
Вот чего не понял - каким образом, не зная серийников железа, вставить их в прошивку?

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

Go to the top of the page
 
+Quote Post
Tanya
сообщение Aug 19 2015, 12:00
Сообщение #14


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(d7d1cd @ Aug 19 2015, 14:41) *
Так так... Как залить дистанционно? Team Viewer?

Только принцип... Ваш недруг должен поставить на машине UNIX, который Вы закажете, и дать Вам пароль суперпользователя. Как с Винд* - не знаю.
Go to the top of the page
 
+Quote Post
d7d1cd
сообщение Aug 19 2015, 12:06
Сообщение #15


Местный
***

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



Цитата(Tanya @ Aug 19 2015, 15:00) *
Только принцип... Ваш недруг должен поставить на машине UNIX, который Вы закажете, и дать Вам пароль суперпользователя. Как с Винд* - не знаю.

Хорошо, дистанционный доступ есть. Я должен буду залить прошивку и прожечь JTAG. И никакой защиты мудить мудрить не надо. Верно?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th June 2025 - 14:39
Рейтинг@Mail.ru


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