Прошло 2 года с тех пор, как в России появилась возможность разворачивать IoT-системы на базе технологии NB-IoT. Счётчики, сами отправляющие свои показатели в ЖКХ, автоматические микро-метеозонды вдали от цивилизации, умное сельское хозяйство — всё это скоро станет частью повседневности.
Важно, чтобы ни система устройств, ни данные, которые она собирает и передаёт, не были использованы против пользователей системы. Если вам интересно, как стандарт NB-IoT защищает их от сетевых атак, то приглашаю под кат.
Об атаках
Как уже говорилось, в сфере сбора и обработки данных с помощью IoT основной интерес и опасения вызывают атаки, направленные на чтение данных (прослушка канала, получение несанкционированного доступа к данным) и их подмену. Для предотвращения прослушки используется шифрование, а от подмены применяют механизмы подтверждения авторства пакетов (аутентификацию), например цифровую подпись (которая тоже является задачей шифрования), или метод для IoT систем, описанный в [1].
Не секрет, что на сегодняшний день обычные компьютеры и смартфоны способны обеспечить криптостойкость шифратора канала связи такую, что на его взлом на современном суперкомпьютере потребуется время, превышающее время жизни вселенной, но у такой криптостойкости есть цена — вычислительное время шифрования и мощность, потребляемая устройством. Умный счётчик, одной батарейки в котором должно хватить на 10 лет беспрерывной работы, и месяца не проработает, если каждый день только и будет считать точки эллиптической кривой. В скорости тоже проблема: для выполнения простых операций по снятию и отправке показаний много вычислительной мощности не нужно, чего не скажешь о надёжном шифровании.
Стандартные методы защиты информации от сетевых атак для маломощных устройств не работают из-за нестандартных ограничений на операции, допустимые для этих устройств. С другой стороны, правильное построение сети накладывает ограничения уже на атакующего, и в зависимости от ограничений стандарта выбирается наиболее подходящий легковесный алгоритм ([2]).
Кратко об NB-IoT
Поговорим о стандарте NB-IoT: зачем он нужен, что описывает и как работает то, что он описывает. После этого выясним, какие ограничения накладываются на сеть.
NB-IoT создан для обслуживания сотовыми операторами сетей простых регистрирующих устройств (Оконечные Устройства, или ОУ). Работа ОУ заключается в том, чтобы собирать некоторые данные и в заранее установленные промежутки времени суток передавать их на сервер-обработчик, который распорядится этими данными дальше. Именно технология передачи, от физики до сети, описана в стандарте NB-IoT.
В NB-IoT между внутренней сетью оконечных устройств и внешней сетью сервера-обработчика нет сетевой связности. Другими словами, оператор отделяет сеть ОУ от внешней сети (по-сути, от интернета), и выступает посредником между двумя сетями.
Задачи оператора как посредника:
- поддерживать радиоканал связи с каждым ОУ,
- передавать потоки данных от сервера-обработчика к ОУ и от ОУ к серверу,
- предоставлять доступ к чтению потоков и управлению серверу-обработчику и только ему.
То есть полезные данные проходят через три разделённые сети: сеть устройств, сеть инфраструктуры оператора, интернет. Прослушку или подмену злоумышленник может делать, когда его устройство находится в одной из этих трёх сетей, поэтому вопрос о защищённости потока данных, передаваемого по NB-IoT, разделяется на три: о его защищённости в каждой из сетей отдельно.
Опустив вопрос о защищённости данных внутри сети оператора и оставив его на совести оператора, и рассмотрим остальные два.
Защищённость данных во внешней сети
Поставим себя на место злоумышленника. Перед нами 2 общающихся хоста: сервер-обработчик и предоставленный оператором специально для него интерфейс доступа к данным, собранным ОУ. Что находится за этим интерфейсом нас не интересует — это часть инфраструктуры провайдера.
Общение между обработчиком и интерфейсом оператора — это обычное общение двух хостов в интернете. Как уже писалось ранее, они достаточно мощные, чтобы обеспечить себе криптостойкие каналы передачи, поэтому вопрос защищённости данных с ОУ во внешней сети интереса не представляет.
Защищённость данных в сети оператора
Рассмотрим теперь внутреннюю сеть.
Первым делом, сеть в определённом смысле изолирована: к ней нет сетевого пути извне, есть только возможность прямого вмешательства в её физику. Физическая связь между ОУ и оператором осуществляется радиоканалом на одной из выделенных частот. Топология сети — совокупность прямых подключений между ОУ и оператором, причём все они статические — заранее предустановленные. Значит злоумышленнику, который хочет взаимодействовать с узлом в этой сети, необходимо выдавать себя за противоположный узел, при чём так, чтобы настоящий узел не обнаружил имитирующий его трафик. В случае, когда трафик передаётся во по радиоволне, это само по себе нетривиальная задача.
Кроме этого, будем всё так же шифровать пакеты и аутентифицироваться при подключении.
Важно!
Оператор не обязан предоставлять шифрование трафика в сети ОУ-Оператор. Шифрование возможно как отдельная услуга, за которую платит организация, разворачивающая IoT-систему с помощью NB-IoT оператора.
ОУ недостаточно мощны для того чтобы использовать тяжёлые криптостойкие алгоритмы шифрования, а стойкость легковесных алгоритмов заметно более низка, что, в том числе, значит, что злоумышленнику нужно относительно немного пакетов для анализа, прежде чем он сможет выяснить ключ алгоритма.
В NB-IoT эффективность легковесных алгоритмов шифрования достигается тем, что обмен пакетами между ОУ и оператором, просто по концепту, происходит редко: единицы пакетов в день (точнее про необходимую для эффективности «редкость трафика» можно прочитать в [2]) Выходит, злоумышленнику попросту неоткуда взять большую базу пакетов для анализа в короткие сроки: любой алгоритм шифрования в сети с редким трафиком будет держаться дольше, чем в аналогичной ситуации в сети в частым трафиком.
Итог
NB-IoT — вполне надёжный стандарт сервиса. Подмена трафика во внутренней сети (стояние посредине) — дорогостоящее предприятие в силу необходимости сокрытия радиосигнала узлов друг от друга. Кроме того, стояние посредине нельзя начинать, пока не будут известны ключи аутентификации узлов, достаточно надёжно защищённые легковесным алгоритмом шифрования, как и все данные, передаваемые от ОУ к оператору.
Попытки чтения или «стояния посередине» в сети оператора и во внешней сети также не приведут к успеху, поскольку у устройств в этих сетях достаточно вычислительной мощности для надёжного шифрования трафика. С другой стороны, если злоумышленник и захочет скомпрометировать данные от ОУ, целиться он вероятнее всего будет по внешней сети: трафик в ней наименее зависит от оператора и ответственен за него заказчик, который, не являясь крупной компанией, тратит на безопасность своей сети заметно меньше средств, чем оператор. Поэтому, разбираясь в вопросе защищённости ваших данных, нужно в первую очередь изучать, как к проблеме безопасности подходит организация, которая предоставляет услугу непосредственно вам.
Источники и ссылки:
- Yuxiang Feng, Wenhao Wang, Yukai Weng, Huanming Zhang, A Replay-Attack Resistant Authentication Scheme for the Internet of Things
- Saurabh Singh, Pradip Kumar Sharma, Seo Yeon Moon & Jong Hyuk Park: Advanced lightweight encryption algorithms for IoT devices: survey, challenges and solutions
- 3GPP Release 13 Specification — Спецификация NB-IoT
- Первая статья из цикла о реализации NB-IoT от МТС — рекомендую этот цикл как первый шаг в изучении NB-IoT