Научная статья на тему 'СИСТЕМА СУВЕРЕННОЙ ЛИЧНОСТИ НА ОСНОВЕ РАСПРЕДЕЛЕННОГО РЕЕСТРА ДАННЫХ'

СИСТЕМА СУВЕРЕННОЙ ЛИЧНОСТИ НА ОСНОВЕ РАСПРЕДЕЛЕННОГО РЕЕСТРА ДАННЫХ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
97
17
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ДЕЦЕНТРАЛИЗОВАННОЕ / ОРИЕНТИРОВАННОЕ НА ПОЛЬЗОВАТЕЛЯ ШИФРОВАНИЕ НА ОСНОВЕ ИДЕНТИФИКАЦИОННЫХ ДАННЫХ / БЛОКЧЕЙН / АВТОНОМНАЯ СИСТЕМА ИДЕНТИФИКАЦИИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Акутин Артем Сергеевич, Бровко Александр Валерьевич

Развитие распределенных приложений и технологии блокчейн дает возможность создавать концептуально новые системы идентификации и хранения личности. В большинстве существующих информационных систем задача хранения данных о конкретном пользователе решается средствами и ресурсами производителей определенной информационной системы. В данной статье рассматривается принципиально новый способ решить проблему хранения пользовательских данных, который позволит отдать данные клиентов в руки самих клиентов. В работе представлена базовая реализация системы суверенной личности, которая сможет послужить основой для создания информационных систем любой сложности. Стандартный механизм может выполнять задачи хранения пользовательских данных и подписи документов.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SELF-SOVEREIGN IDENTITY SYSTEM BASED ON BLOCKCHAIN-BASED REGISTRY

Development of modern distributed applications and blockchain technology allow for users to create new types of identity management systems. In most of information systems data storage issues are resolved by developers of certain information system based on their resources. In the article we are looking for new ways to store user data that will allow clients manage their own data. In the given research we present the basic implementation of the self-sovereign identity system that can serve as the basis for creating information systems with high complexity. A standard mechanism could store data and sign documents

Текст научной работы на тему «СИСТЕМА СУВЕРЕННОЙ ЛИЧНОСТИ НА ОСНОВЕ РАСПРЕДЕЛЕННОГО РЕЕСТРА ДАННЫХ»

ИНФОРМАТИКА, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И УПРАВЛЕНИЕ

УДК 004.75

А.С. Акутин, А.В. Бровко

СИСТЕМА СУВЕРЕННОЙ ЛИЧНОСТИ НА ОСНОВЕ РАСПРЕДЕЛЕННОГО РЕЕСТРА ДАННЫХ

Аннотация. Развитие распределенных приложений и технологии блокчейн дает возможность создавать концептуально новые системы идентификации и хранения личности. В большинстве существующих информационных систем задача хранения данных о конкретном пользователе решается средствами и ресурсами производителей определенной информационной системы. В данной статье рассматривается принципиально новый способ решить проблему хранения пользовательских данных, который позволит отдать данные клиентов в руки самих клиентов. В работе представлена базовая реализация системы суверенной личности, которая сможет послужить основой для создания информационных систем любой сложности. Стандартный механизм может выполнять задачи хранения пользовательских данных и подписи документов.

Ключевые слова: децентрализованное, ориентированное на пользователя шифрование на основе идентификационных данных, блокчейн, автономная система идентификации

A.S. Akutin, A.V. Brovko

SELF-SOVEREIGN IDENTITY SYSTEM BASED ON BLOCKCHAIN-BASED REGISTRY

Abstract. Development of modern distributed applications and blockchain technology allow for users to create new types of identity management systems. In most of information systems data storage issues are resolved by developers of certain information system based on their resources. In the article we are looking for new ways to store user data that will allow clients manage their own data. In the given research we present the basic implementation of the

self-sovereign identity system that can serve as the basis for creating information systems with high complexity. A standard mechanism could store data and sign documents

Keywords: decentralized, user-centric identity based encryption, blockchain, Self-Sovereign Identity System

ВВЕДЕНИЕ

