Введение
IoT (internet of things, далее – Интернет вещей) представляет собой распределенную мультиагентную сеть, осуществляющую автономный сбор и обработку данных об окружающей среде. Интернет вещей имеет представление как в реальном, так и в виртуальном пространстве [1−5].
В последнее десятилетие наблюдается лавинообразный рост числа агентов ИВ: на февраль 2017 г. число упомянутых агентов составило порядка 10 миллиардов устройств. По прогнозам экспертов, к 2024 г. количество агентов Интернета вещей по всему миру может достигнуть 60 миллиардов устройств, а по самым оптимистичным прогнозам развития отрасли – 80 миллиардов. Подобный массив устройств, несмотря на малую среднюю мощность, нельзя оставлять беззащитным [6−11]. Это подтверждается значительными последствиями в результате пренебрежения безопасностью Интернета вещей [12−16]. Примерами могут служить нашумевшие в СМИ атаки ботнетов BrickerBot, Amnesia и Mirai, объединившие под собой сотни тысяч устройств, которые впоследствии были использованы для проведения массированных DDOS атак.
Основная часть
Низкоресурсная криптография (Lightweight Cryptography) – раздел криптографии, имеющий своей целью разработку алгоритмов для применения в устройствах, которые не способны обеспечить большинство существующих шифров достаточными ресурсами (память, электропитание, размеры) для функционирования.
Низкоресурсная криптография позволяет решить проблему низкой производительности агентов Интернета вещей, обеспечив достаточный уровень защищенности системы. Она обладает следующими особенностями:
- применение модифицированных версий классических алгоритмов;
- использование быстрых математических операций;
- адаптация под аппаратуру.
В результате анализа для решения задачи по использованию низкоресурсной криптографии рассмотрены следующие алгоритмы [17, 18]:
- KATAN32, KATAN48, KATAN64;
- PRESENT-80, PRESENT-128;
- HIGHT;
- mCryption;
- LBlock;
- KLEIN-64, KLEIN-80, KLEIN-96;
- XXTEA.
Экспериментальные данные, подтверждающие возможность применения алгоритма, получены для алгоритмов PRESENT-80 и XXTEA [19].
Разработанный протокол позволяет осуществить безопасную аутентификацию устройства, подтвердить его наличие в сети и осуществить безопасный обмен информации с устройством.
Протокол использует следующие средства для выполнения данных задач:
- уникальные метки устройств;
- магические числа;
- шифрование каналов связи с использованием сессионных ключей.
При разработке протокола также были исследованы некоторые важные параметры способа защиты, такие как: минимальные требования к мощности контроллера и скорости передачи данных. Размер передаваемых пакетов в текущей версии минимизирован.
Инициализатором обмена информацией в рамках созданного защищенного соединения может выступать как базовая станция, так и внешний контроллер. Инициализатором замены ключа может выступать только базовая станция. Все наиболее затратные вычисления перенесены на базовую станцию.
На рис. 1 представлена структурная схема модели, задействованная в рамках исследования. Под внешним контроллером подразумевается любой контроллер, выполняющий роль концентратора для датчиков, выполняющий промежуточные вычисления, либо объединение данных для последующей отправки на базовую станцию. В роли агентов выступают маломощные контроллеры датчиков. Далее под внешними контроллерами подразумеваются все элементы сети, кроме базовой станции.
Рассматривались следующие нарушения безопасности системы в рамках данной работы:
- атаки на отказ в обслуживании внешних датчиков;
- атаки на отказ в обслуживании базовой станции;
- перехват данных канала «базовая станция ←→ внешний контроллер»;
- подделка данных канала «базовая станция ←→ внешний контроллер».
Следующие модели нарушителя рассматривались в рамках данной работы:
- внешний нарушитель (отсутствие доступа в сеть);
- внутренний нарушитель (наличие доступа в сеть);
- внутренний нарушитель (контроль агента сети);
- внутренний нарушитель (подделка агента сети).
Схема алгоритма идентификации представлена на рис. 2. Алгоритм идентификации представлен следующими действиями:
- Базовая станция отправляет запрос новому устройству. В случае, если устройств подключается несколько – запросы обрабатываются в порядке достижения базовой станции.
- Если запрос верен – на основе R/O метки устройства происходит генерация основной метки и её установка на базовой станции.
- Метка пересылается устройству и устанавливается.
Внешний контроллер может исполнять роль базовой станции, собирая информацию с подчиненных ему агентов. В рамках экспериментов были рассмотрены следующие варианты делегирования:
- Внешний контроллер получает собственную таблицу ключей и осуществляет взаимодействие с подчиненными агентами аналогично базовой станции, отправляя на неё итоговые данные. Базовая станция не хранит метки подчиненных внешнему контроллеру устройств.
- Внешний контроллер получает права базовой станции аналогично первому пункту, но не имеет права инициировать замену ключей. Замена производится путем последовательных запросов к базовой станции, при этом базовая станция хранит полный набор меток.
- Внешний контроллер запрашивает данные с базовой станции при каждом опросе подчиненных агентов.
Текущий протокол использует второй вариант. Таким образом, удалось избежать падения работоспособности внешнего контроллера с увеличением числа его агентов.
Обмен данными осуществляется посредством пакетов, длиной 312 бит. Структура пакета представлена в табл. 1.
Таблица 1
Представление пакета
|
Заголовок [8 бит] |
Флаги [8 бит] |
Данные [264 бита] |
Магическое число [16 бит] |
Метка [16 бит] |
Заголовок позволяет устройству идентифицировать пакет и тип устройства, от которого пришло сообщение. Тип устройства применяется для подтверждения корректности пакета.
Поле флагов позволяет точно идентифицировать содержимое пакета и набор процедур, необходимый для его декодирования [20].
Данные, в зависимости от набора флагов, могут содержать либо ключ, либо данные с датчика, либо команду контроллеру. Размер в 264 бита информации позволяют, с одной стороны, достаточны для передачи ключа LW-алгоритма, а, с другой – позволяют закодировать и передать данные или команду без фрагментации [17, 21].
Структура поля представлена в табл. 2.
Таблица 2
Представление поля данных
|
Длина данных [8 бит] |
Данные |
Дополнение |
Дополнение случайно генерируется отправителем (если поле не занято целиком) и занимает пустое пространство поля данных.
Магическое число используется для подтверждения сеанса общения между внешним контроллером и базовой станцией. Ответное магическое число вычисляется по формуле [22]:
– ответное магическое число;
– полученное магическое число;
– целочисленное представление последних 8 бит поля данных.
Метка позволяет идентифицировать устройство, с которым происходит общение.
Шифрованию в рамках общения подвергаются поля флагов, данных и магического числа.
Инициализатором общения может являться как базовая станция, так и внешний контроллер.
Алгоритм обработки пакета действиями [23]:
- проверка существования метки в базе;
- в случае успеха – расшифровка пакета;
- декодирование и проверка магического числа;
- в случае успеха – пакет принят и данные декодируются.
Инициатором обмена является базовая станция. Оптимальным решением для использования в рамках данного протокола является криптография на эллиптических кривых, за счет относительно высокой скорости работы, а также малого размера данных для обмена.
Наиболее перспективным вариантом является применение схемы ECDH для обмена сеансовыми ключами.
Параметры кривой, поставляемой на неинициализированном контроллере, должны храниться в памяти базовой станции без возможности их изменить.
Выводы
В рамках данной работы был разработан протокол, позволяющий устанавливать соединения и обмениваться данными внутри защищенного канала между узлами сети Интернета вещей. Разработанный протокол обладает следующими преимуществами:
- возможность однозначно идентифицировать устройство;
- многоуровневое подтверждение целостности сообщения;
- простота реализации;
- низкие требования к вычислительной мощности компонентов сети;
- низкие требования к пропускной способности канала сети.



