Сигнализация с диалоговым индивидуальным кодом. Keeloq и Двойной динамический код vs Кодграббер

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

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

Принцип действия диалогового кода

При нажатии кнопки на брелке, он посылает свой ID номер на базовый блок. База принимает информацию и проверяет, прописан ли брелок в системе. Если идентификация брелка проходит успешно, на него посылается сгенерированный по динамическому закону код. Брелок принимает код, кодирует им команду (активировать/деактивировать защиту) и отправляет на базовый блок, который, в свою очередь, декодирует принятую информации, исполняет команду и посылает подтверждение на брелок.

Преимущества диалогового кода

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

Автосигнализации с диалоговым принципом работы

Наиболее популярными сигнализациями с диалоговым кодом на сегодняшний день являются системы StarLine, Pandora и Magic Systems. Особым спросом пользуются сегодня автосигнализации Star Line B6 Dialog (недорогая система с диалоговым кодом) и Star Line B9 Dialog (система с функцией дистанционного запуска двигателя). Кроме того, не так давно компания StarLine разработала ряд новинок: StarLine A62 Dialog, StarLine A92 Dialog, StarLine B62 Dialog, StarLine B92 Dialog. Еще одна линейка надежных систем с диалоговым кодом: автосигнализации Pandora. Pandora DXL 3000 и Pandora DXL 3300, помимо всего прочего, обладают широким списком функциональных возможностей и завидной дальностью работы. Есть в этой линейке и новинки: Pandora DXL 3500, информация о которой появится чуть позже. Magic Systems выпускает свою линейку систем, оснащенных диалоговым кодом: MS 505 LAN, MS 600 Light Сталкер LAN, MS 600 Сталкер LAN 3, MS Диалог.

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

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

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

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

Особенности диалогового кода , реализованного в сигнализациях и иммобилайзерах StarLine, гарантируют абсолютную защиту от взлома с помощью любых известных кодграбберов. В каждой системе используется индивидуальный ключ шифрования, передаваемый единственный раз при регистрации брелка в системе. Длина ключа - 128 бит, что дает 3,4*10 38 комбинаций. Даже если перебирать миллиарды вариантов в секунду, чтобы разгадать задачу, потребуется больше времени, чем существует Вселенная. При существующих сегодня вычислительных средствах решить эту задачу «В лоб» невозможно.

При формировании отзыва в диалоговом коде использован аппаратный генератор случайных чисел, дополнительно защищающий от взлома кода. Кроме того, передача пакетов информации сопровождается короткими паузами, а рабочая частота передачи внутри цикла авторизации скачкообразно изменяется. Эти меры затрудняют как перехват, так и расшифровку команды - при том, что подбор индивидуального ключа вообще невозможен. Короче говоря, смерть Кощея вигле, игла в яйце, яйцо в утке, утка в зайце, заяц в сундуке, сундук на дубу…
Компания StarLine настолько уверена в своем детище, что официально предлагает всем специалистам в области исследования криптостойкости долгосрочный контракт на сумму 5 000 000 рублей - пусть попробуют Взломать!

Если любознательный автолюбитель задает вопрос о том, смогут ли перехватить код брелка его сигнализации и, таким образом, - угнать авто, он получает от установщика автосигнализации чаще всего такой ответ: "Код динамический (иногда добавят название алгоритма шифрования), при каждой новой посылке меняется". Обычно после этого ответа не возникает вопросов и радостный автовладелец уезжает восвояси, спокойный и довольный. Конечно не может быть и речи о спокойствии только на основании того, что автосигнализация поставлена и код у нее динамический... И речь здесь идет не о криптостойкости! - дело в том, что недостаточно одной сигнализации, - это вам скажет любой установщик.

Все специалисты и работники сервисов сходятся во мнении по следующим вопросам:
1. Желательно в дополнение к автосигнализации использовать иммобилайзер или реле, управляемое по штатной проводке, что в принципе, на данном этапе развития отрасли - одно и тоже.
2. Почти необходим замок капота (механический или электромеханический)
3. Степень угонустойчивости чуть ли не на половину зависит от подхода к установке и профессионализма мастера. С этим трудно не согласиться!

Однако если взять вполне "приличный" и дорогой охранный комплекс, состоящий из автосигнализации, удаленного реле, висящего на штатном проводе и управляемого от сигнализации, а также, например электромеханического замка на капот Defentime (управляемого от автосигнализации), то электронный ключ от автосигнализации - это все что нужно угонщику, что бы сесть в ваш автомобиль и уехать..... Как печально! Вывод напрашивается сам собой, - трудно переоценить значание криптостойкости вашей автосигнализации!!!

Окунемся немного в историю и посмотрим, - какже появились на свет все эти Килоги, и прочие алгоритмы шифрования

В устаревших сигнализациях применялись коды с числом комбинаций до 512, Подбор такого кода занимает менее 1 минуты. Количество комбинаций кодов в современных сигнализациях может достигать нескольких тысяч миллиардов. Первая структура динамического кода была предложена итальянской компанией Autotechnica еще в 1995 году. Но подлинная революция в применении этой технологии произошла, когда компания Microchip изготовила наборы кодирующих и декодирующих устройств, сопроводив их своими руководствами по внедрению. Эта "техническая интервенция" способствовала появлению у разных изготовителей своих собственных оригинальных алгоритмов. Однако, до сих пор продукция фирмы Microrochip пользуется большим спросом, а технология "Keeloq" известна всем, кто не остановил свое знакомство с автомобилем на замке зажигания, двери и "балоннике".

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

Что же такое динамический код...

Технология плавающих кодов делает невозможным, как перехват кодов из эфира, так и их подбор. Действительный код шифруется таким образом, что при каждой передаче излучается внешне совершенно другая кодовая посылка. В приемнике действительный код восстанавливается путем математической обработки. Перехват кодов становится бессмысленным, так как невозможно предсказать какая следующая кодовая комбинация снимет сигнализацию с охраны. Простое повторение предыдущей посылки не приведет к выключению сигнализации, так как бывшие в прошлом посылки считаются недействительными. Предсказать же будущую посылку теоретически можно, только зная алгоритм шифрования кода, который держится фирмой-изготовителем в секрете и достаточное количество выборок кода для анализа. Кодовые комбинации повторяются с очень большим интервалом. Исследования модели MICROCAR 052.1 показали, что для данной модели этот период составляет более 65000 нажатий. Можно сказать что, в процессе эксплуатации, передаваемые кодовые комбинации не разу не повторяются – машина не служит 20 лет. Коды-идентификаторы брелоков автосигнализаций с плавающими кодами записываются в заводских условиях и являются уникальными не подлежащими замене в процессе эксплуатации. Технология плавающих кодов очень эффективно защищает сигнализацию от взлома с помощью электронных средств. Степень защиты от расшифровки зависит от применяемого алгоритма кодирования. Именно здесь и кроется одно большое "НО" (см. далее "Двойной динамический код")

Рассмотрим немного подробнее, что же представляет из себя динамический код на основе все того же Keeloq

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

Однако к кодирующему ключу разработчикам пришлось добавить еще несколько структур данных специального назначения. Кратко рассмотрим их.

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

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

Дискриминатор 12-битовая произвольная комбинация, передаваемая кодером в закодированном виде в составе переменной части посылки. Он используется для проверки целостности процесса декодирования.

Серийный номер уникальный номер каждого кодера (брелока-передатчика) из 28 или 32 бит. Формируется при изготовлении кодера и передается в некодированном виде в постоянной части посылки.

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

Формирование кодирующего ключа в кодере производится специальным программатором в процессе изготовления кодера. Для генерации кодирующего ключа необходимы серийный номер и ключ изготовителя.

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

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

Для того, чтобы код-идентификатор нельзя было перехватить из эфира, все (точнее практически все) уже передававшиеся коды нужно отсеивать, как недействительные. Кроме того, код-идентификатор и служебную информацию нельзя передавать в явном виде. Это возможно сделать, если до передачи налагать на код различные неповторяющиеся маски. Чтобы иметь возможность удалить маску при приеме, ее необходимо пронумеровать. В кодер и декодер включен т.н. счетчик синхронизации. Счетчик синхронизации содержит текущий номер маски. Каждое нажатие кнопки брелка приводит к увеличению состояния счетчика синхронизации брелка и изменению налагаемой маски. Типичная емкость счетчика синхронизации - 16 двоичных разрядов. Таким образом, брелок генерирует 65000 неповторяющихся масок.

Кодовые брелоки

Кодовый брелок сигнализации – это миниатюрный передатчик, работающий в диапазоне дециметровых волн (200...450 МГц). Реже встречаются модели, работающие на инфракрасных лучах, они отличаются малым радиусом действия.
Для сигнализаций оснащенных брелоками на ИК – лучах перехват кодов весьма затруднен из-за малого радиуса действия и направленности брелоков-передатчиков (при пользовании их приходится направлять в определенное место салона автомобиля с расстояния не более нескольких метров). Эта особенность может создавать неудобства при пользовании. Сигнализации с ИК-брелоками: BOSH Blocktronic IR-US, BOSH Blocktronic IM-US