Подход, при котором разработчик хранит данные пользователей у себя, хорошо себя зарекомендовал и позволяет оперативно реагировать на все события, происходящие внутри системы. Однако ситуация, когда вся информация о клиенте хранится на серверах владельцев программного обеспечения, накладывает такие ограничения, как: инертность владельцев системы, ошибки в ПО или при использовании ПО, сбой серверов, на которых расположены эти данные. Достаточно легко представить себе ситуацию, когда сервер банка недоступен, и просто физически невозможно провести платеж. А если ошибка в банковских системах антифрода определила законопослушного гражданина как мошенника, то процесс возвращения клиентом доступа к личному кабинету и деньгам может затянуться на месяцы.

Для решения указанных проблем был разработан прототип системы суверенной личности (Self Sovereign Identity System) [1], которая основана на идеях распределенного реестра данных в виде блокчейна.

Децентрализация важнейших процессов нашей жизни, таких как, например, оплата, в последние годы зарекомендовала себя как перспективный подход. Криптовалюты давно вошли в привычную нам жизнь и широко используются в различных областях бизнеса и других сферах деятельности.

Говорить о состоятельности криптовалют и противопоставлять их фиатным валютам можно долго, однако одно можно сказать наверняка - блокчейн как реестр данных жизнеспособен и доказал это всему цифровому миру. Выделяя лучшее из самых спорных разработок, основой описываемого прототипа послужил именно блокчейн - децентрализованный цифровой реестр, который позволяет потенциально решить любую проблему, связанную с хранением и обработкой персональных данных.

В созданной разработке можно выделить два глобальных механизма, тонкости реализации которых подробно будут рассмотрены в разделе 2. Этими двумя механизмами являются сам блокчейн и приложение, которое работает с ним, позволяя выполнять различные операции. В самом прототипе реализована одна важнейшая операция - цифровая подпись. Подпись документов, подтверждающая любое решение на уровне организации, является важнейшим механизмом, который движет практически все внутренние процессы крупных корпораций. На примере этого механизма мы рассмотрим реализацию системы суверенной личности и измерим производительность.

Анализ опубликованных работ в указанной области показывает, что была лишь разработка шифрования на основе суверенной личности [2]. В указанной работе представлен распределенный реестр и реализована возможность создать аутентификацию на основе блокчейна.

К сожалению, процесса аутентификации не хватает для того, чтобы начать эксплуатировать подобную систему. По этой причине в ходе разработки описываемого прототипа было принято решение пойти дальше и решить некоторую прикладную задачу, а именно создать возможность подписывать документы, используя систему. Таким образом, существенным отличием данной работы от прототипа в работе [2] является наличие прикладной задачи, решаемой в рамках предметной области.

РЕАЛИЗАЦИЯ

Реестр данных

В качестве распределенного реестра данных в разработанном прототипе выступает блокчейн. С развитием криптовалют появилось множество технических реализаций блокчейна, которые можно использовать. Во многих проектах [2, 3] используется сеть Ethereum, которая достаточно интересна с точки зрения реализации и предоставляет множество технических решений «из коробки». В данной работе авторы решили отойти от традиционного решения проблемы распределенного реестра, поскольку в сети Ethereum сложность майнинга существенно возрастает со временем и требуются большие вычислительные ресурсы для поддержания функционирования сети.

В рамках разработанного прототипа была собственная реализация сети блокчейн, которая реализована на языке программирования Python 3 версии. В любой блокчейн сети должна существовать защита от злоупотребления мощностями системы, некий алгоритм, который позволит доказать состоятельность транзакции. В существующей реализации используется алгоритм доказательства работы (Proof of Work), который подбирает результат хеш-функции SHA256 на основе предыдущего блока так, чтобы последние 4 цифры хеша были нулями. Реализация проста и не будет увеличивать сложность майнин-га со временем.

Для того чтобы взаимодействовать с блокчейн-сетью, было реализовано API на фреймворке Flask, с помощью которого можно создавать новые транзакции и производить операции создания нового блока (майнинг). Соблюдая уже реализованные контракты, можно использовать любую другую реализацию блокчейна на выбор, от этого процесс функционирования приложения не изменится.

Приложение

Приложение состоит из 3 основных модулей, которые представляют собой 3 веб-сервиса, обменивающихся сообщениями по протоколу https. Все 3 сервиса реализованы

на платформе NodeJS v14. Эта платформа хорошо себе зарекомендовала в реализации прототипов похожих систем [3, 4]. Схематично процесс обмена сообщениями и связи можно увидеть на рис. 1.

