С. Левин,
главный конструктор НПФ «Сигма-ИС»
ВВЕДЕНИЕ
BACnet - это открытый протокол автоматизации и управления зданием, разработанный в ASHRAE (Американское общество инженеров систем отопления, вентиляции и кондиционирования). Протокол предназначен для обеспечения совместной работы таких инженерных систем здания, как отопление, вентиляция и кондиционирование, управление освещением, контроль и управление доступом, пожарная сигнализация. BACnet предоставляет механизмы, с помощью которых оборудование с любым функционалом может обмениваться информацией независимо от своей специфики. В результате протокол BACnet успешно может использоваться в компьютерах верхнего уровня, программируемых логических контроллерах общего назначения, а также специализированных прикладных контроллерах.
Предпосылками для создания подобного стандарта стало всеобщее желание владельцев зданий и системных интеграторов получить интероперабельные решения, то есть возможность интегрировать оборудование от различных производителей в согласованную систему автоматизации и управления. Для достижения этой цели комитет по стандартизации ASHRAE запросил и получил данные от десятков заинтересованных компаний и экспертов, рассмотрел схожие национальные и международные стандарты по обмену данных. Было затрачено огромное количество сил и времени на обсуждение каждого элемента протокола.
Из всего этого родилась модель сетевого протокола со следующими принципиальными характеристиками:
В настоящее время в стандарт добавлено большое количество новых функций: возможность для объединения систем через глобальные сети с использованием Интернет-протоколов, добавлены новые объекты и сервисы для поддержки систем пожарной сигнализации и контроля доступа, что делает BACnet привлекательным для разработчиков и интеграторов в области систем безопасности.
ОБЪЕКТЫ BACNET
Как уже говорилось выше, сетевые устройства в BACnet представлены как наборы объектов. Каждый объект описывает тот или иной источник данных в системе или объект управления. Таким образом, можно считать, что объект -это основная сущность BACnet. В настоящее время протокол поддерживает всеобъемлющий набор объектов для описания общеинженерных систем, а также, что наиболее интересно для нас, ряд специальных объектов для систем безопасности, прежде всего для пожарной сигнализации и систем контроля и управления доступом.
В качестве примера объектов общего назначения можно привести следующий список:
Специальные объекты для систем безопасности, для исключения неправильной интерпретации привожу оригинальные названия:
С помощью этих объектов можно описать практически любой объект системы безопасности, будь то пожарная или охранная сигнализация, а также СКУД.
СЕТЕВАЯ АРХИТЕКТУРА ПРОТОКОЛА BACNET
Сетевая архитектура протокола базируется на хорошо известной модели OSI (Open System Interconnection - взаимодействие открытых систем). Эта модель описана в стандарте ISO 7498 и призвана решить задачу межкомпьютерного обмена данными и разбивает эту, вообще говоря, очень сложную задачу на 7 более простых, каждая из которых выполняет свою специфичную коммуникационную функцию. Каждая такая подзадача формирует уровень в архитектуре сетевого протокола.
BACnet базируется на сокращенной 4-уровневой архитектуре, что соответствует физическому, канальному, сетевому и прикладному уровням общей модели OSI. Прикладной и сетевой уровни определяются стандартом BACnet. Для канального и физического уровня BACnet предоставляет 7 вариантов реализации, что определяет возможность использования протокола поверх существующих коммуникационных технологий.
Сокращенная 4-уровневая архитектура была выбрана после тщательного рассмотрения конкретных функциональных возможностей и требований к сети, включая ограничения к накладным расходам, так как протокол должен быть как можно компактнее.
ТОПОЛОГИЯ СЕТИ BACNET
Для обеспечения гибкости при построении сети BACnet не предписывает жесткую топологию. BACnet устройства физически могут быть подключены к одному из четырех типов локальных сетей либо через выделенные или коммутируемые последовательные асинхронные каналы связи. Эти сети могут быть объединены вместе через BACnet маршрутизаторы.
В терминах топологии сетей каждое BACnet устройство подключено к среде передачи или физическому сегменту. BACnet сегмент содержит один или несколько физических сегментов, подключенных на физическом уровне через повторители. BACnet сеть содержит один или несколько сегментов, объединенных через мосты (устройства, которые подключают сегменты на физическом и канальном уровнях и могут осуществлять фильтрацию сообщений на уровне MAC-адресов). Сеть образует простой домен MAC-адресов. Несколько сетей, возможно построенных на различных сетевых технологиях, могут быть объединены через BACnet маршрутизаторы, образуя при этом BACnet «межсеть» (internetwork)^ BACnet межсети может существовать только один маршрут передачи сообщения между двумя узлами.
Табл. 1. Сетевые уровни модели OSI
Уровень |
Функции |
Прикладной |
Реализует интерфейс с пользовательским приложением |
Представления |
Кодирование/декодирование, конвертирование данных |
Сеансовый |
Управление сеансом связи, синхронизация передачи данных |
Транспортный |
Обеспечивает передачу данных между двумя узлами, сегментацию данных и коррекцию ошибок |
Сетевой |
Установление логической связи, адресация и маршрутизация между двумя узлами сети |
Канальный |
Управление доступом к физической среде передачи |
Физический |
Передача и прием двоичных данных в физической среде передачи |
Табл. 2. Варианты реализации канального и физического уровней BACnet
Вариант |
Канальный уровень |
Физический уровень |
1 |
ISO 8802-2 Type 1 (связь без установления соединения) |
ISO 8802-3 MAC (Ethernet) |
2 |
ISO 8802-2 Type 1 (связь без установления соединения) |
ATA 878.1 (ARCNET) |
3 |
Master-Slave/Token-Passing (MS/TP) |
EIA-485 (RS-485) |
4 |
Point-To-Point соединение |
EIA-232 (RS-232) |
5 |
LonTalk - протокол компании Echelon, используемый при построении сетей LonWorks |
|
6 |
BACnet Virtual Link Layer (BVLL) |
UDP/IP (BACnet/IP) |
7 |
BACnetZigBee Data Link Layer (BZLL) |
ZigBee |
БЕЗОПАСНОСТЬ СЕТИ BACNET
Основные угрозы безопасности для сети - это случайное или преднамеренное изменение конфигурации устройств или управляющих параметров. Проблемы в основном исходят со стороны компьютеров верхнего уровня, которые находятся за рамками самого сетевого протокола.
Одно из самых важных мест, определяющих безопасность, является человеко-машинный интерфейс (HMI - Human Machine Interface). Так как HMI не является частью коммуникационного протокола, задача защиты доступа со стороны человека с помощью паролей, протоколирование действий оператора и другие меры предосторожности отдаются на откуп производителям оборудования и разработчикам систем управления. В дополнение, доступ к записи любого свойства не ограничивается только требованием доступности свойства на запись. Стандарт может ограничивать изменения свойств только в виртуальном терминальном режиме или полностью. Это дает возможность производителям защищать ключевые свойства с помощью специального защитного механизма.
Сам протокол предоставляет возможности по аутентификации устройств, ограничению видимости данных и аутентификации пользователей. В целом требования к процедурам, обеспечивающим сетевую безопасность BACnet, могут быть сформулированы в следующем виде:
Для достижения должного уровня сетевой безопасности стандарт BACnet имеет механизм защищенных сообщений на сетевом уровне. Специализированные стандарты по сетевой безопасности, такие как IPsec или Kerberos, были разработаны для
работы только в TCP/IP сетях и поэтому не отвечают всем изложенным выше требованиям. Тем не менее архитектура сетевой безопасности BACnet была разработана с учетом опыта применения и возможностей этих стандартов, что позволило выполнить все указанные требования.
ЗАЩИТНЫЙ УРОВЕНЬ
Функциональность сетевой безопасности добавлена в стек BACnet как набор сообщений сетевого уровня. В сущности, это не является явным уровнем безопасности, тем не менее при обсуждении работы механизмов безопасности для простоты понимания можно выделить это в самостоятельный уровень. Для этой цели механизмы безопасности и связанные с ними сообщения показываются как уровень безопасности или защитный уровень, тогда как фактически это часть сетевого уровня.
ОБЩИЕ КЛЮЧИ
Модель безопасности BACnet основана на использовании общих и секретных ключей. Аутентификация устройств и пользователей реализуется с помощью цифровой подписи сообщений и общих ключей подписи. Ограничение видимости данных достигается через шифрование защищаемой информации и общие ключи шифрования.
В BACnet ключи всегда распределяются как пары ключей, где одна половина - это ключ подписи, а вторая половина - это ключ шифрования. Существует 6 типов пар ключей: «Общий сетевой доступ», «Аутентификация пользователя», «Приложение», «Инсталляция», «Распределение» и «Мастер-устройство».
ЗАЩИЩЕННЫЕ СООБЩЕНИЯ
Особенность работы защитного уровня заключается в том, что информация передается через защищенные сообщения. Обычные BACnet сообщения помещаются внутри защищенного сообщения, которое является оберткой для пользовательских данных. Каждое защищенное сообщение имеет цифровую подпись, основанную на алгоритмах HMAC, MD5 или SHA-256. В базовом уровне безопасности защищаются адреса отправителя и получателя, идентификатор сообщения, а также метка времени. Эти меры позволяют защитить сообщения от подмены или перенаправления. Идентификатор сообщения (Message ID) выполняет несколько функций в защищенном BACnet сообщении. Он используется для детекции повтора сообщения, однозначного связывания защищенного ответа с защищенным запросом и вместе с меткой времени обеспечивает изменяемость сообщения. Метка времени (Timestamp) используется в основном для предотвращения повторов сообщений, но также еще и служит как источник изменяемости данных сообщения, поэтому, когда сообщения часто повторяются, новое значение метки времени не позволяет получить одинаковое значение цифровой подписи. Понятно, что часы защищенных устройств для этого должны быть синхронизированы. Если метка времени в сообщении выходит за границы защитного временного окна, будет выдана ошибка приема. Внутри защитного временного окна проверяется идентификатор сообщения для подтверждения того, что сообщение не было повторено. Самый высокий уровень безопасности предусматривает шифрование BACnet сообщения таким образом, что содержимое сообщения не может быть определено без наличия соответствующего ключа. Даже длина сообщения может быть скрыта путем использования дополняющего заполнения данных пакета.
В следующих номерах журнала мы продолжим обсуждение этой темы.
Архив публикаций
Дата печати: 23 Nov 2024 10:29:36 |