Любой устмановщик раньше времени или же поздненько сталкивается с небоходимостью втолковать «по-простому, на пальцах», как же работает алгоритм 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 evolution2, довольно здащищенное от данных (тогда уже ещё — во многом вероятных) угроз. Мы твердо отказалсь от стандартных микросхем кодирования HCS-xxx, и перешли на особые процессоры. В попытке пояснить наш подх- од мы внятно и публично объявили обо вех задачах в начале 2003 года. Длительное время нас укоряли, что это все выдумки, а мы бесполезно переусложняем систему кодирования. Похоже, мы окъазались правы?