В настоящее время получили широкое распространение системы ограничения доступа, охранные сигнализации и системы идентификации. Большинство из этих систем имеют однонаправленный канал связи и количество кодовых посылок ограничено, что делает их легкой добычей различных злоумышленников. Системы с двунаправленным каналом связи сложны в применении и имеют высокую стоимость, поэтому не получили коммерческого применения.
Взлом системы с однонаправленным каналом связи представляет собой простой перебор всех возможных кодовых комбинаций. В зависимости от длины кодовой посылки время взлома может составлять от 30 секунд до нескольких десятков лет. Подбор может происходить либо методом последовательного перебора, либо по методу Монте-Карло.
Другой метод взлома системы – "перехват" кода. Злоумышленник располагает такое устройство в непосредственной близости от объекта. Когда с пульта ДУ подается команда на открытие двери (снятие с сигнализации и т.п.) устройство-перехватчик запоминает эту последовательность и злоумышленник может получить доступ к Вашему объекту в любое время. При этом канал передачи данных не имеет значения! Многие считают, что применение направленных ИК передатчиков ликвидирует эту проблему. Это не так! ИК сигнал, как и любые другие волны, может отражаться от различных поверхностей (например, от полированной поверхности двери Вашего автомобиля). При соответствующей технике принять такой сигнал не составит особого труда.
Из вышеизложенной информации следует, что надежная система должна содержать длинную кодовую посылку и не передавать одинаковых кодовых посылок.
Система Keeloq полностью удовлетворяет этим требованиям.
При нажатии на кнопку кодер Keeloq передает не повторяющуюся кодовую посылку длиной 66бит. При этом кодовая посылка будет уникальной. Эта посылка повториться только более чем через 65000 команд. При использовании кодера Keeloq 8 раз в сутки кодовая посылка повториться не ранее чем через 22 года. При этом повторное воспроизведение посылки злоумышленником не вызовет положительной ответной реакции системы.
Формирователи кодовой посылки системы KeeLoq предназначены для однонаправленной дистанционной системы передачи данных. Они предназначены только для формирования кодовой посылки, а канал передачи данных должен организовать пользователь.
Алгоритм Keeloq использует особенную систему синхронизации. Принятая посылка декодируется и сохраняется в памяти декодера. Следующая принятая посылка считается истинной, если она лежит в зоне 16 следующих возможных комбинаций. Это сделано с целью лучшей синхронизации кодера и декодера. В случае если передатчик Keeloq задействован вне зоны досягаемости приемника, то синхронизация автоматически восстановится в том случае, если кодер генерировал кодовую последовательность не более 16 раз вне зоны приемника. В случае, если синхронизация была утеряна, то её восстановление происходит при двукратном нажатии любой кнопки – пользователь этого даже не замечает.
Система Keeloq работает следующим образом:
При нажатии на кнопку пульта дистанционного управления, кодер Keeloq формирует кодовую последовательность, в которую входит 32 битный "прыгающий код", полученный из 64-битного секретного ключа и серийного номера кодера по специальному алгоритму, записанному в кодер на этапе программирования. Как уже отмечалось выше, "прыгающий код" уникален для каждой новой кодовой посылки.
В формат кодовой посылки входят:
32 битный "прыгающий код"
28 битный серийный номер
4 битный код пользователя (нажатие кнопок)
1 битный флаг разряда батарей
1 битный флаг повторения
Кодер Keeloq повторяет передачу одной и той же кодовой последовательности до тех пор, пока удерживается кнопка. Если происходит отпускание кнопки и повторное её нажатие, то кодовая посылка изменяется. Если во время передачи кнопка была отпущена, то кодовая последовательность передается до конца, после чего кодер переходит в режим пониженного энергопотребления. Если кнопка остается нажатой более определенного времени, то для экономии энергии кодер так же входит в режим пониженного энергопотребления. Это сделано для предотвращения расхода энергии в том случае, если кнопка была нажата случайно, например, была "прижата" в кармане пользователя.
Так же в кодере предусмотрена защита от кратковременных ложных срабатываний и от дребезга контактов.
Для декодирования данных существуют устройства, обратные кодерам – это декодеры. Они предназначены для дешифровки команд, поступающих от кодера. После проверки принятой кодовой посылки на соответствие серийного номера и "прыгающего кода", декодер устанавливает на своих выходах сигналы, соответствующие кнопкам, нажатым на кодере. На выводах код кнопок присутствует до тех пор, пока они нажаты на кодере.
Для реализации функции дешифровки данных, декодер должен хранить в своей памяти 28 битный серийный номер и 64 битный секретный ключ кодера и возможность синхронизации.
Если последнее организованно на аппаратном уровне, то для записи в кодер / декодер соответствующих данных Вам понадобиться специализированный программатор. Отсутствие такого программатора является камнем преткновения для большинства разработчиков.
Данная схема программатора кодеров/декодеров KeeLoq является упрощенной схемой фирменного программатора, но может программировать практически все микросхемы этой серии.
Этот программатор работает под управлением специализированной оболочки KEELOQ Evaluation Kit II.
Данную оболочку можно БЕСПЛАТНО скачать с сайта фирмы Microchip по ссылке:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010041
"Мозгами" данного программатора является микроконтроллер PIC16F877 / PT, однако возможно применение микроконтроллера и в другом корпусе.
После загрузки оболочки KEELOQ Evaluation Kit II и инсталляции её на Ваш компьютер в папке данной программы появляется файл Ev877v9.hex, который необходимо прошить в микроконтроллер программатора.
При правильной сборке программатора и корректном программировании PIC16F877 программатор сразу готов к работе и не нуждается в дополнительной наладке.
|