Новая опасность: «адаптирующийся» брелок

Новая опасность: «адаптирующийся» брелок

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

Несмотря на эпиграф, давайте попытаемся уразуметь, в чем состоит задача. Чтобы достичь желаемого результата понадобиться сделать немного немаловажных упрощений.

Организация кодирования Keeloq. С нее и начнем. В случае применения в охранной системе «стандартного Keeloq А», передаваемая в эфир кодовая комбинация (при нажатии на всякую кнопку) выглядит следующим образом:
<номер нажатой кнопки><номер брелка><...шифрованная часть...>
В шифрованной части присутствует инфа, обеспечивающая распознавание брелка, и, следовательно, отключение охраны авто. Смотрим на приспособление шифрованной части поподробнее. Она содержит:
<<номер нажатой кнопки><доп. инфа><счетчик нажатия>>
Мы наблюдаем, что в структуре Keeloq загодя понятно, где что расположено. Помимо этого, номер нажатой кнопки передается в эфир дважды: 1 раз в открытой, другой раз — в шифрованной части. Это положение нам еще сгодится.

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

В конце концов, производится ревизия счетчика нажатия. В случае если счетчик более, чем зафиксировано в памяти системы, команда считаеся правильной и выполняется (в соответствии с номером нажатой кнопки). Если меньше или же не поменялся — вероятно, что воспроизводится ранее записанная простейшим гра- ббером команда. Такая команда отвергается.

Центровой секрет состоит в том, как же зашифрована «шифрованная часть». Незамедлительно скажем, что это — сильно сложная функция «F», включающая в себя собственно счетчик нажатия «x», номер брелка «C», номер кнопки «B» и центровой секрет (пароль) изготовителя «A» (в случае применения стандартного Keeloq). Однако что нам данные сложности? Давайте полагать, что подобная функция весьма простая, в частности — обыкновенный квадратный трехчлен! Значит:
F=Ax2+Bx+C
Незамедлительно становится понятно, как производится дешифровка в главном модуле. Узнав из эфира номер брелка «С», номер кнопки «B» и загодя зная Пароль «А» нетрудно вычислить счетчик «x». Давайте не обращать внимания, что ответов получилось 2 — мы завсегда можем вычислять верным тот, тот, что более. Без сомнения, не зная Пароля «А», мы не сможем вычислить «x».

Рубеж первостепенный: вычисление пароля
В случае если кинуть взор на нашу функцию малость внимательнее, то этот алгоритм легко поддается дешифровке. Довольно лишь сделать запись 2 последовательные команды:
F1=Ax2+Bx+C
F2=A(x+1)2+B(x+1)+C
Очень ясно, как взломать пароль. В нашем случае довольно вписать две последовательные команды брелка, принять решение систему уравнений и принять пароль изготовителя «А». Для системы другого изготовителя — прочее разрешение, другой пароль. И т.д.. Все что осталось — это ввести перечень паролей в диковина-приспособление под названием «адаптирующийся брелок» — вуаля! Миссия решена.
Комментарий покуда отложим.

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

Как лишь граббер ловит из эфира (синхронно с атакуемой охранной системой) кодовую комбинацию, он начинает ее разбор. Граббер подряд пытается применить все имецющиеся в его памяти пароли к записанному коду. Разбор может проходить по нескольким параметрам, вследствие этого осуществляется достаточно проворно. В качестве прмиера вспомним, что номер нажатой кнопки передается как в открытой, так и в зкрытой части. В случае если не совпало — переходим к следующему паролю, в случае если совпало — продолжаем разбор. При неудаче (пароль не подобран), станем вычислять, что хозяину повезло. Наверное, для угона его авто потребуются прочие средства, к примеру утюг. В случае успеха (пароль подобран) граббер ивещает автомобильного вора тихим зуммером или миганием лампочки. Другой рубеж пройден.
Комментарий ко второму этапу. В различие от «замещающих» или «блокирующих» грабберов владелец авто никоим образом не подозревает о успешности проведенной атаки. Нет никаких затруднений в постановке авто в охрану (или снятии — не так уж и важно!). Граббер работал как несложный приемник.

Крайний период: угон
Как мы помним, обладатель и преступник расстались. Но преступник знает, что автомобиль марки «ХХХ» гос. но- мер у000уу00RUS оснащен вскрытой сигнализацией, записанной в ячейку номер Z граббера. В зависимости от условий автотранспорт возможно угнан немедля либо сквозь неделю. Либо посредством год. До этого момента хозяин мог использовать автомобилем, нажимать на кнопки брелка. Счетчик нажатия, записанный в память, возрос, поэтому и граббер обязан передать гарантированно предстоящий код (скажем, со счетчиком x+15, то есть отключающую охрану команду F15). Не вышло — попробовать F30 или F60. Или легко запустить перебор в то время как счетчик нажатия граббера не догонит счетчик нажатия системы. Поехали! Комментарии не требуются.

Отложенный комментарий к первому этапу (вычисление пароля). Будь добр, не пугайтесь видимой простоты. Это в нашем случае, когда функция шифрования тривиально легка, подбор пароля был проведен «в две строчки», чисто, решением системы двух уравнений.