Рабочие частоты передатчиков постоянны и нормированы контрольными органами электросвязи стран в которые эти устройства ввозятся.

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

Двойной динамический код

С тех пор, как код – граббер перестал быть экзотикой и доступен угонщикам, все большое значение уделяется степени секретности кодовой посылки, передаваемой с брелока. Как результат этого процесса все большее число систем выпускается с динамическим кодом. Никто не оспаривает его преимуществ. Однако и он не может считаться панацеей на все случаи. Если алгоритм изменения становится известен, (а он известен, по крайней мере, разработчику), то внедриться в систему остается делом техники. Не даром система кодировки так тщательно засекречивается и скрывается производителями сигнализаций. Для исключения и этой возможности для электронного взлома разработан так называемый D2-код, сущность которого заключается в том, что каждому брелоку, помимо разрядного номера, присвоен еще и свой индивидуальный закон изменения кода. Это индивидуальное правило записывается в декодер один раз при вводе (программировании) брелока, в эфире больше не появляется и радиоперехвату недоступно. Таким образом, даже разработчик системы, обладая всей необходимой информацией о способах кодирования и соответствующей аппаратурой, не сможет расшифровать этот код.

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

Наглядным примером нам послужит автомобильная сигнализация.

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

Данные по радиоканалу передают в виде небольших последовательностей - пакетов. Каждый пакет можно представить как команду например, «Открой замок», ответ на команду например, «Замок открыт».

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

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

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

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

Динамический код отличается от статического тем, что при каждом нажатии на кнопку формат пакета меняется.

Пакет меняется по определенному закону, который известен только сигнализации и запрограммированному в нее брелоку. Это означает, что просто повторить записанный пакет нельзя - старые пакеты сигнализация отбрасывает.

Рисунок 1. Динамический код

На первых порах казалось, что этого будет достаточно, и что проблема кодгабберов решена - но не тут то было! Динамическое кодирование тоже не устояло перед новыми кодграбберами.

Самым известным алгоритмом динамического кодирования является Keeloq.

В Интернете давно гуляют слухи в взломе Keeloq, однако это не соответствует действительности. Аналитически алгоритм Keeloq до сих пор не взломан - взломаны его неудачные реализации. Например, многие производители автомобилей "грешат" тем, что используют один и тот же ключ для всех систем, что позволяет создать так называемые "мануфактурные" кодграбберы.

Взламывают динамическое кодирование несколькими способами.

Первый способ: аналитический. В основе этого способа лежат "дыры", которые случайно или сознательно оставили в алгоритме разработчики системы. Пример приведен выше - одинаковые ключи у штатных охранных систем некоторых автомобилей.

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

Многие производители автомобильных систем охраны разрабатывали свои собственные динамические коды, внося различные улучшения. Некоторые из них так до сих пор и не вскрыты, и вроде бы могут использоваться в охранных системах. Однако необходимо понимать, что ни один динамический код не гарантирует защиту от взлома.

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

Алгоритм работы диалогового кодирования удобно объяснять, используя семью: мужа и жену.

Представьте, что «муж» находится в доме и кроме «жены» никого пускать не хочет. В двери нет глазка, а в доме нет окон. После того как «муж» услышал стук в дверь, ему нужно определить, действительно ли за дверью стоит «свой», т.е. «жена». Самый лучший способ - это задать вопрос, правильный ответ на который может дать только «жена». Если человек за дверью ответит верно - смело открывать дверь это «свой».

Точно так же работает и сигнализация с диалоговым кодом:

1. При нажатии на кнопку брелок посылает пакет с запросом на авторизацию ("стучит в дверь").

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

3. Брелок, разгадав "загадку", отвечает пакетом подтверждения.

4. Основной модуль проверяет ответ и, если он верен, выполняет команду брелока ("открывает дверь").

Рисунок 2. Структура диалогового кода

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

В диалоговом кодировании роль загадки играет случайное число, которое сгенерировано по специальному алгоритму. "Случайность" этого числа очень высока. При этом ответ на загадку болжен поступить за строго отведенный интервал времени - за доли секунд.

Представим, что вопросы, которые задает «муж» - даты исторических событий. Что будет делать «чужой», если узнает об этом? Подготовит ответ и сможет пробраться в дом?

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

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


Рисунок 3. Обобщенный вид диалогового кода

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

А знаете, как устроены системы опознавания в военной авиации? Там стоит система запроса «Свой - чужой», т.е. диалоговое кодирование. Если на запрос с земли самолет правильно не отвечает, его сбивают!

В электронных замках «АРБат» мы используем диалоговое кодирование - систему опознавания, как в самолете.