Система и метод защиты переданных данных в протоколах NMEA (текстовый протокол связи навигационного оборудования) в системах управления транспортными средствами
SYSTEM AND METHOD FOR PROTECTING THE TRANSMITTED DATA IN NMEA PROTOCOLS (TEXT COMMUNICATIONS PROTOCOL OF NAVIGATION EQUIPMENT) IN VEHICLE CONTROL SYSTEMS

ОБЛАСТЬ ТЕХНИКИ
[001] Данное приложение касается метода защиты информационных полей протоколов Национальной Ассоциации Морской Электроники (NMEA), а также возможностей построения систем, которые используют этот метод. Эти протоколы NMEA используются в системах управления транспортными средствами.
[002] В последнее время резко увеличилось количество кибератак, включая атаки, связанные с транспортными средствами. Так как у существующих систем управления транспортными средствами нет средств защиты от информационных атак такого рода, злоумышленникам нетрудно осуществить желаемое. Используя специальные технические средства, злоумышленник может легко подменить информацию о текущих координатах транспортного средства, скорости, направлении движения, координатах соседних транспортных средств и т.д. Эта информация используется системой управления для последующего принятия решений в автоматическом или ручном режиме. Неправильно переданные данные могут привести к нежелательным последствиям, таким как:
- столкновение с другим транспортным средством;
- столкновение с гражданскими объектами;
- отказ отдельных подсистем или блоков;
- человеческие жертвы;
- и прочим.
[003] Таким образом, очевидна настоятельная необходимость разработки метода обеспечения защиты от кибератак такого рода. В данном методе описывается один из вариантов для обеспечения такого вида защиты.
[004] Главная цель описанного здесь метода состоит в том, чтобы предотвратить несанкционированные атаки (вызванные, но не ограничивающиеся подменой передаваемых данных) на систему управления транспортного средства. Внедрение описанного метода может быть представлено в виде отдельной системы или в качестве дополнения к имеющейся системе. Структура системы имеет различные варианты реализации с использованием программного обеспечения или аппаратных средств.
[005] Описанная здесь технология определяет метод защиты данных, передаваемых через протоколы NMEA. Она обеспечивает защиту от несанкционированного вмешательства и подмены информации в полях данных данного Протокола. Также предусмотрен процесс идентификации устройств. Внедрение данной технологии служит добавлением для расширения протоколов NMEA.
[006] Протоколы NMEA определяют правила для организации обмена данными между оборудованием транспортного средства (в основном, но без ограничения, морского и железнодорожного транспорта). Стандарт NMEA - разработан, чтобы обеспечить канал связи между навигационным оборудованием (приемник сигнала времени) и центром управления или устройством (устройствами) управления.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[007] Фиг. 1 показывает типовую топологию соединяемых устройств в стандарте последовательной шины NMEA;
[008] Фиг. 2 показывает структуру полей NMEA;
[009] Фиг. 3 показывает вариант атаки с применением технологии «незаконный посредник» на последовательную шину NMEA;
[0010] Фиг. 4 показывает формат сообщений NMEA (идентификатор CGA);
[0011] Фиг. 5 показывает формирование (подготовку) последовательности географических данных о координатах для шифрования;
[0012] Фиг. 6 показывает функциональную блок-схему внедрения алгоритма шифрования AES128 (режим CFB) в стандартный протокол NMEA;
[0013] Фиг. 7 показывает распределение зашифрованного текста в пакете полей стандартного протокола NMEA;
[0014] Фиг. 8 показывает функциональную схему внедрения алгоритма блочного шифрования AES128 (режим CFB) и способа дешифрования для стандарта NMEA;
[0015] Фиг. 9 показывает обобщенную блок-схему системы, использующей описанный метод.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0016] Данное изобретение касается метода защиты отдельных полей данных сообщения NMEA, содержащих, помимо прочего, информацию о географических координатах транспортного средства (но без ограничения). Эти данные - самый важный элемент информации, передаваемой через протокол NMEA.
[0017] Согласно стандарту NMEA, навигационные координаты транспортного средства могут передаваться только в двух типах сообщений: сообщениях передающего устройства и внутренних сообщениях.
[0018] Стандарт NMEA определяет целый ряд (больше 50) вариантов сообщений для типов выходного сигнала. Каждый из них определяется в поле идентификатора сообщения (202), а именно, через параметр SSS (идентификатор сообщения). Формат сообщения для типа «выходного сигнала» показан на фиг. 2.
[0019] Географические координаты транспортного средства для «сообщений передающего устройства» передаются вместе со следующими идентификаторами сообщений SSS (202):
- [ВЕС] направление и расстояние до следующей точки маршрута;
- [BWR] направление и расстояние до следующей точки маршрута;
- [GGA] фиксированные данные системы глобального позиционирования;
- [GLL] географическое положение;
- [RMA] рекомендуемая минимальная навигационная информация;
- [RMB] рекомендуемая минимальная навигационная информация;
- [RMC] рекомендуемая минимальная навигационная информация;
- [WPL] местонахождение следующей точки маршрута;
- и другие.
[0020] Географические координаты транспортного средства для некоторых установленных «внутренних сообщений» передаются вместе со следующими идентификаторами сообщения:
- $PGRMFPosition fix sentence (сообщение о фиксированном положении);
$PGRMISensor Initialisation Information (информация об инициализации датчика);
- и других.
[0021] Навигационные координаты судна определяются двумя параметрами: широтой и долготой.
[0022] Значение широты для «сообщений передающего устройства» / «внутренних сообщений» находится в одном из полей пакета данных (204) на фиг. 2. Для каждого из идентификаторов сообщений SSS (202) определенное поле имеет установленное место в общей последовательности полей сообщения (согласно стандарту NMEA).
[0023] Значение широты имеет следующий формат представления - ВВВВ.ВВВВ, (ВВ - градусы; ВВ.ВВВВ - целые градусы и минуты; а - N/S север/юг).
[0024] Значение долготы для «сообщений передающего устройства» / «внутренних сообщений» находится в одном из полей пакета данных (204) фиг. 2. Для каждого из идентификаторов сообщений SSS (202) определенное поле имеет установленное место в общей последовательности полей сообщения (согласно стандарту NMEA).
[0025] Значение долготы имеет следующий формат представления - LLLLL.LLLL (LLL - градусы; LL.LLLL - целые градусы и минуты; а - E/W восток/запад).
[0026] Фиг. 4 показывает описание сообщения с идентификатором типа GGA (фиксированные данные системы глобального позиционирования). В нем пакеты данных, представляемые полем 204, имеют следующие цели: время наблюдения поля (204.1); широта (204.2+204.3); долгота (204.4+204.5); индикатор качества наблюдения (204.6); количество используемых спутников может отличаться от их количества в поле зрения (204.7); величина горизонтального геометрического фактора (отношения изменения навигационной координаты к изменению расстояния) (204.8); высота над средним уровнем моря (204.9); единица высоты - метры (204.10); превышение геоида над эллипсоидом WGS-84 (204.11); единица измерения - метры (204.12); время дифференциальной корректировки (204.13); идентификатор дифференцирующей станции (204.14);
[0027] Защищаемая информация состоит из двух компонентов: ВВВВ.ВВВВ, а+LLLLL.LLLL, а (широта + долгота).
[0028] В качестве одного из способов защиты этих данных предлагается использовать алгоритм блочного шифрования AES с длиной ключа шифрования 128 (AES128). Однако для использования этого метода необходимо соблюдение следующих условий - длина каждого блока должна быть равна длине ключа шифрования (ключа), а именно 128 битам.
[0029] Фиг. 5 показывает способ формирования получаемых последовательностей данных (211), используемый для шифрования. Пакеты данных 204.2, 204.3, 204.4, 204.5 содержат начальную информацию для составления такой последовательности данных. Общая длина последовательности (211) составляет 76 битов.
[0030] Есть несколько способов решить проблему иной длины ключа шифрования (128 битов) и блока сообщения (76 битов) при использовании алгоритма блочного шифрования. В предлагаемом методе рассматривается вариант использования AES128 в режиме CFB (режиме обратной связи от шифртекста).
[0031] Чтобы использовать алгоритм шифрования AES128, все устройства должны иметь одинаковый ключ шифрования. Поэтому эта информация должна быть передана устройствам перед тем, как они начнут работать. Способы и каналы передачи ключа шифрования могут отличаться и определяются организационно.
[0032] В режиме CFB необходимо дополнительно использовать параметр Initialization Vector/ вектор инициализации (IV). Этот параметр, как и зашифрованный ключ, должны быть идентичны на всех устройствах.
[0033] В предлагаемом методе параметр IV используется в качестве фактора идентификации устройства. Один и тот же IV может использоваться как на постоянной основе, так и на каждом новом сеансе связи. Способы могут отличаться и определяются организационно.
На основе описанных выше мер Протокол NMEA обеспечивает следующее:
- защиту (шифрование) полей данных; и
- идентификацию устройств в рамках Протокола NMEA.
[0034] Фиг. 1 показывает типичную топологию соединяющихся друг с другом устройств по стандарту NMEA. Навигационный прибор (101), приемник сигнала точного времени может быть любым устройством, поддерживающим стандарт NMEA с точки зрения передачи сообщений, а также способный работать в одной или нескольких системах спутниковой навигации (GPS, ГЛОНАСС, DORIS, BeiDou, Галилео и т.д.). Модули управления (102, 103, 104), получающие информацию от устройства приемника сигналов точного времени, могут быть любым устройством или системой, например: навигационным оборудованием, спутниковыми антеннами, лазерными локаторами (лидарами), радарами, радарными станциями, автоматизированными системами движения судов и т.д.). Специалист в этой технологической области должен понимать, что в качестве модулей могут использоваться различные устройства или центры. Количество таких устройств определяется топологией системы и техническими характеристиками интерфейса связи. Переключение всех устройств, участвующих в обмене данными согласно стандарту NMEA осуществляется через коммуникационные линии (111, 112, 113, 114).
[0035] В качестве интерфейса связи используется асинхронный последовательный интерфейс RS-422/485 или интерфейс CAN для объединения устройства для приема сигнала времени или навигационного прибора (101) и модулей управления (102, 103, 104).
[0036] Протоколы NMEA описывают формат переданных сообщений, а также скорость обмена. Эти параметры имеют различные значения для различных стандартов (NMEA-0183, NMEA-2000), записанные непосредственно в самих стандартах.
[0037] Стандарт NMEA - это текстовый Протокол (в формате ASCII). Сообщение может быть трех типов:
- Сообщения передающего устройства;
- Сообщения - запросы;
- Внутренние сообщения.
[0038] Фиг. 2 показывает обобщенную структуру полей выходных сигналов. Сообщения начинаются с символа «$» (201) и заканчиваются символом «» (205). Сообщение идентифицируется заголовком (202), где tt - ID навигационной системы; sss - идентификатор сообщения. Далее, в зависимости от идентификатора сообщения, передается пакет данных (204), число которого зависит от типа сообщения. Все поля данных разделяются символом «,» (203). Сообщение «hh» (206) - это результат 8-битовой операциями XOR-суммы всех знаков (включая «,») в последовательности между «$» и «*», сокращенное до двух знаков верхнего регистра ASCII для 16-битного представления байта (0-9, A-F). «CR» (207) - возврат каретки и «LR» (208) поля переноса каретки служат обозначением окончания передачи сообщения.
[0039] В современных транспортных средствах, особенно в морском и железнодорожном транспорте стандарт последовательной передачи данных NMEA широко используется для передачи данных управления и контроля за судном (включая географические координаты). Эти последовательные сети часто «связываются» в нескольких точках с высокоуровневыми сетями контроля за судном, включая GPS, спутниковый терминал, ECDIS и т.д.
[0040] Эти последовательные сети (на основе NMEA) используются не только для передачи географических координат, но и для контроля работы отдельных компонентов, таких как механизм рулевого управления, двигатели, балластные насосы и т.д.
[0041] В частности, вследствие того, что первые версии стандарта NMEA были опубликованы в 90-е годы XX века, этот стандарт не способен в полной мере гарантировать безопасность передаваемых данных.
[0042] Тем не менее, последующие версии данного стандарта (включая новое поколение стандарта NMEA-2000) так и не решили указанные выше проблемы. Главные недостатки стандарта NMEA заключаются в отсутствии идентификации, шифрования или проверки всех сообщений. Все данные передаются в текстовом формате как символы ASCII. Это позволяет злоумышленнику беспрепятственно изменять данные при подключении к последовательной сети (например, при атаке с применением технологии «незаконный посредник»). Например, использование GPS-спуфинга (имитации соединения) приводит к «внедрению» незаметных ошибок, которые медленно, но верно отклоняют судно или другое транспортное средство от курса. Неправильная информация о положении транспортного средства может привести к таким последствиям, как:
♦ Авария транспортного средства;
♦ Столкновение с другими транспортными средствами;
• Повреждение инфраструктуры;
• Человеческие жертвы.
[0043] При атаке злоумышленники изменяют информацию о положении и скорости транспортного средства (не ограничиваясь подменой этих данных), то есть тех данных, которые получает и передает система управления, например диспетчер порта, чтобы избежать столкновения с другими судами. Атака на сигнал GPS или соединение с системой управления может вызвать навигационные проблемы вплоть до столкновения транспортных средств, что всегда приводит к серьезному ущербу, а иногда и к человеческим жертвам.
[0044] Причиной таких атак является уязвимость программного обеспечения стандарта NMEA. Комплекс мер, позволяющих защитить транспортное средство, сообщить об атаке и устранить ее, связан с информационной безопасностью транспортных средств (прежде всего, помимо прочего, с современными судами и железнодорожным транспортом).
[0045] Фиг. 3 показывает одну возможную атаку (с применением технологии «незаконный посредник») на последовательную шину данных NMEA. Мы рассматриваем случай, когда злоумышленник подключился к Вашему устройству (121). Таким образом, он может, по своему усмотрению, изменить поля данных стандарта NMEA в сообщениях, посылаемых навигационным прибором (101), оставаясь при этом незамеченным для других модулей (102, 103, 104).
[0046] Есть несколько способов защиты от показанных вариантов нападений: защита на уровне программного обеспечения и/или защита на уровне аппаратных средств.
[0047] Метод, представленный в данном изобретении, обеспечивает защиту полей данных стандарта NMEA на основе шифрования/дешифрования без изменения структуры и последовательности полей.
Подробное описание предпочтительного варианта изобретения
[0048] Фиг. 6 показывает функциональную схему алгоритма блочного шифрования AES128 (режим CFB). Длина шифртекста составляет 76 битов. Ключ шифрования (301) 128 битов длиной, как и вектор инициализации (Initialization Vector) (302). В начале алгоритма вектор инициализации (302) зашифровывается с помощью алгоритма блочного шифрования AES128. Шифрование происходит в блоке шифрования (Block cipher encryption) (303) с использованием ключа шифрования (301). В результате шифрования получается последовательность в 128 битов (304). Затем из полученной последовательности извлекаются первые 76 битов информации, и проводится дополнительная операция модуль два XOR (305). Входные данные после добавления операции модуль два к ранее полученной последовательности вносятся в необходимое подготовленное поле (211). В результате операции (305) получается зашифрованный текст (304) длиной 76 битов.
[0049] После получения зашифрованного текста генерируется пакет сообщений NMEA.
[0050] Фиг. 7 показывает распределение шифртекста в полях пакета сообщений стандартного протокола NMEA (например, CGA). Полученный в результате зашифрованный текст (304) имеет длину 76 битов, что соответствует количеству символов ASCII (19 по 4 бита на символ). На фиг. 7 каждые 4 бита информации пронумерованы от А1 до А19. Как было ранее показано на фиг. 5, биты, пронумерованные от А1 до А19 в строгом соответствии инкапсулируются в пакет сообщений стандартного NMEA.
[0051] Сгенерированный окончательный пакет отправляется по каналу связи к доступным приемникам. После получения этого пакета приемником выполняется обратный процесс декапсуляции и дешифрования.
[0052] Фиг. 8 показывает функциональную блочную диаграмму алгоритма AES-128 (режим CFB), используемого для дешифрования сообщения длиной 76 битов. Ключ шифрования (301) имеет длину 128 битов, как и вектор инициализации (302). В начале алгоритма вектор инициализации (302) зашифровывается с помощью алгоритма AES128. Шифрование происходит в блоке шифрования (303) с использованием ключа шифрования (301). В результате шифрования получается последовательность длиной 128 битов (304). Затем из полученной последовательности извлекаются первые 76 битов информации, и проводится дополнительная операция - выполняется модуль 2 XOR (305). Входные данные после проведения операции модуля 2 в дополнение к ранее полученной последовательности становятся полученным зашифрованным текстом (304). Результатом операции (211) являются навигационные координаты, которые могут далее использоваться приемником до места назначения.
[0053] Фиг. 9 показывает обобщенную блок-схему системы, реализующей указанный метод защиты данных, передаваемых в стандарте NMEA. Для реализации описанных выше алгоритмов блоки шифрования/дешифрования (401, 402) встраиваются в приемник сигналов времени или навигационный прибор (101), а также в устройство управления (102). Эти модули позволяют реализовать алгоритм блочного шифрования AES-128 (режим CFB).