Урок 7. Безопасность инфраструктуры: почему город — не игрушка
Урок 7. Безопасность инфраструктуры: почему город — не игрушка
Паспорт урока
| Параметр | Значение |
|---|---|
| Место в модуле | PowerSentry, модуль 3 «Масштаб города», урок 7 из 8 |
| Длительность | 45 мин |
| Возраст | 14–16 |
| Оборудование | Материалы FoxHunter (уроки 4–6) для сравнения |
| Предварительные знания | FoxHunter, уроки 4–6 — обязательно |
| Предмет | Информационная безопасность, информатика |
Образовательные цели
| № | Цель | Блум | Миллер | Чем доказывается |
|---|---|---|---|---|
| 7.1 | Сопоставлять защиту наивного протокола и промышленного | анализировать | знает как | Три слабости и закрывающие механизмы |
| 7.2 | Различать конфиденциальность, целостность и аутентичность | анализировать | знает как | Классификация механизмов LoRaWAN |
| 7.3 | Обосновывать выбор OTAA вместо ABP для продакшена | оценивать | знает как | Ответ про компрометацию узла |
| 7.4 | Обосновывать приватную сеть для городских данных | оценивать | знает как | Аргументация контроля над ключами |
Сценарий занятия (45 минут)
| Время | Блок | Что делает педагог | Что делают ученики |
|---|---|---|---|
| 0–5 | Retrieval | Мини-квиз по урокам 5–6 | Пишут, разбор |
| 5–13 | Постановка угрозы | «Что если подделать протечку?» | Строят модель угроз |
| 13–25 | Три механизма LoRaWAN | Шифрование, MIC, счётчик | Сопоставляют с FoxHunter |
| 25–35 | Управление ключами | ABP против OTAA | Разбирают разницу |
| 35–42 | Практика | Задачи | Решают |
| 42–45 | Итог и ДЗ | Фиксация | Записывают |
Блок 1. Постановка угрозы (5–13 мин)
Смена масштаба
«До сих пор мы говорили об энергии и ёмкости. Теперь представьте: наша сеть развёрнута на весь город и управляет выездами аварийных бригад. Что может сделать злоумышленник?»
Построение модели угроз с классом
| Атака | Последствие для города |
|---|---|
| Подделать сообщение о протечке | ложный выезд бригады; при массовой атаке — паралич службы |
| Подавить сообщение о настоящей протечке | авария развивается незамеченной |
| Прочитать данные сети | разведка: где датчики, где слабые места инфраструктуры |
| Повторить старое сообщение | ложная тревога без знания ключей |
| Скомпрометировать один узел | получить доступ ко всей сети (если ключи общие) |
Ключевая фраза урока
«Один датчик в подвале — игрушка. Сеть, поднимающая аварийные наряды города, — инфраструктура. И её защита не опция, а требование.»
Блок 2. Три механизма LoRaWAN (13–25 мин)
2.1. Сопоставление с FoxHunter
Построить таблицу вместе с классом:
| Задача защиты | Наивное решение (FoxHunter) | Промышленное (LoRaWAN) |
|---|---|---|
| Подтвердить отправителя | подпись 1 байт (XOR с ключом) | MIC 4 байта (AES-CMAC) |
| Защититься от повтора | ручной счётчик fcnt + эвристика ресинка | FCnt в защищённой сессии |
| Скрыть содержимое | — (не требовалось) | шифрование AES-128 |
| Управлять ключами | ключ зашит в исходнике | OTAA: сессионные ключи |
2.2. Углублённый уровень
Шаг 1. Шифрование полезной нагрузки.
LoRaWAN шифрует содержимое кадра алгоритмом AES-128 на ключе AppSKey. Перехватчик видит длину кадра и адрес устройства, но не может прочитать данные.
Зачем это городу: данные о расположении и состоянии инфраструктуры — сведения, которые не должны быть публично доступны.
Шаг 2. Целостность и аутентичность — MIC.
Каждый кадр подписывается 4-байтовым MIC (Message Integrity Code), вычисляемым алгоритмом AES-CMAC на ключе NwkSKey.
Сопоставление с FoxHunter — здесь ученики применяют свои расчёты из урока 6 модуля охоты:
| FoxHunter | LoRaWAN | |
|---|---|---|
| Длина | 1 байт | 4 байта |
| Пространство | 256 | ≈ 4,3 млрд (2³²) |
| Перебор по радио (1 попытка/с) | ≈ 2 минуты | ≈ 68 лет |
| Функция | XOR (линейная) | AES-CMAC (нелинейная) |
| «Схлопывание» ключа | да, до одной константы | невозможно |
Важное уточнение, которое стоит проговорить. Четыре байта MIC защищают от подделки по радио: перебрать 2³² вариантов через эфир нереально. При этом сам ключ — 128-битный, и вычислительно он не вскрывается.
Различайте: длина передаваемого MIC защищает канал, длина ключа защищает секрет. Это разные величины и разные роли.
Шаг 3. Защита от повтора.
Монотонный счётчик кадров FCnt в каждом сообщении. Сетевой сервер отвергает кадры со счётчиком не больше уже принятого.
Отличие от FoxHunter: там охотник применял эвристику ресинхронизации по динамике счётчика. LoRaWAN поступает строже — считает сброс счётчика ослаблением защиты и требует явного разрешения администратора.
Практическая деталь стенда: после сброса питания узла FCnt обнуляется, и сервер начинает отбрасывать кадры. На стенде включают опцию сброса счётчиков; в продакшене сессию сохраняют в энергонезависимой памяти.
Блок 3. Управление ключами: ABP против OTAA (25–35 мин)
Постановка
«У нас на стенде ключи прописаны прямо в исходном коде прошивки. Что с этим не так для города?»
ABP — активация персонализацией
Ключи NwkSKey и AppSKey зашиты в прошивку при производстве.
| Плюс | Минус |
|---|---|
| просто, работает сразу | ключи лежат в прошивке — их можно извлечь из устройства |
| не нужен обмен при включении | компрометация одного узла раскрывает его трафик навсегда |
| удобно для отладки | смена ключей требует перепрошивки |
OTAA — активация по воздуху
Устройство хранит только корневой ключ (AppKey) и при подключении к сети проходит процедуру присоединения, в результате которой генерируются сессионные ключи.
| Плюс | Минус |
|---|---|
| сессионные ключи не хранятся постоянно | нужна процедура присоединения (энергия, время) |
| при переподключении ключи обновляются | сложнее в отладке |
| компрометация сессии ограничена по времени | требуется приём даунлинка |
Приватная сеть
«Последний вопрос: где должны обрабатываться данные городской инфраструктуры?»
| Публичный облачный сервис | Собственный сервер (ChirpStack) |
|---|---|
| быстро развернуть | требует администрирования |
| данные и ключи у стороннего оператора | ключи и данные под контролем города |
| зависимость от внешнего поставщика | автономность |
Для инфраструктуры ЖКХ выбор в пользу приватной сети обоснован: сведения о состоянии городских сетей и ключи доступа не должны находиться под чужим контролем.
Блок 4. Практические задачи (35–42 мин)
Уровень A (14 лет)
A1. Почему для одного учебного датчика защита не критична, а для городской сети обязательна?
Ответ
Учебный датчик ни на что не влияет: его подделка испортит только урок. Городская сеть управляет выездами аварийных бригад — поддельные сообщения приведут к ложным нарядам и расходам, а подавленные скроют настоящую аварию.
A2. Назовите три механизма защиты LoRaWAN и что каждый обеспечивает.
Ответ
- Шифрование AES-128 — конфиденциальность (посторонний не прочитает содержимое);
- MIC (AES-CMAC, 4 байта) — целостность и аутентичность (кадр не подделан и пришёл от владельца ключа);
- Счётчик кадров
FCnt— защита от повтора (записанный кадр нельзя переиграть).
A3. Чем 4-байтовый MIC лучше однобайтовой подписи из FoxHunter?
Ответ
У однобайтовой подписи 256 вариантов — их перебирают за пару минут. У 4-байтового MIC 2³² ≈ 4,3 миллиарда вариантов, перебор по радио занял бы десятки лет. Кроме того, MIC вычисляется нелинейной функцией AES-CMAC, которую нельзя упростить, в отличие от XOR.
Уровень B (14–15 лет)
B1. Перечислите три слабости протокола FoxHunter и укажите, каким механизмом LoRaWAN закрывает каждую.
Решение
| Слабость FoxHunter | Механизм LoRaWAN |
|---|---|
| Подпись 1 байт — перебирается за минуты | MIC 4 байта на AES-CMAC: перебор по радио десятки лет |
| Функция подписи линейна (XOR схлопывает ключ в константу) | AES-CMAC нелинеен, «схлопывание» невозможно |
| Ключ зашит в исходнике и одинаков для всех | OTAA: сессионные ключи, у каждого устройства свои |
Дополнительно: содержимое FoxHunter не шифруется (там это не требовалось), LoRaWAN шифрует полезную нагрузку.
B2. Почему для продакшена выбирают OTAA, а не ABP?
Ответ
При ABP сессионные ключи зашиты в прошивку: получив физический доступ к одному узлу, злоумышленник может их извлечь и в дальнейшем читать и подделывать его трафик. Смена ключей потребует перепрошивки тысяч устройств.
При OTAA устройство хранит только корневой ключ, а сессионные генерируются при подключении и обновляются при переподключении. Компрометация ограничена по времени и не распространяется на всю сеть.
B3. Почему на стенде используется ABP, если он менее защищён?
Ответ
Ради простоты отладки: ключи фиксированы, устройство выходит на связь сразу после включения, не требуется процедура присоединения и приём даунлинка. При отладке это экономит много времени.
Это осознанный компромисс для учебного стенда, и он явно задокументирован — так же, как отключение ADR на уроке 6. Важно, что решение принято сознательно, а не по незнанию.
Уровень C (15–16 лет)
C1. Постройте полную модель угроз городской сети и укажите, какие угрозы LoRaWAN не закрывает.
Разбор
| Угроза | Закрыта? | Чем / почему нет |
|---|---|---|
| Чтение содержимого | да | AES-128 |
| Подделка сообщения | да | MIC (AES-CMAC) |
| Повтор старого кадра | да | FCnt |
| Компрометация одного узла | частично | OTAA ограничивает ущерб |
| Глушение эфира | нет | принципиально не закрывается криптографией |
| Физическое уничтожение узла | нет | обнаруживается по пропаже heartbeat |
| Атака на сервер | вне LoRaWAN | обычные меры защиты информационных систем |
| Анализ трафика (кто и когда передаёт) | нет | адрес и время передачи видны |
Ключевой вывод: криптография закрывает угрозы содержанию, но не угрозы доступности. Глушение и физическое разрушение требуют других мер — резервирования, мониторинга молчания, физической защиты.
Честная модель угроз всегда содержит незакрытые пункты, и зрелость инженера — в том, чтобы их назвать.
C2. Датчики массово перестали передавать. Как отличить глушение от отказа оборудования?
Разбор
| Признак | Глушение | Массовый отказ |
|---|---|---|
| География | узлы в одной зоне | обычно разбросаны или связаны одной партией |
| Начало | внезапное, одномоментное | постепенное |
| Шлюз | видит повышенный уровень шума | шум в норме |
| Узлы соседней зоны | работают нормально | зависит от причины |
| После прекращения | связь восстанавливается сама | не восстанавливается |
Инструмент: шлюз может сообщать уровень шума в канале. Резкий рост при одновременной пропаже узлов в одной зоне — сигнатура глушения.
Аналогия с курсом: это та же логика, что в BeaconRadio, урок 5, — распознавание по совокупности признаков, а не по одному. И тот же принцип: «отсутствие данных — тоже данные».
C3. Обоснуйте выбор приватной сети для городской инфраструктуры перед комиссией, которая предлагает использовать публичный облачный сервис.
Разбор
Аргументы, которые должен привести ученик:
Контроль над ключами. В публичном сервисе корневые ключи регистрируются у оператора. Для инфраструктуры это означает зависимость доступа к собственной сети от третьей стороны.
Данные о состоянии инфраструктуры. Расположение датчиков, история аварий, слабые места сетей — сведения, представляющие интерес не только для эксплуатантов.
Непрерывность работы. Аварийная служба должна работать независимо от доступности внешнего сервиса и его коммерческой политики.
Стоимость на масштабе. Тысячи устройств при тарификации за узел или за сообщение создают постоянные расходы; свой сервер — разовые вложения.
Контраргументы, которые надо честно назвать: свой сервер требует администрирования, резервного копирования, обеспечения отказоустойчивости и квалифицированного персонала. Это реальная статья расходов.
Вывод: решение обосновано для инфраструктуры критического назначения; для некритичных задач публичный сервис может быть рациональнее. Умение назвать условия применимости — признак качественного обоснования.
Ответы на вопросы, которые прозвучат
| Вопрос ученика | Как отвечать |
|---|---|
| «Кому нужно взламывать датчики протечки?» | Мотивы бывают разные: от хулиганства до целенаправленной дезорганизации работы служб. Инфраструктура защищается независимо от предполагаемого мотива |
| «Если MIC всего 4 байта, почему это надёжно?» | Потому что атака идёт по радио, а не в памяти компьютера. Через эфир перебрать 4,3 миллиарда вариантов невозможно. Сам ключ при этом 128-битный |
| «Можно ли вообще сделать абсолютно защищённую сеть?» | Нет. Глушение и физическое уничтожение криптографией не закрываются. Задача — закрыть то, что закрывается, и знать про остальное |
| «Зачем шифровать данные о протечке — это же не секрет?» | Отдельное сообщение не секрет, но карта расположения датчиков и история аварий — сведения о слабых местах городской инфраструктуры |
| «Наш стенд получается незащищённым?» | Он защищён механизмами LoRaWAN, но использует ABP и известные ключи — сознательное упрощение для учёбы. Мы честно это фиксируем |
Раздаточный лист (для печати)
Урок 7. Безопасность инфраструктуры
Сравнение: игрушка против промышленного решения
Задача FoxHunter LoRaWAN Подтвердить отправителя Защита от повтора Скрыть содержимое Управление ключами Стойкость подписи (по расчётам из FoxHunter, урок 6):
FoxHunter LoRaWAN Длина 1 байт 4 байта Вариантов Перебор по радио (1/с) Функция XOR (линейная) AES-CMAC (нелинейная) ABP против OTAA:
ABP OTAA Где ключи Что при компрометации узла Где применяем стенд город Модель угроз: что LoRaWAN НЕ закрывает?
- ________________________________
- ________________________________
- ________________________________
Почему приватная сеть для города:
____________________________________________________
Домашнее задание
Обязательная часть
Врайтап по рубрике А. Обязательный пункт: три слабости FoxHunter и механизмы LoRaWAN, которые их закрывают.
Уровень A
Найти три системы из жизни, где важна защита от подделки сообщений (банковские операции, электронные пропуска, госуслуги). Описать, что случится при подделке.
Уровень B
Составить таблицу «угроза → механизм защиты → закрыта полностью или частично» для нашей городской сети.
Уровень C
Подготовить раздел «модель безопасности» для защиты проекта: угрозы, механизмы, честно названные незакрытые риски и обоснование их допустимости.
Итог урока: что записать в журнал
Вывод урока 7
- Сеть, управляющая аварийными нарядами города, — инфраструктура, её защита обязательна.
- LoRaWAN несёт защиту «из коробки»: AES-128 (конфиденциальность), MIC 4 байта на AES-CMAC (целостность и аутентичность),
FCnt(защита от повтора). - MIC 4 байта против подписи 1 байт: 4,3 млрд вариантов против 256 — перебор по радио из минут превращается в десятки лет.
- Различайте: длина MIC защищает канал, длина ключа (128 бит) защищает секрет.
- ABP (ключи в прошивке) — для стенда; OTAA (сессионные ключи) — для города.
- Приватная сеть оставляет ключи и данные инфраструктуры под контролем города.
- Криптография закрывает угрозы содержанию, но не закрывает глушение и физическое разрушение — их обнаруживают мониторингом молчания.
Связь с курсом
| Что родилось на этом уроке | Где станет инструментом |
|---|---|
| Промышленные механизмы защиты | Урок 8 (защита проекта, опора «модель безопасности») |
| Полная модель угроз | Конкурсные работы, документ 5 |
| «Честно назвать незакрытое» | Рубрика Б, критерий «Границы и ограничения» |
| Обнаружение атаки по совокупности признаков | BeaconRadio урок 5, вся диагностика курса |
Чек-лист педагога перед уроком
- Материалы FoxHunter (уроки 4–6) под рукой для сопоставления
- Если модуль охоты не пройден — подготовить краткую демонстрацию брутфорса
- Проверены числа: 256 против 2³², 2 минуты против 68 лет
- Раздаточный лист распечатан
- Готов нейтральный ответ на вопрос «кому это нужно взламывать»