Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дипломный проект. А.В. Шпак.docx
Скачиваний:
98
Добавлен:
24.02.2016
Размер:
3.35 Mб
Скачать

3.4 Проектирование алгоритма работы системы

Выбрав необходимые инструменты и проанализировав параметры системы, мы можем приступать к проектированию программной части. В предыдущий разделах был обоснован выбор в качестве языка программирования язык Си. В качестве микроконтроллера, используемого в системе было выбрано семейство микроконтроллеров Atmega. В качестве эллиптической кривой была выбрана curve25519. Параметры системы не были изменены относительно стандартных, предлагаемых с эллиптической кривой curve25519.

3.4.1 Разработка алгоритма функционирования программы радиоключа. Разрабатываемое устройство должно посылать запрос на автомобиль, после чего принимать с автомобиля последовательность – точку на эллиптической кривой, далее применять к ней операцию скалярного умножения и полученную координату новой точки на кривой посылать на автомобиль. В данной блок-схеме рассмотрен процесс работы алгоритма в результате нажатия пользователем на кнопку радиоключа, нажатие кнопки инициирует работу всего проектируемого устройства.

Начало работы программы микроконтроллера происходит по прерыванию, которое в свою очередь срабатывает по нажатию одной из кнопок брелока. Каждая отдельная кнопка отвечает за отдельную функцию брелока. Это может быть «разблокирование автомобиля», «блокировка автомобиля» или другие необходимые функции. Первым же инициирующим сообщением на автомобиль отправляется номер команды. Злоумышленник может подменить этот номер, так как он никак не защищён, поэтому пользователь транспортного средства должен следить за реакцией автомобиля, например при закрытии автомобиля, сигнализация должна издать уникальный соответствующий звук и произвести световой сигнал об успешной операции блокировки транспортного средства, тогда подмена команды не сможет остаться незамеченной. Однако данная функция не будет проектироваться в данной работе. Выполнение данной функции в данном проекте возлагается на блокирующую систему траспортного средства.

В конечном счёте, весь процесс авторизации необходим для того, чтобы позволить пользователю транспортного средства управлять автомобилем и нет смысла производить авторизацию только ради авторизации. Микроконтроллеры семейства Atmega позволяют назначить прерывание на подачу сигнала на определённый вход микроконтроллера. Это значит, что мы можем спроектировать устройство, которое большую часть времени будет находиться в режиме ожидания и начинать свою работу только при нажатии кнопки, которая будет подавать напряжение на определённый выход микроконтроллера. Алгоритм работы системы представлен на рисунке 3.5.

Рисунок 3.5 – Блок-схема алгоритма работы устройства

Сразу после начала работы устройству необходимо загрузить из памяти в переменные значения параметров системы, а именно секретный ключ k. Этот ключ не будет изменяться во время работы системы, поэтому может быть расположен в read-only памяти и записан туда единожды во время создания брелока. Так же из памяти загружается уникальный идентификатор ключа, который представляет собой 128-битовое число, уникальное для каждого брелока в мире.

Программа должна обязательно запомнить номер нажатой кнопки, чтобы передать его на автомобиль во время процедуры инициализации протокола аутентификации. Сам брелок может не знать, что значит та или иная кнопка, на корпусе брелока может быть человеко-понятное обозначение действия, которое производит кнопка брелока, однако самой программе совершенно бесполезна информация о том, что пытается сделать пользователь транспортного средства. Все действия будут спрятаны за абстрактными номерами. Только автомобиль и пользователь будут знать, что должно происходить при нажатии той или иной кнопки. Однако устройство обязано передать номер именно той кнопки, которая была нажата.

Номер нажатой кнопки передаётся на автомобиль по каналу связи, в данной работе – это радиоканал. Злоумышленник может перехватить эту информацию, однако об этом не стоит беспокоиться, так как, даже не перехватывая номер нажатой кнопки, злоумышленник может просто увидеть со стороны, какое действие производится пользователем, будь то разблокирование автомобиля или установка его в режим работы сигнализации. Сообщение, передаваемое на автомобиль, содержит одно число, обозначающее номер выполняемой операции, а так же уникальный идентификатор ключа. Автомобиль обрабатывает запросы только от ключей, идентификаторы которых зарегистрированы в автомобиле.

Ответ со стороны автомобиля должен прийти достаточно быстро, брелок ожидает прихода ответа в течение 100 мс. Спустя это время ключ проверяет, пришёл ли ответ со стороны автомобиля, и в случае, если ответ не пришёл, сообщает пользователю о невозможности связаться с автомобилем путём зажигания красного светодиода на брелоке. В случае успешного получения ответа с автомобиля брелок приступает к вычислению ответа на сообщение автомобиля, но перед этим уведомляет пользователя с помощью зажигания жёлтого светодиода на брелоке.

Сообщение автомобиля содержит 254-битовую координату точки на эллиптической кривой. Чтобы вычислить ответ, брелок должен вычислить скалярное произведение этой точки на секретный ключ. Это происходит с помощью выбранной в данной работе библиотеки μNaCl. Вычисление скалярного произведения – достаточно трудоёмкая операция и как было показано в данной работе занимает порядка одной секунды. В сообщении автомобиля содержится одно число размером в 254 бита. Это число представляет собой координату X на эллиптической кривой. Используемая в данной работе библиотека не оперирует координатой Y, поэтому в метод API библиотеки необходимо передать только два параметра – это координату X и секретный ключ k. В результате вычисления скалярного произведения, алгоритм получит координату X новой точки на кривой. Эта координата будем отправлена на автомобиль в качестве подтверждения аутентичности ключа.

После описанной выше операции брелок будет ожидать ответа автомобиля 100 мс. Если в течение этого времени ответ не придёт, то брелок повторит отправку уже вычисленного сообщения для автомобиля и опять повторит ожидание в 100мс. Если ответ во второй раз не придёт, брелок выдаст пользователю сигнал ошибки в виде красного светодиода. При получении успешного ответа со стороны автомобиля, брелок уведомляет пользователя с помощью зелёного светодиода и переходит в режим ожидания следующего нажатия кнопки брелока.

3.4.2 Разработка алгоритма работы запирающего устройства. В данном разделе под автомобилем мы понимаем часть системы, расположенную в транспортном средстве, отвечающую за запирающую функцию системы. Автомобилю необходимо принять запрос от брелока, отправить сообщение о начале протокола аутентификации и проверить ответ, полученный с брелока. Блок-схема алгоритма работы схемы автомобиля приведена на рисунке 3.6. В данной блок-схеме рассмотрен процесс работы алгоритма системы транспортного средства, инициированный прерыванием с приёмопередатчика. Приёмопередатчик посылает прерывание на микроконтроллер через внешний вывод.

В начале работы алгоритм системы, расположенной на автомобиле, принимает запрос, полученный с брелока. В первую очередь происходит проверка идентификатора брелока. Это сделано с той целью, чтобы автомобиль не начал обрабатывать запрос от брелока, не принадлежащего данному автомобилю просто по той причине, что автомобиль случайно оказался рядом с другим автомобилем, имеющим подобную систему. В случае несовпадения значения идентификаторов автомобиль система немедленно прекращает свою работу, так, как запрос был явно предназначен для другого автомобиля.

Рисунок 3.6 – Блок-схема алгоритма работы системы автомобиля

В случае совпадения значения идентификатора с одним из зарегистрированных в системе, автомобиль продолжает процесс аутентификации. После проверки идентификатора брелока, в первую очередь при начале процесса аутентификации автомобиль загружает из памяти текущие параметры системы. В качестве памяти для устройства необходимо использовать какую-либо внешнюю память достаточно большого объёма. Записываться и считываться будет не более 1 Кб данных, однако большой объём памяти позволит увеличить срок её службы при многократных операциях записи. Предполагается, что срок службы всей системы будет составлять порядка 10 лет.

После загрузки параметров системы алгоритм системы автомобиля проверяет тип запроса, пришедшего с брелока. Существует два вида запросов. Первый запрос – это запрос координаты точки. В результате этого запроса, автомобиль отправляет на брелок задачу, решив которую, брелок докажет свою аутентичность. Второй тип запроса – это непосредственно получение решения задачи. В случае успешного решения автомобиль выполняет операцию, запрошенную пользователем.

В случае, если этот запрос представляет собой запрос координаты точки, автомобиль производит отправку координаты. Эта координата представляет собой задачу, которую брелок должен решить. Вычислив функцию от этой координаты, брелок отправит результат на систему автомобиля. Если данная координата отправляется в первый раз, то система автомобиля должна запомнить время в которое был данный запрос. Для этого система должна быть снабжена часами реального времени. Часы реального времени так же используются в модуле генератора случайных чисел и могут быть использованы в обоих модулях. После отправки координаты, система автомобиля должна перейти в режим ожидания.

Второй вариант запроса на автомобиль – это предоставление брелоком решения задачи, то есть попытка доказать свою подлинность. В этом варианте запроса система автомобиля в первую очередь проверяет верность вычисления секретного параметра. Если параметр вычислен неверно, то система автомобиля немедленно посылает сигнал о неуспешной попытке авторизации и переходит в режим ожидания. В случае верного вычисления секретного параметра, система переходит к последующей проверке подлинности брелока.

Если на систему автомобиля пришёл верный секретный параметр, то следующим шагом, система проверяет не прошло ли с момента посылки параметра больше одной минуты, в этом случае система генерирует новую задачу и переходит в режим ожидания. Если же прошло меньше минуты, то система переходит к выполнению запрошенной операции.

После успешной процедуры аутентификации, система автомобиля посылает на автомобиль команду выполнения запрошенной операции. После этого необходимо послать ответ на брелок об успешном выполнении операции. Так же, кроме ответа на брелок система сигнализации автомобиля обязана произвести какое-либо визуальное информирование пользователя об успешности операции. Это должен быть звуковой сигнал и световой сигнал посредством габаритных огней транспортного средства. После выполнения операции система автомобиля должна сгенерировать новые параметры системы.

Генерация новых параметров системы представляет собой создание новой задачи, для процесса аутентификации. А именно, с помощью генератора случайных чисел создаётся случайное 254-битовое число и вычисляются точки R и S. После генерации новых параметров системы, параметры записываются на устройство постоянной памяти. После чего система автомобиля переходит в режим ожидания.