Рис. 1. Схема информационных потоков

Опишем части более подробно.

Main Blockchain - распределенный реестр данных, о котором было подробно рассказано в предыдущем пункте.

Public Validator - некая официальная структура, которая представляет собой приложение с базой данных, содержащей сведения об участниках сети. Поскольку мы не рассматриваем ситуацию, в которой участники сети полностью предоставлены сами себе, должен быть узел всей системы, который должен проводить изначальную верификацию предоставленных данных. Говоря о примере подписи документов рамках определенной компании, можно с уверенностью заявить, что компания захочет иметь только подписи людей, которые в ней работают.

В рамках прототипа модуль, означенный как Public Validator, выполняет добавление участника к сети (регистрации) и верифицирует, что подобный человек действительно существует в организации, которая использует систему. В рамках этого модуля существует локальная база данных, которая проводит проверку добавляемых данных о клиентах.

Claims Holder - это непосредственно клиент системы, который владеет собственной цифровой личностью и данными о себе. Для того чтобы стать полноправным участником системы суверенной личности, нужно пройти процедуру верификации с использованием предыдущего модуля. После этого клиент сможет выполнять процедуру подписи документа.

Claims Verifier - модуль, который будет использоваться для того, чтобы верифицировать процесс подписания документа, а также инициировать его. В разработанном прототипе возможно при помощи описываемого модуля создать запрос на подпись определенного документа, который имеет форму согласно внутреннему регламенту той организации, в которой потенциально будет использоваться разработанная система, а после подписи документа клиентом - верифицировать этот процесс.

Все стадии процессов отображаются в сети блокчейн, при необходимости любого рода проверки возможно найти необходимую транзакцию и подтвердить, что человек действительно выполнил процесс подписи. Таким образом, любая организация сможет легко избавиться от множества бумажной работы, а процесс подписи документов сделать прозрачным, проверяемым и удобным. И все данные будут находиться в руках самих клиентов, что при условии использования децентрализованного реестра позволит избавиться от множества часов простоев производства и документооборота.

БЕЗОПАСНОСТЬ

Всегда, говоря о пользовательских данных, встает вопрос о безопасности. Сохранность данных в системе суверенной личности должна обеспечиваться наивысшим образом. С одной стороны, мы отдаем данные клиента под ответственность клиента, что снимает с владельца системы определенные заботы. С другой стороны, чтобы пользователи чувствовали себя защищенными, а владельцы организаций, решившие внедрить у себя современный подход хранения личности, не переживали об информационной целостности своей компании, необходимо создать в системе все условия для безопасного обмена данными.

Первое, о чем однозначно стоит упомянуть, - это защищенный протокол https, на основе которого происходит вся коммуникация в сети. Безопасность протокола обеспечивается ассиметричным шифрованием, а также сертификатами. Обмен ключами происходит на основании протокола Диффи - Хеллмана, что уже само по себе уменьшает риски системы в разрезе информационной безопасности.

Второй немаловажной особенностью взаимодействия между частями системы является JWT-токен, который обеспечивает идентификацию и аутентификацию между различными модулями приложения [5]. Токен, принцип действия которого основан на асимметричном шифровании, хорошо зарекомендовал себя в современных промышленных информационных системах.

Третьей важнейшей частью, обеспечивающей безопасность системы, является тот факт, что основная информация, передаваемая владельцем личности, состоит в цифровой подписи, которая представляет собой результат хеширования данных алгоритмом SHA256, который после закодирован алгоритмом Base64. Даже если данные будут перехвачены, то злоумышленник не сможет добыть сколь-либо значимую информацию.

Ко всему вышесказанному можно добавить, что система позиционируется как автономное решение и может быть развернута в рамках приватной корпоративной сети, если использование подразумевается внутри закрытой организации. Добавление дополнительного слоя защиты в виде закрытой сети и доступа по VPN лишь уменьшит риски, связанные с информационной безопасностью.

АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ

Анализируя производительность созданной системы, можно выделить сотни параметров, по которым можно судить о созданном ПО как о жизнеспособном. Существенным отличием разработанного прототипа от других систем выступает блокчейн как распределенный реестр хранения данных. Основной причиной деградации системы как ПО, выполняющего реальную задачу, может являться возрастающая сложность майнинга, процесса добычи нового блока и записи транзакций в существующую сеть.

