Концепция безопасности ZigBee основана на взаимном доверии…
Как отмечалось ранее в моих посвященных сетям ZigBee топиках и статье, отличительной чертой сетей ZigBee является гарантированная, устойчивая к помехам, многолучевому затуханию, различным сбоям и отказам передача данных.
К этому следует добавить: не только гарантированная, но и безопасная передача, что важно для многих критических приложений.
Нетрудно представить, к чему может привести несанкционированное вмешательство в работу системы управления техпроцессом или системы охраны.
Вместе с тем, в менее критических приложениях должна существовать возможность снижения цены устройств за счет некоторого снижения требований к уровню безопасности.
Именно такой подход реализуется в модели безопасности ZigBee, которой посвящен этот топик.
Основным механизмом обеспечения конфиденциальности в сетях ZigBee является надлежащая защита всех ключевых данных. А основой безопасности – доверительные отношения, которые обязательны как на стадии первоначальной установки ключей, так и в процессе обработки информации, касающейся безопасности. То есть, обмен данными должен производиться только между доверяемыми сторонами. Этот подход последовательно пронизывает всю иерархию обмена данными.
Спецификация ZigBee регламентирует безопасность на уровнях NWK и APS и опирается на базовую структуру безопасности, регламентированную стандартом IEEE 802.15.4. Безопасность приложений обеспечивается посредством профилей приложений (стек протоколов можно посмотреть здесь).
Ключи являются краеугольным камнем архитектуры безопасности ZigBee. Их защита имеет первостепенное значение, и ключи никогда не должны передаваться по не защищенным каналам. Кратковременное (и единственное) исключение из этого правила имеет место только в момент присоединения к сети ранее не настроенного устройства.
Спецификация ZigBee предусматривает особые меры безопасности, поскольку создаваемые в том или ином случае сети могут оказаться физически доступными для внешних устройств, а конкретные рабочие среды могут быть непредсказуемы. Более того, различные приложения, запускаемые одновременно и использующие для связи один и тот же трансивер, должны быть взаимно доверенными, поскольку из соображений стоимости модель не предусматривает брандмауэра между объектами приложений.
В стеке протокола различные слои не разделены криптографически, поэтому политика доступа обязательна и требует правильного проектирования. Открытая модель доверия внутри устройства позволяет разделение ключа, что особенно уменьшает потенциальную стоимость устройства.
Тем не менее, слой, который создает фрейм, отвечает за его безопасность. Если существует риск появления вредоносных устройств, вся полезная нагрузка на создающем ее слое должна шифроваться, чтобы несанкционированный трафик мог быть немедленно отсечен. Исключением, как уже упоминалось, является передача новому присоединяемому устройству сетевого ключа, который передает ему уровень единой безопасности сети.
Архитектура безопасности
Система безопасности в соответствии со спецификацией ZigBee основана на 128-битном AES алгоритме. Предусмотренные спецификацией ZigBee службы безопасности определяют создание ключей, управление устройствами и защиту данных.
ZigBee использует 128-битные ключи для реализации механизмов безопасности. Ключ может быть ассоциирован либо с сетью (и использоваться уровнями ZigBee и MAC подуровнем) либо с каналом связи. Ключ может быть получен путем предварительной установки, соглашения или передачи. Создание ключей канала связи основано на использовании главного ключа, который контролирует соответствие ключей канала связи. Первоначальный главный ключ должен быть получен через безопасную среду (передачей или предварительной установкой), так как безопасность всей сети зависит от него. Главный ключ и ключи каналов связи видны только на уровне приложений. Различные сервисы используют различные вариации ключа канала связи во избежание утечки и риска для безопасности.
Распределение ключей является одной из наиболее важных функций безопасности сети. В защищенной сети назначается одно специальное устройство, которому другие устройства доверяют распределение ключей безопасности – центр управления безопасностью. В идеале каждое устройство в сети должно иметь предварительно загруженные адрес центра управления безопасностью и первоначальный главный ключ. Приложения без особых требований к безопасности могут использовать сетевой ключ, передаваемый центром управления безопасностью через не защищенный на момент передачи канал.
Таким образом центр управления безопасностью поддерживает ключ сети и обеспечивает безопасность точка-точка. Устройства будут принимать только сообщения, зашифрованные с использованием ключа, предоставленного центром управления безопасностью, за исключением первоначального главного ключа.
Архитектура безопасности распределяется между сетевыми уровнями:
Подуровень MAC способен устанавливать надежную связь с соседним устройством. Как правило, он использует уровень безопасности, определяемый верхними уровнями.
Сетевой уровень управляет маршрутизацией, обрабатывает полученные сообщения и может направлять запросы. Исходящие фреймы будут использовать ключ соответствующего канала связи согласно маршрутизации, если он доступен; в противном случае для защиты полезной нагрузки от внешних устройств будет использоваться сетевой ключ.
Уровень приложений устанавливает ключи и оказывает транспортные услуги как объекту устройства (ZDO), так и приложениям. Он отвечает также за распространение сообщений об изменениях в устройствах внутри сети, которые могут исходить как от самих устройств (например, простое изменение статуса), так и от центра управления безопасностью (который может сообщить, что определенное устройство удаляется из сети). Уровень также маршрутизирует запросы устройств центра управления безопасностью и обновления сетевого ключа от центра управления безопасностью всем устройствам.
Объект устройства ZDO поддерживает политики безопасности устройства.
Центр управления безопасностью
Ключевым элементом концепции безопасности ZigBee является Центр управления безопасностью.
На этапе формирования или реконфигурации сети центр управления безопасностью разрешает или запрещает присоединение к сети новых устройств.
Центр управления безопасностью может периодически обновлять ключ сети и переходить на новый ключ. Сначала он транслирует новый ключ, зашифрованный с помощью старого ключа сети. Затем сообщает всем устройствам о переходе на новый ключ.
Обычно центром управления безопасностью по совместительству является координатор сети, но это может быть и выделенное устройство.
Центр управления играет следующие роли в обеспечении безопасности:
а) проверяет подлинность устройств, желающих присоединиться к сети,
б) поддерживает и распространяет сетевые ключи,
в) обеспечивает безопасность взаимодействия устройств.
Типы ключей
ZigBee использует три типа ключей для управления безопасностью:
а) главный ключ,
б) сетевой ключ и
в) ключ канала связи.
Главный ключ
Этот ключ не используется для шифрования. Он используется как разделяемый двумя устройствами секретный код при выполнении устройствами процедуры генерации ключа канала связи.
Главные ключи, создаваемые центром управления безопасностью, называются главными ключами центра безопасности, все другие ключи называются основными ключами уровня приложений.
Сетевые ключи
Эти ключи обеспечивают безопасность сетевого уровня. Сетевой ключ имеет каждое устройство в сети ZigBee.
По беспроводным каналам сетевые ключи высокой безопасности должны пересылаться только в зашифрованном виде. Стандартные сетевые ключи могут пересылаться как в зашифрованном, так и в не зашифрованном виде.
Ключи каналов связи
Эти ключи обеспечивают безопасную одноадресную передачу сообщений между двумя устройствами на уровне приложений.
Режим стандартной безопасности
В режиме стандартной безопасности перечень устройств, главные ключи, ключи каналов связи и сетевые ключи можно хранить как в центре управления безопасностью, так и в самих устройствах. Центр управления безопасностью, тем не менее, отвечает за поддержание стандартного сетевого ключа и контролирует политику приема в сеть. В этом режиме требования к ресурсам памяти центра управления безопасностью гораздо ниже, чем для режима повышенной безопасности.
Режим повышенной безопасности
В режиме повышенной безопасности центр управления безопасностью хранит перечень устройств, главные ключи, ключи каналов связи и сетевые ключи, необходимые для контроля и применения политики обновления сетевых ключей и доступа в сеть. В этом режиме по мере роста количества устройств в сети быстро возрастает необходимый центру управления безопасностью объем памяти.