Статья:

К вопросу безопасности передачи данных по UART

Журнал: Научный журнал «Студенческий форум» выпуск №21(72)

Рубрика: Технические науки

Выходные данные
Сидоренко А.В., Кононенко Р.В. К вопросу безопасности передачи данных по UART // Студенческий форум: электрон. научн. журн. 2019. № 21(72). URL: https://nauchforum.ru/journal/stud/72/54018 (дата обращения: 09.04.2020).
Журнал опубликован
Мне нравится
на печатьскачать .pdfподелиться

К вопросу безопасности передачи данных по UART

Сидоренко Анжелика Витальевна
студент, Иркутский Национальный Исследовательский Технический университет, РФ, г. Иркутск
Кононенко Роман Владимирович
канд. техн. наук, доцент Иркутского Национального Исследовательского технического университета, РФ, г. Иркутск

 

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

 

Ключевые слова: последовательные интерфейсы, безопасность, UART,передача данных.

 

Актуальность исследования: в связи с широким использованием последовательных интерфейсов в современной промышленности и ценности информации  проблема безопасности передаваемых данных является наиболее актуальной .

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

  • Для реализации цели необходимо решить следующие задачи:
  • Рассмотреть виды последовательных интерфейсов, выявить области их применения и рассмотреть основные характеристики;
  • Исходя из этого, выявить возможные угрозы безопасности и проанализировать их;
  • Найти возможные пути их устранения.

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

Из-за простоты и низких аппаратных требований (в сравнении, например, с параллельным интерфейсом), последовательные интерфейсы активно используются в электронной промышленности. В настоящее время наиболее распространенным является стандарт UART. UART – это старейший и наиболее распространенный на сегодняшний день физический протокол передачи данных, предназначением которого является организация связи между цифровыми устройствами. Он преобразует передаваемые данные в последовательный вид для возможности передачи их по цифровой линии другому аналогичному устройству. Наиболее известной реализацией UART является интерфейсы RS–232, RS–422 и RS–485 [1, с. 18].

Стандарт RS-232 более известен как обычный СОМ порт компьютера или последовательный порт. Интерфейсы RS-422 и RS-485 широко применяются в промышленности для соединения различного оборудования.

В таблице приведены основные отличия интерфейсов RS-232, RS-422 и RS-485.

Таблица 1.

Последовательные интерфейсы

Название

RS-232

RS-422

RS-485

Тип передачи

Полный дуплекс

Полный дуплекс

Полудуплекс(2 провода),полный дуплекс (4 провода)

Максимальная дистанция

15 метров при 9600  бит/c

1200 метров при 9600  бит/c

1200 метров при 9600  бит/c

Топология

Точка-точка

Точка-точка

Многоточечная

Макс. кол-во  подключенных устройств

1

1(10 устройств в режиме приема)

32

 

Приемопередатчик RS-485 является наиболее распространенным интерфейсом физического уровня для реализации сетей с последовательной передачей данных, предназначенных для жестких условий эксплуатации в промышленных применениях и в системах автоматизированного управления зданиями. Так, например, он широко используется в нефтедобывающей и нефтеперерабатывающей отраслях промышленности. В частности, для измерения уровня нефти применяются взрывозащищенные датчики уровня жидкости радарных уровнемеров УЛМ-11 и УЛМ-11А1. Датчики уровня устанавливаются на крыше резервуаров (один датчик, на один резервуар) с контролируемым продуктом и измеряют уровень заполнения резервуаров. Полученные данные, по цифровому интерфейсу RS485, передаются на рабочее место оператора, где они, при помощи программного обеспечения верхнего уровня, систематизируются и визуализируются [2].

Несмотря на то, что данный стандарт последовательного интерфейса обеспечивает обмен данными с высокой скоростью на сравнительно большое расстояние и имеет достаточно хорошую помехоустойчивость (современные микросхемы приемопередатчиков RS-485 содержат встроенные элементы, реализующие усиленную защиту от электростатического разряда, защиту от перенапряжений и возможность горячей замены [3]),  он является ненадежным с точки зрения конфиденциальности и сохранности передаваемой информации, так как данные можно легко перехватить, используя так называемые программы мониторинга последовательных портов, предназначенные для захвата данных,проходящих через порты, отображения их на дисплее и записи в файл. Существуют два метода перехвата данных - программный и аппаратный. Программный способ не требует никакого дополнительного аппаратного обеспечения. Аппаратный способ требует создания или приобретения специального кабеля, а главное- необходимо наличие одного или даже двух (в зависимости от ситуации) дополнительных портов [4].

Также стоит отметить, что такие стандарты  последовательных интерфейсов ,как RS-485 и RS-422, предусматривают обмен данными на довольно большие дистанции( максимально до 1200 м),а это, в свою очередь, обеспечивает злоумышленникам доступ к проводу в любом месте его пролегания.

Далее рассмотрим передачу стандартного пакета по UART. Передача данных в UART осуществляется по одному биту в равные промежутки времени. Этот временной промежуток определяется заданной скоростью UART и для конкретного соединения указывается в бодах, что соответствует количество бит в секунду. Существует общепринятый ряд стандартных скоростей: 300; 600; 1200; 2400; 4800; 9600; 19200; 38400; 57600; 115200; 230400;460800; 921600 бод; Скорость (S, бод) и длительность бита (T, секунд) связаны соотношением T=1/S.

Байт данных отправляются в пакетах (Рис.1) (1-й бит перед байтом данных и 2-а бита после, количество бит опциональны). [5]

 

Рисунок 1. Пакет данных

 

Посылка начинается со стартового бита, он всегда имеет значение лог. 0. После стартового бита передаются биты данных. Количество битов данных может составлять 5-9 в зависимости от настроек UART. Обычно передаётся 8 бит данных или 9 бит (8 бит собственно данных и один бит чётности). Завершается посылка стоп-битами, их значение - всегда лог. 1, количество обычно составляет 1, 1.5 или 2. Под количеством стоп-битов понимается длительность соответствующего им единичного импульса по отношению к длительности битов данных и старт-бита. Этим объясняется возможность выражать количество битов дробным числом. Сразу же после стоп-битов может начинаться передача следующей посылки или может быть пауза произвольной длительности, во время которой на выходе также формируется уровень лог. 1.

Так как во время передачи стоп-бита и пока линия свободна, на выходе присутствует единичное значение, а старт-бит имеет значение лог. 0, старт-бит позволяет выявить момент начала передачи данных, разделить две последовательные посылки и осуществить синхронизацию передатчика и приёмника.

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

Обнаружив начало старт-бита, приёмник ждёт в течение половины длительности передачи бита, после чего начинает считывать сигнал на входе с частотой, равной скорости передачи данных. В идеальном случае момент каждого считывания приходится на середину принимаемого бита. [6]

Для приема и передачи данных UART использует две линии линии:

· передающая данные (TXD или TX);

· принимающая данные (RXD или RX);

· земля (GND).

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

Осуществим проверку  гипотезы, написав программы, одна из которых будет осуществлять посылку данных на монитор оператора(рис.3), а другая перехватывать эти данные и выводить на монитор злоумышленника(рис.4), и собрав схему экспериментальной установки в программе Proteus Professional(рис.2) .

 

Рисунок 2. Схема экспериментальной установки

 

 Рисунок 3. Код программы, осуществляющей передачу данных на монитор оператора

 

Рисунок 4. Код программы, осуществляющей перехват данных и вывод информации на монитор злоумышленника

 

Рисунок 5. Результаты эксперимента

 

Запустив экспериментальную установку, видим(рис.5) , что подключившись к шине данных, злоумышленник получает информацию с помощью элементарного нажатия кнопки.

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

Шифрование — обратимое преобразование информации в целях сокрытия от неавторизованных лиц, с предоставлением, в это же время, авторизованным пользователям доступа к ней. Важной особенностью любого алгоритма шифрования является использование ключа, который утверждает выбор конкретного преобразования из совокупности возможных для данного алгоритма [7].

 

Список литературы:
1. Агуров П.В. Последовательные интерфейсы ПК. Практика программирования[Текст] — СПб: БХВ-Петербург, 2004. — 496 c.
Интернет-ресурсы:
2. RS-485: все еще самый надежный промышленный интерфейс[Электронный ресурс]-Режим доступа:URL: https://www.compel.ru/lib/ne/2017/9/7-rs-485-vse-eshhe-samyiy-nadezhnyiy-promyishlennyiy-interfeys(Дата обращения: 4.05.2019)
3. Датчик уровня [Электронный ресурс]-Режим доступа:URL: http://www.limaco.ru/ru/production/usage/105/ (Дата обращения 3.05.2019)
4. О девайсах, подключаемых на СОМ-порт [Электронный ресурс]-Режим доступа:URL:http://disktrouble.narod.ru/rs232.html (Дата обращения :4.05.2019)
5. Работаем с UART на AVR[Электронный ресурс ]-Режим доступа:URL:  http://s-engineer.ru/rabotaem-s-uart-na-avr/ (Дата обращения: 4.05.2019)
6. Формат передачи данных UART[Электронный ресурс]-Режим доступа: URL:http://www.rotr.info/electronics/mcu/arm_usart.htm#frame(Дата обращения 4.05.2019)
7. Шифрование[Электронный ресурс]-Режим доступа:URL: https://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 (Дата обращения  4.05.2019)