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

|
Привет всем! Мне необходимо написать свою программу для устройства на МК MSP430F249 так, чтобы она работала только в данном конкретном устройстве. Подскажите, как это можно сделать? Получается, что программе надо каким то образом идентифицировать МК, в котором она выполняется, на признак "свой" или "чужой" (если "чужой", то прекратить работу). Припоминается, что где-то я читал информацию о том, что каждый МК указанной марки хранит в ПЗУ для загрузчика BSL некий номер, уникальный для данного МК. Или я это выдумал?.. Есть ли нечто подобное в указанных МК?
P.S. Прожиг фьюза JTAG не предлагать, ибо программирование устройства будет делать другой человек, который заинтересован в использовании программы на нескольких устройствах (а я против этого). И еще: я понимаю, что любую защиту можно взломать, поэтому прошу не указывать на это и не говорить, что все попытки данной защиты бесполезны.
|
|
|
|
|
Aug 19 2015, 06:56
|
Местный
  
Группа: Участник
Сообщений: 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ом вычитывается вся память. Видимо Вы не поняли постановки задачи (почитайте первый пост внимательно). Мне необходимо сделать так, чтобы программа выполнялась только в конкретном МК. При ее загрузке в другой МК, программа "понимает", что она в "чужом" МК и прекращает свое выполнение (пустой бесконечный цикл, например). Вопрос в том, как сделать идентификацию, что МК "свой". Если бы в каждом МК был уникальный номер, то это было бы легко сделать (или такой номер есть в МК?). Есть еще идея как-то использовать микросхемы памяти, подключенные к МК (может быть в них есть что-то уникальное), но пока не знаю как. Есть ли какие-то сображения по этому вопросу?
|
|
|
|
|
Aug 19 2015, 07:42
|

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

|
"Припоминается, …, что каждый МК указанной марки хранит в ПЗУ для загрузчика BSL некий номер, уникальный для данного МК."
Я привел из документации, что это за номер такой требуется BSL, это раз; "серийного" номера проца на борту проца нет, это два; есть некая TLV Structure с калибровочными данными, они должны по идее быть уникальными, но… короче, тут вам думать, это три.
--------------------
Пролетарий умственного труда.
|
|
|
|
|
Aug 19 2015, 08:01
|
Местный
  
Группа: Участник
Сообщений: 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 памяти. Ее можно скопировать. Значит тоже не подходит. Буду, наверное, использовать внешнюю память.
|
|
|
|
|
Aug 19 2015, 08:51
|
Местный
  
Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199

|
Цитата(k155la3 @ Aug 19 2015, 11:46)  вместо внешней памяти использовать недорогой микроконтроллер, подключаемый по SPI или I2C. Протокол свой-чужой - подобный методе лицензирования IAR через интернет. Т.е. основной контроллер пытается получить у "держателя лицензий" разрешение на работу. Устройства с МК, для которых надо защитить программу, уже выпущены. В них нельзя добавить что-то.
|
|
|
|
|
Aug 19 2015, 11:23
|
Местный
  
Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199

|
Цитата(k155la3 @ Aug 19 2015, 12:01)  Ага, тогда понятно. У меня аналогичная ситуация, которая решилась пережигом JTAG и дальнейшей работой с BSL. Если надо не защита, а примитивное ограничение доступа - прописывайте в INFO-сегменты серийные номера, хеши-CRC. Делайте "индивидуальные" прошивки для каждого девайса. Вот как раз сделать "индивидуальные" прошивки для каждого девайса мне и нужно. Однако эту прошивку я не сам буду заливать в МК. Но в то же время в моих интересах сделать так, чтобы эта прошивка работала только в одном устройстве. В противном случае, человек один раз купит у меня прошивку и будет заливать ее в такое количество устройств, какое захочет. Ваш совет о прописывании в INFO-сегменты серийных номеров, как я понимаю, тут применить нельзя. В устройствах, для которых пишется программа, есть микросхема памяти, а так же микросхема-драйвер ЖК дисплея. Сейчас я думаю, как можно использовать эти устройства для решения моей задачи.
|
|
|
|
|
Aug 19 2015, 11:41
|
Местный
  
Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199

|
Цитата(Tanya @ Aug 19 2015, 14:38)  А я думаю, что если Вы сами будете заливать прошивку дистанционно, то это шанс... Так так... Как залить дистанционно? Team Viewer?
|
|
|
|
|
Aug 19 2015, 11:52
|
Местный
  
Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199

|
Цитата(Abell @ Aug 19 2015, 14:43)  Прошивка - в Ваших руках, все железо - в руках другого человека, правильно понял? Все правильно. Цитата(Abell @ Aug 19 2015, 14:43)  Вот чего не понял - каким образом, не зная серийников железа, вставить их в прошивку? Устройства могут обмениваться информацией с компьютером. Сначала необходимо отправить заказчику прошивку, которая по запросу с компьютера выдаст серийник железа. Программа на компьютере сохранит его в файле, заказчик пришлет файл мне. Я на основе этого серийника сделаю итоговую прошивку и вышлю заказчику. Как то так...
|
|
|
|
|
Aug 19 2015, 12:06
|
Местный
  
Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199

|
Цитата(Tanya @ Aug 19 2015, 15:00)  Только принцип... Ваш недруг должен поставить на машине UNIX, который Вы закажете, и дать Вам пароль суперпользователя. Как с Винд* - не знаю. Хорошо, дистанционный доступ есть. Я должен буду залить прошивку и прожечь JTAG. И никакой защиты мудить мудрить не надо. Верно?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|