Защита софта в ARM

Здравствуйте, Уважаемый All!

Задача такая. Hа ARM-мо подобном кристалле с FLASH на борту делается девайс, в который юзер может загружать свои приложения. При этом он пользуется, назовем это OS, резидентно размещенной в сегменте FLASH. OS занимается не только загрузкой кодов юзера, но многим еще очень ценным общего пользования. Хочется защитить эту OS от нелицензированного сдира. Как я понимаю, для ARM-ой архтектуры это сделать невозможно, если позволяешь юзеру грузить произвольные приложения. Как народ выкручивается в таких случаях с ARM-ами?

Всего Вам Хорошего Ольга

Reply to
Olga Nonova
Loading thread data ...

Если в теории, то ARM потянет какой-нибудь интерпретатор.

Reply to
Kirill Frolov

Wed Nov 29 2006 17:52, Olga Nonova wrote to All:

ON> From: "Olga Nonova" snipped-for-privacy@starline.ee

ON> Здравствуйте, Уважаемый All!

ON> Задача такая. Hа ARM-мо подобном кристалле с FLASH на борту делается ON> девайс, в который юзер может загружать свои приложения. При этом он ON> пользуется, назовем это OS, резидентно размещенной в сегменте FLASH. OS ON> занимается не только загрузкой кодов юзера, но многим еще очень ценным ON> общего пользования. Хочется защитить эту OS от нелицензированного сдира. ON> Как я понимаю, для ARM-ой архтектуры это сделать невозможно, если ON> позволяешь юзеру грузить произвольные приложения. Как народ выкручивается ON> в таких случаях с ARM-ами?

ON> Всего Вам Хорошего ON> Ольга

Взяли RISC-ядро, залили его в LatticeXP и добавили между контроллерами SDRAM и Flash памяти и внешней шиной шифрацию в реальном времени... Ах да, MAC-PHY

10/100 Ethernet + USB device стоят снаружи. Фото платы могу прислать.

С уважением, Дмитрий

Reply to
Dmitry

Привет, Olga !

29 Nov 06 , 18:52 Olga Nonova писал к All:

ON> Задача такая. Hа ARM-мо подобном кристалле с FLASH на борту делается ON> девайс, в который юзер может загружать свои приложения. При этом он ON> пользуется, назовем это OS, резидентно размещенной в сегменте FLASH. ON> OS занимается не только загрузкой кодов юзера, но многим еще очень ON> ценным общего пользования. Хочется защитить эту OS от ON> нелицензированного сдира. Как я понимаю, для ARM-ой архтектуры это ON> сделать невозможно, если позволяешь юзеру грузить ON> произвольные приложения. Как народ выкручивается в таких случаях с ON> ARM-ами?

Ставим линух и не нарушаем лицензию на ось.

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... врожденная идиосинкразия к синтаксису...

Reply to
Nickita A Startcev

Здравствуйте, Уважаемый Dmitry!

Wed Nov 29 2006 21:24, Dmitry wrote to Olga Nonova:

ON>> общего пользования. Хочется защитить эту OS от нелицензированного сдира. ON>> Как я понимаю, для ARM-ой архтектуры это сделать невозможно, если ON>> позволяешь юзеру грузить произвольные приложения. Как народ ON>> выкручивается в таких случаях с ARM-ами?

D> Взяли RISC-ядро, залили его в LatticeXP и добавили между контроллерами D> SDRAM и Flash памяти и внешней шиной шифрацию в реальном времени... Ах да, D> MAC-PHY 10/100 Ethernet + USB device стоят снаружи. Фото платы могу D> прислать.

Спасибо за инфу, но в моем случае предполагается использовать простой однокритальный вариант = LPC c FLASH и SRAM на борту.

Всего Вам Хорошего Ольга

Reply to
Olga Nonova

Здравствуйте, Уважаемый Kirill!

Wed Nov 29 2006 20:11, Kirill Frolov wrote to Olga Nonova:

KF> Если в теории, то ARM потянет какой-нибудь интерпретатор.

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

Всего Вам Хорошего Ольга

Reply to
Olga Nonova

Thu Nov 30 2006 09:59, Olga Nonova wrote to Dmitry:

ON> From: "Olga Nonova" snipped-for-privacy@starline.ee

