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

 
 
 
Reply to this topicStart new topic
> Вскрыть AES128_KEY и iv, Насколько реально?
toweroff
сообщение Sep 30 2014, 09:32
Сообщение #1


Гуру
******

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



Добрый день!

Сразу поясню - это не задача, а оценка возможности sm.gif

Ситуация следущая: есть устройство, для обновления (и проверки своей версии) может самостоятельно обращаться к хосту. Хост смотрит на заголовок от устройства (в котором передается информация о текущем состоянии, версии прошивки и т.д. + некая уникальная последовательность)
Если есть необходимость, хост отдает устройству блок данных, содержащий новую прошивку и ту самую уникальную последовательность. Бутлоадер устройства при перезапуске сверяет свою сохраненную последовательность с той, которая передана в последнем блоке данных. Если не совпадает - значит нужно эту прошивку записать как основную и сохранить уникальную последовательность
Сам блок данных шифруется AES128-CBC

Так вот вопрос - т.к., кроме заголовка с информацией и уникальной последовательностью, сама прошивка не меняется, можно ли, "прикидываясь" хосту подобным устройством (канал связи открытый), вскрыть ключ и начальный вектор?

Я понимаю, что, в общем-то, возможно все, интересуют скорее вероятности и умозрительные сроки подобной операции

(если не туда запостил, перенесите, пожалуйста, по адресу sm.gif )
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Sep 30 2014, 10:16
Сообщение #2


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(toweroff @ Sep 30 2014, 13:32) *
... это не задача, а оценка возможности sm.gif...


что такое кодирование - это сокрытие инфы, "с пониженным требованием к взаимодействующим узлам". у вас мк защищён (проблемы с вскрытием прошивки пока не рассматриваем). т.е.
помимо кодирования, вы можете опираться на защиту самих узлов. т.е. например в передаваемую инфу добавить мусор(к примеру) скажем как каждый 7 бит к полезной инфе. если информация
имеет бинарное представление, то понять что это такое уже не так просто...

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

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

Сообщение отредактировал kolobok0 - Sep 30 2014, 10:20
Go to the top of the page
 
+Quote Post
toweroff
сообщение Sep 30 2014, 13:05
Сообщение #3


Гуру
******

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



Цитата(kolobok0 @ Sep 30 2014, 14:16) *
если не знать ключ - то дешифровать не удасться, за полиномное время. т.е. в мире были попытки декодировать AES в лоб, перебором.

так в том-то и вопрос - если гарантированно знать, что сами данные вот конкретно в этом куске не меняются от блока к блоку, - шансы повышаются? не математик я, тонкостей этих полиномов не ведаю, может я создаю пургу на ровном месте и CBC с самого начала с закруткой со случайными данными такого навертит laughing.gif

Цитата(kolobok0 @ Sep 30 2014, 14:16) *
и ещё ремарка.
делать некую магическую последовательность - не совсем гут...
не дай бог какой сбой - и мк превращается в молчаливый кирпич. да и усилий потребует не маленьких, для отлаживания хотя бы...

почему кирпич?? если последовательности не совпали -- считаем CRC загруженного блока и прошиваем, если в порядке. А если нет - сидим и ждем загрузки корректного блока, уже с новой последовательностью

Go to the top of the page
 
+Quote Post
alexPec
сообщение Sep 30 2014, 13:44
Сообщение #4


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

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(toweroff @ Sep 30 2014, 17:05) *
почему кирпич?? если последовательности не совпали -- считаем CRC загруженного блока и прошиваем, если в порядке. А если нет - сидим и ждем загрузки корректного блока, уже с новой последовательностью


А если тот кто закачивал, не получил подтвеждения что CRC в порядке, а реально он поменялся? Пробуем и старый и новый вариант? Это уже как то "бабушка на двое сказала". Хотя конечно это вопрос протокола, но лично я тоже против таких перешивок, когда нельзя в любой момент гарантированно связаться с девайсом, пусть с каким-то секретным-секретным ключом.
Go to the top of the page
 
+Quote Post

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

 


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


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