StepCool:
bambi:
Mush:
Полноценная защита лишь одна - открывать кнопкой на брелке
Сигнал с брелока тоже ловится. Полноценной защиты нет. Как говорят если захотят угнать, то угонят с любыми средствами защиты, вопрос лишь в затратах времени. Но авто с кесси может вскрыть даже школьник)
недостаточно 1 раз перехватить сигнал с брелка, чтобы открыть им же машину в следующий раз, имхо. Насколько я понимаю, вся система построена на последовательности разных шифров, которые работают по кругу, ну или что-то вроде того.
Не по кругу, но близко к этому. Если кратко, то ключ отправляет запрос автомобилю на какое-то действие. Автомобиль принимает его, понимает, что этот ключ представляется "своим", но что эту команду нельзя просто взять и исполнить, а нужно убедиться, что ее послал подлинный ключ. Тогда машина генерирует достаточно большое случайное число и посылает его ключу с просьбой подписать команду. Ключ принимает это число, и на основе трех компонент - полученного от машины числа, самой команды и секретного ключа, зашитого в ключ, генерирует некий шифр. Изменение хотя бы на 1 бит любого из этих трех компонент приводит к изменению результата. Вычисляется он по специальному алгоритму - чаще всего это один из алгоритмов хэширования, т.е. так-называемая хэш-функция. От шифрования она отличается тем, что это преодразование происходит с потерей данных и восстановить назад первоначальные данные (т.е. команду, случайное число и секретный ключ) уже невозможно. Автомобиль же тоже знает секретный ключ и потому сам тоже может рассчитать значение нужного хеша. И потом сравнивает полученный результат с тем, что пришло от ключа. И получается, что если случайное число выбирается из большой последовательности, допустим, из миллиарда вариантов, то шансы, что в следующий раз для подтверждения будет использована та же команда - один на миллиард. Расшифровать сигнал, чтобы получить секретный ключ, за сколько-нибудь вменяемое время не получится, если все сделано верно. А использовать ранее перехваченную команду повторно не выйдет, т.к. в следующий раз команда будет уже другой.
Так обычно работает система. Но бывают проблемы с ее реализацией. Например, в криптографии очень важно соблюдать правильную длину ключа, а генерируя его, использовать по-настоящему случайные числа, а не псевдослучайные, как это обычно генерирует програмная реализация функции Random в компьютерах. Поэтому иногда для нужд криптографии даже специальные устройства - генераторы случайных чисел выпускают. Иначе, получив один или несколько ключей, сгенерированных с помощью псевдослучайной последовательности, можно предсказать какие еще ключи были сгенерированы до этого и после этого. И вот тебе почти готовая база ключей - остается вместо перебора всех возможных комбинаций (условно говоря триллиона квадраллионов вариантов), всего лишь пробежаться по базе из нескольких тысяч известных ключей.
На заре диалоговых алгоритмов у сигнализаций и брелков ЦЗ уже был большой прокол, на котором попались как многие автопроизводители, так и производители сигнализаций. Они закупили у одной фирмы чипы для брелков и компоненты для автомобиля с хорошей надежной защитой. Но начали для нее неправильно генерировать ключи - вместо того, чтобы у каждого ключа все байты делать полностью случайными, они довольно длинную часть ключа оставляли неизменной, а меняли от ключа к ключу лишь последние несколько байт. Когда взломщики это обнаружили, то поняли, что фактическая секретная часть ключа - это те самые несколько последние байт, которые перебрать по порядку и взломать можно уже не за десятки тысяч лет, а за короткое время. Есть только одна проблема - особенность хэш-функции такова, что один и тот же хэш можно получить из нескольких разных наборов данных. А значит, и подходящих под перехваченный хэш ключей может подобраться несколько. Из них один ключ будет настоящим (работает с любым случайным числом, полученным от автомобиля), а остальные - ложными (они подходят только под перехваченное случайное число и с последующими запросами работать не будут). Чтобы понять, какой из них настоящий, нужно перехватить не одну, а 2-3 команды. Тогда из всех подобранных ключей один (настоящий) будет подходить под все запросы, а остальные (ложные) будут подходить только под один из перехваченных запросов. Т.к. эта ошибка в ключах была очень массовой, то под нее были выпущены код-грабберы со встроенной глушилкой сигнала. Владелец выходил из машины, жал на кнопку закрыть - а ключ не срабатывает. Жмет второй раз - не срабатывает. Жмет третий - сработало. "Глюки какие-то" думает водитель. А на самом деле код-граббер перехватил все три команды, при этом на первые две поставил помеху, чтобы владелец еще раз на ключ нажал. Пока владелец где-то ходит, код-граббер перебирает варианты по первой перехваченной команде. Т.к. ключ по ошибке был сгенерирован неправильно, то перебрать нужно относительно немного вариантов и он очень быстро находит несколько потенциально подходящих ключей. Потом по второй-третьей перехваченным командам перепроверяет потенциальные ключи и находит один настоящий из них. Все - секрет замка взломан, код-граббер теперь может имитировать настоящий ключ. И эти код-грабберы стали настолько массовыми и дешевыми, что ими стали пользоваться не только угонщики, но и мелкие барсеточники. Онлайнер даже статью публиковал про подобные случаи в Минске.
Но если секретные ключи автопроизводителями генерируются правильно, то такая система с диалоговым кодом является теоретически невзламываемой за сколько-нибудь вменяемое время.