ON> Здравствуйте, Уважаемый Dmitry!

ON> Wed Nov 29 2006 21:24, Dmitry wrote to Olga Nonova:

ON>>> общего пользования. Хочется защитить эту OS от нелицензированного ON>>> сдира. Как я понимаю, для ARM-ой архтектуры это сделать невозможно, ON>>> если позволяешь юзеру грузить произвольные приложения. Как народ ON>>> выкручивается в таких случаях с ARM-ами?

D>> Взяли RISC-ядро, залили его в LatticeXP и добавили между контроллерами D>> SDRAM и Flash памяти и внешней шиной шифрацию в реальном времени... Ах D>> да, MAC-PHY 10/100 Ethernet + USB device стоят снаружи. Фото платы могу D>> прислать.

ON> Спасибо за инфу, но в моем случае предполагается использовать простой ON> однокритальный вариант = LPC c FLASH и SRAM на борту.

P.S. Sorry, сразу не вспомнил, Lattice выложил у себя бесплатную RISC-кору. Раньше брали на

formatting link
и дорабатывали немного сами

С уважением, Дмитрий

Reply to
Dmitry

Приветствую категорически!

Thu Nov 30 2006 09:59, Olga Nonova wrote to Dmitry:

ON> Спасибо за инфу, но в моем случае предполагается использовать простой ON> однокритальный вариант = LPC c FLASH и SRAM на борту.

Вот, попалось в интернете:

"Ядро ARM7TDMI-S 60 MHz (54 Drystone MIPS). От 128 до 256 Kбайт self-writable Flash. В некоторых кристаллах нет защиты от копирования." Делаем вывод, что в некоторых кристаллах есть защита от копирования? Думаю, проще всего ее использовать.

С уважением,

Alexandr Naumov (

formatting link
)

Reply to
Alexandr Naumov

Здравствуйте, Уважаемый Alexandr!

Thu Nov 30 2006 15:12, Alexandr Naumov wrote to Olga Nonova:

ON>> Спасибо за инфу, но в моем случае предполагается использовать простой ON>> однокритальный вариант = LPC c FLASH и SRAM на борту.

AN> Вот, попалось в интернете:

AN> "Ядро ARM7TDMI-S 60 MHz (54 Drystone MIPS). AN> От 128 до 256 Kбайт self-writable Flash. В некоторых кристаллах нет AN> защиты от копирования." AN> AN> Делаем вывод, что в некоторых кристаллах есть защита от копирования? AN> Думаю, проще всего ее использовать.

Верно, таких кристаллов много. Hо защита от копирования там работает в одном единственном случае- если не позволено пользователю загружать на исполнение ЛЮБЫЕ приложения. А в моем случае- пожалуйста. Значит, неодолимо возникнет желание загрузить приложение, которое изнутри прочтет и выгрузит содержимое якобы защищенной флэш. Вся проблема-то в этом.

Всего Вам Хорошего Ольга

Reply to
Olga Nonova

Привет!

Wed Nov 29 2006 17:52, Olga Nonova wrote to All:

ON> Задача такая. Hа ARM-мо подобном кристалле с FLASH на борту ON> делается девайс, в который юзер может загружать свои приложения.

Все. Дальше не надо. Если система команд позволяет читать байты из области исполняемого кода, то ничего сделать нельзя. Есть только два варианта защиты для этого случая: отдельный кристалл для юзеровских программок или сложный процессор с серьезным управлением памятью (типа, этот код выполнять можно, а прочитать нельзя). Hасколько я знаю, второе в ARM-ах отсутствует. Значит первое. Или не морочить себе голову: пусть сдирают :-) Вливайтесь в славные ряды опенсорс!

Юргис

Reply to
Jurgis Armanavichius

Приветствую категорически! Thu Nov 30 2006 18:54, Olga Nonova wrote to Alexandr Naumov:

AN>> "Ядро ARM7TDMI-S 60 MHz (54 Drystone MIPS).

AN>> Делаем вывод, что в некоторых кристаллах есть защита от копирования? AN>> Думаю, проще всего ее использовать.

ON> Верно, таких кристаллов много. Hо защита от копирования там работает в ON> одном единственном случае- если не позволено пользователю загружать на ON> исполнение ЛЮБЫЕ приложения. А в моем случае- пожалуйста. Значит, ON> неодолимо возникнет желание загрузить приложение, которое изнутри прочтет ON> и выгрузит содержимое якобы защищенной флэш. Вся проблема-то в этом.

Странно... Например, в TMS320F2812 без пароля (128 бит) невозможно прочитать FLASH даже изнутри - если я правильно понял тех. описание. (Ибо на практике этот режим не применял).

С уважением, Наумов А.А. (

formatting link
)

Reply to
Alexandr Naumov

Здравствуйте, Уважаемый Jurgis!

Fri Dec 01 2006 08:35, Jurgis Armanavichius wrote to Olga Nonova:

ON>> Задача такая. Hа ARM-мо подобном кристалле с FLASH на борту ON>> делается девайс, в который юзер может загружать свои приложения.

JA> Все. Дальше не надо. Если система команд позволяет читать байты JA> из области исполняемого кода, то ничего сделать нельзя. Есть только JA> два варианта защиты для этого случая: отдельный кристалл для юзеровских JA> программок

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

JA> или сложный процессор с серьезным управлением памятью (типа, JA> этот код выполнять можно, а прочитать нельзя). Hасколько я знаю, второе JA> в ARM-ах отсутствует.

Присутствует. Это штатный сопроцессор V14 в составе ARM. Он реализует встроенный ICE и порт отладки через JTAG. В нем как раз можно установить точки контроля над областями памяти с выдачей ексепшенов. Однако, как управлять этим v14 через JTAG- известно. А как им управлять из ядра ARMA- неизвестно. По описанию вроде можно, но где взять инструкции и их формат?

JA> Или не морочить себе голову: пусть JA> сдирают :-) Вливайтесь в славные ряды опенсорс!

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

Всего Вам Хорошего Ольга

Reply to
Olga Nonova

Здравствуйте, Уважаемый Alexandr!

Fri Dec 01 2006 10:40, Alexandr Naumov wrote to Olga Nonova:

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

AN> Странно... Hапример, в TMS320F2812 без пароля (128 бит) невозможно AN> прочитать FLASH даже изнутри - если я правильно понял тех. описание. (Ибо AN> на практике этот режим не применял).

Спасибо за ссылку, но это DSP. Я же веду речь про небольшие микроконтроллеры общего пользования на базе ядра ARM. Hапример, LPC2136/8.

Reply to
Olga Nonova

Пpиветствую, Dmitry!

D> P.S. Sorry, сразу не вспомнил, Lattice выложил у себя бесплатную D> RISC-кору. LatticeMico32 ? Это разве ARM ? D> Раньше брали на

formatting link
и дорабатывали немного сами А что брали ? Законченного ARM там нет, есть только одна бетка.

Michael Tulupov ...

Reply to
Michael Tulupov

Hello, Olga! You wrote to Jurgis Armanavichius on Fri, 01 Dec 2006 15:12:45

+0500:

ON> Fri Dec 01 2006 08:35, Jurgis Armanavichius wrote to Olga ON> Nonova: JA>> Или не морочить себе голову: пусть JA>> сдирают :-) Вливайтесь в славные ряды опенсорс! ON> Hе-е, я уже многократно "стрелянный воробей". Теперь, прежде ON> чем что-то делать, всегда думаю- как сохранить. ИМХО эти страхи сильно преувеличены. При маломальски стоящем изделии (а чего ради коприровать "нестоящие") слишком велик риск, что потратився на механику и пр. всё это не заработает, потребуется корректировка программы, или там, обнаружится ошибка... И что тогда передравшему делать? Массовое производство - это другой разговор, но тут обсуждался, как я понимаю, не такой случай.

With best regards, Andrej Arnold. E-mail: snipped-for-privacy@aol.com

Reply to
Andrej Arnold

Здравствуйте, Уважаемый Andrej!

Fri Dec 01 2006 18:45, Andrej Arnold wrote to Olga Nonova:

ON>> ...чем что-то делать, всегда думаю- как сохранить.

AA> ИМХО эти страхи сильно преувеличены. AA> При маломальски стоящем изделии (а чего ради коприровать AA> "нестоящие") AA> слишком велик риск, что потратився на механику и пр. всё это не AA> заработает, AA> потребуется корректировка программы, или там, обнаружится AA> ошибка... AA> И что тогда передравшему делать? AA> Массовое производство - это другой разговор, но тут обсуждался, AA> как я понимаю, AA> не такой случай.

Да, не массовое производство. Однако, вероятность сдира весьма велика. Обьясню почему. Речь идет о модуле общего пользования для встраивания в аппаратуру. Механически он чрезвычайно прост- один кристалл кварц. Hо, в нем сидит полезный софт, оригинальные библиотеки. Вопрос- зачем покупать эти готовые модули и, тем самым, оплачивать труд по созданию оригинального софта, если ничего не стоит самому спаять подобную вещь, содрать содержимое флэш и растиражировать? Иными словами, в данном изделии самое ценное - это софт в виде библиотек. Как защищают авторские права на библиотеки?

Всего Вам Хорошего Ольга

Reply to
Olga Nonova

Привет!

Fri Dec 01 2006 14:12, Olga Nonova wrote to Jurgis Armanavichius:

ON>>> Задача такая. Hа ARM-мо подобном кристалле с FLASH на борту ON>>> делается девайс, в который юзер может загружать свои приложения. JA>> Все. Дальше не надо. Если система команд позволяет читать байты JA>> из области исполняемого кода, то ничего сделать нельзя. Есть JA>> только два варианта защиты для этого случая: отдельный кристалл JA>> для юзеровских программок ON> Отдельный кристалл конечно выход, но обмен с ним притормозит ON> приложения юзера.

Hу... Это очень сильно зависит от организации обмена, от уровня абстракции. Это как в X Window: можно передавать прямо графический вид экрана, а можно только команды GUI, которые занимают на несколько порядков меньше места. Определите для пользовательских приложений грамотное API - и ваши беды исчезнут сами собой :-)

ON> Да и характер решаемых задач не позволяет выделить отдельный участок ON> деятельности такому сопроцессору.

Это - серьезно. Тут, конечно, помозговать нужно... Однако, я не думаю, что нельзя определить некоторый конечный набор команд, который полностью закроет решение задачи и вместе с тем защитит ваше Hетленное :-)

JA>> или сложный процессор с серьезным управлением памятью (типа, JA>> этот код выполнять можно, а прочитать нельзя). Hасколько я знаю, JA>> второе в ARM-ах отсутствует. ON> Присутствует. Это штатный сопроцессор V14 в составе ARM. Он реализует ON> встроенный ICE и порт отладки через JTAG. В нем как раз можно установить ON> точки контроля над областями памяти с выдачей ексепшенов. Однако, как ON> управлять этим v14 через JTAG- известно. А как им управлять из ядра ON> ARMA- неизвестно. По описанию вроде можно, но где взять инструкции и ON> их формат?

Круто! Тогда RTFM, RTFM, RTFM...

JA>> Или не морочить себе голову: пусть JA>> сдирают :-) Вливайтесь в славные ряды опенсорс! ON> Hе-е, я уже многократно "стрелянный воробей". Теперь, прежде чем что-то ON> делать, всегда думаю- как сохранить. Сами знаете, в какой стране живем.

Hе нравится вам опенсорс... Зря...

:-)

Юргис

Reply to
Jurgis Armanavichius

Сколько стоит заниматься дизассемблированием? Вот в АОН Русь старых версий тоже ПЗУ копировалось обычным программатором. Только потом не работало...

Reply to
Kirill Frolov

Да этот ваш люлих, поделки финских студентов...

Reply to
Kirill Frolov

Fri Dec 01 2006 17:29, Michael Tulupov wrote to Dmitry:

MT> Пpиветствую, Dmitry!

D>> P.S. Sorry, сразу не вспомнил, Lattice выложил у себя бесплатную D>> RISC-кору.

MT> LatticeMico32 ? Это разве ARM ? MT>

D>> Раньше брали на

formatting link
и дорабатывали немного сами

MT> А что брали ? Законченного ARM там нет, есть только одна бетка.

Речь шла о RISC-core. Про ARM не упоминал. На opencores брали тоже обрезанный по адресам RISC и дорабатывали сами.

С уважением, Дмитрий

Reply to
Dmitry

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.