Для того чтобы оценить существующие возможности системы, было проведено нагрузочное тестирование на сеть блокчейн. Последовательно друг за другом вызывались операции создания новой транзакции, а после - создания нового блока - две операции, включающие процедуры хеширования и работы алгоритма Proof of Work. Время измерялось на выполнение ста транзакций. В качестве машины, на которой проводились измерения, выступал персональный компьютер с 16 ГБ оперативной памяти и процессором Intel Core I7 10 поколения. Результаты измерения можно видеть на рис. 2.

Замеры проводились двумя способами - последовательным выполнением запросов и параллельным выполнением запросов в 5 потоков. Во втором случае система не деградировала и показывала стабильные результаты вычисления новых блоков и записи транзакций в сеть. Неровности и пороги на графике объясняются скачущим интервалом построения графика, поскольку достаточно трудно задать абсолютно все точки, поэтому было принято решение пожертвовать внешним видом графика в угоду его репрезентативности.

Таким образом, на 100 транзакций мы имеем от 10 до 15 с времени выполнения. Это означает результат порядка 0,10-0,15 с на 1 транзакцию, на 200 тысяч запросов ухудшение производительности произошло лишь на 0,05 с. К этим результатам можно добавить погрешность сети и случайные аппаратные сбои процессора.

Рис. 2. Результаты тестирования производительности системы

Ожидая линейную прогрессию усложнения майнинга, можно вычислить, что к 2 млн запросов 1 транзакция будет занимать около 0,5-1 с, что с запасом покрывает нужды коммерческих организаций, желающих перенести процедуры по подписи документов на платформу суверенной личности.

ЗАКЛЮЧЕНИЕ

Предложенная система является базовой реализацией, она может быть масштабирована до любого размера и модифицирована для выполнения любых прикладных задач. Подпись документов является несущей функцией для многих организаций, а перевод этого процесса в цифровое пространство позволит существенно сократить усилия, затрачиваемые на бумажную работу. Ответственность за хранение информации лежит на клиентах этой системы, что может существенно повысить уровень ответственности работников и снизит риски мошенничества для организаций.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Verifiable Credentials W3C Specification. 2020 Режим доступа: https://www.w3.org/TR/vc-data-model / (дата обращения: 05.12.2021)

2. D. Nancy Kirupanithi, Dr. A. Antonidoss Self-Sovereign Identity creation on Block-chain using Identity based Encryption // Proceedings of the Fifth International Conference on Intelligent Computing and Control Systems (ICICCS 2021), 2021, pp. 299-304.

3. Design Pattern as a Service for Blockchain-Based Self-Sovereign Identity / Yue Liu, Qinghua Lu, Hye-Young Paik, Xiwei Xu, Shiping Chen, Liming Zhu // IEEE Software, Volume 37, Issue 5, Sept. - Oct. 2020. pp. 30-36.

4. Andreas Grüner, Alexander Mühle and Christoph Meinel. ATIB: Design and Evaluation of an Architecture for Brokered Self-Sovereign Identity Integration and Trust-Enhancing Attribute Aggregation for Service Provider // IEEE Access, Vol. 9, 2021, pp. 138553-138570.

5. RFC7519 (JSON WEB TOKEN specification). 2020 URL: https://datatracker.ietf.org/doc/html/rfc7519https://datatracker.ietf.org/doc/html/rfc7519 (дата обращения: 05.12.2021)

СВЕДЕНИЯ ОБ АВТОРАХ

Акутин Артем Сергеевич -

ассистент и магистрант кафедры «Прикладные информационные технологии» Саратовского государственного

Artem S. Akutin -

Assistant Lecturer, Master student, Department of Applied Information Technologies, Yuri Gagarin State Technical University of Saratov

технического университета имени Гагарина Ю.А.

Бровко Александр Валерьевич -

доктор физико-математических наук, профессор кафедры «Прикладные информационные технологии» Саратовского государственного технического университета имени Гагарина Ю.А.

Alexander V. Brovko -

Dr. Sci. in Physics and Mathematics, Professor, Department of Applied Information Technologies, Yuri Gagarin State Technical University of Saratov

Статья поступила в редакцию 15.11.21, принята к опубликованию 06.12.21

i Надоели баннеры? Вы всегда можете отключить рекламу.