Почему подключённый к облаку контроллер — это не интернет вещей

Константин Жиданов с кафедры технологий защиты информации ГУАП, с которыми Tproger будет совместно участвовать в Фестивале ВКонтакте, подготовил интересную статью про интернет вещей. Посмотреть на то, как всё это работает вживую можно будет на нашей площадке. Приезжайте 16 июля в Питер, будет интересно!

Передаём слово Константину.

Классический IoT

Словосочетание «интернет вещей» появилось в начале 2000-х годов. Миниатюризация электроники, снижение энергопотребления и появление RFID чипов, способных работать вовсе без батарейки, привели инженеров к мысли о том, что в ближайшем будущем можно будет оснастить предметы из реального мира микрокомпьютерами. Целью ставилось создание универсальных стандартов, протоколов и форматов данных, которые бы позволили обычным вещам общаться друг с другом – духовке обращаться к замороженной пицце за уточнениями, каков будет оптимальный режим разогрева для получения хрустящей корочки, а стиральной машине считывать данные с ярлычка блузки и использовать нужный режим стирки.

За полтора десятилетия изначальная концепция сильно изменилась. Теперь все устройства подключены к обычному, «человеческому» интернету, но так и не научились общаться между собой. Вместо самодостаточной mesh-сети в нашей квартире мы получили «звезду», где каждый узел отправляет свои данные в облачное хранилище по обычному HTTP, как обычные смартфоны/ноутбуки/десктопы. Устройства разных производителей по прежнему не могут ни общаться между собой, ни даже управляться общим приложением на телефоне. И эта схема продвигается всеми производителями как «интернет вещей». Но мы же не называем наш ноутбук агентом «интернета вещей», правда?

Connectivity

Чтобы получить «настоящий» интернет вещей, у устройств должна быть возможность связываться друг с другом напрямую. Типичный сценарий: у вашего ребёнка есть браслет-трекер, благодаря которому вы всегда знаете, где он находится. Когда браслет находится в зоне покрытия 3G, он может отправлять данные напрямую в облако, откуда вы и будете их получать. Однако работа системы не должна нарушаться и в том случае, когда вы всей семьёй отправляетесь на загородную прогулку – с помощью WiFi все устройства должны прозрачно для пользователя организовывать сеть. Способы построения peer-to-peer сетей известны уже давно, но для получения «настоящего» интернета вещей недостаточно обеспечить маршрутизацию и доставку данных, необходимо также обеспечить шифрование данных. В самом деле, вы же не хотите, чтобы местоположение вашего ребёнка мог отслеживать кто-то кроме вас?

Безопасность

Схема распределения ключей шифрования — главная особенность, отличающая IoT от обычной mesh-сети, причём требования к ней могут показаться взаимоисключающими. Так, например, включение нового устройства в сеть должно происходить децентрализовано (мы же помним, что связи с облаком у нас может и не быть). Кроме того, специфика IoT такова, что все устройства являются крайне недоверенными – любое устройство может быть украдено и скомпрометировано, поэтому ни одно устройство, включая ваш смартфон, не может хранить мастер-ключ всей системы. Достичь этой цели можно с помощью экзотических протоколов, использующих схемы разделения секрета и слепой подписи.

Настоящий интернет вещей

Теперь мы можем ответить на вопрос в заголовке статьи. Когда мы хотим сделать «умную розетку» с управлением через смартфон и мы подключаем к Arduino реле и WiFi модуль, то нам приходится «захардкодить» множество вещей – SSID и пароль точки доступа, URL облака, логин и пароль на этом облаке и т.д. При этом у нас не достигается ни одной из поставленных ранее целей. Такая розетка не будет работать на даче, где нет интернета. Непонятно также, как без связи с облаком будет происходить делегирование прав и как это новое устройство будет подключаться к существующей инфраструктуре вашего «умного дома».

Интернет вещей – это интернет для вещей, а не вещи, подключённые к интернету. Создание подобной инфраструктуры требует разработки новых протоколов шифрования данных, криптографических средств и протоколов маршрутизации.

Наши достижения в этом направлении мы и продемонстрируем на площадке «интернет вещей» Фестиваля ВКонтакте.

Константин Жиданов, кафедра технологий защиты информации ГУАП