[Из песочницы] Часто задаваемые вопросы о безопасности протокола LoRaWAN
Безопасность LoRaWAN
LoRaWAN это дальнобойный и при этом низко энергозатратный (Low Power, Wide Area — LPWA) сетевой протокол, разработанный для беспроводного соединения устройств, питающихся от батареи, с локальным или глобальным интернетом и обеспечения ключевых требований интернета вещей (IoT — Internet of Things) таких как двунаправленная связь, безопасность соединения, мобильность и пр.
Безопасность — это первоочередное требование для любых разработок в сфере Интернета вещей. Спецификация LoRaWAN определяет два уровня криптографической защиты:
- уникальный 128-битный ключ сетевой сессии (Network Session Key) общий для оконечного устройства и сетевого сервера;
- уникальный 128-битный ключ сессии приложения (AppSKey — Application Session Key) общий сквозной на уровне приложений.
AES алгоритмы используются для обеспечения аутентификации и целостности пакетов в сетевом сервере и для сквозного шифрования на уровне сервера приложений. Обеспечение этих двух уровней позволяет реализовать мульти-тенантные общие сети, где оператор сети не имеет возможности увидеть данные полезной нагрузки пользователей.
Ключи могут быть активированы посредством персонализации (ABP — Activated By Personalisation) на производственной линии или при введении в эксплуатацию, либо могут быть активированы через сеть (OTAA — Over-The-Air Activated) в полевых условиях. Метод активации OTAA позволяет устройству изменить ключи при необходимости.
Часто задаваемые вопросы о безопасности
Где описаны механизмы защиты протокола LoRaWAN?
Все механизмы защиты описаны в спецификациях LoRa Alliance, которые можно скачать на их сайте. На данный момент можно скачать релиз 1.0.х и данные ответы основаны на нем. В разработке находится релиз 1.1.
Как спецификация LoRa Alliance обеспечивает безопасность работы LoRaWAN сетей?
LoRaWAN поддерживает оригинальную аутентификацию, целостность и защиту повторного воспроизведения на всем фрейме MAC (Media Access Control). Это также делает возможным сквозное шифрование полезной нагрузки приложения между оконечным устройством и его ответной частью на стороне сети (которая называется сервер приложений в релизе 1.1). LoRaWAN поддерживает режим работы, который позволяет шифровать MAC-команды.
Все эти процедуры полагаются на AES стандарт шифрования (Advanced Encryption Standard) и используют 128-битные криптографические ключи и алгоритмы.
Есть ли отличия между режимами ABP и OTAA в плане защиты информации?
LoRaWAN использует статические корневые ключи и динамично генерируемые сессионные ключи.
Корневые ключи предусмотрены только в OTAA устройствах. Они используются для получения сессионных ключей, когда OTAA оконечное устройство выполняет процедуру присоединения к сети (Join Procedure). Оконечное устройство в режиме OTAA, когда оно установлено в полевых условиях может подключиться к любой сети, у которой есть выход на сервер ключей (в релизе 1.1 Join сервер), с которым оконечное устройство связано. Полученные таким образом сессионные ключи уже используются оконечными устройствами для защиты эфирного трафика.
ABP устройства не предусматривают использование корневых ключей. Вместо этого они обеспечены набором сессионных ключей для заранее выбранной сети. Сессионные ключи остаются неизменными в течение всего срока службы ABP устройства.
Способность изменить сессионные ключи делает OTAA устройства более подходящими для приложений требующих более высокого уровня безопасности.
Какая идентификация существует в LoRaWAN?
Каждое оконечное устройство идентифицировано 64-битным глобальным уникальным номером (EUI — Extended Unique Identifier), который присваивается либо производителем, либо владельцем оконечного устройства. Присвоение EUI номеров требует от цедента наличия уникального идентификатора OUI (Organizationally Unique Identifier) от органа регистрации IEEE.
Каждый Join сервер, который использует аутентификацию оконечных устройств также идентифицируется 64-битным глобальным идентификатором EUI, который присваивается либо владельцем, либо оператором этого сервера.
Открытые LoRaWAN сети и частные, которые «общаются» с открытыми идентифицируются 24-битным уникальным идентификатором, который присваивает LoRa Alliance.
Когда оконечное устройство успешно подключилось к сети, оно получает 32-битный временный адрес, присваиваемый сетью.
Могу ли я присваивать номера своим устройствам или сетям случайным образом?
Нет. В предыдущем вопросе описаны правила присваивания для каждого типа идентификатора. Если не следовать этим правилам, то может произойти совпадение номеров и непредсказуемое поведение в процессе развертывания вашей сети (аналогично тому, что может произойти, если использовать одинаковые Ethernet MAC-адреса на разных устройствах, подключенных к одному LAN).
Все оконечные устройства, вышедшие с производства, имеют одинаковый «дефолтный» криптографический ключ?
Нет. В LoRaWAN нет концепции «дефолтного ключа» или «дефолтного пароля». Все оконечные устройства имеют уникальные ключи, даже на выходе с производства. Таким образом, единично скомпрометированный ключ с оконечного устройства никаким образом не повлияет на другие устройства.
Какого рода криптографические ключи используются?
В OTAA оконечных устройствах предусмотрены корневые ключи, которые называются AppKey (Application Root Key). На стороне сети ключи AppKey находятся у Join сервера, который может быть или не быть одновременно и сетевым сервером.
В ABP оконечных устройствах предусмотрены два ключа сессии AppSKey и NwkSKey (Network Session Key). На стороне сети NwkSKey находится у сетевого сервера, а AppSKey у сервера приложений.
Процедуры, используемые для обеспечения перечисленными ключами всех требуемых элементов сети (оконечное устройство, Join сервер, сетевой сервер, сервер приложений) находятся за пределами действия спецификации LoRaWAN.
Какие алгоритмы криптографии используются?
AES-CMAC алгоритм описанный в RFC4493 используется для оригинальной аутентификации и защиты целостности. AES-CCM алгоритм описанный в IEEE 802.15.4–2011 используется для шифрования.
Как LoRaWAN препятствует прослушиванию?
MAC данные зашифрованы между оконечным устройством и сетью в момент передачи в эфире. Вдобавок, полезные данные зашифрованы между оконечным устройством и сервером приложений (так называемое сквозное шифрование). Это гарантирует, что только авторизованные объекты, которые содержат ключи шифрования могут получить доступ к содержимому пакета.
Как LoRaWAN препятствует подмене данных?
Целостность и аутентификация MAC данных защищена с помощью поля пакета, которое содержит MIC-код (Message Integrity Code), известный оконечному устройству и сети. Это гарантирует, что только авторизованные объекты, которые содержат ключи целостности (т.е. оконечное устройство и сетевой сервер) могут генерировать валидные сообщения.
Как LoRaWAN препятствует переповторам?
Защита целостности MAC данных использует счетчики сообщений чтобы гарантировать, что получатель не примет уже принятое (т.е. потенциально переповторенное) сообщение.
LoRaWAN поддерживает защиту полезной нагрузки приложений?
В LoRaWAN доступно сквозное шифрование полезной нагрузки приложений между оконечным устройством и сервером приложений. Защита целостности обеспечивается в его hop-by-hop структуре: один hop по воздуху через LoRaWAN защиту целостности и другой hop между сетевым сервером и сервером приложений с использованием технологий защищенной передачи, таких как HTTPS и VPN. Приложениям, нуждающимся в сквозной защите целостности, рекомендуется поступать так же со своей полезной нагрузкой.
Как защищены backend интерфейсы?
Backend интерфейсы вовлечены в управление и обмен данными между сетевыми серверами, Join серверами и серверами приложений. HTTPS и VPN технологии рекомендованы для защиты обмена данными между этими критическими элементами инфраструктуры, в той же степени как это реализовано в прочих телекоммуникационных системах. Backend интерфейсы находятся за пределами действия LoRaWAN спецификации.
Поддерживает ли LoRaWAN защиту аппаратной части?
Повышение безопасности оконечных устройств и серверных платформ в плане аппаратной части (защитные элементы или модули безопасности) относится к вопросам реализации оборудования и не связано с функциональной совместимостью протоколов, нацеленной на качество связи, включая LoRaWAN. Тем не менее, использование таких технических решений совместимо со спецификацией LoRaWAN и может быть реализовано разработчиком в соответствии с требованиями применения.
Что я должен делать, если я обнаружил угрозу безопасности?
В общем случае угроза безопасности может возникать по одной из трех причин или их комбинаций:
- спецификация (например, отсутствие защиты от переповторов),
- реализация (например, извлечение ключа из устройства),
- развертывание (например, отсутствие защитных экранов).
Первым делом следует установить причину. Если причина в спецификации, то написать в LoRa Alliance на почту help. По вопросам реализации оборудования обратиться к производителю.
А вопросы развертывания решаются операторами LoRaWAN сетей.
Источник