Автосигнализация keeloq схема подключения
Keeloq и Двойной динамический код vs Кодграббер
Если любознательный автолюбитель задает вопрос о том, смогут ли перехватить код брелка его сигнализации и, таким образом, - угнать авто, он получает от установщика автосигнализации чаще всего такой ответ: "Код динамический (иногда добавят название алгоритма шифрования), при каждой новой посылке меняется". Обычно после этого ответа не возникает вопросов и радостный автовладелец уезжает восвояси, спокойный и довольный. Конечно не может быть и речи о спокойствии только на основании того, что автосигнализация поставлена и код у нее динамический. И речь здесь идет не о криптостойкости! - дело в том, что недостаточно одной сигнализации, - это вам скажет любой установщик.
Все специалисты и работники сервисов сходятся во мнении по следующим вопросам:
1. Желательно в дополнение к автосигнализации использовать иммобилайзер или реле, управляемое по штатной проводке, что в принципе, на данном этапе развития отрасли - одно и тоже.
2. Почти необходим замок капота (механический или электромеханический)
3. Степень угонустойчивости чуть ли не на половину зависит от подхода к установке и профессионализма мастера. С этим трудно не согласиться!
Однако если взять вполне "приличный" и дорогой охранный комплекс, состоящий из автосигнализации, удаленного реле, висящего на штатном проводе и управляемого от сигнализации, а также, например электромеханического замка на капот Defentime (управляемого от автосигнализации), то электронный ключ от автосигнализации - это все что нужно угонщику, что бы сесть в ваш автомобиль и уехать. Как печально! Вывод напрашивается сам собой, - трудно переоценить значание криптостойкости вашей автосигнализации .
Окунемся немного в историю и посмотрим, - какже появились на свет все эти Килоги, и прочие алгоритмы шифрования
В устаревших сигнализациях применялись коды с числом комбинаций до 512, Подбор такого кода занимает менее 1 минуты. Количество комбинаций кодов в современных сигнализациях может достигать нескольких тысяч миллиардов. Первая структура динамического кода была предложена итальянской компанией Autotechnica еще в 1995 году. Но подлинная революция в применении этой технологии произошла, когда компания Microchip изготовила наборы кодирующих и декодирующих устройств, сопроводив их своими руководствами по внедрению. Эта "техническая интервенция" способствовала появлению у разных изготовителей своих собственных оригинальных алгоритмов. Однако, до сих пор продукция фирмы Microrochip пользуется большим спросом, а технология "Keeloq" известна всем, кто не остановил свое знакомство с автомобилем на замке зажигания, двери и "балоннике".
Именно здесь, я сделаю отступление и расскажу автолюбителям о таком понятии, как антисканирование, - практически стандартная опция для современной автосигнализации. Под этим термином понимают то, что злоумышленник не сможет снять сигнализацию с охраны с помощью сканера. Сканер – это относительно несложное устройство, которое последовательно воспроизводит коды в формате взламываемой сигнализации. Систему с антисканированием нельзя выключить перебором кодов брелока, так как при приеме неверного кода она, на некоторое время блокируется, увеличивая время, необходимое для сканирования. Блокировка снимается многократной передачей правильного кода. При достаточно большом числе возможных кодов перебор займет нереально много времени. Технология антисканирования применяется уже несколько лет и не является новинкой. Системы с антисканированием не защищены от перехвата кодов из эфира с помощью специальных устройств (грабберов или перехватчиков кодов). Антисканирующая пауза является необходимым атрибутом и в системах с динамическим кодом.
Что же такое динамический код.
Технология плавающих кодов делает невозможным, как перехват кодов из эфира, так и их подбор. Действительный код шифруется таким образом, что при каждой передаче излучается внешне совершенно другая кодовая посылка. В приемнике действительный код восстанавливается путем математической обработки. Перехват кодов становится бессмысленным, так как невозможно предсказать какая следующая кодовая комбинация снимет сигнализацию с охраны. Простое повторение предыдущей посылки не приведет к выключению сигнализации, так как бывшие в прошлом посылки считаются недействительными. Предсказать же будущую посылку теоретически можно, только зная алгоритм шифрования кода, который держится фирмой-изготовителем в секрете и достаточное количество выборок кода для анализа. Кодовые комбинации повторяются с очень большим интервалом. Исследования модели MICROCAR 052.1 показали, что для данной модели этот период составляет более 65000 нажатий. Можно сказать что, в процессе эксплуатации, передаваемые кодовые комбинации не разу не повторяются – машина не служит 20 лет. Коды-идентификаторы брелоков автосигнализаций с плавающими кодами записываются в заводских условиях и являются уникальными не подлежащими замене в процессе эксплуатации. Технология плавающих кодов очень эффективно защищает сигнализацию от взлома с помощью электронных средств. Степень защиты от расшифровки зависит от применяемого алгоритма кодирования. Именно здесь и кроется одно большое "НО" (см. далее "Двойной динамический код")
Рассмотрим немного подробнее, что же представляет из себя динамический код на основе все того же Keeloq
В основе технологии keeloq лежит понятие секретных кодирующих/декодирующих ключей (шифров), которые преобразуют исходную информацию в кодированную и кодированные данные в исходные.
Однако к кодирующему ключу разработчикам пришлось добавить еще несколько структур данных специального назначения. Кратко рассмотрим их.
Кодирующий (секретный) ключ 64-битовая комбинация, образуемая генерирующей функцией из серийного номера (ядра) и 64-битового ключа изготовителя. Кодирующий ключ используется для кодирования, а декодирующий для декодирования посылки. Значение ключа не может быть прочитано, и оно никогда не передается.
Счетчик синхронизации 16-битовая комбинация счетчика, передаваемая каждый раз при активации кодирующего устройства (кодера), например, путем нажатия кнопки брелока. Счетчик синхронизации формируется в кодере и передается в закодированном виде в составе переменной части посылки. Эта структура позволяет отслеживать синхронность шагов декодирующего и кодирующего устройств. Текущее значение счетчика синхронизации от каждого кодера запоминается в декодере и позволяет отличить принятую следующую посылку от предыдущей или внеочередной, созданной не в соответствии с алгоритмом.
Дискриминатор 12-битовая произвольная комбинация, передаваемая кодером в закодированном виде в составе переменной части посылки. Он используется для проверки целостности процесса декодирования.
Серийный номер уникальный номер каждого кодера (брелока-передатчика) из 28 или 32 бит. Формируется при изготовлении кодера и передается в некодированном виде в постоянной части посылки.
Каждый кодер характеризуется набором из четырех величин, описанных выше: кодирующего ключа, счетчика синхронизации, дискриминатора и серийного номера. Поскольку значения всех этих величин различны для разных кодеров, то декодер должен хранить в памяти столько наборов, сколько кодеров использует система (обычно не более 6 8).
Формирование кодирующего ключа в кодере производится специальным программатором в процессе изготовления кодера. Для генерации кодирующего ключа необходимы серийный номер и ключ изготовителя.
Ключ изготовителя 64-битовая комбинация, используемая для образования кодирующего ключа и обеспечивающая разделения всего кодового пространства посылок между разными изготовителями. Ключ изготовителя также записывается в память декодирующего устройства. Естественно, для работы со всеми кодерами системы, произведенными одним изготовителем, достаточно запоминания одного ключа изготовителя.
Для того, чтобы сигнализация могла опознать "свои" брелки, в кодовой посылке брелка и памяти декодера сигнализации содержатся одинаковые коды-идентификаторы, которые запоминаются сигнализацией при программировании ("обучении") брелков. Код - идентификатор каждого брелка уникален и, чаще всего, записывается в кодер брелка при изготовлении.
Для того, чтобы код-идентификатор нельзя было перехватить из эфира, все (точнее практически все) уже передававшиеся коды нужно отсеивать, как недействительные. Кроме того, код-идентификатор и служебную информацию нельзя передавать в явном виде. Это возможно сделать, если до передачи налагать на код различные неповторяющиеся маски. Чтобы иметь возможность удалить маску при приеме, ее необходимо пронумеровать. В кодер и декодер включен т.н. счетчик синхронизации. Счетчик синхронизации содержит текущий номер маски. Каждое нажатие кнопки брелка приводит к увеличению состояния счетчика синхронизации брелка и изменению налагаемой маски. Типичная емкость счетчика синхронизации - 16 двоичных разрядов. Таким образом, брелок генерирует 65000 неповторяющихся масок.
Кодовый брелок сигнализации – это миниатюрный передатчик, работающий в диапазоне дециметровых волн (200. 450 МГц). Реже встречаются модели, работающие на инфракрасных лучах, они отличаются малым радиусом действия.
Для сигнализаций оснащенных брелоками на ИК – лучах перехват кодов весьма затруднен из-за малого радиуса действия и направленности брелоков-передатчиков (при пользовании их приходится направлять в определенное место салона автомобиля с расстояния не более нескольких метров). Эта особенность может создавать неудобства при пользовании. Сигнализации с ИК-брелоками: BOSH Blocktronic IR-US, BOSH Blocktronic IM-US
Рабочие частоты передатчиков постоянны и нормированы контрольными органами электросвязи стран в которые эти устройства ввозятся.
Для передачи кода в эфир используется однотранзисторный генератор, работающий на одной из вышеуказанных частот. В современных сигнализациях, во избежание ухода частоты при изменении температуры и влажности, частота передачи стабилизируется с помощью фильтров на поверхностных акустических волнах. Для воспроизведения кода – идентификатора в брелоках используются специализированные микросхемы – кодеры, а также, запрограммированные соответствующим образом, микроконтроллеры.
Двойной динамический код
С тех пор, как код – граббер перестал быть экзотикой и доступен угонщикам, все большое значение уделяется степени секретности кодовой посылки, передаваемой с брелока. Как результат этого процесса все большее число систем выпускается с динамическим кодом. Никто не оспаривает его преимуществ. Однако и он не может считаться панацеей на все случаи. Если алгоритм изменения становится известен, (а он известен, по крайней мере, разработчику), то внедриться в систему остается делом техники. Не даром система кодировки так тщательно засекречивается и скрывается производителями сигнализаций. Для исключения и этой возможности для электронного взлома разработан так называемый D2-код, сущность которого заключается в том, что каждому брелоку, помимо разрядного номера, присвоен еще и свой индивидуальный закон изменения кода. Это индивидуальное правило записывается в декодер один раз при вводе (программировании) брелока, в эфире больше не появляется и радиоперехвату недоступно. Таким образом, даже разработчик системы, обладая всей необходимой информацией о способах кодирования и соответствующей аппаратурой, не сможет расшифровать этот код.
KeeLoq является блочным кодом с 64-разрядным ключом и размером блока 32 бита.
Как видно из рис. 1, блок-схема кодирования состоит из регистра сдвига данных, формирователя нелинейной функции NLF, аргументами которой являются 5 бит регистра данных, логического элемента XOR (исключающее ИЛИ) и регистра сдвига ключа кодирования. Нелинейная обратная связь для регистра данных формируется из бита выхода NLF, двух бит данных и бита ключа кодирования.
Процесс декодирования полностью аналогичен кодированию, за исключением направления сдвига и отводов регистра данных для функций NLF и XOR.
Нелинейная функция введена в алгоритм для устранения линейной связи между исходными и шифрованными текстами. В противном случае этот алгоритм кодирования действительно был бы совсем прост для "взлома". Как известно из школьной алгебры, функции второго (квадратный многочлен) и третьего порядка имеют в общем случае соответственно два и три корня (решения). Здесь используется NLF 32-го порядка и для каждой комбинации 5-ти аргументов эта функция имеет 32 корня.
С теоретической точки зрения, мощности этого кода вполне достаточно для использования в устройствах дистанционного управления центральными замками, охранных системах или в системах идентификации иммобилайзеров автомобилей, срок эксплуатации которых значительно меньше продолжительности "взлома" ключей кодирования этих систем.
Стандартный формат KeeLoq кода имеет следующий вид (ри.2).
Открыто передаются:
- 28 бит Серийного Номера передатчика, который должен быть уникальным для каждого выпускаемого производителем передатчика. Этот номер является первичной информацией для распознавания передатчика в приемнике устройства дистанционного управления. Как правило, этот номер используется при формировании ключа кодирования для данного передатчика. Кроме того, в более секретных устройствах управления этот номер может передаваться в закодированном виде (Envelope Code) для исключения возможности применения различных код-грабберов.
- 4 бита кода команды.
- 2 бита состояния источника питания передатчика и признака повтора посылки.
Собственно алгоритм KeeLoq используется для кодирования следующих 32 бит данных:
- 16 бит счетчика синхронизации передаваемых посылок, обеспечивающих правильную работу декодера на приемной стороне.
- 4 бита команды.
- 12 бит значения дискриминанта – секретного слова, которое может задаваться для каждой группы устройств, выпускаемых производителем.
Исходные значения всех этих бит помещаются в регистр данных кодера в начале процесса кодирования и через 528 циклов в этом регистре получается набор бит шифра, передаваемго в изменяемой части стандартной посылки. Свойства алгоритма KeeLoq обеспечивают изменение как минимум половины бит этого набора при изменении только одного любого бита исходного набора. Это и обеспечивает неповторимость этой части посылки, препятствующей простому копированию кода из эфира для дальнейшего несанкционированного доступа к охраняемому объекту.
Использование KeeLoq в системах идентификации Свой-Чужой
Уже много лет, как международный стандарт автомобилестроения требует обязательного применения в каждом автомобиле такого противоугонного устройства, как иммобилайзер, который, как правило, обеспечивает выполнение процедуры идентификации ключа зажигания по системе Свой-Чужой при каждом пуске двигателя. При этом, встроенная в тело ключа зажигания микросхема транспондера принимает цифровой сигнал запроса иммобилайзера, распознает код этого сигнала, формирует из него с помощью алгоритма шифрования ответный сигнал и передает его обратно иммобилайзеру вместе со своим серийным номером. Декодер иммобилайзера декодирует ответ и в случае совпадения серийного номера и "пароля" (дискриминанта) разрешает работу двигателя.
В автомобилях Chrysler, Daewoo, Fiat, GM, Honda, Toyota, Volvo, VW, Jaguar в качестве такого алгоритма используется KeeLoq. При этом иммобилайзер формирует 32-разрядные запросы случайным (квазислучайным) образом и оба устройства – иммобилайзер и транспондер используют одинаковые ключи кодирования.
Использование KeeLoq в дистанционном управлении
Схемы формирования и использования Ключей
В KeeLoq технологии используется два типа ключей:
- Ключ Производителя (Мастер Код) – 64-разрядное слово, уникальное для каждого производителя и используемое для формирования Индивидуальных Ключей для каждого устройства этого производителя.
- Индивидуальный Ключ устройства – 64-разрядное слово уникальное для каждого устройства кодирования, формируемое по определенному алгоритму с использованием Ключа Производителя. Этот ключ одинаков для кодирования и декодирования информации.
Индивидуальный Ключ стандартных микросхем кодеров формируется в технологических программаторах во время производства конкретных устройств и хранится в EEPROM кодера. Ключ Производителя в памяти кодеров не хранится. В декодере Индивидуальные Ключи каждого передатчика формируются при его регистрации с использованием его же индивидуальных данных, например, Серийного Номера, и хранятся эти ключи в EEPROM декодера. Так как в формировании Индивидуальных Ключей устройств должен использоваться Ключ Производителя, то он всегда хранится в ROM памяти декодера.
Процедуры формирования Индивидуальных Ключей кодирования составляют главный секрет технологии KeeLoq. Некоторые процедуры защищены даже патентами и не могут быть использованы бесплатно другими производителями. Стандартные процедуры описаны в руководствах по применению микросхем компании Мicrochip, что послужило успешному "взлому" ключей некоторых производителей, использующих самые простые из них.
В общем, описание стандартных процедур формирования Индивидуальных Ключей выглядит следующим образом.
На рис. 4 представлены две декларируемые в официальных документах Микрочип и в статьях по их "взлому" схемы формирования Индивидуальных Ключей кодирования. На самом деле две представленные схемы демонстрируют 4 процедуры формирования Ключа.
Вторая разновидность процедуры называется "Защищенной" (Secure). Её смысл заключается в использовании для формирования Индивидуального Ключа не открыто передаваемого Серийного Номера, а индивидуального для каждого кодера, так называемого "Зерна". Зерно может иметь длину (в зависимости от модели стандартной микросхемы HCS-кодера) 32, 48 или 60 бит и генерируется как случайное число при технологическом программировании микросхемы. Это Зерно хранится в EEPROM кодера. На рис. 5, 6, 7 представлены различные варианты формирования Индивидуального Ключа с использованием Зерна.
Эта процедура обеспечивает достаточно мощную защиту от различных атак на KeeLoq, однако она практически н еиспользуется в коммерческих устройствах, т.к. требует достаточно много программных ресурсов. Наиболее часто используется следующая процедура.
Третья разновидность процедуры называется "Простой" (Simple). Эта процедура редко упоминается в официальной документации Микрочип и в работах по "взлому" Ключей. Однако эта процедура имеется в технологических программаторах стандартных микросхем KeeLoq кодеров и Мicrochip предлагает пример исходного текста программной реализации соответствующего декодера. Смысл этой процедуры заключается в самой дешевой реализации программного декодера, код которого занимает всего 250 байт в программой памяти процессора, предоставляя большую часть этой памяти для реализации потребительских функций, например, в сигнализации. Достигается это тем, что во всех изделиях производителя просто используются одинаковые Индивидуальные Ключи и, как правило, им является Ключ Производителя. С коммерческой точки зрения это очень выгодно – по всем внешним признакам KeeLoq, а на самом деле "кукла".
Непосредственно в соответствие используемым процедурами формирования Индивидуальных Ключей применяются и процедуры регистрации передатчиков дистанционного управления (кодеров) в приемных устройствах (декодерах). В оригинальной литературе Мicrochip этот процесс называется "обучение" приемников передатчикам.
В приведенном описании преднамеренно акцентируется внимание на широком применении стандартных микросхем кодеров серии HCS и широко известных примеров программного обеспечения для реализации декодеров на микропроцессорах фирмы Мicrochip. Применение этих стандартных и широко известных средств вызвало штормовую волну разнообразных и небезуспешных атак на применяемую практически во всем мире в промышленных масштабах технологию кодирования KeeLoq. Однако, даже из этого краткого описания очевидно, что в этой технологии возможно применение множества средств, обеспечивающих надежную защиту от любых атак.
Принцип работы систем контроля доступа с радиоканалом
Сигналы Радиоканала по которому передаются данные между сигнализацией и брелком распространяются во все стороны и по этому обмен информацией, можно "прослушать". В черте города находятся много других сигнализаций которые не должны реагировать на чужой пульт. Чтобы защитить канал обмена от случайного или умышленного воздействия, сигнал обмена между брелком и блоком сигнализаций кодируется.
Данные по радиоканалу передают в виде последовательностей — пакетов. Каждый пакет сигналов можно представить как команду (например, "Поставить на охрану и Закрыть замки" или "Снять с охраны и открыть замки").
Разберемся подробней, на какие типы делятся подобные системы. На сегоднящей день алгоритмы шифрования радио обмена делятся на следующие основные категории:
Статический код
Самые первые сигнализации с радиоканалом имели статический код — каждой команде соответствовал свой командный пакет. Формат пакета выбирался пользователем или установщиком с помощью переключателей внутри брелка, или запаиванием перемычек. Вариантов кода было не много и своим брелком можно было открыть чужую машину если совпадали коды команд.
Такое кодирование не обеспечивало должной защиты, достаточно было записать команду "снять с охраны", а затем воспроизвести её и машина снимается с охраны как с родного брелка. Тогда и появились первые кодграбберы предназначенные для перехвата, декодирования и повтора кода, чтобы снять автомобиль с охраны с целью угона.
Виды чипов имеющие статический код и применяемые в пультах управления сигнализаций
- [6010] HT-6010, HT6014, SH-312E - 3-х статусный код
- [H600] HT-600, НТ-680, HT6187, HT6270, TT-13, ПК-10Т - 3-х статусный код
- [5026] AX5026, CT5026 - 3-х статусный код
- [5326] AX5326, AX5326S - 3-х статусный код
- [2262] PT-2262, M3E, CT5062 - 3-х статусный код
- [8092] TT8092 - 3-х статусный код
- [4134] MC41342, MC145026, SC41342 - 3-х статусный код
На примере чипов HT6010, HT6012, HT6014 рассмотрим принцип кодирования 3 12 (3-х статусный код) и обмена между пультом и сигнализацией.
В состав семейства входит 3 микросхемы кодеров (HT6010, HT6012, HT6014) и три микросхемы декодеров (HT6030, HT6032, HT6034).
В состав кодовой последовательности, генерируемой кодерами этого семейства, входит преамбула, синхронизирующий бит и 12-разрядное поле адреса/данных, длинна периода одного бита равна 6-ти импульсам тактовой частоты (рис. 1).
Значение адреса и данных на этих чипах устанавливается с помощью переключателей, внешней схемой или программно. Каждый вывод адреса/данных кодера кодируется тремя состояниями: подключен к минусу электропитания (логический ноль), подключен к плюсу электропитания (логическая единица), не подсоединен (не подключено) - (рис. 2).
Краткие технические характеристики и совместимость микросхем этого семейства 3 12 смотрите в таблице
Типовая схема подключения кодера HT6012 представлена на (Рис. 3), (A0-A9) - Кодирует адресную посылку из 10-ти бит (пароль дотупа) (D10-D11) - 2-а бита данных, резистор (Rosc) - задает тактовою частоту работы чипа. Данные с выхода (DOUT) передаются на вход передатчика с амплитудной модуляцией который может работать на частоте 433 МГц или 310 МГц
Декодеры проверяют принятую кодовую последовательность, информационная часть которой состоит из 12 бит (N бит адреса и N бит данных). Принятые данные передаются в соответствующие выходные защелки только если команда была два раза подряд правильно дешифрирована и принятый адрес (пароль) совпал с установленным в декодере. При правильно принятой команде на выходе VT появляется высокий уровень сигнала. Декодеры этого семейства могут иметь 0, 2 и 4 выходных защелок данных (соответственно, 12, 10 и 8 входов адреса). На рисунке 4 показана типовая схема включения декодера HT6032 информационная часть которой состоит из 12 бит (10 бит адреса и 2 бита данных).
Динамический код
С ростом спроса на охранные системы автомобилей и упорядочивания частоты радиоканала на 433.92 Мгц, производители сигнализаций перешли на новый вид кодирования, вот тогда и появилось понятие динамический код. Данный вариант подразумевает то, что при каждом нажатии на кнопку брелка в эфир посылается уникальный код команды, вероятность повторения которого очень мала. Теперь записанную в памяти граббера посылку можно было просто выкинуть, ведь блок сигнализации уже с ней отработал и выкинул из списка правильных пакетов. В случае если коды были не большими по количеству битов в команде, еще можно было пользоваться методом подбора кодов с помощью сканера, но эти случаи были единичными, и продолжалось это не долго, появился революционный метод кодирования под названием KEELOQ.
KEELOQ
В 80-х годах в африканской компании NANOTEQ, занимающейся вопросами информационной безопасности, была разработана система алгоритмов защиты под названием KEELOQ (часто эту кодировку производители указывают как CODE HOPPING). В 1995 году фирма MICROCHIP приобрела отделение Keeloq у фирмы Nanoteq вместе с лицензионными правами.
MICROCHIP разработал новый ряд компактных микросхем кодеров и декодеров на основе алгоритма Keeloq с динамическим (прыгающим) кодом. Низкая стоимость и высокая степень защиты, а также миниатюрные размеры совершили революцию в индустрии автомобильных сигнализаций. Очень много систем и сейчас используют в пультах сигнализаций готовые кодеры, такие как HCS200, HCS300, HCS301, HCS320.
Алгоритм Keeloq
Рассмотрим подробней реализацию алгоритма Keeloq на основе кодеров семейства HCS компании MICROCHIP.
Прежде чем использовать микрочип в пультах сигнализаций он должен быть запрограммирован производителем сигнализации в процессе производства. Вся запрограммированная информации сохраняется во встроенном EEPROM (энергонезависимая память), и это:
Все запрограммированные ключи шифрования и кодовые комбинации EEPROM защищены от чтения, что эффективно защищает против попыток получить доступ к ключам и управлять значениями синхронизации. EEPROM может быть перепрограммирован после стирания .
Ключ производителя – это уникальный 64-х битный ключ,
который используется при генерации уникального ключа шифрования для каждого кодера.
Код производителя – это основная часть полной защиты системы.
При нажатии любой кнопки пульта, кодер читает кнопку и модифицирует счетчик синхронизаций. Затем значение счетчика синхронизации объединяется с ключом шифрования в алгоритме шифрования, и в результате получается 32-бит зашифрованной информации. Эти данные изменяются каждый раз после нажатия кнопки, поэтому эта часть кодовой комбинации называется динамическим кодом. Приемники и передатчики Keeloq работают в последовательном коде с посылкой длиной 66 бит (рис.5), состоящей из кодированной "прыгающей" части в 32 бита, 28 бит серийного номера, 4 бит пользователя (состояние кнопок), 1 бита индикации разряда батареи и 1 фиксированого бита (бит повтора).
В эфире пакет Keeloq разделен на условную составляющую TE (Базовая тактовая длительность) и состоит из Преамбулы(Tp), Хедера(Th), Данных(Thop+Tfix) и Паузы(Tg) (рис.6) В различных брелках с разным уровнем заряда батарейки длительность TE может отличаться и по спецификации составлять от 260 мкс до 660 мкс, но в пределах одного пакета длительность TE относительно стабильна.
Передача пакета Keeloq кодером HCS. в эфир начинается с преамбулы и она состоит из 23-х TE которые чередуются высоким и низким уровнем. Преамбула нужна для "раскачки" приемника и настройки TE для декодера. Дальше идет Хедер длительностью 10 TE низкого уровня. За Хедерем идёт передача данных. Данные состоят из 66 информационных бит, каждый бит имеет периуд длительностью 3-и ТЕ (Рис.7)
На (Рис.7) видно, что логическая единица состоит из одного ТЕ высокого уровня и двух ТЕ низкого уровня, логический ноль состоит из двух ТЕ высокого уровня и одного ТЕ низкого уровня. Надо заметить, что данные передаются в эфир от младшего байта (LSb) к старшему (MSb) (рис.5). После передачи данных идет Пауза длинной 39 ТЕ и если кнопка удерживается после Паузы сного последует очередная преамбула.
Типовая схема подключения кодера HCS2ХХ - HCS3ХХ представлена на (Рис. 8) фактически это схема четырёх кнопочного пульта сигнализации.
Декодеры Microchip по технологии Keeloq
Декодеры Keeloq предназначены для дешефрации команд поступающих от кодера по каналу связи. После проверки принятого в кодовой последовательности серийного номера и "прыгающего кода", декодер на основании функционального кода активизирует выходы соответствующие входам кнопок в кодере. Выходы будут удерживаться в активном состоянии до тех пор, пока нажата кнопка на кодере. В таблице представлены краткие характеристики кодереров HCS500, HCS512, HCS515 и с какими кодерами они работают.
Для исполнения команд декодором, ему необходимо указать 28/32-битный серийный номер и 64-битный секретный ключ кодера, а также одним из условий является синхронизация с кодером. В декодерах Keeloq используется независимая ключевая система: для каждого пульта (передатчика) в декодере храниться свой серийный номер, секретный ключ и текущая синхронизация.
Принцип работы систем контроля доступа с радиоканалом
Сигналы Радиоканала по которому передаются данные между сигнализацией и брелком распространяются во все стороны и по этому обмен информацией, можно "прослушать". В черте города находятся много других сигнализаций которые не должны реагировать на чужой пульт. Чтобы защитить канал обмена от случайного или умышленного воздействия, сигнал обмена между брелком и блоком сигнализаций кодируется.
Данные по радиоканалу передают в виде последовательностей — пакетов. Каждый пакет сигналов можно представить как команду (например, "Поставить на охрану и Закрыть замки" или "Снять с охраны и открыть замки").
Разберемся подробней, на какие типы делятся подобные системы. На сегоднящей день алгоритмы шифрования радио обмена делятся на следующие основные категории:
Статический код
Самые первые сигнализации с радиоканалом имели статический код — каждой команде соответствовал свой командный пакет. Формат пакета выбирался пользователем или установщиком с помощью переключателей внутри брелка, или запаиванием перемычек. Вариантов кода было не много и своим брелком можно было открыть чужую машину если совпадали коды команд.
Такое кодирование не обеспечивало должной защиты, достаточно было записать команду "снять с охраны", а затем воспроизвести её и машина снимается с охраны как с родного брелка. Тогда и появились первые кодграбберы предназначенные для перехвата, декодирования и повтора кода, чтобы снять автомобиль с охраны с целью угона.
Виды чипов имеющие статический код и применяемые в пультах управления сигнализаций
- [6010] HT-6010, HT6014, SH-312E - 3-х статусный код
- [H600] HT-600, НТ-680, HT6187, HT6270, TT-13, ПК-10Т - 3-х статусный код
- [5026] AX5026, CT5026 - 3-х статусный код
- [5326] AX5326, AX5326S - 3-х статусный код
- [2262] PT-2262, M3E, CT5062 - 3-х статусный код
- [8092] TT8092 - 3-х статусный код
- [4134] MC41342, MC145026, SC41342 - 3-х статусный код
На примере чипов HT6010, HT6012, HT6014 рассмотрим принцип кодирования 3 12 (3-х статусный код) и обмена между пультом и сигнализацией.
В состав семейства входит 3 микросхемы кодеров (HT6010, HT6012, HT6014) и три микросхемы декодеров (HT6030, HT6032, HT6034).
В состав кодовой последовательности, генерируемой кодерами этого семейства, входит преамбула, синхронизирующий бит и 12-разрядное поле адреса/данных, длинна периода одного бита равна 6-ти импульсам тактовой частоты (рис. 1).
Значение адреса и данных на этих чипах устанавливается с помощью переключателей, внешней схемой или программно. Каждый вывод адреса/данных кодера кодируется тремя состояниями: подключен к минусу электропитания (логический ноль), подключен к плюсу электропитания (логическая единица), не подсоединен (не подключено) - (рис. 2).
Краткие технические характеристики и совместимость микросхем этого семейства 3 12 смотрите в таблице
Типовая схема подключения кодера HT6012 представлена на (Рис. 3), (A0-A9) - Кодирует адресную посылку из 10-ти бит (пароль дотупа) (D10-D11) - 2-а бита данных, резистор (Rosc) - задает тактовою частоту работы чипа. Данные с выхода (DOUT) передаются на вход передатчика с амплитудной модуляцией который может работать на частоте 433 МГц или 310 МГц
Декодеры проверяют принятую кодовую последовательность, информационная часть которой состоит из 12 бит (N бит адреса и N бит данных). Принятые данные передаются в соответствующие выходные защелки только если команда была два раза подряд правильно дешифрирована и принятый адрес (пароль) совпал с установленным в декодере. При правильно принятой команде на выходе VT появляется высокий уровень сигнала. Декодеры этого семейства могут иметь 0, 2 и 4 выходных защелок данных (соответственно, 12, 10 и 8 входов адреса). На рисунке 4 показана типовая схема включения декодера HT6032 информационная часть которой состоит из 12 бит (10 бит адреса и 2 бита данных).
Динамический код
С ростом спроса на охранные системы автомобилей и упорядочивания частоты радиоканала на 433.92 Мгц, производители сигнализаций перешли на новый вид кодирования, вот тогда и появилось понятие динамический код. Данный вариант подразумевает то, что при каждом нажатии на кнопку брелка в эфир посылается уникальный код команды, вероятность повторения которого очень мала. Теперь записанную в памяти граббера посылку можно было просто выкинуть, ведь блок сигнализации уже с ней отработал и выкинул из списка правильных пакетов. В случае если коды были не большими по количеству битов в команде, еще можно было пользоваться методом подбора кодов с помощью сканера, но эти случаи были единичными, и продолжалось это не долго, появился революционный метод кодирования под названием KEELOQ.
KEELOQ
В 80-х годах в африканской компании NANOTEQ, занимающейся вопросами информационной безопасности, была разработана система алгоритмов защиты под названием KEELOQ (часто эту кодировку производители указывают как CODE HOPPING). В 1995 году фирма MICROCHIP приобрела отделение Keeloq у фирмы Nanoteq вместе с лицензионными правами.
MICROCHIP разработал новый ряд компактных микросхем кодеров и декодеров на основе алгоритма Keeloq с динамическим (прыгающим) кодом. Низкая стоимость и высокая степень защиты, а также миниатюрные размеры совершили революцию в индустрии автомобильных сигнализаций. Очень много систем и сейчас используют в пультах сигнализаций готовые кодеры, такие как HCS200, HCS300, HCS301, HCS320.
Алгоритм Keeloq
Рассмотрим подробней реализацию алгоритма Keeloq на основе кодеров семейства HCS компании MICROCHIP.
Прежде чем использовать микрочип в пультах сигнализаций он должен быть запрограммирован производителем сигнализации в процессе производства. Вся запрограммированная информации сохраняется во встроенном EEPROM (энергонезависимая память), и это:
Все запрограммированные ключи шифрования и кодовые комбинации EEPROM защищены от чтения, что эффективно защищает против попыток получить доступ к ключам и управлять значениями синхронизации. EEPROM может быть перепрограммирован после стирания .
Ключ производителя – это уникальный 64-х битный ключ,
который используется при генерации уникального ключа шифрования для каждого кодера.
Код производителя – это основная часть полной защиты системы.
При нажатии любой кнопки пульта, кодер читает кнопку и модифицирует счетчик синхронизаций. Затем значение счетчика синхронизации объединяется с ключом шифрования в алгоритме шифрования, и в результате получается 32-бит зашифрованной информации. Эти данные изменяются каждый раз после нажатия кнопки, поэтому эта часть кодовой комбинации называется динамическим кодом. Приемники и передатчики Keeloq работают в последовательном коде с посылкой длиной 66 бит (рис.5), состоящей из кодированной "прыгающей" части в 32 бита, 28 бит серийного номера, 4 бит пользователя (состояние кнопок), 1 бита индикации разряда батареи и 1 фиксированого бита (бит повтора).
В эфире пакет Keeloq разделен на условную составляющую TE (Базовая тактовая длительность) и состоит из Преамбулы(Tp), Хедера(Th), Данных(Thop+Tfix) и Паузы(Tg) (рис.6) В различных брелках с разным уровнем заряда батарейки длительность TE может отличаться и по спецификации составлять от 260 мкс до 660 мкс, но в пределах одного пакета длительность TE относительно стабильна.
Передача пакета Keeloq кодером HCS. в эфир начинается с преамбулы и она состоит из 23-х TE которые чередуются высоким и низким уровнем. Преамбула нужна для "раскачки" приемника и настройки TE для декодера. Дальше идет Хедер длительностью 10 TE низкого уровня. За Хедерем идёт передача данных. Данные состоят из 66 информационных бит, каждый бит имеет периуд длительностью 3-и ТЕ (Рис.7)
На (Рис.7) видно, что логическая единица состоит из одного ТЕ высокого уровня и двух ТЕ низкого уровня, логический ноль состоит из двух ТЕ высокого уровня и одного ТЕ низкого уровня. Надо заметить, что данные передаются в эфир от младшего байта (LSb) к старшему (MSb) (рис.5). После передачи данных идет Пауза длинной 39 ТЕ и если кнопка удерживается после Паузы сного последует очередная преамбула.
Типовая схема подключения кодера HCS2ХХ - HCS3ХХ представлена на (Рис. 8) фактически это схема четырёх кнопочного пульта сигнализации.
Декодеры Microchip по технологии Keeloq
Декодеры Keeloq предназначены для дешефрации команд поступающих от кодера по каналу связи. После проверки принятого в кодовой последовательности серийного номера и "прыгающего кода", декодер на основании функционального кода активизирует выходы соответствующие входам кнопок в кодере. Выходы будут удерживаться в активном состоянии до тех пор, пока нажата кнопка на кодере. В таблице представлены краткие характеристики кодереров HCS500, HCS512, HCS515 и с какими кодерами они работают.
Для исполнения команд декодором, ему необходимо указать 28/32-битный серийный номер и 64-битный секретный ключ кодера, а также одним из условий является синхронизация с кодером. В декодерах Keeloq используется независимая ключевая система: для каждого пульта (передатчика) в декодере храниться свой серийный номер, секретный ключ и текущая синхронизация.
Читайте также: