Как закрыть Zigbee‑сеть от чужих устройств
Чтобы защитить Zigbee и запретить неизвестные устройства, держите permit‑join выключенным по умолчанию, включайте join только на короткое окно, а для добавления используйте install code/уникальные link‑keys и (если доступно) белый список на координаторе (Trust Center). Ниже — как это работает и что настроить.
Оглавление
Ключи Zigbee: что действительно важно
В Zigbee безопасность в основном упирается в то, как устройство получает сетевой ключ и можно ли это перехватить.
- Network Key (сетевой ключ, AES‑128) — общий ключ сети. Кто его знает, тот часто может читать и подделывать значимую часть трафика на сетевом уровне.
- Link Key (ключ на уровне APS) — используется для защищённой доставки Network Key при присоединении. Бывает:
- общий “дефолтный” (общеизвестный) — удобно, но рискованно;
- уникальный (на устройство или на партию) — заметно лучше.
- Install Code → производный link key — практичный «аналог пароля на устройство»: без правильного install code устройство не должно пройти безопасное присоединение.
Что выбирать в доме
Быстрое сравнение вариантов присоединения
| Вариант | Удобство | Риск перехвата при join | Когда оправдан |
|---|---|---|---|
| Дефолтный (общеизвестный) link key | Высокое | Высокий | Только если иначе устройство не добавляется, и вы жёстко контролируете join‑окно |
| Уникальный link key (преднастроенный) | Среднее/высокое | Средний/низкий | Когда вы контролируете парк устройств и ключи |
| Install Code (уникальный) | Среднее | Низкий | Лучший вариант для «не пускать чужих» |
Если вы добавляете устройства через общеизвестный (дефолтный) ключ и держите join открытым долго, злоумышленнику достаточно «подслушать» момент вступления, чтобы получить сетевой ключ.
Join/permit‑join: где чаще всего «дырка»
Permit‑join — режим, когда координатор временно разрешает новым устройствам присоединяться. Главная ошибка — оставлять сеть «открытой всегда».
Как сделать правильно:
- Join по умолчанию: OFF.
- Открывайте join только вручную и на короткое время.
- Добавили устройство — сразу закрыли join.
Для квартиры обычно достаточно окна 30–120 секунд. Если добавляете много устройств подряд — держите join открытым минимально необходимое время и не делайте это «на ночь».
Отдельно проверьте настройки безопасности присоединения: в некоторых реализациях встречаются режимы, где сетевой ключ может быть передан «слишком просто» (условно — без достаточной защиты). Если есть выбор, всегда выбирайте защищённое присоединение (через link key / install code).
Запрет неизвестных устройств: рабочие стратегии
Надёжный результат даёт комбинация методов — от простых к сильным.
-
Закрытый join как правило
Это базовый «замок на двери». Без него остальные меры часто теряют смысл. -
Белый список (allowlist) устройств на Trust Center
Идеальная политика: разрешать вступление только заранее известным устройствам (обычно по IEEE/EUI‑64). Тогда даже при случайно открытом join шанс «чужого» сильно падает. -
Install Code для новых устройств (если поддерживается)
Сценарий выглядит так: вы заранее вводите install code (и иногда IEEE‑адрес), затем включаете join, и только «правильное» устройство может корректно завершить процедуру и получить Network Key. -
Отключить/ограничить упрощающие режимы комиссионинга
Если в вашей системе есть дополнительные способы «быстрого спаривания» (часто ради удобства), лучше их отключить или ограничить по времени. Удобство таких режимов иногда достигается ценой более слабой модели доверия. -
Контроль rejoin (повторного входа)
Если платформа позволяет выбирать строгий/упрощённый rejoin — выбирайте строгий. Упрощённые варианты удобны при проблемах связи, но могут облегчать повторное подключение постороннего устройства. -
Что делать при подозрении на компрометацию ключа
Если есть основания считать, что Network Key «утёк» (странные устройства, неожиданные команды), самый надёжный путь — пересоздать сеть (новый ключ и повторное добавление устройств). Если ваша платформа поддерживает безопасную смену сетевого ключа (rekey), используйте её, но учитывайте совместимость устройств.
Частые ошибки
- Join включён постоянно — фактически «открытая дверь» для всех в радиусе.
- Добавление устройств без контроля периметра — присоединение лучше делать, когда вы понимаете, кто рядом (особенно в плотной застройке).
- Ставка на «незаметность» вместо криптографии — выбор канала/ID не заменяет ключи и политику Trust Center.
- Один слабый сценарий присоединения (дефолтные ключи, упрощённый commissioning) обесценивает остальные меры.
FAQ
Можно ли сделать Zigbee “как Wi‑Fi с паролем”?
Ближайший аналог: install code/уникальные link‑keys + закрытый permit‑join + allowlist. «Один общий ключ для всех» по смыслу ближе к открытому подъезду, чем к Wi‑Fi с сильным паролем.
Что важнее: сильные ключи или короткое join‑окно?
Нужны оба. Самая быстрая победа — закрыть join по умолчанию, затем переходить к install code/уникальным ключам и allowlist.
Если кто-то узнал Network Key, он уже “внутри”?
Во многих домашних сценариях — да: это позволяет читать NWK‑трафик и нередко подделывать команды. Поэтому защищайте именно момент присоединения и не держите join открытым.