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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Шифрование прошивки, кто что использует
toweroff
сообщение Aug 18 2011, 19:14
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



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

Спасибо
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Aug 18 2011, 19:36
Сообщение #2


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(toweroff @ Aug 18 2011, 23:14) *
Добрый день!
Есть бут, который принимает прошивку и пишет во внутреннюю флеш
Соответственно, хочется ее зашифровать
Кто что использует для этого и насколько эффективны и сложны в реализации разные методы?

Спасибо

А как сам проц будет выполнять зашифрованный код? laughing.gif Как Вы это себе представляете на аппаратном уровне - он же сам расшифровывать вроде как не умеет , по причине полной тупизны?


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
toweroff
сообщение Aug 18 2011, 19:54
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(ILYAUL @ Aug 18 2011, 23:36) *
А как сам проц будет выполнять зашифрованный код? laughing.gif Как Вы это себе представляете на аппаратном уровне - он же сам расшифровывать вроде как не умеет , по причине полной тупизны?

наверное, я не совсем ясно выразил мысль sm.gif
конечно, "на лету" ничего расшифровываться не будет
буту скармливается зашифрованная прошивка, которую он расшифровывает и записывает во флеш, после чего передает по известному адресу управление
Go to the top of the page
 
+Quote Post
yashok
сообщение Aug 19 2011, 05:21
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 31-08-10
Из: Минск-Витебск
Пользователь №: 59 203



Я шифрую по алгоритму Triple DES (3DES). При заливке на ходу расшифровывается и пишется во флэш. Процы из серии lpc 17xx с прошивкой ~500 kB прошиваются чуть меньше чем за 6 мин.
Вся эта защита необходимо если перепрошивкой занимается конечный пользователь.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Aug 19 2011, 06:22
Сообщение #5


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(toweroff @ Aug 18 2011, 22:54) *
наверное, я не совсем ясно выразил мысль sm.gif
конечно, "на лету" ничего расшифровываться не будет
буту скармливается зашифрованная прошивка, которую он расшифровывает и записывает во флеш, после чего передает по известному адресу управление


Лучше сжать, а потом зашифровать. И зашифровать в режиме CBC по 3DES или AES. В начало вставить блок случайных данных. Потом все подписать хешем по SHA1.
На STM32F2 это все делается особо просто.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Aug 19 2011, 07:25
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



у меня LPC2929
со сжатием интересно, спасибо за совет
единственное - памяти на борту только внутренняя контроллера, часть которой использутся под буферы
хватит оставшихся 16-20 кб на распаковку и дешифрацию?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Aug 19 2011, 07:48
Сообщение #7


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(toweroff @ Aug 19 2011, 10:25) *
у меня LPC2929
со сжатием интересно, спасибо за совет
единственное - памяти на борту только внутренняя контроллера, часть которой использутся под буферы
хватит оставшихся 16-20 кб на распаковку и дешифрацию?


16 кБ это разве что на RLE алгоритм хватит.
Можно конечно в алгоритмах сжатия регулировать требуемый объем памяти.
Но для сжатия хотя бы в два раза бинарной прошивки объемом в пару сотен килобайт LZ подобным алгоритмом нужно минимум 64 Кб RAM.

Go to the top of the page
 
+Quote Post
Tanya
сообщение Aug 19 2011, 07:56
Сообщение #8


Гуру
******

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



Цитата(AlexandrY @ Aug 19 2011, 11:48) *
Но для сжатия хотя бы в два раза бинарной прошивки объемом в пару сотен килобайт LZ подобным алгоритмом нужно минимум 64 Кб RAM.

А кусками?
Go to the top of the page
 
+Quote Post
=AK=
сообщение Aug 19 2011, 08:13
Сообщение #9


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(toweroff @ Aug 19 2011, 16:55) *
хватит оставшихся 16-20 кб на распаковку и дешифрацию?

Используйте XTEA, ему совсем мало места надо.

А если хочется, чтобы и просто, и быстро, то сделайте простой потоковый шифр на 32-битном LFSR. Для практики этого будет более чем достаточно, имхо.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Aug 19 2011, 08:15
Сообщение #10


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Tanya @ Aug 19 2011, 10:56) *
А кусками?


Ну так уменьшение heap-а в LZ алгоритмах это и есть фрагментация процесса сжатия. Она и ухудшает показатель сжатия.

Есть алгоритм UCL который как утверждается не требует памяти на декомпрессию.
Но не пробовал.

Цитата(=AK= @ Aug 19 2011, 11:13) *
А если хочется, чтобы и просто, и быстро, то сделайте простой потоковый шифр на 32-битном LFSR. Для практики этого будет более чем достаточно, имхо.


RC4 будет быстрее чем LFSR. А применяется в серьезных технологиях VPN.
Go to the top of the page
 
+Quote Post
=AK=
сообщение Aug 19 2011, 08:23
Сообщение #11


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(AlexandrY @ Aug 19 2011, 17:45) *
RC4 будет быстрее чем LFSR.

Мне это неочевидно. Всегда думал, что самый простой и эффективный цифровой генератор псевдобелого шума - это LFSR

Цитата(AlexandrY @ Aug 19 2011, 17:45) *
А применяется в серьезных технологиях VPN.

Там оправдано, более того - необходимо применение более сложных алгоритмов, чем простейший LFSR.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Aug 19 2011, 08:35
Сообщение #12


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(=AK= @ Aug 19 2011, 11:23) *
Мне это неочевидно. Всегда думал, что самый простой и эффективный цифровой генератор псевдобелого шума - это LFSR


Нелинейный LFSR применяют в автомобильных радиобрелках, как известно, и в донглах типа eToken, где предельно мало RAM-а.
Но прокручивать там этот регистр приходится сотни раз! для одного сэмпла.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Aug 19 2011, 08:37
Сообщение #13


Гуру
******

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



Цитата(AlexandrY @ Aug 19 2011, 12:15) *
Ну так уменьшение heap-а в LZ алгоритмах это и есть фрагментация процесса сжатия. Она и ухудшает показатель сжатия.

Мне вот кажется, что прошивки мало отличаются одна от другой...
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Aug 19 2011, 08:58
Сообщение #14


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Tanya @ Aug 19 2011, 11:37) *
Мне вот кажется, что прошивки мало отличаются одна от другой...


В серьезных прошивках большая часть это ресурсы. Тексты, отладочная информация, шрифты, таблицы, звуки, файловые структуры... Совершенно разнородная информация.
Отличаться есть чем, хотя не понял к чему это утверждение в данном контексте.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Aug 19 2011, 09:09
Сообщение #15


Гуру
******

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



Цитата(AlexandrY @ Aug 19 2011, 12:58) *
В серьезных прошивках большая часть это ресурсы. Тексты, отладочная информация, шрифты, таблицы, звуки, файловые структуры... Совершенно разнородная информация.
Отличаться есть чем, хотя не понял к чему это утверждение в данном контексте.

Я имела в виду возможность использования одного и того же дерева. Кроме всего прочего, можно же менять (даже двигать) куски (фрагменты).
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 Текстовая версия Сейчас: 18th July 2025 - 08:22
Рейтинг@Mail.ru


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