NwkSKey
NwkSKey (Network Session Key, ключ сетевой сессии) — это криптографический ключ, используемый в протоколах беспроводной связи LoRaWAN (Long Range Wide Area Network) для обеспечения целостности и аутентификации данных, передаваемых между конечным устройством (нодой) и сетевым сервером. NwkSKey является одним из двух сессионных ключей (наряду с AppSKey — ключом сессии приложения), генерируемых при активации устройства в сети LoRaWAN. Он предназначен исключительно для проверки подлинности сообщений и защиты от несанкционированного вмешательства, но не используется для шифрования полезной нагрузки данных.
История и контекст
Протокол LoRaWAN был разработан альянсом LoRa Alliance (организация, не признанная в РФ экстремистской или нежелательной) в 2015 году как открытый стандарт для сетей дальнего радиуса действия с низким энергопотреблением (LPWAN). Основной задачей протокола стало обеспечение безопасной передачи данных от устройств интернета вещей (IoT) при минимальном энергопотреблении. В рамках этой задачи были введены два типа сессионных ключей: NwkSKey и AppSKey. Их разделение позволило разграничить ответственность между сетевым оператором и разработчиком приложения, предотвращая доступ оператора к содержимому данных.
Назначение и функции
NwkSKey выполняет две основные функции:
- Аутентификация сообщений. С помощью NwkSKey вычисляется код аутентичности сообщения (MIC — Message Integrity Code), который добавляется к каждому пакету данных. Сетевой сервер, получив пакет, повторно вычисляет MIC на основе того же ключа и сравнивает его с переданным. Если значения совпадают, сообщение считается подлинным и не изменённым в процессе передачи.
- Проверка целостности. NwkSKey гарантирует, что данные не были модифицированы злоумышленником. Любое изменение содержимого пакета приведёт к несоответствию MIC, и пакет будет отвергнут.
Важно отметить, что NwkSKey не шифрует полезную нагрузку (payload). Для шифрования данных приложения используется отдельный ключ AppSKey. Такое разделение позволяет сетевому оператору проверять подлинность сообщений, не имея доступа к их содержимому.
Генерация и управление
NwkSKey генерируется в процессе активации устройства в сети LoRaWAN. Существует два основных способа активации:
Активация по воздуху (OTAA — Over-The-Air Activation)
Это наиболее распространённый и безопасный метод. При OTAA устройство и сетевой сервер обмениваются специальными сообщениями (Join-request и Join-accept), в ходе которых на основе уникального идентификатора устройства (DevEUI), ключа приложения (AppKey) и других параметров вычисляются NwkSKey и AppSKey. Ключи генерируются заново при каждой новой активации, что повышает безопасность.
Активация по персонализации (ABP — Activation By Personalization)
При ABP NwkSKey и AppSKey заранее записываются в память устройства и на сетевой сервер. Этот метод проще, но менее безопасен, так как ключи остаются неизменными на протяжении всего срока службы устройства. В случае компрометации ключа все данные, передаваемые устройством, становятся уязвимыми.
Структура и длина
NwkSKey представляет собой 128-битный (16 байт) ключ, соответствующий стандарту AES-128. Он используется в алгоритме AES-CMAC для вычисления MIC. Длина ключа фиксирована и не зависит от версии протокола LoRaWAN (1.0.x, 1.1.x).
Отличие от AppSKey
Хотя оба ключа генерируются одновременно и имеют одинаковую длину, их функции и области применения различны:
| Параметр | NwkSKey | AppSKey |
|---|---|---|
| Назначение | Обеспечение целостности и аутентификации сетевых сообщений | Шифрование и дешифрование полезной нагрузки данных |
| Используемый алгоритм | AES-CMAC (для MIC) | AES-CTR (для шифрования) |
| Доступ для сетевого оператора | Да (необходим для проверки MIC) | Нет (должен быть известен только устройству и серверу приложения) |
| Последствия компрометации | Злоумышленник может подделывать сообщения, но не может расшифровать данные | Злоумышленник может расшифровать все данные, передаваемые устройством |
Применение в протоколах LoRaWAN
В версиях протокола LoRaWAN 1.0.x NwkSKey использовался как единый ключ для всех сетевых функций. Начиная с версии 1.1.0, произошло разделение на два ключа: NwkSKey для проверки целостности и SNwkSIntKey (Server Network Session Integrity Key) для дополнительной аутентификации. Однако в большинстве реализаций термин «NwkSKey» по-прежнему обозначает ключ, отвечающий за целостность сообщений.
Безопасность и уязвимости
Безопасность NwkSKey напрямую зависит от способа его хранения и передачи. Основные угрозы включают:
- Компрометация ключа при ABP. Если злоумышленник получает физический доступ к устройству или извлекает ключ из памяти, он может подделывать сообщения от имени этого устройства.
- Перехват ключа при OTAA. При неправильной реализации протокола (например, при использовании слабого AppKey) возможен перехват ключей в процессе активации.
- Отсутствие обновления ключей. В некоторых устройствах NwkSKey не обновляется после первоначальной активации, что снижает уровень защиты при длительной эксплуатации.
Для минимизации рисков рекомендуется использовать OTAA, регулярно обновлять ключи и хранить их в защищённом аппаратном модуле (например, TPM — Trusted Platform Module).
Интересные факты
- NwkSKey и AppSKey генерируются на основе одного и того же мастер-ключа (AppKey), но с использованием разных производных функций (KDF — Key Derivation Function), что гарантирует их независимость.
- В протоколе LoRaWAN 1.1.0 введены два дополнительных ключа: SNwkSIntKey и FNwkSIntKey, которые разделяют функции аутентификации между сетевым сервером и сервером приложений.
- Длина NwkSKey (128 бит) соответствует стандарту AES-128, который считается криптостойким для современных вычислительных мощностей.
Источники
- LoRa Alliance Technical Committee. LoRaWAN 1.1 Specification. — 2017.
- LoRa Alliance Technical Committee. LoRaWAN 1.0.4 Specification. — 2020.
- Sornin N., Luis M., Eirich T., Kramp T., Hersent O. LoRaWAN Specification. — 2015.
- Augustin A., Yi J., Clausen T., Townsley W. M. A Study of LoRa: Long Range & Low Power Networks for the Internet of Things // Sensors. — 2016. — Vol. 16, no. 9. — P. 1466.
- Bor M., Roedig U. LoRa for the Internet of Things // Proceedings of the 2016 International Conference on Embedded Wireless Systems and Networks. — 2016. — P. 361–366.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →