Кодграбберы. Введение.

Практически всем известно, что такое кодграббер. В сети есть множество сайтов с их описанием, предложениями продать и схемами сборки. Также есть много сомнительных роликов с демонстрацией работы данных устройств. Однако почти все описания имеют множество ошибок и неточностей, а ролики снимают производители диалоговых сигнализаций или журналисты, сами не до конца понимающие в этой теме.

Впервые я заинтересовался проблемами безопасности автомобилей в 2006 году, предложенный мной материал является обобщением пятилетнего опыта.

Первое поколение приборов
«Сканеры» — переборщики кода.

Российская история электронных автомобильных сигнализаций начинается в 90х годах. Код сигнализации был статическим, более того, уникальных комбинаций было от 256 до 65536. Вскрыть такую систему можно было простым перебором кода – сканером.

Производители сигнализаций наспех закрыли эту дыру функцией «Антисканер», которая отслеживала в эфире факт перебора кода и отключала приёмник на некоторое время.
Постепенно кодовую посылку сделали длиннее, добавили счётчик посылок, перебор в лоб стал не возможен, но код оставался статическим, и достаточно было записать из эфира сигнал, увеличить счётчик и передать команду, чтобы снять охрану.

Второе поколение приборов
«Кодоподмена» — Изделие 409, Изделие 502.

С введением алгоритма шифрования, ситуация сильно не улучшилась, сигнализация ставилась и снималась с охраны одной и той же кнопкой. Так как в посылке присутствовал и счётчик в зашифрованном виде, то просто записать и воспроизвести посылку было нельзя, сигнализация второй раз не примет посылку с одним и тем же счётчиком. Тут свою роль играл человеческий фактор, кодграббер мешал сигнализации принять одну-две посылки от брелока, а сам их записывал. Хозяин машины списывал эти холостые нажатия на помехи или неисправность сигнализации. Накопив заданное число посылок, кодграббер продолжал мешать сигнализации принять команды, но сам передавал первую из очереди принятых посылок. Таким образом автомобиль начинал реагировать на брелок хозяина, а кодграббер имел в своей памяти несколько действующих посылок. Это устройство получило название «Изделие 409».

Ситуацию усложнило разделение кнопок снятия и постановки на охрану. Так как кодграббер используется в момент постановки на охрану, требовалось как-то вынудить хозяина нажать кнопку открыть, чтобы записать команду открытия. Тут также играл роль человеческий фактор. Сигнализация не реагировала на брелок, пока не будет нажата кнопка открыть, после чего кодграббер становился посредником в радиообмене сигнализации и брелока, держа в своей памяти пару рабочих посылок. По такому принципу работало «Изделие 502».
Попрощаться с кодоподменой заставило введение функции отложенного инкремента счётчика. Функция «Антиграббер», защита от перехвата кода, производители называют это по-разному. То есть через некоторое время, 5-10 секунд после приёма последней команды, сигнализация увеличивала счётчик на несколько десятков, и все посылки в кодоподмене становились просроченными. А вынудить хозяина нажать нужные кнопки 20-30 раз, да еще, чтобы интервал между нажатиями не превышал 5-10 секунд, было практически не реально.

Третье поколение приборов
«Алгоритмический кодграббер»

Алгоритмический кодграббер и «мануфактурый» это не одно и тоже. Название «мануфактурный», мне кажется, придумали журналисты на пике поливания грязью алгоритма KeeLoq. Так как понятие мануфактурный код используется в документации на этот незаслуженно критикуемый алгоритм шифрования. Хотя до сих пор, не существует портативной и приемлемо быстрой методики взлома KeeLoq. Взломан был микроконтроллер с мануфактурным ключом, взломаны были китайские «кривые» реализации этого алгоритма, а не сам алгоритм шифрования. Помимо килока, есть сигнализации, алгоритм шифрования которых строится на неких нелинейных функциях, таблицах перекодировки или математических операциях, поэтому «алгоритмический кодграббер» является более правильным и широким определением для таких приборов.

Алгоритмический кодграббер не вмешивается в радио эфир, только слушает его. Поймав посылку и расшифровав её, кодграббер становится клоном брелока хозяина.

«Баг синхронизации»

Нельзя обойти стороной и прибор реализующий «баг синхронизации», он является чем то средним между алгоритмическим кодграббером и кодоподменой. Не алгоритмический потому что не расшифровывает посылку, не кодоподмена, потому что не глушит и не подменяет пакеты из эфира. Тут мы возвращаемся к «кривой» реализации алгоритма, а точнее к реализации функции синхронизации брелока с сигнализацией.

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

Обсуждаем тут: https://phreaker.ru/forum/showthread.php?p=4

 


Контент распространяется на условиях лицензии Creative Commons Attribution-ShareAlike 3.0


 

(C) exchange
www.phreakerclub.com

Оставьте комментарий