Сергей Топчий
Приобретая сигнализацию покупатель задает себе естественный вопрос – легко ли подобрать «ключ» к этому электронному замку? Для того чтобы исключить возможность выключения сигнализации нежелательными лицами применяется кодирование передатчиков. Уровень секретности кодов различных сигнализаций значительно отличается. В устаревших сигнализациях применялись коды с числом комбинаций до 512, Подбор такого кода занимает менее 1 минуты. Количество комбинаций кодов в современных сигнализациях может достигать нескольких тысяч миллиардов. Для кодирования сигнала передатчика и последующего его декодирования используются комплекты специализированных микросхем, некоторые из которых представлены в таблице ниже или универсальные микроконтроллера с соответствующим программным обеспечением. Для того чтобы оценить секретность кодировки необходимо обратить внимание на следующие особенности, указываемые в рекламной информации:
Антисканирование
Этот термин обозначает то, что злоумышленник не сможет снять сигнализацию с охраны с помощью сканера. Сканер – это относительно несложное устройство, которое последовательно воспроизводит коды в формате взламываемой сигнализации. Систему с антисканированием нельзя выключить перебором кодов брелока, так как при приеме неверного кода она, на некоторое время блокируется, увеличивая время, необходимое для сканирования. Блокировка снимается многократной передачей правильного кода. При достаточно большом числе возможных кодов перебор займет нереально много времени. Технология антисканирования применяется уже несколько лет и не является новинкой. Системы с антисканированием не защищены от перехвата кодов из эфира с помощью специальных устройств (грабберов или перехватчиков кодов). Антисканирующая пауза является необходимым атрибутом и в системах с динамическим кодом.
Динамический, прыгающий, плавающий код (jumping, hopping, floating и т.д.)
Технология плавающих кодов делает невозможным, как перехват кодов из эфира, так и их подбор. Действительный код шифруется таким образом, что при каждой передаче излучается внешне совершенно другая кодовая посылка. В приемнике действительный код восстанавливается путем математической обработки. Перехват кодов становится бессмысленным, так как невозможно предсказать какая следующая кодовая комбинация снимет сигнализацию с охраны. Простое повторение предыдущей посылки не приведет к выключению сигнализации, так как бывшие в прошлом посылки считаются недействительными. Предсказать же будущую посылку теоретически можно, только зная алгоритм шифрования кода, который держится фирмой-изготовителем в секрете и достаточное количество выборок кода для анализа. Кодовые комбинации повторяются с очень большим интервалом. Исследования модели MICROCAR 052.1 показали, что для данной модели этот период составляет более 65000 нажатий. Можно сказать что, в процессе эксплуатации, передаваемые кодовые комбинации не разу не повторяются – машина не служит 20 лет. Коды-идентификаторы брелоков автосигнализаций с плавающими кодами записываются в заводских условиях и являются уникальными не подлежащими замене в процессе эксплуатации. Технология плавающих кодов очень эффективно защищает сигнализацию от взлома с помощью электронных средств. Степень защиты от расшифровки зависит от применяемого алгоритма кодирования. Приведенные ниже рис.1 и 2 позволяют наглядно оценить, на сколько изменяются коды передатчика при четырех последовательных нажатиях кнопки брелока у различных распространенных систем сигнализации.
Двойной динамический код
С тех пор, как код – граббер перестал быть экзотикой и доступен угонщикам, все большое значение уделяется степени секретности кодовой посылки, передаваемой с брелока. Как результат этого процесса все большее число систем выпускается с динамическим кодом. Никто не оспаривает его преимуществ. Однако и он не может считаться панацеей на все случаи. Если алгоритм изменения становится известен, (а он известен, по крайней мере, разработчику), то внедриться в систему остается делом техники. Не даром система кодировки так тщательно засекречивается и скрывается производителями сигнализаций. Для исключения и этой возможности для электронного взлома разработан так называемый D2-код, сущность которого заключается в том, что каждому брелоку, помимо разрядного номера, присвоен еще и свой индивидуальный закон изменения кода. Это индивидуальное правило записывается в декодер один раз при вводе (программировании) брелока, в эфире больше не появляется и радиоперехвату недоступно. Таким образом, даже разработчик системы, обладая всей необходимой информацией о способах кодирования и соответствующей аппаратурой, не сможет расшифровать этот код. Специалисты считают, что динамический код с индивидуальным законом изменения для каждого брелока это тот уровень секретности, когда вопрос о дальнейшем совершенствовании отпадает, по крайней мере, на ближайшие 20...30 лет.
Формирование динамического кода
Прыгающий код KEELOQ фирмы Microchip
Основные термины
Код изготовителя (Manufacturer's Code) – 64-битовое слово, уникальное для каждого изготовителя, используется, для того чтобы произвести уникальный кодирующий ключ в каждом передатчике.
Кодирующий ключ (Encoder Key) – 64-битовый ключ, уникальный для каждого передатчика. Ключ кодирующего устройства управляет алгоритмом дешифрования и хранится в EEPROM микросхемы декодера.
Обучение – приемник в режиме обучения использует информацию, которая передана, чтобы получить передатчика, дешифровать диапазон дискриминации, и синхронизировать счетчик.
Ключ кодирующего устройства – функция кода изготовителя и серийного номера устройства и-или величина начального смещения. Кодеры и декодеры используют технологию прыгающего кода KeeLoq и алгоритм шифрования KeeLoq.
Прыгающий код – метод, при которым код, переданный с передатчика на приемник является различным, при каждом нажатии кнопки. Этот метод, вместе с длиной передачи 66 битов, фактически делает невозможным перехват или подбор кода.
Принцип работы кодера
Кодирующие устройства серии HCS имеют небольшой массив EEPROM-памяти, который должен быть загружен несколькими параметрами перед использованием.
Наиболее важный из этих величин:
кодирующий ключ, который генерируется;
16-битовое число в счетчике синхронизации;
28-битовый серийный номер, который, как предполагается, является уникальным для каждого кодера.
Изготовитель программирует серийный номер для каждого кодера во время продукции, в то время как «Алгоритм генерирования ключа» генерирует кодирующий ключ (рис.1а).
Исходные данные к алгоритму генерирования ключа включают в себя серийный номер кодера и 64-битного код изготовителя, который создается во время изготовления.
Обратите внимание: код изготовителя – самая важная часть секретности системы. Следовательно по отношению к этому коду должны приниматься все возможные предосторожности.
Счетчик синхронизации с 16-битным основанием служит для модификации передаваемого кода, при каждой передаче и обновляется каждый раз по нажатию кнопки.
Благодаря сложности алгоритма шифрования KEELOQ, изменение в одном бите величины счетчика синхронизации приводит к большим изменениям в передаваемом коде.
Имеется связь (рис.3) между величинами в СППЗУ и фактическим выходным кодовым словом.
Если только кодер обнаруживает, что кнопка была нажата, он считывает состояние входных сигналов и модифицирует счетчик синхронизации.
Величина из счетчика синхронизации обрабатывается вместе с кодирующим ключом алгоритмом шифрования KEELOQ, в результате получаются 32 бита шифрованной информации.
Эти данные изменятся с каждым нажатием кнопки. Это и упоминается как прыгающая часть кодового слова.
32-битовая часть с прыгающим кодом объединена с информацией о нажатой кнопке и серийным номером, чтобы формировать кодовое слово, передаваемое на приемник.
Принцип работы декодера
Прежде, чем передатчик и приемник смогут работать вместе, приемник должен сначала обучиться и сохранять некоторую информацию из передатчика.
Эта информация включает контрольную сумму серийного номера, кодирования ключ, и текущую величину счетчика синхронизации.
Когда сообщение верного формата обнаружено, приемник сначала сравнивает серийный номер.
Если контрольная сумма серийного номера соответствует запомненному ранее передатчику, сообщение дешифруется.
Затем, приемник проверяет расшифрованную величину счетчика синхронизации сравнивая ее с тем, что сохранено в памяти. Если величина счетчика синхронизации удовлетворяет, то допустимое сообщение принимается. Рис.4 показывает связь между некоторыми из величин, сохраняемых приемником и величинами, полученными от передатчика.
Кодеры и декодеры фирмы Holteс
Кодер HT6P26 обеспечивает передачу 4 битов данных к декодерам HT6P36.
HT6P26 имеет внутренний 16-битовый случайный счетчик синхронизации. При передаче очередного кода величина случайного счетчика изменится, и величина изменения передается декодеру.
Передаваемое кодовое слово разделено на нечетное и четное окно.
И нечетное, и четное окно включает в себя 8 пилотных битов, 1/3 стартовых биты, 24 катящихся бита, 16 битов индекса, 16 случайных битов и 4 бита данных (рис.5).
«Катящиеся» биты и «случайные» биты генерируются различными алгоритмами шифрования (рис.6).
Биты данных устанавливаются по состоянию выводов данных.
Синхронизация системы с динамическим кодом
Для того чтобы обеспечить невозможность вскрытия сигнализации уже переданными ранее комбинациями в системах с динамическим кодом в кодовой посылке присутствует информация о том, сколько раз нажималась кнопка брелока с момента программирования микросхемы кодера изготовителем. При запоминании брелока микросхемой декодера (процедура learning) состояния счетчиков в кодере и декодере уравниваются. Каждый раз при получении кода счетчик декодера следит за тем чтобы счетчик кодера указывал на большее или равное значение. Только тогда принятый код считается верным. Разница между счетчиком декодера и счетчиком кодера при которой код все еще считается верным различна для устройств разных изготовителей и может составлять величину от единиц до сотен.