@rxmn

Как определить метод шифрования?

Доброго времени суток!

Имеется два устройства, общающиеся по CAN шине, устройство №1 хочет получить доступ к flash памяти устр-ва №2, для этого отправляется специальный запрос и устр-во №2 формирует сообщение с рандомным 4-х байтным ключом, на которое устр-во №1 шлет ответ тоже в виде ключа 4-х байт, неизвестным образом измененное. Устр-во №2 по ответному сообщению понимает что ответ правильный и дает доступ. Соответственно если ответ неверный, то доступ не открывается. Конечно алгоритм кодирования известен обоим устройствам. Вопрос такой - как определить алгоритм кодирования, если есть и начальный ключ и конечный ответ? Причем удалось получить несколько этих комбинаций и можно получить еще сколько угодно. Вот они (в HEX):

6086714678483720495301.png
  • Вопрос задан
  • 263 просмотра
Пригласить эксперта
Ответы на вопрос 2
@cicatrix
было бы большой ошибкой думать
То, что вы спрашиваете, называется криптоанализ. Если я правильно понял задачу - вы работаете с "чёрным ящиком" сам алгоритм кодирования известен устройствам, но неизвестен вам.
Наверное, какой-нибудь опытный криптоаналитик и смог бы вам помочь с весьма призрачными шансами на успех.
Вернее так, шансы на успех зависят от алгоритма шифрования, которые изначально проектируются умными людьми специально, чтобы максимально осложнить вот это то, чем вы занимаетесь.
Например, проверьте, кодируется ли одно и то же входящее сообщение каждый раз по-разному или одинаково. Если по-разному, то в алгоритме используется какой-то неизвестным вам параметр (вектор инициализации), и это может быть что угодно (например, внутренняя таблица подстановки). А если устройства могут использовать какие-либо другие данные, то задача усложняется многократно. Тут надо будет уже понимать, откуда эти векторы инициализации могут браться в принципе.
А так-то сбрутфорсить 4 байта - задачка плёвая, но алгоритм, естественно, вы так не найдёте. Да и ещё вопрос - каждый раз ключ разный или одинаковый?
Ну а лучше всего, раскопать документацию по этим двум устройствам, ну или расковырять и проверять уже саму электронику. Если есть чипы с памятью, то выпаять - считать память, покурить даташиты, посмотреть, что происходит. Если это не пульт управления ядерным оружием, то не думаю, что с защитой уж слишком сильно заморачивались. Вполне можно попробовать перехватить сигнал на открытие доступа и сделать обход.

P.S. А вы вообще уверены, что это шифрование? Может, сигналы управляющие какие-нибудь?
4 байта - уж больно примитивная защита.
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
удалось получить несколько этих комбинаций и можно получить еще сколько угодно.

серьезное достижение ))
но увы, школьнеги в битке получили их неподдающееся исчислению количество

в общем случае определить нельзя, вообще никак,
но если есть файлы, проверяющие результат - IDA / GHIDRA в помощь, ну или что попроще
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы