К вопросу безопасности передачи данных по UART
Журнал: Научный журнал «Студенческий форум» выпуск №21(72)
Рубрика: Технические науки
Научный журнал «Студенческий форум» выпуск №21(72)
К вопросу безопасности передачи данных по 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].