Потребуется слегка уйти от простейших арифметических примеров. В реальном Keeloq алгоритм сложнее, а переменные в функции не разделяются. Больше такого, сам алгоритм не описывается одной функцией, а представляет собой единый класс функций.
Разумеется, можно постараться вписать не две последовательных команды, а более. К примеру, F1, F2, F3, F4, F5, F6, F7, F8, F9 и так дальше. Однако в случае нелинейной функции шифрования со сложным алгоритмом каждое новоиспеченное уравнение приводит к геометрическому нарастанию времени на розыск точного решения. Не спасает даже то, что разрешение ищется в целых числах! Общее разрешение не достижимо. На этом основании Keeloq победил всех конкурентов и на длительное время стал негласным стандартом шифрования в автосигнализациях. Ибо его лобовой взлом невозможен. В случае если бы…

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

В случае если бы не была сформулирована простая и очевидная мысль: разыскивать общее разрешение и не надо! Довольно выискать приватное, однако конкретное решение. Довольно вскрыть (поднять) четко пароль.
Вскрытие пароля можно сделать, применяя сравнительно недорогое оборудование. Записав подряд немного кодовых комбинаций F1, F2, F3, F4, F5… начинаем немудреный перебор. Берем номер брелка, шифруем его паролем «00000001», сравниваем код с записанным. Не вышло, применяем пароль «00000002». И т.д. до «ZZZZZZZZ». Некоторое количество комбинаций потребуется как для ускорения процедуры подбора, так и для проверки подобранного пароля. Знание системы кодирования позволит нам немножко облегчить задачу:
Можно стремиться подобрать код для новой системы, когда загодя понятно, что счетчик нажатий невелик.
Можно приступить с более простых (смысловых) паролей: имена компаний, названия брендов, названия моделей, клички разработчиков или же их собак.

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

И так дальше. Хакеры это все уже благополучно проходили и не 1 раз.
Как не прискорбно, есть еще 1 метод изведать пароль. Его можно стащить…
Еще раз. Означает ли это, что «Keeloq вскрывается»? Данное утверждение абсолютно тупо. Keeloq — это организация кодирования (принцип шифрования). Ее не нужно вскрывать: она и так опубликована в открытой печати. «Вскрываются» постоянно конкретные бренды. Это происходит в том случае, когда разработчики охранных систем ленятся усложнить доступ к паролям (программно или организационно).

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

Во вторых, применение «полного Keeloq’a», когда каждый брелок шифруется своим паролем. Этим, даже если вскрыть 1 паяроль (а, как мы наблюдаем, это проблема может и обязана бжыть усложнена), то на выходе выйдет алгор- итм шифрования чтобы достичь желаемого результата брелка и лишь! Другой брелок будет зашифрован по-иному! Этим вскрыите пароля стано- вится бессмысленным мероприятием. К тому же воровать, сурово говоря, нечего.
Остается лишь дожидаться, когда компании-разработчики в массовом порядке начнут менять систему кодирования, переходя на «совершенный Keeloq» (он же «супер-Keeloq» или же «усовершенствованный Keeloq»). Ход уже начался. Прелесть ситуации состоит в том, что нет необходимости замещать сами платы охранных систем. Необходимо обменять лишь процессоры, а тоже программу прошивки брелков. Это будет концом теперешнего «граббера = адаптирующегося брелка». А в то время как остается полагаться, что пароль именно Вашей системы ещё не вскрыт и не украден.

А что далее?
Неужто на этом закончится извечное противостояние брони и снаряда? Само собой, нет! В данный момент при применении «полного Keeloq» каждый раз наполненный смыслом угон авто вынужден будет происходить индивидуально, с подбором определенные пароля. Сообразные программы (пока что ещё?) не написаны. Однако точки приложения усилий известны. Это — фиксированный формат передачи данных (см. вбыше раздел «организация кодирования Keeloq»), в котором заблаговременно понятно, где что расположено и наличествует открытая часть, на копию можно опереться при расшифровке. Помимо такого, даже «совершенный Keeloq» может не снести атаки с использованием «замещающего граббера». Стоит заприметить, что атаки с помощью подобного устройства крайне заметны пользователю; про то, как с ними противоборствовать, мы писали в статье трудности одностороннего доступа. При всем при этом разработчикам невозможно утешаться тем, что «замещающий граббер» лжет не систему кодирования, а человека, пользующегося брелком. Результат 1 — угон авто.

Можно ли верить нам?
Трудности, связанные с возможными покушениями на систему кодирования Keeloq мы уразумели на рубеже столетий. В 2001 году мы намекнули о их существовании. В 2002 году было разработано новоиспеченное семья Excellent evolution 2, довольно защищенное от данных (тогда уже еще — во многом вероятных) угроз. Мы твердо отказались от стандартных микросхем кодирования HCS-xxx, и перешли на особые процессоры. В попытке втолковать наш подход мы внятно и публично объявили обо всех задачах в начале 2003 года. Длительное время нас укоряли, что это все выдумки, а мы понапрасну при усложняем систему кодирования. Похоже, мы оказались правы?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *