Автомобильные охранные системы – защита связи

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

Задача разработчика охранной системы формулируется довольно просто: есть брелок, есть управляющий модуль на автомобиле, нужно обеспечить надёжный защищённый обмен командами через открытый эфир. (Всякие особенности, типа кражи брелока, расположения владельца относительно автомобиля в момент снятия с охраны и т.п., не учитываем.) Подобные задачи успешно решались давно. Из сложных реализаций с историей, можно, например, вспомнить системы гос.опознавания на самолётах.

Очевидно, что современное развитие микроэлектроники и криптографии позволяет сделать систему управления практически неуязвимой для взлома. Интересно разобрать ситуацию с автомобильной системой по шагам. Ну да, понятно, что элементарное решение, когда брелок просто передаёт радиокоманду “Сим-сим откройся”, – не подходит: тут срабатывает тот самый простой перехват с записью и повтором сообщения. Рассчитывать на то, что атакующему злоумышленнику не известна частота, или, например, модуляция, нельзя (купил он образец сигнализации и всё определил). Но много экономим на изготовлении самой сигнализации: ни памяти, ни каких-то сложных микроэлектронных схем не требуется.

Более сложное решение использует “одноразовые пароли”. Дистанционный брелок и автомобильный блок используют некий общий (уникальный относительно комплекта оборудования) секрет для генерации последовательностей ключей. Каждый ключ используется один раз. Повторная передача использованного ключа не работает. Требуется, чтобы и брелок и управляющий блок имели память и могли генерировать последовательности ключей. Это не очень сложно реализовать. Справится простой микроконтроллер.

Да, кстати, возникает некоторое количество проблем с юзабилити, которые научились решать. Например, нужно бороться с непреднамеренным использованием очередного ключа автовладельцем (игрался с брелоком, отправил в пустоту десяток запросов, брелок и блок на машине стали “несинхронными”). Для борьбы вводят интервал валидных ключей: то есть, система срабатывает не только на конкретный, ранее не использовавшийся, ключ, но и на его соседей в ключевой последовательности. В общем, всё это давно обкатано в банковских системах.

Обкатаны и процедуры атаки. Стандартный подход напрашивается сразу же: нужно заставить брелок выдать несколько ключей в эфир, но так, чтобы до автомобильной части системы эти ключи не добрались. Реализация: в эфире ставится помеха, но таким образом, чтобы сканер ключ, выданный брелоком, принял. Неспециалисту часто кажется, что это нереальный расклад. А он – реальный. Помеху в эфире конструирует атакующий. Его задача – записать из эфира суммарный сигнал, содержащий и помеху, и ключ. Помеху потом можно вычесть, так как она известна. А вот блок приёмника на автомобиле может не справиться с отстройкой от помехи. Конечно, есть помехоустойчивое кодирование и другие способы защиты, но их реализация усложняет и саму аппаратуру автосигнализации, и процесс её разработки. Итак, вычисленный и записанный ключ (несколько ключей) – позже используются для “взлома” системы (если, конечно, не успеют выпасть из синхронного интервала).

Почему недостаточно хорошо работает этот “продвинутый” метод? Потому что отсутствует добротная аутентификация со схемой запрос-ответ. Не используется “обратная связь”, хотя она есть, как упомянуто в самом начале заметки.

Так что следующее, ещё более продвинутое, решение устроено иначе: брелок инициирует сеанс связи (передавая несекретную команду), принимает специальный запрос от блока на автомобиле, вычисляет ответ, соответствующий запросу, и передаёт его в эфир. Запрос при этом содержит некий “одноразовый ключ”, используемый только в конкретном запросе (могут быть просто случайные значения), а вычисление ответа требует знания секрета, который хранится только в брелоке и в автомобильном блоке. (Понятно, думаю, что перехват вычисленных ответов из эфира не позволяет, на практике, определить значение секрета. Атака с повторной передачей не работает, так как очередной запрос будет другим.)

Что получилась? Получилась схема, похожая на механизм из сетей GSM. Алгоритм, существенно более стойкий, чем вариант с простыми одноразовыми паролями. Правда, реализация тоже существенно сложнее. Например, в управляющем блоке не только должна быть память, а он также должен отслеживать “возраст” переданных в эфир запросов, отменять устаревшие, иначе схему легко “подвесить”, организовав что-то вроде DoS-атаки, путём имитации запросов брелока.

Злоумышленник может организовать гипотетическую атаку типа “человек посередине”, пытаясь имитировать работу автомобильного блока в ответ на старт сеанса связи. Но так как, в отличие от GSM, здесь авторизация начинается только по нажатию кнопки владельцем автомобиля, успех – скорее призрачен. Хотя, есть варианты. Да и никто не гарантирует, что в конкретной реализации алгоритма не обнаружат дыр.

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

