0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 12

Реверс-инжиниринг модифицрованной CRC

27.04.2015, 11:35. Показов 2842. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Есть некая величина А (слово) также есть константа X и некая переменная D - зеркальное отражение результата этой же функции от предыдущей величины А.
Эти величины (6 байт) проходят функцию CRC-CCITT (0x1021, init=0x0000, finalxor=0x0000, refin-refout=false) и дают двухбайтное значение.
Третья сторона может получить контролируемую величину А и CRC-значение, которое с этой величиной завязано.

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

Это вкратце. Есть небольшая иллюстрация (в приложении), там нарисовано все, что происходит.

Подсчет шагов для брутфорса (если он верен) дает дикие цифры.

Также читал про RevEng. Насколько я понял, таким способом можно узнать только полином, по которому считается CRC. И то полином-то как раз можно узнать, если известны все байты, от которых берется CRC (6 байт). А алгоритм компиляции сообщения третья сторона не знает. К тому же RevEng, если я правильно понял вообще поддерживает поиск полинома только по двухбайтному сообщению.

Буду признателен за любую помощь.
Миниатюры
Реверс-инжиниринг модифицрованной CRC  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.04.2015, 11:35
Ответы с готовыми решениями:

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

Реверс инжиниринг разума
Здравствуйте. Я недавно начал обратную разработку разума. Как я понимаю, пока ещё нет рабочей модели работы мозга даже на уровне...

Реверс инжиниринг и Crackme (C++/Assembler - x86)
Возник интерес создать спортивную тему для любителей реверс инжиниринга. Суть темы в эстафете. Человек пишет crackme. Тот, кто его ломает...

12
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
27.04.2015, 12:51
Цитата Сообщение от idementia Посмотреть сообщение
считать ... защищенным
Никакой CRC алгоритм, по определению, не позволит защитить от намеренных искажений. Для этого нужен криптографически стойкий хэш.

Reverse-Engineering a CRC Algorithm
Calculating Reverse CRC
CRC and how to Reverse it
0
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 12
27.04.2015, 13:59  [ТС]
Все варианты по ссылкам предлагают замену сообщения, когда оно известно.

В сабже, у злоумышленника нет сообщения. У него есть только два байта, которые находятся в 6-байтном сообщении (и то разбросаны), способ образования которого ему неизвестен.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
27.04.2015, 14:15
CRC линейна по XOR. Так что, забудьте про стойкость. Алго в криптоанализе считается известным по определению.
0
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 12
27.04.2015, 14:26  [ТС]
Алго в криптоанализе считается известным по определению.
В двух словах-то можете расписать? Почему алгоритм составления сообщения известен? Мне интересна конкретика хотя бы в общем виде.
Так-то и хеш-функции ломаются, уже не ново.
А то выглядит как " я дартаньян ... " и т.п.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
27.04.2015, 14:31
Цитата Сообщение от idementia Посмотреть сообщение
Почему алгоритм составления сообщения известен?

Принцип Керкгоффса
0
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 12
27.04.2015, 14:55  [ТС]
Я понял идею. В моем случае сохранение секректности алгоритма, я считаю, можно признать неактуальным.
На контроллере после составления проекта весь код преобразуется в машинный и зашивается в нем самом. Для злоумышленника нет возможности дистанционно его вытащить.
Имхо, это уже оговорки идейного характера.
Мне интересны аспекты технических уязвимостей. При условии, что "внутри" обменивающихся сторон алгоритм защищен от несанкционированного доступа.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
27.04.2015, 15:09
Цитата Сообщение от idementia Посмотреть сообщение
алгоритм защищен от несанкционированного доступа
Так не бывает :-)

К примеру: Как я процессор PSX разбирал
0
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 12
27.04.2015, 15:24  [ТС]
Ну я знаю, что ломается все, что угодно, при желании, конечно. В сфере ИБ это всегда первый ответ на вопросы "дает ли ваша система 100%-ную защиту?".
Но и я не пентагон защищаю. Это работа в рамках диплома и на данном этапе мне интересно увидеть, какие бреши в технической реализации, чтобы это обдумать и учесть, если что.

PS кстати да и для реальных контроллеров механизм, я считаю, неплох. Он не требует большого количества ресурсов и, в отсутствие механизмов контроля целостности и подлинности (а они, собственно, средствами ПЛК и не реализованы), обеспечит примитивную, но защиту. От кул хацкеров АСУ ТП защитит
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
27.04.2015, 16:07
Лучший ответ Сообщение было отмечено idementia как решение

Решение

Цитата Сообщение от idementia Посмотреть сообщение
бреши в технической реализации
CRC16 имеет весьма ограниченное число значений (2^16). Оставляя в стороне взлом железа (декапитация чипов - это отдельная индустрия. Что невскрываемо здесь, вскроют в Китае, вопрос только денег и интереса), пространство ключей так мало (64K), что при достаточном числе перехваченных сообщений может быть просто составлена таблица "вопрос - ответ" (как это делалось в эмуляторах dongles) - без даже попытки реверса алгоритма.
1
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 12
27.04.2015, 17:11  [ТС]
Из-за такого варианта и вводится переменная. Благодаря переменной, завязанной на предыдущем значении, два одинаковых значения крайне маловероятно дадут одинаковый CRC.
Естественно, до тех пор, пока злоумышленник не поймет завязку.
0
 Аватар для Ethereal
6772 / 2740 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
01.05.2015, 19:06
Цитата Сообщение от gazlan Посмотреть сообщение
Так что, забудьте про стойкость. Алго в криптоанализе считается известным по определению.
Мною дважды была решена задача с неизвестным криптоалго.
Один раз это было неизвестное отбеливание на входе и выходе расширенного DES с итоговым ключом шифрования в 128 бит. 64 бита (не 56 !) ключа для расширенного DES в ядре алго и еще 64 бита для отбеливания входа и выхода. Примененного в реально работающей криптосистеме. Я даже по этому поводу необходимый критерий невзламываемости неизвестного отбеливания входа и выхода у известного криптоалгоритма вывел. Кстати, эту-же задачу еще один человек сумел решить, хотя и не дошлифовав результат до исчерпывающего.
Второй раз - это алгоритм шифрования памяти на лету у секурного микроконтроллера. Он оказался сетью Фейстеля в 4 звена со своими S-Box-ами, все дела. Всего 4 звена, потому-что на большее не хватало времени, ведь это все надо было делать на лету.
Т.е. мной дважды была решена задача нахождения практически примененного неизвестного криптоалгоритма при наличии триад : открытый текст, ключ, шифрованный текст. Триад при этом потребовалось порядка тысячи в каждом случае. Но сии результаты оказались не диссертабельными, поскольку не представляли собой никакого метода, а лишь рукопашную работу. В лучшем случае подход к рукопашной работе. Но зато я прусь от того, что типа открыл некий перпендикулярный криптоанализ. Правда об этом почти никто не знает. Ну и он никому не нужен.
1
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
01.05.2015, 22:21
Цитата Сообщение от Ethereal Посмотреть сообщение
Правда об этом почти никто не знает. Ну и он никому не нужен

Не по теме:

Придумал я как-то вариант техники взлома шифров простой замены (близко к N-grams + tabu search), если удастся перебороть лень, может быть выложу.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.05.2015, 22:21
Помогаю со студенческими работами здесь

Реверс-инжиниринг приложение под Андроид
Ищу исполнителя работы по реверсу приложения. Прилодение умеет авторизоваться и в авторизованном режиме обмениватся с сервером данными. ...

Реверс инжиниринг, и тут что-то пошло не так
Всем приветик :) Вот решила посмотреть в один модуль на питоне, и сразу наступила на какие-то невидимые грабли. Суть задачи такая:...

Нужен спец. для Реверс-инжиниринг, программирование в PostgreSQL, MySQL
На периодические работы нужен человек для решения задач по postgresql, mysql. Задачи: программирование, реверс таблиц, изменение...

Реверс-инжиниринг игры Clash of clans | разбор/просмотр .so/.sc/ зашифрованых .cvs
Добрый вечер! Вопрос конечно не совсем по теме но ведь Вы программируете под андроид и возможно кто-то как раз реальзреализует у себя...

Исследовать HTTP-запросы на сайте сниффером, или копать JS - это реверс-инжиниринг? Уголовно наказуемо?
Копать JS имеется в виду выкачать скрипты, изучать их, и в купе с "плодами" сниффинга использовать все это для создания своего клиента для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

Новые блоги и статьи
Хак домофона или как открыть дверь по номеру
yariko 25.06.2025
Забыли дома ключ. Не проблема. Можно открыть дверь домофона, просто позвонив на свой номер квартиры. Идея состоит в следующем. Внутрь трубки абонента встраивается контроллер, который по звонку сам. . .
Как украсить новогоднюю елку с Q# и Qiskit
EggHead 24.06.2025
Что может быть необычнее, чем применить законы квантовой механики для украшения новогодней елки? Пока другие развешивают обычные гирлянды, я решил объединить свою страсть к квантовым вычислениям с. . .
Системы нулевого доверия на C#
UnmanagedCoder 24.06.2025
Традиционная архитектура безопасности работает по принципу средневекового замка: создаём высокие стены вокруг корпоративной сети, укрепляем ворота межсетевыми экранами и системами обнаружения. . .
Снова не мой путь. Циклическое среднее, я обеими руками за проверку условия, в ракурсе данной задачи - циклическое среднее в топку.
Hrethgir 24.06.2025
Привет. Такой вопрос - нужно выводить среднее математическое между двумя направлениями, интервал значений которых может лежать в диапазоне одного оборота по кругу. Проблема заключается в том, что. . .
Деплой Flask приложения
py-thonny 23.06.2025
За годы работы с Flask я натыкался на одни и те же грабли достаточно часто, чтобы наконец научится их обходить. И сегодня хочу поделится опытом, который сбережет вам немало нервных клеток. Начнем с. . .
WebAssembly и контейнеры в .NET Aspire для оркестрации распределенных архитектур
ArchitectMsa 23.06.2025
Я наблюдаю, как WebAssembly (или просто WASM) постепенно выходит за рамки своего первоначального предназначения — исполнения кода на стороне браузера. Теперь эта технология проникает в серверную. . .
Непрерывная интеграция для пакета Python
Mr. Docker 22.06.2025
Было 4 часа утра пятницы, когда я выпустил новую версию нашей внутренней библиотеки для обработки данных. Релиз 0. 5. 2 содержал небольшой фикс для обработки дат в ISO формате, что может пойти не так?. . .
Продвинутый ETL на C# из OLTP БД в хранилище
stackOverflow 22.06.2025
Работая в сфере корпоративной аналитики, я постоянно сталкиваюсь с одним и тем же - нужны чистые, структурированные и, главное, свежие данные. Без них современные аналитические системы, машинное. . .
Мастер-класс по микросервисам на Node.js
Reangularity 21.06.2025
Node. js стал одной из самых популярных платформ для микросервисной архитектуры не случайно. Его неблокирующая однопоточная модель и событийно-ориентированный подход делают его идеальным для. . .
Управление Arduino из WPF приложения
Wired 21.06.2025
Зачем вообще связывать Arduino с WPF-приложением? Казалось бы, у Arduino есть собственная среда разработки, своя экосистема, свои способы управления. Однако при создании серьезных проектов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru