Проектирование с помощью Bluetooth Mesh:конфиденциальность и безопасность
В Части 1 и Части 2 этой серии статей мы обсудили архитектуру Bluetooth Mesh и то, как сообщения передаются по сети Bluetooth Mesh. В современном подключенном мире безопасность - ключевой элемент в любом дизайне. Таким образом, важно, чтобы приложение Интернета вещей на основе Bluetooth Mesh было абсолютно безопасным и обеспечивало надежную функциональность.
Реализация безопасности на устройстве Bluetooth Mesh является обязательным требованием Bluetooth SIG и не может быть отключена. Обратите внимание, что в случае BLE, не связанного с сеткой, реализация безопасности двухточечного соединения является необязательной. Процесс инициализации, с помощью которого устройство добавляется в сеть Bluetooth Mesh и обмен данными в сети Bluetooth Mesh, тщательно продуман, при этом безопасность является высшим приоритетом. Протокол Bluetooth Mesh защищает сеть от различных возможных угроз на нескольких уровнях, таких как:
- Атаки Man-in-the-Middle (MITM) предотвращаются с помощью протокола обмена ключами Elliptic Curve Diffie-Hellman (ECDH) во время подготовки.
- Атаки воспроизведения предотвращаются за счет использования порядковых номеров.
- Атаки мусорных баков с выброшенных устройств предотвращаются с помощью процедуры обновления ключей (занесения в черный список).
Топология Bluetooth Mesh построена с учетом требований обязательных ключей безопасности, которые защищают сеть на нескольких уровнях стека. Давайте рассмотрим каждую функцию безопасности и конфиденциальности по порядку.
Подготовка:добавление неподготовленного устройства в сеть Bluetooth Mesh
Устройство Bluetooth Mesh добавляется в ячеистую сеть с помощью процесса подготовки. Подготовленное ячеистое устройство называется узлом, а устройство, которое выполняет подготовку, называется инициатором. Обычно поставщиком услуг выступает мобильный телефон. Он создает ячеистую сеть, назначает сетевой ключ и другие необходимые ключи. Незапланированные ячеистые устройства добавляются в ячеистую сеть Bluetooth с использованием процесса подготовки. Инициатор также настраивает подготовленные узлы сетки и элементы управления функциональностью узлов сети Bluetooth в сети.
Протокол обеспечения может использовать два разных канала-носителя:PB-ADV (канал ADV) или PB-GATT (канал GATT). Современные мобильные устройства еще не поддерживают носитель PB-ADV. По этой причине процесс подготовки выполняется через канал PB-GATT.
Неинициализированное ячеистое устройство запускает рекламу после включения. Провайдер сканирует неподготовленные устройства и устанавливает стандартное соединение BLE (при условии PB-GATT) с неподготовленным устройством. Затем он обменивается ключами с использованием протокола Эллиптической кривой Диффи-Хеллмана (ECDH). Таким образом, обмен ключами с использованием ECDH очень безопасен.
Затем оба устройства создают сеансовый ключ, используя обмененные ключи. Сеансовый ключ используется для шифрования сетевого ключа, ключа устройства (типы ключей обсуждаются в следующих разделах этой статьи), индекса IV и одноадресного адреса, которые отправляются на подготовленный узел сети Bluetooth. После успешной инициализации узел сети проходит процесс настройки, в котором возможности узла сети используются совместно с поставщиком услуг. Provisioner назначает ключи приложения настроенному узлу. Каждый узел сетки может иметь несколько ключей приложения, поэтому каждый ключ приложения должен быть привязан к определенной модели сетки с использованием процесса, называемого привязкой ключей. Таким образом стек сетки знает, какие ключи приложения использовать для указанной модели сетки.
На рис. 1 показана последовательность инициализации, когда смартфон со вспомогательным приложением сетки iOS пытается подготовить лампочку с регулируемой яркостью, реализованную с помощью оценочного комплекта CYBT-213043-MESH.
щелкните, чтобы увеличить изображение
Рис. 1. Процесс подготовки лампы с регулируемой яркостью. (Источник:Cypress)
Как видно из рисунка, лампа с регулируемой яркостью передает маяки неподготовленного устройства. Когда провайдер пытается добавить устройство, в списке неподготовленных устройств появляется лампа с регулируемой яркостью. Когда пользователь нажимает на устройство Dimmable Light в приложении iOS Mesh, начинается процесс подготовки.
Телефон отправляет приглашение на инициализацию, и лампа с регулируемой яркостью отвечает такими возможностями, как количество поддерживаемых элементов, поддерживаемые алгоритмы безопасности, доступность открытого ключа с использованием внеполосного (OOB) и возможность ввода / вывода для ввода / вывода. отображать пользовательское значение. Основываясь на возможностях регулируемой лампочки, обмен открытыми ключами ECDH осуществляется либо методом OOB, либо по каналу Bluetooth. Затем выполняется аутентификация.
После проверки подлинности регулируемой лампочки провайдер отправляет данные обеспечения по зашифрованному каналу AES-CCM. После того, как данные обеспечения (сетевой ключ, ключ устройства, индекс IV, адрес одноадресной передачи и т. Д.) Отправлены на лампочку с регулируемой яркостью, процесс подготовки завершен. Provisioner теперь может настроить лампу с регулируемой яркостью (не показана на этой схеме последовательности).
Сетевой ключ, ключ приложения и ключ устройства
Обладание сетевым ключом позволяет узлу расшифровывать и аутентифицироваться до сетевого уровня, что позволяет ретранслировать сообщения в сети. Ключи сетевого шифрования и закрытые ключи являются производными от сетевого ключа. Важно отметить, что даже несмотря на то, что все узлы в сети получают и пересылают сообщения ретрансляции ячеистой сети, фактические данные приложения не могут быть расшифрованы с помощью сетевых ключей. Данные приложения можно расшифровать только в том случае, если на устройстве есть соответствующий ключ приложения.
Сетевой ключ :Узел может иметь один или несколько сетевых ключей. Это позволяет создавать несколько подсетей в одной сети Bluetooth Mesh. Например, рассмотрим многоуровневую парковочную систему. Было бы полезно разделить каждый уровень на отдельную подсеть. Такое разделение позволяет избежать ретрансляции сообщений на всех уровнях и ограничивает ретранслируемые сообщения желаемым уровнем.
Ключ приложения :Ключи приложений являются общими для подмножества устройств в ячеистой сети. Обычно эти устройства имеют схожую функциональность. Например, все лампочки в гостиной могут иметь один ключ приложения, тогда как датчик движения или замок будут иметь отдельный ключ приложения. Сообщение сетки об изменении состояния лампочки может быть расшифровано только лампочками в гостиной (т. Е. Это единственные устройства, которые содержат требуемый ключ приложения).
Ключ устройства: Ключи устройств назначаются каждому подготовленному узлу сети поставщиком услуг. Это позволяет однозначно идентифицировать узлы сетки. Ключ устройства используется только во время процесса настройки узла поставщиком услуг.
Удаление узла (обновление ключа, занесение в черный список)
Важно предотвратить хакерскую атаку на конкретную ячеистую сеть с использованием ключей безопасности, полученных от неисправного или удаленного ячеистого узла, который был частью целевой ячеистой сети. Этот вид атаки широко известен как атака мусорного ведра. Чтобы избежать подобных атак, Bluetooth SIG определил процедуру обновления ключа. Эта процедура может быть инициирована Provisioner для помещения определенного узла в черный список. Процедура обновления ключей выдает новые сетевые ключи, ключи приложений и всю необходимую информацию для всех устройств в ячеистой сети, кроме устройств в черном списке. Любые ключи, которые были на устройстве из черного списка, больше не могут использоваться для доступа к ячеистой сети.
Конфиденциальность (запутывание сообщений):
Конфиденциальность - важный аспект для всех. Конфиденциальность в Bluetooth Mesh решается с помощью ключа конфиденциальности. Как обсуждалось ранее, ключ конфиденциальности является производным от сетевого ключа. Bluetooth Mesh использует этот ключ конфиденциальности, чтобы скрыть значения заголовка сообщения, такие как адрес источника. Если исходный адрес скрыт, злоумышленник не сможет отслеживать сообщения на основе их исходного адреса.
Воспроизведение атак
Злоумышленник может разрушить ячеистую сеть, перехватив сообщения по радио и повторно отправив один и тот же пакет несколько раз. Представьте, что злоумышленник захватывает сообщения, чтобы открыть дверной замок. Если злоумышленник может успешно перехватить эфирные сообщения, чтобы открыть дверь, это обеспечит доступ к двери. Ясно, что это будет огромной угрозой для людей и их собственности. Чтобы решить эту проблему, Bluetooth SIG предоставил два поля как часть каждого сетевого сообщения:индекс вектора инициализации (индекс IV) и порядковый номер (SEQ).
Порядковый номер увеличивается каждый раз, когда узел публикует сообщение. Узлы сети будут отбрасывать сообщения сети с порядковым номером, равным или меньшим, чем последнее обработанное действительное сообщение сети. Чтобы изменить порядковый номер, злоумышленник должен обладать всеми необходимыми ключами для декодирования, а затем шифрования сообщения. Эти ключи доступны только для предполагаемого устройства. Таким образом, даже если злоумышленник попытается ответить на сообщение, целевой узел отбросит его. Индекс IV - это отдельное поле в сообщении ячеистой сети. Значение индекса IV в сообщениях должно быть равно или больше, чем последнее обработанное допустимое сообщение сетки, в противном случае сообщение будет отброшено.
Вкратце, процесс Provisioning в Bluetooth Mesh позволяет добавлять в сеть только доверенные устройства и позволяет избежать любых атак типа «злоумышленник в середине». Ключи безопасности, такие как сетевой ключ, позволяют создавать подсети, в то время как ключи приложений позволяют декодировать сообщения ячеистой сети только определенным приложением. Ключевые процедуры обновления обеспечивают безопасное удаление узлов и защиту от атак с мусорной корзиной. Атаки воспроизведения можно избежать, добавив порядковый номер к каждому сообщению. Обфускация сообщений защищает личность отправителя. Все эти функции делают Bluetooth Mesh очень безопасным и конфиденциальным.
В следующей части этой серии статей мы поговорим о моментах, которые следует учитывать при выборе устройства Bluetooth Mesh для вашего приложения.
Встроенный
- Synopsys позволяет создавать проекты с несколькими кристаллами с IP HBM3 и проверкой
- Проектирование с помощью сети Bluetooth:чип или модуль?
- Cypress:микроконтроллеры Bluetooth обеспечивают ячеистую сеть с повсеместным подключением к смартфону
- Future Electronics подписывает новое соглашение о глобальном партнерстве с Silvair
- Contrinex:интеллектуальные датчики с поддержкой облачных вычислений и световые завесы безопасности с интерфейсо…
- Swissbit:аппаратные решения безопасности для защиты данных и устройств
- Bluetooth MCU повышает безопасность Интернета вещей
- Домашняя система безопасности Raspberry Pi с камерой и ИК-датчиком
- Настойчивость и настойчивость в руководстве
- Сдерживают ли безопасность и конфиденциальность IoT?