Итог: микроконтроллеры сейчас научились выпускать довольно мощные и очень компактные, с минимальным энергопотреблением. Микроконтроллеры при этом дешёвые. Алгоритмы защиты – известен. Вопрос такой: а защищены ли на практике все современные автосигнализации от перехвата команд?

()

Похожие записки:



Далее - мнения и дискуссии

(Сообщения ниже добавляются читателями сайта, через форму, расположенную в конце страницы.)

Комментарии читателей блога: 13

  • 1. 28th May 2010, 04:03 // Читатель зашел в гости написал:

    А вот мою машину за несколько секунд можно открыть простой проволочной вешалкой…

  • 2. 28th May 2010, 12:20 // Читатель arcman написал:

    > Реализация: в эфире ставится помеха, но таким образом, чтобы сканер ключ, выданный брелоком, принял.

    Проблема есть – перехвачен будет сигнал постановки на охрану, а не сигнал снятия с охраны.

  • 3. 28th May 2010, 12:40 // Александр Венедюхин ответил:

    Вовсе нет. Записывать нужно именно команду снятия с охраны. Конечно, можно изначально записать и потом воспроизвести команду постановки (чтобы сбить с толку владельца). Кстати, казалось бы, команду постановки на охрану вообще можно никак не защищать и использовать один и тот же сигнал, по понятным причинам: постановка на охрану не лишает авто защиты. Но на практике такой расклад упрощает введение владельца автомобиля в заблуждение.

  • 4. 28th May 2010, 15:59 // Читатель arcman написал:

    Я имел в виду, что есть определённые сложности в типовых случаях.
    Например, человек приехал куда то, где вы ждёте его со своим супер сканером.
    Вышел, поставил машину на охрану и ушёл по своим делам.
    Сигнал на снятие не подавался – у вас его соответственно быть не может.
    Потом он вернулся, снял с охраны и уехал.
    У злоумышленника соответственно ничего не вышло.

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

    Алгоритм получается такой:
    Поджидаем когда владелец попытается снять сигнализацию с охраны – глушим и записываем посылки.
    Команда до машина соответственно не доходит и она продолжает оставаться закрытой.
    Владелец не понимает что происходит и продолжает попытки открыть машину.
    У него ничего не получается и он уходит за помощью.
    Угонщик открывает машину перехваченным кодом и скрывается.

    Вы верите в такое развитие ситуации? :)

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

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

  • 5. 28th May 2010, 17:46 // Александр Венедюхин ответил:

    Да не, можно записать пять-десять кодов, пока владелец давит на кнопки брелока. Потом открыть машину. В запасе останутся коды.

  • 6. 28th May 2010, 17:47 // Александр Венедюхин ответил:

    Ну и никто не говорил, что всё элементарно. Я и пишу, что даже система с одноразовыми ключами существенно усложняет вскрытие. А вот используют ли её?

  • 7. 28th May 2010, 20:00 // Читатель arcman написал:

    > Да не, можно записать пять-десять кодов

    Это ничего не даст – как только он воспользуется брелоком, окно сдвинется и все записанные коды сгорят.
    Брелок ведь сгенерирует новый следующий код и если сигналка его получит, все предыдущие устареют.
    Т.е. нужно не дать брелоку послать актуальный код, следовательно остаётся только вариант непрерывно пасти машину.

  • 8. 28th May 2010, 20:15 // Александр Венедюхин ответил:

    Да это понятно. Но размер окна и положение его начала могут быть другими. А так, да, если один брелок и жёсткий сдвиг окна вперёд, то нужно следить. О чём и речь – уже получается довольно защищённая система.

  • 9. 28th May 2010, 22:21 // Читатель kaschey написал:

    Микропроцессорная карта СберКарт использует куда более изощренный алгоритм, состоящий из многократного обмена сигналами. Но тут хватило бы двух ассиметричных ключей с “солью” 3 передачи: запрос-загадка-перешифрованная отгадка.

    Используют-ли? Большой секрет! Есть жгуче терзающее сомнение, что не у всех ещё закончилось тёмное средневековье.

  • 10. 12th June 2010, 21:03 // Читатель петр написал:

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

  • 11. 12th June 2010, 22:55 // Александр Венедюхин ответил:

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

  • 12. 12th June 2010, 23:21 // Читатель петр написал:

    Ну это только гипотеза (типа, кажется, что потребительский прогресс на 99% идет от американского рынка).
    Насколько я понимаю, у них никакой речи о всех наших секретках, радиомаячках в среднем классе не идет. Просто обычный брелок и этого достаточно. Могу ошибаться.
    Хотя машин много, так что наверное и угонов тоже много.

  • 13. 12th June 2010, 23:25 // Читатель петр написал:

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