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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Защита программ и Bootloader-ы, О дырах в защите
aforestman
сообщение Feb 17 2006, 08:48
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 3-05-05
Пользователь №: 4 696



Защита программ для многих является темой актуальной и производители охотно идут на встречу разработчикам. Они же (производители) пытаясь облегчить нам жизнь придумывают всякие ISP, Bootloader-ы и прочее. Но это все программы, а следовательно они потенциально опасны. Конечно Bootloder не Windows - много не наворочаешь, но и в паре килобайт кода могут поджидать неприятные сюрпризы:
1. Недокументированные вызовы
2. Функции без контроля входных параметров
3. Просто ляпы (ну это уже совсем маловероятно)

По работе больше приходится сталкиваться в основном с 51 кристаллами, однако проблема на мой взгляд присуща всем семействам.
К сожалению за примерами далеко ходить не пришлось.

1. Phillips P89LPC922 (Просто предупреждение)
Bootloader содержит недокументированный вызов, позволяющий прочитать содержимое незащищенного кристалла. Фишка в том, что это нельзя сделать с помощью программатора (верификация не поддерживается).
К чести Philips надо сказать, что хорошо документированный исходник выложен у них на сайте, а сам Bootloader можно легко заменить.

2. Atmel AT89C51ED2 (Жалко тех, кто его использует)
Bootloader зашит в ПЗУ и имеет дыру, позволяющую его же средствами обойти защиту любого уровня. Причем, учитывая специфику кода, можно утвеждать что данную дыру имеют все кристаллы семейства AT89C51XX2.

К чему это я все.
Хотелось бы знать насколько серьезно по Вашему мнению следует относиться к теме защиты вообще, и следует ли тратить дополнительные время и средства на изучение устойчивости системы к взлому?
Go to the top of the page
 
+Quote Post
acex2
сообщение Feb 17 2006, 10:14
Сообщение #2


Адепт
****

Группа: Свой
Сообщений: 520
Регистрация: 15-02-05
Пользователь №: 2 656



Цитата(aforestman @ Feb 17 2006, 05:48) *
2. Atmel AT89C51ED2 (Жалко тех, кто его использует)
Bootloader зашит в ПЗУ и имеет дыру, позволяющую его же средствами обойти защиту любого уровня. Причем, учитывая специфику кода, можно утвеждать что данную дыру имеют все кристаллы семейства AT89C51XX2.


А можно поподробнее вот про эту дырку?
Go to the top of the page
 
+Quote Post
Кнкн
сообщение Feb 17 2006, 10:22
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 646
Регистрация: 21-06-04
Пользователь №: 71



Цитата(acex2 @ Feb 17 2006, 13:14) *
Цитата(aforestman @ Feb 17 2006, 05:48) *

2. Atmel AT89C51ED2 (Жалко тех, кто его использует)
Bootloader зашит в ПЗУ и имеет дыру, позволяющую его же средствами обойти защиту любого уровня. Причем, учитывая специфику кода, можно утвеждать что данную дыру имеют все кристаллы семейства AT89C51XX2.


А можно поподробнее вот про эту дырку?


Мне тоже интересно.
Go to the top of the page
 
+Quote Post
VslavX
сообщение Feb 17 2006, 11:19
Сообщение #4


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



MSP430 с загрузчиком версии 1.10 и младше тоже имеет дыру в безопасности из-за глюка. Поэтому мы в свое время от них и отказались. Не знаю, сделал TI уже маску с v1.30 или все еще обещает?
Go to the top of the page
 
+Quote Post
aforestman
сообщение Feb 20 2006, 05:38
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 3-05-05
Пользователь №: 4 696



Цитата
А можно поподробнее вот про эту дырку?

Суть в том, что чтобы вы не прописали в биты LB0-LB2 HSB, всегда существует возможность перейти в Atmel-овский бутлоадер (речь идет о версии 1.0.0) и с его помощью прочитать содержимое флэша и EEPROM.
Письмо мы им отправили месяца полтора назад, обещали исправить, как водится, as soon as possible.
Go to the top of the page
 
+Quote Post
acex2
сообщение Feb 20 2006, 06:52
Сообщение #6


Адепт
****

Группа: Свой
Сообщений: 520
Регистрация: 15-02-05
Пользователь №: 2 656



Цитата(aforestman @ Feb 20 2006, 02:38) *
Суть в том, что чтобы вы не прописали в биты LB0-LB2 HSB, всегда существует возможность перейти в Atmel-овский бутлоадер (речь идет о версии 1.0.0) и с его помощью прочитать содержимое флэша и EEPROM.


Собственно, HSB и не должен защищать от доступа к флэш из ISP. Он защищает от доступа при помощи внешнего параллельного программатора.

Цитата
These security bits (HSB) protect the code access through the parallel programming interface. They are set by default to level 4. The code access through the ISP is still possible and is controlled by the "software security bits" which are stored in the extra Flash memory accessed by the ISP firmware.


Для блокировки ISP используется байт SSB.

Цитата
The SSB protects any Flash access from ISP command. The command "Program Software Security Bit" can only write a higher priority level. Only a full chip erase in parallel mode (using a programmer) or ISP command can reset the software security bits.
Go to the top of the page
 
+Quote Post
aforestman
сообщение Feb 20 2006, 09:31
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 3-05-05
Пользователь №: 4 696



Сильно извиняюсь за ошибку.
Вместо LB0-LB2 HSB следует читать LB0-LB1 SSB и далее по тексту.
Go to the top of the page
 
+Quote Post
acex2
сообщение Feb 21 2006, 15:51
Сообщение #8


Адепт
****

Группа: Свой
Сообщений: 520
Регистрация: 15-02-05
Пользователь №: 2 656



Цитата(aforestman @ Feb 20 2006, 06:31) *
Сильно извиняюсь за ошибку.
Вместо LB0-LB2 HSB следует читать LB0-LB1 SSB и далее по тексту.


Ну да, бутлоадер вызывается без проблем и при установленном SSB на уровень 2.
Но читать обратно из флеша не дает. По крайней мере, через Flip и утилитку от mcu.cz.
Причем последняя заведомо не проверяет значение SSB перед попыткой чтения.

Мы можете пошагово расписать всю процедуру чтения из флэша защищенного чипа?
Go to the top of the page
 
+Quote Post
aforestman
сообщение Feb 22 2006, 06:08
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 3-05-05
Пользователь №: 4 696



Цитата
Мы можете пошагово расписать всю процедуру чтения из флэша защищенного чипа?

Вот что мы отоправляли на Atmel (протокол терминального режима).
Код
We tried to use your device AT89C51ED2 in our PLC design but
found a serious problem with ISP Bootloader protection.
See description:

We set Level2 security using FLIP
:020000050700F2FC.
We cannot read
:050000040000002000D7L
We cannot write
:020000030400F7P
********** Then we type next commmand
:040000xxxxxxxxxxxx.
************************************
And now we can read code
:050000040000002000D7
0000=0208600220038E828F832202200BAE82
0010=AF8322022013742D01760002201B1176 0020=01
And we can write Flash
:020000030400F7.

xxx из гуманитарных соображений
Go to the top of the page
 
+Quote Post
max_
сообщение Feb 22 2006, 06:33
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 51
Регистрация: 21-07-04
Из: Таганрог
Пользователь №: 348



а можно поподробнее о Phillips P89LPC922,
я так думаю все семейство этим страдает (интерес в частности по 936)
Go to the top of the page
 
+Quote Post
aforestman
сообщение Feb 22 2006, 09:36
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 3-05-05
Пользователь №: 4 696



Цитата
а можно поподробнее о Phillips P89LPC922,
я так думаю все семейство этим страдает (интерес в частности по 936)

Эта фича действительно присуща всем кристаллам (метка DCMD: в исходниках), однако дырой ее назвать нельзя. Вот пример:
Код
Формат команды
:05000009XXXXYYYY00CC
    XXXX - с адреса
    YYYY - по адрес
    CC   - контрольная сумма

Дамп зашищенного блока
Вводим
:050000090000001F00D3
нажимаем любую клавишу и ничего не получаем
0000=00000000000000000000000000000000
0010=00000000000000000000000000000000

Дамп незашищенного блока
Вводим
:050000091F001F1F0095
нажимаем любую клавишу и получаем
1F00=C1037452D195EFF1F4E173AB33EB6014
1F10=AD30AC317F80740078FF7696C2D112FF


Мы обычно собираем все константы программы с адреса 0x1C00 (последний блок для 922) и оставляем этот блок, включая бутлоадер, открытым, а первые семь защищаем.
Кстати эта фича почему-то не описана в UM, хотя она очень удобна при отладке.

Для интересущихся пособие по матчасти

Прикрепленный файл  Adding_ISP_in_source_code.zip ( 187.08 килобайт ) Кол-во скачиваний: 279
Go to the top of the page
 
+Quote Post
yornik
сообщение Feb 27 2006, 23:01
Сообщение #12


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

Группа: Свой
Сообщений: 113
Регистрация: 21-10-04
Пользователь №: 952



Кто из этого топика убрал всю содержательную инфу о дырках в BSL-загрузчике v.1.10 MSP430?
Go to the top of the page
 
+Quote Post
KiV
сообщение Feb 28 2006, 08:02
Сообщение #13


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

Группа: Свой
Сообщений: 165
Регистрация: 18-06-04
Пользователь №: 56



Цитата(yornik @ Feb 28 2006, 03:01) *
Кто из этого топика убрал всю содержательную инфу о дырках в BSL-загрузчике v.1.10 MSP430?


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

"Слово не воробей..." Если кто-то сказал о том, что дыра существует, кто-то другой сможет ее найти. Ведь не представляет большого труда прочитать загрузчик, дизассемблировать и найти лазейку. Тем более если знать, ЧТО искать.

А вообще-то хотелось-бы услышать, ПОЧЕМУ были удалены посты.
Go to the top of the page
 
+Quote Post
rezident
сообщение Feb 28 2006, 12:50
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(KiV @ Feb 28 2006, 13:02) *
[А вообще-то хотелось-бы услышать, ПОЧЕМУ были удалены посты.

А вы не в курсе, что человек - хозяин своего слова? Захотел - дал, захотел - взял обратно biggrin.gif
Go to the top of the page
 
+Quote Post
ig_z
сообщение Feb 28 2006, 13:49
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 27-08-04
Пользователь №: 551



Цитата(KiV @ Feb 28 2006, 12:02) *
Цитата(yornik @ Feb 28 2006, 03:01) *

Кто из этого топика убрал всю содержательную инфу о дырках в BSL-загрузчике v.1.10 MSP430?


А вообще-то хотелось-бы услышать, ПОЧЕМУ были удалены посты.



Корневой топик на сахаре я прибил по просьбе собеседника.
Свои вопросы в этой конфе я убрал уже по личной инициативе, хотя там нет никакого криминала.
Кто убил начатую мной ветку в мсп430 конфе - я не в курсе, но подозреваю что это могут делать только модераторы.
Вопросы на сахаре и электрониксе я задал 22 февраля. До 25 обсуждение шло через пень колоду. Что произошло 26 я не знаю, а 27 все уже было кончено.
Go to the top of the page
 
+Quote Post

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

 


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


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