| Новая угроза: брелок |
|
Нет ничего более глупого, чем пытаться понять сложные вещи по аналогии. Каждый установщик рано или поздно сталкивается с необходимостью объяснить «по-простому, на пальцах», как же работает алгоритм Keeloq. Особенно актуально это стало сейчас, при появлении нового устройства интеллектуального взлома автомобильных охран, так называемого «адаптирующегося брелка» (название не самое удачное, вернее, как мы увидим ниже, совсем неудачное). Несмотря на эпиграф, давайте попытаемся осознать, в чем состоит проблема. Для этого придется сделать несколько существенных упрощений. Система кодирования Keeloq. С нее и начнем. В случае применения в охранной системе «стандартного Keeloq'а», передаваемая в эфир кодовая комбинация (при нажатии на любую кнопку) выглядит следующим образом: <номер нажатой кнопки><номер брелка><...шифрованная часть...> В шифрованной части присутствует информация, обеспечивающая распознавание брелка, и, как следствие, отключение охраны автомобиля. Посмотрим на устройство шифрованной части поподробнее. Она содержит: <<номер нажатой кнопки><дополнительная информация><счетчик нажатия>> Мы видим, что в структуре Keeloq заранее известно, где что расположено. Кроме того, номер нажатой кнопки передается в эфир дважды: один раз в открытой, другой раз — в шифрованной части. Это обстоятельство нам еще пригодится. F=Ax2+Bx+C Сразу становится понятно, как производится дешифровка в главном модуле. Узнав из эфира номер брелка «С», номер кнопки «B» и заранее зная Пароль «А» легко вычислить счетчик «x». Давайте не обращать внимания, что ответов получилось два — мы всегда можем считать верным тот, который больше. Естественно, не зная Пароля «А», мы не сможем вычислить «x». Этап первый: вычисление пароля. Если посмотреть на нашу функцию чуть внимательнее, то данный алгоритм легко поддается дешифровке. Достаточно лишь записать 2 последовательные команды: F1=Ax2+Bx+C Весьма ясно, как взломать пароль. В нашем случае достаточно записать две последовательные команды брелка, решить систему уравнений и получить пароль производителя «А». Для системы другого производителя — другое решение, другой пароль. И так далее. Все что осталось — это занести список паролей в чудо-устройство под названием «адаптирующийся брелок» — вуаля! Задача решена. Этап второй: применение «адаптирующегося брелка». Заметьте, что он не является в истинном смысле адаптирующимся, а он заранее адаптирован под некоторые уже вскрытые системы. Если это для Вас пока не очевидно, дочитайте до конца. Станет чуть понятнее, почему. И еще. Самое время заменить его название в соответствии с его предназначением. Назовем его лучше «граббером для некоторых заранее взломанных систем с плавающим кодом». Еще короче: граббер (но не простой, как для систем с фиксированным кодом, а высокоинтеллектуальный). Последний этап: угон. Как мы помним, хозяин и злоумышленник расстались. Но злоумышленник знает, что автомобиль марки «ХХХ» гос. номер у000уу00RUS оснащен вскрытой сигнализацией, записанной в ячейку номер Z граббера. В зависимости от условий автомобиль может быть угнан немедленно или через неделю. Или через год. До этого момента хозяин мог пользоваться автомобилем, нажимать на кнопки брелка. Счетчик нажатия, записанный в память, увеличился, поэтому и граббер должен передать гарантированно будущий код (например, со счетчиком x+15, т.е. отключающую охрану команду F15). Не получилось — попробовать F30 или F60. Или просто запустить перебор пока счетчик нажатия граббера не догонит счетчик нажатия системы. Поехали! Комментарии не требуются. Отложенный комментарий к первому этапу (вычисление пароля). Пожалуйста, не пугайтесь видимой простоты. Это в нашем случае, когда функция шифрования примитивно проста, подбор пароля был произведен «в две строчки», чисто, решением системы двух уравнений.
Вскрытие пароля можно произвести, используя относительно недорогое оборудование. Записав подряд несколько кодовых комбинаций F1, F2, F3, F4, F5… начинаем простой перебор. Берем номер брелка, шифруем его паролем «00000001», сравниваем код с записанным. Не получилось, применяем пароль «00000002». И так далее до «ZZZZZZZZ». Несколько комбинаций понадобится как для ускорения процедуры подбора, так и для проверки подобранного пароля. Знание системы кодирования позволит нам слегка облегчить задачу:
К сожалению, есть еще один способ узнать пароль. Его можно украсть… Еще раз. Означает ли это, что «Keeloq вскрывается»? Данное утверждение абсолютно бессмысленно. Keeloq — это система кодирования (принцип шифрования). Ее не надо вскрывать: она и так опубликована в открытой печати. «Вскрываются» всегда конкретные бренды. Это происходит в том случае, когда разработчики охранных систем ленятся усложнить доступ к паролям (программно или организационно). Что же делать? Во-первых, знать методику взлома и соответственно выбирать пароль. Простой расчет показывает, что замена пароля на псевдослучайный, когда используются не только цифро-буквенные комбинации, а все разрешенные символы (напомним, их 256), повышает крипкостойкость шифрования в миллионы раз. Ситуация моментально возвращается на исходную позицию, и для подбора пароля понадобится вполне достаточное время, чтобы плюнуть на него и попытаться разгадать другой. А что же дальше? Неужели на этом закончится извечное противостояние брони и снаряда? Разумеется, нет! Теперь при применении «полного Keeloq’а» всякий раз интеллектуальный угон автомобиля должен будет происходить индивидуально, с подбором конкретного пароля. Соответствующие программы (пока еще?) не написаны. Но точки приложения усилий известны. Это — фиксированный формат передачи данных (см. выше раздел «система кодирования Keeloq»), в котором заранее известно, где что расположено и присутствует открытая часть, на которую можно опереться при расшифровке. Кроме того, даже «полный Keeloq» может не выдержать атаки с применением «замещающего граббера». Стоит заметить, что атаки с помощью такого устройства весьма заметны пользователю; о том, как с ними бороться, мы писали в статье проблемы одностороннего доступа. При этом разработчикам нельзя утешаться тем, что «замещающий граббер» обманывает не систему кодирования, а человека, пользующегося брелком. Итог один — угон автомобиля. Можно ли верить нам? Проблемы, связанные с возможными покушениями на систему кодирования Keeloq мы осознали на рубеже веков. В 2001 году мы намекнули об их существовании. В 2002 году было разработано новое семейство Excellent evolution2, достаточно защищенное от этих (тогда еще — во многом потенциальных) угроз. Мы решительно отказались от стандартных микросхем кодирования HCS-xxx, и перешли на специальные процессоры. В попытке объяснить наш подход мы внятно и публично объявили обо всех проблемах в начале 2003 года. Долгое время нас упрекали, что все это выдумки, а мы напрасно переусложняем систему кодирования. Похоже, мы оказались правы? Magic Ring,
декабрь 2005 г. |
ОПТОВАЯ ПРОДАЖА:
Все автомобильные сигнализации и иммобилайзеры подлежат обязательной сертификации. Сертификация может производиться по различным гостам, но самым важным из них является ГОСТ Р 50789-95 (Совместимость технических средств электромагнитная. Устройства охранные сигнально-противоугонные автотранспортных средств. Требования и методы испытаний) или повторяющий его ГОСТ Р 4197-99 (Правила ЕК ООН №97-01). Вы можете посмотреть копии сертификатов на модели разных лет выпуска.

