воскресенье, 30 сентября 2012 г.

Попытка угнать Вольво: epic fail.

Значит, жена укатила в Европы. Обычно я без жены очень сильно скучаю, но тут ещё лишился и мелкого сына, поэтому грусть и тоска моя помножилась в 2.71 раз (я не математик, поэтому, по-инженерному, больше склоняюсь к e вместо pi). От безысходности, было решено влезть в иммобилайзер Вольво и посмотреть, чо там, да как.

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


Центральный электронный блок, судя по всему, шлёт сигнал модулятору, который, собственно, модулирует этим сигналом опорную частоту, которая попадает на антенну RFID-чипа в ключе, тот чё-то там делает, и отвечает, модулируя модулированный сигнал. Приёмник антенны демодулирует дважды модулированный сигнал и шлёт ответ CEM'у.

Вот модуль с тремя проводьями, припаянными к ICK, IDS и земле:


По ICK, судя по названию, должен переть сигнал от CEM, а по IDS - демодулированный ответ от ключа. Для их подсекания нужен двухканальный осциллограф. К счастью, у меня есть ажно 4-канальный:


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

Во время эксперимента ключ будет повёртнут стопицот раз, поэтому отключаем стартер, чтобы не посадить батарею, и топливный насос, чтобы не залить свечи:

Вот так вся эта байда выглядит:



Значит, CEM шлёт запрос к ключу, когда ключ вставляется в замок и поворачивается в позицию 2. Если ключ не вынимался, то в следующий старт движка код не считывается.

Вот осциллограф чё-то поймал:


К сожалению, полностью кодовая посылка CEM с ответом ключа в буфер моего двухсотдолларового карманного осциллографа (DSO230, 4 тысячи точек) не уместилась, поэтому с разборкой на логическом уровне я пролетел. Сеанс связи с ключём, судя по осциллограмме, не такой уж и примитивный: CEM шлёт несколько пакетов данных, ключ на них отвечает. Но если применить более мощный осциллограф, либо наваять решение на FPGA, то обойти защиту Вольво не особо сложно.

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

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

UPD: Залил в осциллограф логический анализатор и перехватил две сессии между CEM и ключиком. Анализатор сохраняет в памяти только переходы сигналов, поэтому вся сессия в 4% памяти укладывается. Данные сохраняются в VCD-файл, которые смотрятся GtkWave'ом:


Осталось расшифровать, прибабахать микроконтроллер и заводить без родного ключа.

21 комментарий:

  1. она у тебя после этого-то заводится? :)

    ОтветитьУдалить
    Ответы
    1. Не только заводится, но я ещё и сумел перехватить сессию между иммобилайзером и ключём на логическом уровне. Классический man in the middle :)

      Удалить
    2. тю, чувак, мэн ин зэ мидл это когда ты ещё и видоизменять можешь :). ты бы действительно расшифровал сигнал и таки завёл, было бы очень интересно. а так - это обло, озорно тёпло, лампово - но скушно :).

      Удалить
    3. п.с. ты тэги-то хоть базовые оставил... даже страйк не пашет.

      Удалить
  2. Этот комментарий был удален автором.

    ОтветитьУдалить
  3. Вообще то эти посылки при каждой заводке разные и их перехват не дает особого смысла, потому как криптование тут применено нелинейное. :)

    ОтветитьУдалить
  4. Там нет никакого криптования. Некоторые различия между сессиями есть, но, в основном, всё одинаковое прёт.

    ОтветитьУдалить
  5. 8) криптования нет? а я то думал... а что за надпись такая загадочная на микрушке MEGAMOS? и как то странно прописываются ключи под протоколом ID48... И как то странно он называется в полном своем названии Megamos Crypto... Да видимо Crypto переводится как НЕкриптован.(прошу прощения за каламбур) :) Ну можно не читать даташит, но хотя бы кратенькое описание можно прочитать в каком нибудь руководстве пользования программатором к примеру - http://www.google.by/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=0CDwQFjAE&url=http%3A%2F%2Fwww.bicotech.com%2Fdnld.php%3Frwprog_files%2Ffiles%2Fdoc%2Fhelp_ru.pdf&ei=2iNtUKHCM-704QTgroC4Ag&usg=AFQjCNFZgekjo6mTnh0jDMZGLlEEKgpCQw&cad=rja стр.18 :) С уважением.

    ОтветитьУдалить
  6. http://www.google.by/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCIQFjAA&url=http%3A%2F%2Fwww.bicotech.com%2Fdnld.php%3Fdoc%2Fmegamos_cr.pdf&ei=_SVtUPqqI6bg4QTfy4HYBg&usg=AFQjCNH-GELJm-96GQWRMjkThG-lemAqcA&cad=rja

    http://www.google.by/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CB8QFjAA&url=http%3A%2F%2Fdatasheet.seekic.com%2FPdfFile%2FV40%2FV4070_V4070IC_V4070PCB.pdf&ei=XiZtUKiNNfDR4QTptICoDw&usg=AFQjCNH8t-sD1maJkaa6MLrnvJFrvnBM0Q - это, то, что используется в ВОЛЬВО. Изучайте.

    ОтветитьУдалить
  7. http://forum.volvo-club.by/download/file.php?id=24285

    ОтветитьУдалить
    Ответы
    1. Спасибо, очень интересно!

      Удалить
    2. Короче, вся эта применяемая криптография - очень интересно, но коммуникация между CEM и мегамосом нешифрованная. Что там мегамос с транспондером в ключе делает - в моём эксперименте несущественно, т.к. я вклиниваюсь до этого.

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

      Удалить
    3. Кстати да, я сам ступил, между мегамосом и CEM не шифровано... Но перехват этих данных, а тем более перебор всех вариантов последовательности нереален. :)

      Удалить
    4. Перехватывать нужно не зашифрованную посылку, между CEM и ключом, а постоянную, называемую синхрой, между CEM и моторным. Но это еще не все. Моторный разлочится а стартера не будет, придется еще и стартер ручками включать. А угнать особого труда не составит тому кто этого сильно захочет. Могу разъяснить как завести данный автомобиль ICQ397273631, разумеется не бесплатно

      Удалить
  8. Допустим, я хочу использовать иммобилайзер отдельно от машины. То есть мне нужно имитировать СЕМ.

    Он шлёт одинаковые запросы иммобилайзеру? Или вы не ловили всю сессию целиком?

    ОтветитьУдалить
    Ответы
    1. В середине, где, по всей видимости, challenge начинает передаваться, отличается, а так одинаковое.

      Удалить
  9. а, извините ,читал по диагонали.

    Можно ваш VCD-файл посмотреть?

    ОтветитьУдалить