Ключевые слова: IoT, DID, децентрализованная идентификация, IOTA
Введение
Устройства Интернета Вещей (Internet of Things, IoT) уже не первый год является перспективным направлением. Для повсеместной интеграции IoT технологий в нашу жизнь необходимо внедрить протоколы, стандарты и решить некоторые проблемы, связанные со спецификой этой области. Одной из таких проблем является идентификация устройств. Раз концепция IoT предполагает общение между гаджетами, значит необходимо как то определять, кто посылает данные и уметь заявлять о себе при попытке поделиться с кем то информацией. О идентификации IoT устройств задумались относительно недавно, а решения, предложенные различными стартапами и корпорациями, все еще находятся в разработке.
Особенности IoT устройств
Особенностями устройств Интернета вещей в общем случае являются их мобильность, маломощность, небольшой объем памяти и, вероятно, нестабильные каналы связи. Эти аспекты надо учитывать при разработке ПО, которое будет использоваться в этой сфере.
Топология IoT сети
Так как наличие единой точки отказа сети неприемлемо в 21 веке в IoT, как и в любой современной технологии, наибольшее распространение имеют распределенные сети (системы, где все узлы являются равноправными и решения принимаются совместно). В таких сетях у узлов есть полный контроль над данными, они легко масштабируются, устойчивы к взломам и падениям отдельных узлов. Однако в такой топологии есть свои минусы: много одинаковой работы, проделываемой каждым узлом, и для корректной работы необходима достаточно большая сеть.
SSI. Само-суверенная идентификация
Self-sovereign identity (SSI) — это понятие является ключевым для работы, оно обозначает концепцию, при которой пользователь, создавая свои учетные, данные имеет полный контроль над ними и сам решает кому и в каком объеме раскрывать эти данные.
Распределенные системы идентификации
uPort — система децентрализованной идентификации, основанная на Ethereum, позволяющая создавать представление личности, взаимодействующее посредством смарт-контрактов, и делиться информацией об атрибутах этой личности в сети.
Существует также решение на базе Hyperledger Fabric (проект от Linux Foundation использует модульную структуру для построения блокчейна, сконструированную под отдельные нужды пользователя) fabric-iot. В этой системе сеть заранее настраивается администратором, создаются каналы и смарт-контракты. Далее, это все взаимодействует между собой, позволяя устройствам получать доступ к различным сервисам, согласно установленной политике доступа.
Еще одно решение — это open-source система децентрализованной идентификации Sovrin. Sovrin является публичным блокчейном, но только доверенные институты, такие как банки, университеты, гос. организации, могут управлять узлами. Таким образом создается доверие к выданным сертификатам.
Decentralized Identifier
DID — глобальный уникальный идентификатор, являющийся криптографически безопасным способом идентификации, не требующий централизованного органа, так как используется в децентрализованных сетях. Эта концепция разработана W3C. DID — состоит из самого DID идентификатора и DID документа, связанного с ним.
Документ DID — документ с метаданными, включающий в себя сам DID. Эти данные представлены в виде JSON.
В DID документе могут содержаться следующие данные: timestamp (отметка времени создания), криптографическое подтверждение валидности DID документа, список требуемых публичных ключей, список способов использования DID для аутентификации, список сервисов для которых DID может быть использован
Учетные данные не стоит хранить в распределенном реестре. Это небезопасно. Провайдеры персональных данных должны публиковать в сеть только хэш данных и пересылать. По хэшу легко проверить подлинность данных, не раскрывая их.
Реализация
На основе анализа существующих решений были сформулированы следующие требования к системе.
Основные требования к системе идентификации:
- Полное соблюдение концепции SSI (само-суверенной идентичности).
- Минимальное раскрытие информации. Сервисы должны запрашивать разглашение только минимального набора данных о пользователе/устройстве.
- Должна существовать возможность раскрытие информации как публично (всем сервисам в сети), так и группе сервисов или одному конкретному сервису.
В качестве платформы была выбрана IOTA — open-source технология распределенного реестра, ориентированная на IoT устройства. Она отличается от привычной блокчейн технологии отсутствием самих блоков и цепей этих блоков. Вместо этого все транзакции поступают в сеть, подтверждая 2 другие транзакции, не объединяясь в блок. В ходе этого процесса образуется ацикличный граф (DAG), называемый Tangle.
Механизм работы разработанной системы.
- Устройство обращается к сервису за предоставлением услуги
- Сервис запрашивает идентификационные данные устройства (пользователя)
- Пользователь создает заявку у провайдера сертификатов для создания идентификационной информации и соответствующего DID
- Если CP (провайдер сертификатов) одобряет эту заявку, тогда он отправляет сообщение с подтвержденным утверждением, подписанное своим закрытым ключом, пользователю и публикует соответствующий DID документ в сеть
- Далее, пользователь, ссылаясь на DID документ, проходит аутентификацию, описанную в нем, и предоставляя подтвержденное утверждение, полученное от эмитента, которое на целостность может проверить сервис, используя открытый ключ эмитента из DID документа
- Сервис проверяет всю информацию и делает вывод о соответствии пользователя политике аутентификации и, если все верно, предоставляет пользователю доступ к ресурсам и услугам сервиса.
Для возможности выбора круга участников сети, которым происходит раскрытие информации, использовались MAM каналы, это настраиваемые каналы транзакций в IOTA, напоминающие мультивещание в обычных сетях.
Разработанная система получилась безопасной, прозрачной и масштабируемой. В ней есть множество перспектив для расширения. таких как: внедрения систем отзыва лицензий и системы рейтинга пользователей для создания доверия в сети.
Литература:
- Han Liu, Dezhi Han, Dun Li. Fabric-iot: A Blockchain-Based Access Control System in IoT. IEEE Access (8), 2020, pp. 18207–18218.
- Xiaoyang Zhu, Youakim Badr. Identity Management Systems for the Internet of Things: A Survey Towards Blockchain Solutions Society of Petroleum Engineers, 2019, pp. 18.
- Paulo C. Bartolomeu, Emanuel Vieira, Seyed M. Hosseini, Joaquim Ferreira Self-Sovereign Identity: Use-cases, Technologies, and Challenges for Industrial IoT
- Nataliia Kulabukhova, Andrei Ivashchenko, Iurii Tipikin, Igor Minin. Self-Sovereign Identity for IoT Devices
- Kriti Chopra, Kunal Gupta, Annu Lambora\flqq Future Internet: The Internet of Things-A Literature Review. 2019 International Conference on Machine Learning, Big Data, Cloud and Parallel Computing (COMITCon), 2019
- Официальный веб-сайт uPort. — URL: https://www.uport.me
- moslah hamza, All you need to know about uPort Identity management
- Pelle Braendgaard, What is a uPort identity?
- SovrinTM: A Protocol and Token for Self-Sovereign Identity and Decentralized Trust, A White Paper from the Sovrin Foundation, 2018, p. 42
- W3C, Decentralized Identifiers (DIDs) v1.0
- Документация к IOTA — URL: https://docs.iota.org/
- Paul Handy, Introducing Masked Authenticated Messaging