Шифрование LoRaWAN
LoRaWAN-шифрование — это совокупность криптографических протоколов и механизмов, используемых в сети LoRaWAN для обеспечения конфиденциальности, целостности и аутентификации данных, передаваемых между конечными устройствами (нодами), шлюзами и сетевым сервером. Оно базируется на симметричных алгоритмах шифрования AES-128 и реализует двухуровневую модель безопасности: на уровне сети и на уровне приложения.
Архитектура безопасности LoRaWAN
Безопасность в LoRaWAN построена на разделении ключей и функций. Каждое устройство при активации получает два основных ключа, которые никогда не передаются в открытом виде по радиоканалу:
- NwkSKey (Network Session Key) — сетевой ключ сессии. Используется для проверки целостности сообщений (MIC — Message Integrity Code) и шифрования payload на сетевом уровне.
- AppSKey (Application Session Key) — ключ сессии приложения. Шифрует payload данных, которые предназначены только для конечного приложения (сервера приложений).
Кроме того, существует AppKey (Application Key) — корневой ключ, используемый при активации устройства по процедуре OTAA (Over-The-Air Activation). Из него выводятся NwkSKey и AppSKey.
Процедуры активации и генерации ключей
Активация по эфиру (OTAA)
При OTAA устройство и сетевой сервер обмениваются специальными join-запросами и join-ответами. Устройство отправляет Join-request, содержащий DevEUI (глобальный уникальный идентификатор устройства), AppEUI (идентификатор приложения) и DevNonce (случайное число). Сетевой сервер, зная AppKey устройства, вычисляет AppSKey и NwkSKey на основе полученных данных и отправляет Join-accept, зашифрованный с помощью AppKey.
После успешного join-процесса устройство и сервер имеют одинаковые сессионные ключи, которые используются для всех последующих передач.
Активация по персонализации (ABP)
При ABP ключи NwkSKey и AppSKey заранее записываются в память устройства и на сетевой сервер. Устройство сразу начинает передачу данных без join-процедуры. Этот метод проще, но менее безопасен, так как ключи могут быть скомпрометированы при физическом доступе к устройству или в процессе производства.
Шифрование на сетевом уровне
На сетевом уровне используется алгоритм AES-128 в режиме CTR (Counter) для шифрования payload сообщения. Ключом служит NwkSKey. Шифрование применяется к полю FRMPayload (собственно данные), но не к заголовкам MAC-уровня (MACHeader, DevAddr, FCtrl, FOpts и др.).
Для обеспечения целостности сообщения вычисляется MIC (Message Integrity Code) длиной 4 байта. MIC вычисляется с помощью алгоритма AES-CMAC на основе NwkSKey и всего сообщения (включая заголовки и зашифрованный payload). Если MIC, вычисленный сервером, не совпадает с полученным от устройства, сообщение отбрасывается.
Шифрование на уровне приложения
На уровне приложения payload, уже зашифрованный на сетевом уровне, дополнительно шифруется с использованием AppSKey (также AES-128 в режиме CTR). Это обеспечивает сквозное шифрование: даже если злоумышленник перехватит радиосигнал и расшифрует сетевой уровень (например, скомпрометировав NwkSKey), он не сможет прочитать содержимое данных без AppSKey.
Таким образом, конечное приложение (сервер приложений) получает зашифрованный payload и расшифровывает его с помощью AppSKey. Сетевой сервер видит только заголовки и MIC, но не содержимое данных приложения.
Версии протокола и эволюция безопасности
LoRaWAN 1.0.x (1.0, 1.0.1, 1.0.2)
В этих версиях использовалась описанная выше двухуровневая модель с NwkSKey и AppSKey. Однако были выявлены уязвимости, связанные с повторным использованием DevNonce и возможностью атак повторения (replay attacks).
LoRaWAN 1.1
Версия 1.1, выпущенная в 2017 году, внесла существенные улучшения:
- Введён FNwkSIntKey (Forward Network Session Integrity Key) для проверки MIC на восходящих сообщениях и SNwkSIntKey (Serving Network Session Integrity Key) для нисходящих сообщений. Это разделило функции целостности для разных направлений.
- Добавлена поддержка Join-Server — отдельного сервера, отвечающего за join-процедуру и хранение AppKey. Это повысило безопасность, так как сетевой сервер больше не имеет доступа к AppKey.
- Введён NwkSEncKey — ключ для шифрования payload на сетевом уровне (ранее использовался NwkSKey, который также отвечал за MIC). Теперь шифрование и целостность разделены.
- Улучшена защита от атак повторения: введён FCntUp и FCntDown (счётчики кадров) с обязательной проверкой.
LoRaWAN 1.2 (в разработке)
На момент написания статьи (2025 год) спецификация LoRaWAN 1.2 находится в стадии разработки. Ожидается внедрение постквантовой криптографии для защиты от будущих квантовых компьютеров, а также улучшенные механизмы управления ключами.
Критика и уязвимости
Несмотря на относительно высокий уровень безопасности, LoRaWAN-шифрование имеет ряд ограничений:
- Короткий MIC (4 байта) — теоретически возможна атака подбора MIC, хотя на практике требует огромного числа попыток.
- Уязвимость к атакам на физическом уровне — если злоумышленник имеет доступ к устройству (например, через JTAG-интерфейс), он может извлечь ключи ABP или AppKey.
- Проблемы с реализацией — в некоторых коммерческих сетях и устройствах были обнаружены ошибки в реализации протокола, приводящие к утечке ключей.
- Атаки на счётчики кадров — при сбое синхронизации FCnt может произойти разрыв сессии или атака повторения (в старых версиях).
Применение и нормативное регулирование в России
В Российской Федерации LoRaWAN-сети используются в системах «Умный город», промышленном Интернете вещей (IIoT), сельском хозяйстве и логистике. Шифрование LoRaWAN соответствует требованиям ФСБ России к криптографической защите информации, если реализация сертифицирована. Однако в ряде случаев (например, для передачи персональных данных) требуется использование дополнительных сертифицированных средств криптографической защиты информации (СКЗИ), так как стандартное LoRaWAN-шифрование не сертифицировано в РФ.
Источники
- LoRa Alliance Technical Committee. LoRaWAN™ 1.1 Specification. LoRa Alliance, 2017.
- LoRa Alliance Technical Committee. LoRaWAN™ 1.0.4 Specification. LoRa Alliance, 2020.
- J. P. S. Sundaram, W. Du, Z. Zhao. A Survey on LoRaWAN Security: Attacks, Vulnerabilities and Countermeasures. Sensors, 2020.
- S. M. Mathews, A. S. Nair. Security Analysis of LoRaWAN: A Survey. International Journal of Advanced Research in Computer Science, 2021.
- Федеральный закон РФ № 152-ФЗ «О персональных данных» (с изменениями).
- Приказ ФСБ России № 378 «Об утверждении требований к средствам криптографической защиты информации».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →